/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 0);
/******/ })
/************************************************************************/
/******/ ({

/***/ "./node_modules/ajv-errors/index.js":
/*!******************************************!*\
  !*** ./node_modules/ajv-errors/index.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function (ajv, options) {\n  if (!ajv._opts.allErrors) throw new Error('ajv-errors: Ajv option allErrors must be true');\n\n  if (!ajv._opts.jsonPointers) {\n    console.warn('ajv-errors: Ajv option jsonPointers changed to true');\n    ajv._opts.jsonPointers = true;\n  }\n\n  ajv.addKeyword('errorMessage', {\n    inline: __webpack_require__(/*! ./lib/dotjs/errorMessage */ \"./node_modules/ajv-errors/lib/dotjs/errorMessage.js\"),\n    statements: true,\n    valid: true,\n    errors: 'full',\n    config: {\n      KEYWORD_PROPERTY_PARAMS: {\n        required: 'missingProperty',\n        dependencies: 'property'\n      },\n      options: options || {}\n    },\n    metaSchema: {\n      'type': ['string', 'object'],\n      properties: {\n        properties: {\n          $ref: '#/definitions/stringMap'\n        },\n        items: {\n          $ref: '#/definitions/stringList'\n        },\n        required: {\n          $ref: '#/definitions/stringOrMap'\n        },\n        dependencies: {\n          $ref: '#/definitions/stringOrMap'\n        }\n      },\n      additionalProperties: {\n        'type': 'string'\n      },\n      definitions: {\n        stringMap: {\n          'type': ['object'],\n          additionalProperties: {\n            'type': 'string'\n          }\n        },\n        stringOrMap: {\n          'type': ['string', 'object'],\n          additionalProperties: {\n            'type': 'string'\n          }\n        },\n        stringList: {\n          'type': ['array'],\n          items: {\n            'type': 'string'\n          }\n        }\n      }\n    }\n  });\n  return ajv;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-errors/index.js?");

/***/ }),

/***/ "./node_modules/ajv-errors/lib/dotjs/errorMessage.js":
/*!***********************************************************!*\
  !*** ./node_modules/ajv-errors/lib/dotjs/errorMessage.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_errorMessage(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n\n  if (it.createErrors !== false) {\n    var INTERPOLATION = /\\$\\{[^\\}]+\\}/;\n    var INTERPOLATION_REPLACE = /\\$\\{([^\\}]+)\\}/g;\n    var EMPTY_STR = /^\\'\\'\\s*\\+\\s*|\\s*\\+\\s*\\'\\'$/g;\n    var $config = it.self.getKeyword($keyword).config,\n        $dataPath = '_em_dataPath' + $lvl,\n        $i = '_em_i' + $lvl,\n        $key = '_em_key' + $lvl,\n        $keyProp = '_em_keyProp' + $lvl,\n        $err = '_em_err' + $lvl,\n        $child = '_em_child' + $lvl,\n        $childKeyword = '_em_childKeyword' + $lvl,\n        $matches = '_em_matches' + $lvl,\n        $isArray = '_em_isArray' + $lvl,\n        $errors = '_em_errors' + $lvl,\n        $message = '_em_message' + $lvl,\n        $paramsErrors = '_em_paramsErrors' + $lvl,\n        $propParam = '_em_propParam' + $lvl,\n        $keywordPropParams = '_em_keywordPropParams' + $lvl,\n        $templates = '_em_templates' + $lvl,\n        $errSchemaPathString = it.util.toQuotedString(it.errSchemaPath);\n    out += ' if (errors > 0) { var ' + $dataPath + ' = (dataPath || \\'\\') + ' + it.errorPath + '; var ' + $i + ', ' + $err + ', ' + $errors + '; ';\n\n    if (typeof $schema == 'object') {\n      var $keywordErrors = {},\n          $keywordPropErrors = {},\n          $childErrors = {\n        properties: {},\n        items: {}\n      },\n          $hasKeywordProps = false,\n          $hasProperties = false,\n          $hasItems = false;\n\n      for (var $k in $schema) {\n        switch ($k) {\n          case 'properties':\n            for (var $prop in $schema.properties) {\n              $hasProperties = true;\n              $childErrors.properties[$prop] = [];\n            }\n\n            break;\n\n          case 'items':\n            for (var $item = 0; $item < $schema.items.length; $item++) {\n              $hasItems = true;\n              $childErrors.items[$item] = [];\n            }\n\n            break;\n\n          default:\n            if (typeof $schema[$k] == 'object') {\n              $hasKeywordProps = true;\n              $keywordPropErrors[$k] = {};\n\n              for (var $prop in $schema[$k]) {\n                $keywordPropErrors[$k][$prop] = [];\n              }\n            } else {\n              $keywordErrors[$k] = [];\n            }\n\n        }\n      }\n\n      var $keywordErrorsArr = Object.keys($keywordErrors);\n\n      if ($keywordErrorsArr.length) {\n        out += ' ' + $i + ' = 0; ' + $errors + ' = ' + JSON.stringify($keywordErrors) + ';  var ' + $templates + ' = { ';\n        var $comma = false;\n        var arr1 = $keywordErrorsArr;\n\n        if (arr1) {\n          var $k,\n              i1 = -1,\n              l1 = arr1.length - 1;\n\n          while (i1 < l1) {\n            $k = arr1[i1 += 1];\n\n            if (INTERPOLATION.test($schema[$k])) {\n              if ($comma) {\n                out += ',';\n              }\n\n              out += '' + it.util.toQuotedString($k) + ': ' + templateFunc($schema[$k]) + ' ';\n              $comma = true;\n            }\n          }\n        }\n\n        out += ' }; while (' + $i + ' < errors) { ' + $err + ' = vErrors[' + $i + ']; if (  ' + $err + '.keyword != \\'' + $keyword + '\\' ';\n\n        if ($config.options.keepErrors) {\n          out += ' && !' + $err + '.emUsed ';\n        }\n\n        out += ' && ' + $err + '.keyword in ' + $errors + ' && ' + $err + '.dataPath == ' + $dataPath + ' && ' + $err + '.schemaPath.indexOf(' + $errSchemaPathString + ') == 0 && /^\\\\/[^\\\\/]*$/.test(' + $err + '.schemaPath.slice(' + it.errSchemaPath.length + '))) { ' + $errors + '[' + $err + '.keyword].push(' + $err + ');  ';\n\n        if ($config.options.keepErrors) {\n          out += ' ' + $err + '.emUsed = true; ';\n        } else {\n          out += ' vErrors.splice(' + $i + ', 1); errors--; ';\n        }\n\n        out += ' } else { ' + $i + '++; } } ';\n\n        if ($config.options.singleError) {\n          out += ' var ' + $message + ' = \\'\\'; var ' + $paramsErrors + ' = []; ';\n        }\n\n        out += ' for (var ' + $key + ' in ' + $errors + ') { if (' + $errors + '[' + $key + '].length) { ';\n\n        if ($config.options.singleError) {\n          out += ' if (' + $message + ') { ' + $message + ' += ';\n\n          if (typeof $config.options.singleError == 'string') {\n            out += ' ' + it.util.toQuotedString($config.options.singleError) + ' ';\n          } else {\n            out += ' \\'; \\' ';\n          }\n\n          out += '; } ' + $message + ' +=   ' + $key + ' in ' + $templates + ' ? ' + $templates + '[' + $key + '] () : validate.schema' + $schemaPath + '[' + $key + ']; ' + $paramsErrors + ' = ' + $paramsErrors + '.concat(' + $errors + '[' + $key + ']); } } ';\n        } else {\n          out += ' var ' + $message + ' =   ' + $key + ' in ' + $templates + ' ? ' + $templates + '[' + $key + '] () : validate.schema' + $schemaPath + '[' + $key + ']; var ' + $paramsErrors + ' = ' + $errors + '[' + $key + ']; ';\n        }\n\n        out += '  var err = { keyword: \\'' + $keyword + '\\' , dataPath: ' + $dataPath + ' , schemaPath: ' + $errSchemaPathString + ' + \\'/' + $keyword + '\\' , params: { errors: ' + $paramsErrors + ' } , message: ' + $message + ' ';\n\n        if (it.opts.verbose) {\n          out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n        }\n\n        out += ' };  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\n        if (!$config.options.singleError) {\n          out += ' } } ';\n        }\n      }\n\n      if ($hasKeywordProps) {\n        out += ' ' + $i + ' = 0; ' + $errors + ' = ' + JSON.stringify($keywordPropErrors) + '; var ' + $paramsErrors + ', ' + $propParam + '; var ' + $keywordPropParams + ' = ' + JSON.stringify($config.KEYWORD_PROPERTY_PARAMS) + ';  var ' + $templates + ' = { ';\n        var $comma = false;\n        var arr2 = Object.keys($keywordPropErrors);\n\n        if (arr2) {\n          var $k,\n              i2 = -1,\n              l2 = arr2.length - 1;\n\n          while (i2 < l2) {\n            $k = arr2[i2 += 1];\n            var $keywordMsgs = $schema[$k];\n\n            if ($comma) {\n              out += ',';\n            }\n\n            out += '' + it.util.toQuotedString($k) + ': { ';\n            $comma = true;\n            var $innerComma = false;\n            var arr3 = Object.keys($keywordMsgs);\n\n            if (arr3) {\n              var $prop,\n                  i3 = -1,\n                  l3 = arr3.length - 1;\n\n              while (i3 < l3) {\n                $prop = arr3[i3 += 1];\n\n                if (INTERPOLATION.test($keywordMsgs[$prop])) {\n                  if ($innerComma) {\n                    out += ',';\n                  }\n\n                  out += '' + it.util.toQuotedString($prop) + ': ' + templateFunc($keywordMsgs[$prop]) + ' ';\n                  $innerComma = true;\n                }\n              }\n            }\n\n            out += ' } ';\n          }\n        }\n\n        out += ' }; while (' + $i + ' < errors) { ' + $err + ' = vErrors[' + $i + ']; if (  ' + $err + '.keyword != \\'' + $keyword + '\\' ';\n\n        if ($config.options.keepErrors) {\n          out += ' && !' + $err + '.emUsed ';\n        }\n\n        out += ' && ' + $err + '.keyword in ' + $errors + ' && ' + $err + '.dataPath == ' + $dataPath + ' && ' + $err + '.schemaPath.indexOf(' + $errSchemaPathString + ') == 0 && /^\\\\/[^\\\\/]*$/.test(' + $err + '.schemaPath.slice(' + it.errSchemaPath.length + '))) { ' + $propParam + ' = ' + $keywordPropParams + '[' + $err + '.keyword]; ' + $paramsErrors + ' = ' + $errors + '[' + $err + '.keyword][' + $err + '.params[' + $propParam + ']]; if (' + $paramsErrors + ') { ' + $paramsErrors + '.push(' + $err + ');  ';\n\n        if ($config.options.keepErrors) {\n          out += ' ' + $err + '.emUsed = true; ';\n        } else {\n          out += ' vErrors.splice(' + $i + ', 1); errors--; ';\n        }\n\n        out += ' } else { ' + $i + '++; } } else { ' + $i + '++; } } for (var ' + $key + ' in ' + $errors + ') { for (var ' + $keyProp + ' in ' + $errors + '[' + $key + ']) { ' + $paramsErrors + ' = ' + $errors + '[' + $key + '][' + $keyProp + ']; if (' + $paramsErrors + '.length) { var ' + $message + ' =   ' + $key + ' in ' + $templates + ' && ' + $keyProp + ' in ' + $templates + '[' + $key + '] ? ' + $templates + '[' + $key + '][' + $keyProp + '] () : validate.schema' + $schemaPath + '[' + $key + '][' + $keyProp + '];  var err = { keyword: \\'' + $keyword + '\\' , dataPath: ' + $dataPath + ' , schemaPath: ' + $errSchemaPathString + ' + \\'/' + $keyword + '\\' , params: { errors: ' + $paramsErrors + ' } , message: ' + $message + ' ';\n\n        if (it.opts.verbose) {\n          out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n        }\n\n        out += ' };  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } } ';\n      }\n\n      if ($hasProperties || $hasItems) {\n        out += ' var ' + $isArray + ' = Array.isArray(' + $data + '); if ';\n\n        if ($hasProperties && $hasItems) {\n          out += ' (typeof ' + $data + ' == \\'object\\') { ';\n          var $childProp = '[' + $childKeyword + ']';\n          out += ' ' + $i + ' = 0; if (' + $isArray + ') { var ' + $childKeyword + ' = \\'items\\'; ' + $errors + ' = ' + JSON.stringify($childErrors.items) + ';    ';\n\n          var _keysArray = Object.keys($childErrors.items);\n\n          out += ' var ' + $templates + ' = { ';\n          var $comma = false;\n          var arr4 = _keysArray;\n\n          if (arr4) {\n            var $k,\n                i4 = -1,\n                l4 = arr4.length - 1;\n\n            while (i4 < l4) {\n              $k = arr4[i4 += 1];\n\n              if (INTERPOLATION.test($schema.items[$k])) {\n                if ($comma) {\n                  out += ',';\n                }\n\n                out += '' + it.util.toQuotedString($k) + ': ' + templateFunc($schema.items[$k]) + ' ';\n                $comma = true;\n              }\n            }\n          }\n\n          out += ' }; } else { var ' + $childKeyword + ' = \\'properties\\'; ' + $errors + ' =  ' + JSON.stringify($childErrors.properties) + ';    ';\n\n          var _keysArray = Object.keys($childErrors.properties);\n\n          out += ' var ' + $templates + ' = { ';\n          var $comma = false;\n          var arr5 = _keysArray;\n\n          if (arr5) {\n            var $k,\n                i5 = -1,\n                l5 = arr5.length - 1;\n\n            while (i5 < l5) {\n              $k = arr5[i5 += 1];\n\n              if (INTERPOLATION.test($schema.properties[$k])) {\n                if ($comma) {\n                  out += ',';\n                }\n\n                out += '' + it.util.toQuotedString($k) + ': ' + templateFunc($schema.properties[$k]) + ' ';\n                $comma = true;\n              }\n            }\n          }\n\n          out += ' }; } ';\n        } else if ($hasProperties) {\n          out += ' (typeof ' + $data + ' == \\'object\\' && !' + $isArray + ') { ';\n          var $childProp = '.properties';\n          out += ' ' + $i + ' = 0; ' + $errors + ' = ' + JSON.stringify($childErrors.properties) + ';  ';\n\n          var _keysArray = Object.keys($childErrors.properties);\n\n          out += ' var ' + $templates + ' = { ';\n          var $comma = false;\n          var arr6 = _keysArray;\n\n          if (arr6) {\n            var $k,\n                i6 = -1,\n                l6 = arr6.length - 1;\n\n            while (i6 < l6) {\n              $k = arr6[i6 += 1];\n\n              if (INTERPOLATION.test($schema.properties[$k])) {\n                if ($comma) {\n                  out += ',';\n                }\n\n                out += '' + it.util.toQuotedString($k) + ': ' + templateFunc($schema.properties[$k]) + ' ';\n                $comma = true;\n              }\n            }\n          }\n\n          out += ' }; ';\n        } else {\n          out += ' (' + $isArray + ') { ';\n          var $childProp = '.items';\n          out += ' ' + $i + ' = 0; ' + $errors + ' = ' + JSON.stringify($childErrors.items) + ';  ';\n\n          var _keysArray = Object.keys($childErrors.items);\n\n          out += ' var ' + $templates + ' = { ';\n          var $comma = false;\n          var arr7 = _keysArray;\n\n          if (arr7) {\n            var $k,\n                i7 = -1,\n                l7 = arr7.length - 1;\n\n            while (i7 < l7) {\n              $k = arr7[i7 += 1];\n\n              if (INTERPOLATION.test($schema.items[$k])) {\n                if ($comma) {\n                  out += ',';\n                }\n\n                out += '' + it.util.toQuotedString($k) + ': ' + templateFunc($schema.items[$k]) + ' ';\n                $comma = true;\n              }\n            }\n          }\n\n          out += ' }; ';\n        }\n\n        out += ' var ' + $child + ', ' + $matches + '; while (' + $i + ' < errors) { ' + $err + ' = vErrors[' + $i + ']; if (  ' + $err + '.keyword != \\'' + $keyword + '\\' ';\n\n        if ($config.options.keepErrors) {\n          out += ' && !' + $err + '.emUsed ';\n        }\n\n        out += ' && ' + $err + '.dataPath.indexOf(' + $dataPath + ') == 0 && (' + $matches + ' = ' + $err + '.dataPath.slice(' + $dataPath + '.length).match(/^\\\\/([^\\\\/]*)(?:\\\\/|$)/), ' + $child + ' = ' + $matches + ' && ' + $matches + '[1].replace(/~1/g, \\'/\\').replace(/~0/g, \\'~\\') ) !== undefined && ' + $child + ' in ' + $errors + ') { ' + $errors + '[' + $child + '].push(' + $err + ');  ';\n\n        if ($config.options.keepErrors) {\n          out += ' ' + $err + '.emUsed = true; ';\n        } else {\n          out += ' vErrors.splice(' + $i + ', 1); errors--; ';\n        }\n\n        out += ' } else { ' + $i + '++; } } for (var ' + $key + ' in ' + $errors + ') { if (' + $errors + '[' + $key + '].length) { var err = { keyword: \\'' + $keyword + '\\' , dataPath: ' + $dataPath + ' + \\'/\\' + ' + $key + '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\') , schemaPath: ' + $errSchemaPathString + ' + \\'/' + $keyword + '\\' , params: { errors: ' + $errors + '[' + $key + '] } , message: ' + $key + ' in ' + $templates + ' ? ' + $templates + '[' + $key + '] () : validate.schema' + $schemaPath + $childProp + '[' + $key + '] ';\n\n        if (it.opts.verbose) {\n          out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n        }\n\n        out += ' };  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } }  }  ';\n      }\n    }\n\n    var $schemaMessage = typeof $schema == 'string' ? $schema : $schema._;\n\n    if ($schemaMessage) {\n      out += ' ' + $i + ' = 0; ' + $errors + ' = []; while (' + $i + ' < errors) { ' + $err + ' = vErrors[' + $i + ']; if (  ' + $err + '.keyword != \\'' + $keyword + '\\' ';\n\n      if ($config.options.keepErrors) {\n        out += ' && !' + $err + '.emUsed ';\n      }\n\n      out += ' && (' + $err + '.dataPath == ' + $dataPath + ' || (' + $err + '.dataPath.indexOf(' + $dataPath + ') == 0 && ' + $err + '.dataPath[' + $dataPath + '.length] == \\'/\\')) && ' + $err + '.schemaPath.indexOf(' + $errSchemaPathString + ') == 0 && ' + $err + '.schemaPath[' + it.errSchemaPath.length + '] == \\'/\\') { ' + $errors + '.push(' + $err + ');  ';\n\n      if ($config.options.keepErrors) {\n        out += ' ' + $err + '.emUsed = true; ';\n      } else {\n        out += ' vErrors.splice(' + $i + ', 1); errors--; ';\n      }\n\n      out += ' } else { ' + $i + '++; } } if (' + $errors + '.length) { var err = { keyword: \\'' + $keyword + '\\' , dataPath: ' + $dataPath + ' , schemaPath: ' + $errSchemaPathString + ' + \\'/' + $keyword + '\\' , params: { errors: ' + $errors + ' } , message: ' + templateExpr($schemaMessage) + ' ';\n\n      if (it.opts.verbose) {\n        out += ' , schema: ' + it.util.toQuotedString($schemaMessage) + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n      }\n\n      out += ' };  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n    }\n\n    out += ' }';\n  }\n\n  function templateExpr(str) {\n    str = it.util.escapeQuotes(str);\n    if (!INTERPOLATION.test(str)) return \"'\" + str + \"'\";\n    var expr = \"'\" + str.replace(INTERPOLATION_REPLACE, function ($0, $1) {\n      return \"' + JSON.stringify(\" + it.util.getData($1, $dataLvl, it.dataPathArr) + \") + '\";\n    }) + \"'\";\n    return expr.replace(EMPTY_STR, '');\n  }\n\n  function templateFunc(str) {\n    return 'function() { return ' + templateExpr(str) + '; }';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-errors/lib/dotjs/errorMessage.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/index.js":
/*!********************************************!*\
  !*** ./node_modules/ajv-keywords/index.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar KEYWORDS = __webpack_require__(/*! ./keywords */ \"./node_modules/ajv-keywords/keywords/index.js\");\n\nmodule.exports = defineKeywords;\n/**\n * Defines one or several keywords in ajv instance\n * @param  {Ajv} ajv validator instance\n * @param  {String|Array<String>|undefined} keyword keyword(s) to define\n * @return {Ajv} ajv instance (for chaining)\n */\n\nfunction defineKeywords(ajv, keyword) {\n  if (Array.isArray(keyword)) {\n    for (var i = 0; i < keyword.length; i++) get(keyword[i])(ajv);\n\n    return ajv;\n  }\n\n  if (keyword) {\n    get(keyword)(ajv);\n    return ajv;\n  }\n\n  for (keyword in KEYWORDS) get(keyword)(ajv);\n\n  return ajv;\n}\n\ndefineKeywords.get = get;\n\nfunction get(keyword) {\n  var defFunc = KEYWORDS[keyword];\n  if (!defFunc) throw new Error('Unknown keyword ' + keyword);\n  return defFunc;\n}\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/index.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/_formatLimit.js":
/*!************************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/_formatLimit.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d:\\d\\d)?$/i;\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nvar COMPARE_FORMATS = {\n  date: compareDate,\n  time: compareTime,\n  'date-time': compareDateTime\n};\nvar $dataMetaSchema = {\n  type: 'object',\n  required: ['$data'],\n  properties: {\n    $data: {\n      type: 'string',\n      anyOf: [{\n        format: 'relative-json-pointer'\n      }, {\n        format: 'json-pointer'\n      }]\n    }\n  },\n  additionalProperties: false\n};\n\nmodule.exports = function (minMax) {\n  var keyword = 'format' + minMax;\n  return function defFunc(ajv) {\n    defFunc.definition = {\n      type: 'string',\n      inline: __webpack_require__(/*! ./dotjs/_formatLimit */ \"./node_modules/ajv-keywords/keywords/dotjs/_formatLimit.js\"),\n      statements: true,\n      errors: 'full',\n      dependencies: ['format'],\n      metaSchema: {\n        anyOf: [{\n          type: 'string'\n        }, $dataMetaSchema]\n      }\n    };\n    ajv.addKeyword(keyword, defFunc.definition);\n    ajv.addKeyword('formatExclusive' + minMax, {\n      dependencies: ['format' + minMax],\n      metaSchema: {\n        anyOf: [{\n          type: 'boolean'\n        }, $dataMetaSchema]\n      }\n    });\n    extendFormats(ajv);\n    return ajv;\n  };\n};\n\nfunction extendFormats(ajv) {\n  var formats = ajv._formats;\n\n  for (var name in COMPARE_FORMATS) {\n    var format = formats[name]; // the last condition is needed if it's RegExp from another window\n\n    if (typeof format != 'object' || format instanceof RegExp || !format.validate) format = formats[name] = {\n      validate: format\n    };\n    if (!format.compare) format.compare = COMPARE_FORMATS[name];\n  }\n}\n\nfunction compareDate(d1, d2) {\n  if (!(d1 && d2)) return;\n  if (d1 > d2) return 1;\n  if (d1 < d2) return -1;\n  if (d1 === d2) return 0;\n}\n\nfunction compareTime(t1, t2) {\n  if (!(t1 && t2)) return;\n  t1 = t1.match(TIME);\n  t2 = t2.match(TIME);\n  if (!(t1 && t2)) return;\n  t1 = t1[1] + t1[2] + t1[3] + (t1[4] || '');\n  t2 = t2[1] + t2[2] + t2[3] + (t2[4] || '');\n  if (t1 > t2) return 1;\n  if (t1 < t2) return -1;\n  if (t1 === t2) return 0;\n}\n\nfunction compareDateTime(dt1, dt2) {\n  if (!(dt1 && dt2)) return;\n  dt1 = dt1.split(DATE_TIME_SEPARATOR);\n  dt2 = dt2.split(DATE_TIME_SEPARATOR);\n  var res = compareDate(dt1[0], dt2[0]);\n  if (res === undefined) return;\n  return res || compareTime(dt1[1], dt2[1]);\n}\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/_formatLimit.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/_util.js":
/*!*****************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/_util.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = {\n  metaSchemaRef: metaSchemaRef\n};\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nfunction metaSchemaRef(ajv) {\n  var defaultMeta = ajv._opts.defaultMeta;\n  if (typeof defaultMeta == 'string') return {\n    $ref: defaultMeta\n  };\n  if (ajv.getSchema(META_SCHEMA_ID)) return {\n    $ref: META_SCHEMA_ID\n  };\n  console.warn('meta schema not defined');\n  return {};\n}\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/_util.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/allRequired.js":
/*!***********************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/allRequired.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function defFunc(ajv) {\n  defFunc.definition = {\n    type: 'object',\n    macro: function (schema, parentSchema) {\n      if (!schema) return true;\n      var properties = Object.keys(parentSchema.properties);\n      if (properties.length == 0) return true;\n      return {\n        required: properties\n      };\n    },\n    metaSchema: {\n      type: 'boolean'\n    },\n    dependencies: ['properties']\n  };\n  ajv.addKeyword('allRequired', defFunc.definition);\n  return ajv;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/allRequired.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/anyRequired.js":
/*!***********************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/anyRequired.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function defFunc(ajv) {\n  defFunc.definition = {\n    type: 'object',\n    macro: function (schema) {\n      if (schema.length == 0) return true;\n      if (schema.length == 1) return {\n        required: schema\n      };\n      var schemas = schema.map(function (prop) {\n        return {\n          required: [prop]\n        };\n      });\n      return {\n        anyOf: schemas\n      };\n    },\n    metaSchema: {\n      type: 'array',\n      items: {\n        type: 'string'\n      }\n    }\n  };\n  ajv.addKeyword('anyRequired', defFunc.definition);\n  return ajv;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/anyRequired.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/deepProperties.js":
/*!**************************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/deepProperties.js ***!
  \**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar util = __webpack_require__(/*! ./_util */ \"./node_modules/ajv-keywords/keywords/_util.js\");\n\nmodule.exports = function defFunc(ajv) {\n  defFunc.definition = {\n    type: 'object',\n    macro: function (schema) {\n      var schemas = [];\n\n      for (var pointer in schema) schemas.push(getSchema(pointer, schema[pointer]));\n\n      return {\n        'allOf': schemas\n      };\n    },\n    metaSchema: {\n      type: 'object',\n      propertyNames: {\n        type: 'string',\n        format: 'json-pointer'\n      },\n      additionalProperties: util.metaSchemaRef(ajv)\n    }\n  };\n  ajv.addKeyword('deepProperties', defFunc.definition);\n  return ajv;\n};\n\nfunction getSchema(jsonPointer, schema) {\n  var segments = jsonPointer.split('/');\n  var rootSchema = {};\n  var pointerSchema = rootSchema;\n\n  for (var i = 1; i < segments.length; i++) {\n    var segment = segments[i];\n    var isLast = i == segments.length - 1;\n    segment = unescapeJsonPointer(segment);\n    var properties = pointerSchema.properties = {};\n    var items = undefined;\n\n    if (/[0-9]+/.test(segment)) {\n      var count = +segment;\n      items = pointerSchema.items = [];\n\n      while (count--) items.push({});\n    }\n\n    pointerSchema = isLast ? schema : {};\n    properties[segment] = pointerSchema;\n    if (items) items.push(pointerSchema);\n  }\n\n  return rootSchema;\n}\n\nfunction unescapeJsonPointer(str) {\n  return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/deepProperties.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/deepRequired.js":
/*!************************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/deepRequired.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function defFunc(ajv) {\n  defFunc.definition = {\n    type: 'object',\n    inline: function (it, keyword, schema) {\n      var expr = '';\n\n      for (var i = 0; i < schema.length; i++) {\n        if (i) expr += ' && ';\n        expr += '(' + getData(schema[i], it.dataLevel) + ' !== undefined)';\n      }\n\n      return expr;\n    },\n    metaSchema: {\n      type: 'array',\n      items: {\n        type: 'string',\n        format: 'json-pointer'\n      }\n    }\n  };\n  ajv.addKeyword('deepRequired', defFunc.definition);\n  return ajv;\n};\n\nfunction getData(jsonPointer, lvl) {\n  var data = 'data' + (lvl || '');\n  if (!jsonPointer) return data;\n  var expr = data;\n  var segments = jsonPointer.split('/');\n\n  for (var i = 1; i < segments.length; i++) {\n    var segment = segments[i];\n    data += getProperty(unescapeJsonPointer(segment));\n    expr += ' && ' + data;\n  }\n\n  return expr;\n}\n\nvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nvar INTEGER = /^[0-9]+$/;\nvar SINGLE_QUOTE = /'|\\\\/g;\n\nfunction getProperty(key) {\n  return INTEGER.test(key) ? '[' + key + ']' : IDENTIFIER.test(key) ? '.' + key : \"['\" + key.replace(SINGLE_QUOTE, '\\\\$&') + \"']\";\n}\n\nfunction unescapeJsonPointer(str) {\n  return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/deepRequired.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/dotjs/_formatLimit.js":
/*!******************************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/dotjs/_formatLimit.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate__formatLimit(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $errorKeyword;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  out += 'var ' + $valid + ' = undefined;';\n\n  if (it.opts.format === false) {\n    out += ' ' + $valid + ' = true; ';\n    return out;\n  }\n\n  var $schemaFormat = it.schema.format,\n      $isDataFormat = it.opts.$data && $schemaFormat.$data,\n      $closingBraces = '';\n\n  if ($isDataFormat) {\n    var $schemaValueFormat = it.util.getData($schemaFormat.$data, $dataLvl, it.dataPathArr),\n        $format = 'format' + $lvl,\n        $compare = 'compare' + $lvl;\n    out += ' var ' + $format + ' = formats[' + $schemaValueFormat + '] , ' + $compare + ' = ' + $format + ' && ' + $format + '.compare;';\n  } else {\n    var $format = it.formats[$schemaFormat];\n\n    if (!($format && $format.compare)) {\n      out += '  ' + $valid + ' = true; ';\n      return out;\n    }\n\n    var $compare = 'formats' + it.util.getProperty($schemaFormat) + '.compare';\n  }\n\n  var $isMax = $keyword == 'formatMaximum',\n      $exclusiveKeyword = 'formatExclusive' + ($isMax ? 'Maximum' : 'Minimum'),\n      $schemaExcl = it.schema[$exclusiveKeyword],\n      $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n      $op = $isMax ? '<' : '>',\n      $result = 'result' + $lvl;\n  var $isData = it.opts.$data && $schema && $schema.$data,\n      $schemaValue;\n\n  if ($isData) {\n    out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n    $schemaValue = 'schema' + $lvl;\n  } else {\n    $schemaValue = $schema;\n  }\n\n  if ($isDataExcl) {\n    var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n        $exclusive = 'exclusive' + $lvl,\n        $opExpr = 'op' + $lvl,\n        $opStr = '\\' + ' + $opExpr + ' + \\'';\n    out += ' var schemaExcl' + $lvl + ' = ' + $schemaValueExcl + '; ';\n    $schemaValueExcl = 'schemaExcl' + $lvl;\n    out += ' if (typeof ' + $schemaValueExcl + ' != \\'boolean\\' && ' + $schemaValueExcl + ' !== undefined) { ' + $valid + ' = false; ';\n    var $errorKeyword = $exclusiveKeyword;\n    var $$outStack = $$outStack || [];\n    $$outStack.push(out);\n    out = '';\n    /* istanbul ignore else */\n\n    if (it.createErrors !== false) {\n      out += ' { keyword: \\'' + ($errorKeyword || '_formatExclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: {} ';\n\n      if (it.opts.messages !== false) {\n        out += ' , message: \\'' + $exclusiveKeyword + ' should be boolean\\' ';\n      }\n\n      if (it.opts.verbose) {\n        out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n      }\n\n      out += ' } ';\n    } else {\n      out += ' {} ';\n    }\n\n    var __err = out;\n    out = $$outStack.pop();\n\n    if (!it.compositeRule && $breakOnError) {\n      /* istanbul ignore if */\n      if (it.async) {\n        out += ' throw new ValidationError([' + __err + ']); ';\n      } else {\n        out += ' validate.errors = [' + __err + ']; return false; ';\n      }\n    } else {\n      out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n    }\n\n    out += ' }  ';\n\n    if ($breakOnError) {\n      $closingBraces += '}';\n      out += ' else { ';\n    }\n\n    if ($isData) {\n      out += ' if (' + $schemaValue + ' === undefined) ' + $valid + ' = true; else if (typeof ' + $schemaValue + ' != \\'string\\') ' + $valid + ' = false; else { ';\n      $closingBraces += '}';\n    }\n\n    if ($isDataFormat) {\n      out += ' if (!' + $compare + ') ' + $valid + ' = true; else { ';\n      $closingBraces += '}';\n    }\n\n    out += ' var ' + $result + ' = ' + $compare + '(' + $data + ',  ';\n\n    if ($isData) {\n      out += '' + $schemaValue;\n    } else {\n      out += '' + it.util.toQuotedString($schema);\n    }\n\n    out += ' ); if (' + $result + ' === undefined) ' + $valid + ' = false; var ' + $exclusive + ' = ' + $schemaValueExcl + ' === true; if (' + $valid + ' === undefined) { ' + $valid + ' = ' + $exclusive + ' ? ' + $result + ' ' + $op + ' 0 : ' + $result + ' ' + $op + '= 0; } if (!' + $valid + ') var op' + $lvl + ' = ' + $exclusive + ' ? \\'' + $op + '\\' : \\'' + $op + '=\\';';\n  } else {\n    var $exclusive = $schemaExcl === true,\n        $opStr = $op;\n    if (!$exclusive) $opStr += '=';\n    var $opExpr = '\\'' + $opStr + '\\'';\n\n    if ($isData) {\n      out += ' if (' + $schemaValue + ' === undefined) ' + $valid + ' = true; else if (typeof ' + $schemaValue + ' != \\'string\\') ' + $valid + ' = false; else { ';\n      $closingBraces += '}';\n    }\n\n    if ($isDataFormat) {\n      out += ' if (!' + $compare + ') ' + $valid + ' = true; else { ';\n      $closingBraces += '}';\n    }\n\n    out += ' var ' + $result + ' = ' + $compare + '(' + $data + ',  ';\n\n    if ($isData) {\n      out += '' + $schemaValue;\n    } else {\n      out += '' + it.util.toQuotedString($schema);\n    }\n\n    out += ' ); if (' + $result + ' === undefined) ' + $valid + ' = false; if (' + $valid + ' === undefined) ' + $valid + ' = ' + $result + ' ' + $op;\n\n    if (!$exclusive) {\n      out += '=';\n    }\n\n    out += ' 0;';\n  }\n\n  out += '' + $closingBraces + 'if (!' + $valid + ') { ';\n  var $errorKeyword = $keyword;\n  var $$outStack = $$outStack || [];\n  $$outStack.push(out);\n  out = '';\n  /* istanbul ignore else */\n\n  if (it.createErrors !== false) {\n    out += ' { keyword: \\'' + ($errorKeyword || '_formatLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { comparison: ' + $opExpr + ', limit:  ';\n\n    if ($isData) {\n      out += '' + $schemaValue;\n    } else {\n      out += '' + it.util.toQuotedString($schema);\n    }\n\n    out += ' , exclusive: ' + $exclusive + ' } ';\n\n    if (it.opts.messages !== false) {\n      out += ' , message: \\'should be ' + $opStr + ' \"';\n\n      if ($isData) {\n        out += '\\' + ' + $schemaValue + ' + \\'';\n      } else {\n        out += '' + it.util.escapeQuotes($schema);\n      }\n\n      out += '\"\\' ';\n    }\n\n    if (it.opts.verbose) {\n      out += ' , schema:  ';\n\n      if ($isData) {\n        out += 'validate.schema' + $schemaPath;\n      } else {\n        out += '' + it.util.toQuotedString($schema);\n      }\n\n      out += '         , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n    }\n\n    out += ' } ';\n  } else {\n    out += ' {} ';\n  }\n\n  var __err = out;\n  out = $$outStack.pop();\n\n  if (!it.compositeRule && $breakOnError) {\n    /* istanbul ignore if */\n    if (it.async) {\n      out += ' throw new ValidationError([' + __err + ']); ';\n    } else {\n      out += ' validate.errors = [' + __err + ']; return false; ';\n    }\n  } else {\n    out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n  }\n\n  out += '}';\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/dotjs/_formatLimit.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/dotjs/patternRequired.js":
/*!*********************************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/dotjs/patternRequired.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_patternRequired(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  var $key = 'key' + $lvl,\n      $idx = 'idx' + $lvl,\n      $matched = 'patternMatched' + $lvl,\n      $dataProperties = 'dataProperties' + $lvl,\n      $closingBraces = '',\n      $ownProperties = it.opts.ownProperties;\n  out += 'var ' + $valid + ' = true;';\n\n  if ($ownProperties) {\n    out += ' var ' + $dataProperties + ' = undefined;';\n  }\n\n  var arr1 = $schema;\n\n  if (arr1) {\n    var $pProperty,\n        i1 = -1,\n        l1 = arr1.length - 1;\n\n    while (i1 < l1) {\n      $pProperty = arr1[i1 += 1];\n      out += ' var ' + $matched + ' = false;  ';\n\n      if ($ownProperties) {\n        out += ' ' + $dataProperties + ' = ' + $dataProperties + ' || Object.keys(' + $data + '); for (var ' + $idx + '=0; ' + $idx + '<' + $dataProperties + '.length; ' + $idx + '++) { var ' + $key + ' = ' + $dataProperties + '[' + $idx + ']; ';\n      } else {\n        out += ' for (var ' + $key + ' in ' + $data + ') { ';\n      }\n\n      out += ' ' + $matched + ' = ' + it.usePattern($pProperty) + '.test(' + $key + '); if (' + $matched + ') break; } ';\n      var $missingPattern = it.util.escapeQuotes($pProperty);\n      out += ' if (!' + $matched + ') { ' + $valid + ' = false;  var err =   ';\n      /* istanbul ignore else */\n\n      if (it.createErrors !== false) {\n        out += ' { keyword: \\'' + 'patternRequired' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { missingPattern: \\'' + $missingPattern + '\\' } ';\n\n        if (it.opts.messages !== false) {\n          out += ' , message: \\'should have property matching pattern \\\\\\'' + $missingPattern + '\\\\\\'\\' ';\n        }\n\n        if (it.opts.verbose) {\n          out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n        }\n\n        out += ' } ';\n      } else {\n        out += ' {} ';\n      }\n\n      out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; }   ';\n\n      if ($breakOnError) {\n        $closingBraces += '}';\n        out += ' else { ';\n      }\n    }\n  }\n\n  out += '' + $closingBraces;\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/dotjs/patternRequired.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/dotjs/switch.js":
/*!************************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/dotjs/switch.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_switch(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  var $errs = 'errs__' + $lvl;\n  var $it = it.util.copy(it);\n  var $closingBraces = '';\n  $it.level++;\n  var $nextValid = 'valid' + $it.level;\n  var $ifPassed = 'ifPassed' + it.level,\n      $currentBaseId = $it.baseId,\n      $shouldContinue;\n  out += 'var ' + $ifPassed + ';';\n  var arr1 = $schema;\n\n  if (arr1) {\n    var $sch,\n        $caseIndex = -1,\n        l1 = arr1.length - 1;\n\n    while ($caseIndex < l1) {\n      $sch = arr1[$caseIndex += 1];\n\n      if ($caseIndex && !$shouldContinue) {\n        out += ' if (!' + $ifPassed + ') { ';\n        $closingBraces += '}';\n      }\n\n      if ($sch.if && (it.opts.strictKeywords ? typeof $sch.if == 'object' && Object.keys($sch.if).length > 0 : it.util.schemaHasRules($sch.if, it.RULES.all))) {\n        out += ' var ' + $errs + ' = errors;   ';\n        var $wasComposite = it.compositeRule;\n        it.compositeRule = $it.compositeRule = true;\n        $it.createErrors = false;\n        $it.schema = $sch.if;\n        $it.schemaPath = $schemaPath + '[' + $caseIndex + '].if';\n        $it.errSchemaPath = $errSchemaPath + '/' + $caseIndex + '/if';\n        out += '  ' + it.validate($it) + ' ';\n        $it.baseId = $currentBaseId;\n        $it.createErrors = true;\n        it.compositeRule = $it.compositeRule = $wasComposite;\n        out += ' ' + $ifPassed + ' = ' + $nextValid + '; if (' + $ifPassed + ') {  ';\n\n        if (typeof $sch.then == 'boolean') {\n          if ($sch.then === false) {\n            var $$outStack = $$outStack || [];\n            $$outStack.push(out);\n            out = '';\n            /* istanbul ignore else */\n\n            if (it.createErrors !== false) {\n              out += ' { keyword: \\'' + 'switch' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { caseIndex: ' + $caseIndex + ' } ';\n\n              if (it.opts.messages !== false) {\n                out += ' , message: \\'should pass \"switch\" keyword validation\\' ';\n              }\n\n              if (it.opts.verbose) {\n                out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n              }\n\n              out += ' } ';\n            } else {\n              out += ' {} ';\n            }\n\n            var __err = out;\n            out = $$outStack.pop();\n\n            if (!it.compositeRule && $breakOnError) {\n              /* istanbul ignore if */\n              if (it.async) {\n                out += ' throw new ValidationError([' + __err + ']); ';\n              } else {\n                out += ' validate.errors = [' + __err + ']; return false; ';\n              }\n            } else {\n              out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n            }\n          }\n\n          out += ' var ' + $nextValid + ' = ' + $sch.then + '; ';\n        } else {\n          $it.schema = $sch.then;\n          $it.schemaPath = $schemaPath + '[' + $caseIndex + '].then';\n          $it.errSchemaPath = $errSchemaPath + '/' + $caseIndex + '/then';\n          out += '  ' + it.validate($it) + ' ';\n          $it.baseId = $currentBaseId;\n        }\n\n        out += '  } else {  errors = ' + $errs + '; if (vErrors !== null) { if (' + $errs + ') vErrors.length = ' + $errs + '; else vErrors = null; } } ';\n      } else {\n        out += ' ' + $ifPassed + ' = true;  ';\n\n        if (typeof $sch.then == 'boolean') {\n          if ($sch.then === false) {\n            var $$outStack = $$outStack || [];\n            $$outStack.push(out);\n            out = '';\n            /* istanbul ignore else */\n\n            if (it.createErrors !== false) {\n              out += ' { keyword: \\'' + 'switch' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { caseIndex: ' + $caseIndex + ' } ';\n\n              if (it.opts.messages !== false) {\n                out += ' , message: \\'should pass \"switch\" keyword validation\\' ';\n              }\n\n              if (it.opts.verbose) {\n                out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n              }\n\n              out += ' } ';\n            } else {\n              out += ' {} ';\n            }\n\n            var __err = out;\n            out = $$outStack.pop();\n\n            if (!it.compositeRule && $breakOnError) {\n              /* istanbul ignore if */\n              if (it.async) {\n                out += ' throw new ValidationError([' + __err + ']); ';\n              } else {\n                out += ' validate.errors = [' + __err + ']; return false; ';\n              }\n            } else {\n              out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n            }\n          }\n\n          out += ' var ' + $nextValid + ' = ' + $sch.then + '; ';\n        } else {\n          $it.schema = $sch.then;\n          $it.schemaPath = $schemaPath + '[' + $caseIndex + '].then';\n          $it.errSchemaPath = $errSchemaPath + '/' + $caseIndex + '/then';\n          out += '  ' + it.validate($it) + ' ';\n          $it.baseId = $currentBaseId;\n        }\n      }\n\n      $shouldContinue = $sch.continue;\n    }\n  }\n\n  out += '' + $closingBraces + 'var ' + $valid + ' = ' + $nextValid + ';';\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/dotjs/switch.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/dynamicDefaults.js":
/*!***************************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/dynamicDefaults.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar sequences = {};\nvar DEFAULTS = {\n  timestamp: function () {\n    return Date.now();\n  },\n  datetime: function () {\n    return new Date().toISOString();\n  },\n  date: function () {\n    return new Date().toISOString().slice(0, 10);\n  },\n  time: function () {\n    return new Date().toISOString().slice(11);\n  },\n  random: function () {\n    return Math.random();\n  },\n  randomint: function (args) {\n    var limit = args && args.max || 2;\n    return function () {\n      return Math.floor(Math.random() * limit);\n    };\n  },\n  seq: function (args) {\n    var name = args && args.name || '';\n    sequences[name] = sequences[name] || 0;\n    return function () {\n      return sequences[name]++;\n    };\n  }\n};\n\nmodule.exports = function defFunc(ajv) {\n  defFunc.definition = {\n    compile: function (schema, parentSchema, it) {\n      var funcs = {};\n\n      for (var key in schema) {\n        var d = schema[key];\n        var func = getDefault(typeof d == 'string' ? d : d.func);\n        funcs[key] = func.length ? func(d.args) : func;\n      }\n\n      return it.opts.useDefaults && !it.compositeRule ? assignDefaults : noop;\n\n      function assignDefaults(data) {\n        for (var prop in schema) {\n          if (data[prop] === undefined || it.opts.useDefaults == 'empty' && (data[prop] === null || data[prop] === '')) data[prop] = funcs[prop]();\n        }\n\n        return true;\n      }\n\n      function noop() {\n        return true;\n      }\n    },\n    DEFAULTS: DEFAULTS,\n    metaSchema: {\n      type: 'object',\n      additionalProperties: {\n        type: ['string', 'object'],\n        additionalProperties: false,\n        required: ['func', 'args'],\n        properties: {\n          func: {\n            type: 'string'\n          },\n          args: {\n            type: 'object'\n          }\n        }\n      }\n    }\n  };\n  ajv.addKeyword('dynamicDefaults', defFunc.definition);\n  return ajv;\n\n  function getDefault(d) {\n    var def = DEFAULTS[d];\n    if (def) return def;\n    throw new Error('invalid \"dynamicDefaults\" keyword property value: ' + d);\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/dynamicDefaults.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/formatMaximum.js":
/*!*************************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/formatMaximum.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = __webpack_require__(/*! ./_formatLimit */ \"./node_modules/ajv-keywords/keywords/_formatLimit.js\")('Maximum');\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/formatMaximum.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/formatMinimum.js":
/*!*************************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/formatMinimum.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = __webpack_require__(/*! ./_formatLimit */ \"./node_modules/ajv-keywords/keywords/_formatLimit.js\")('Minimum');\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/formatMinimum.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/index.js":
/*!*****************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/index.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = {\n  'instanceof': __webpack_require__(/*! ./instanceof */ \"./node_modules/ajv-keywords/keywords/instanceof.js\"),\n  range: __webpack_require__(/*! ./range */ \"./node_modules/ajv-keywords/keywords/range.js\"),\n  regexp: __webpack_require__(/*! ./regexp */ \"./node_modules/ajv-keywords/keywords/regexp.js\"),\n  'typeof': __webpack_require__(/*! ./typeof */ \"./node_modules/ajv-keywords/keywords/typeof.js\"),\n  dynamicDefaults: __webpack_require__(/*! ./dynamicDefaults */ \"./node_modules/ajv-keywords/keywords/dynamicDefaults.js\"),\n  allRequired: __webpack_require__(/*! ./allRequired */ \"./node_modules/ajv-keywords/keywords/allRequired.js\"),\n  anyRequired: __webpack_require__(/*! ./anyRequired */ \"./node_modules/ajv-keywords/keywords/anyRequired.js\"),\n  oneRequired: __webpack_require__(/*! ./oneRequired */ \"./node_modules/ajv-keywords/keywords/oneRequired.js\"),\n  prohibited: __webpack_require__(/*! ./prohibited */ \"./node_modules/ajv-keywords/keywords/prohibited.js\"),\n  uniqueItemProperties: __webpack_require__(/*! ./uniqueItemProperties */ \"./node_modules/ajv-keywords/keywords/uniqueItemProperties.js\"),\n  deepProperties: __webpack_require__(/*! ./deepProperties */ \"./node_modules/ajv-keywords/keywords/deepProperties.js\"),\n  deepRequired: __webpack_require__(/*! ./deepRequired */ \"./node_modules/ajv-keywords/keywords/deepRequired.js\"),\n  formatMinimum: __webpack_require__(/*! ./formatMinimum */ \"./node_modules/ajv-keywords/keywords/formatMinimum.js\"),\n  formatMaximum: __webpack_require__(/*! ./formatMaximum */ \"./node_modules/ajv-keywords/keywords/formatMaximum.js\"),\n  patternRequired: __webpack_require__(/*! ./patternRequired */ \"./node_modules/ajv-keywords/keywords/patternRequired.js\"),\n  'switch': __webpack_require__(/*! ./switch */ \"./node_modules/ajv-keywords/keywords/switch.js\"),\n  select: __webpack_require__(/*! ./select */ \"./node_modules/ajv-keywords/keywords/select.js\"),\n  transform: __webpack_require__(/*! ./transform */ \"./node_modules/ajv-keywords/keywords/transform.js\")\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/index.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/instanceof.js":
/*!**********************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/instanceof.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nvar CONSTRUCTORS = {\n  Object: Object,\n  Array: Array,\n  Function: Function,\n  Number: Number,\n  String: String,\n  Date: Date,\n  RegExp: RegExp\n};\n\nmodule.exports = function defFunc(ajv) {\n  /* istanbul ignore else */\n  if (typeof Buffer != 'undefined') CONSTRUCTORS.Buffer = Buffer;\n  /* istanbul ignore else */\n\n  if (typeof Promise != 'undefined') CONSTRUCTORS.Promise = Promise;\n  defFunc.definition = {\n    compile: function (schema) {\n      if (typeof schema == 'string') {\n        var Constructor = getConstructor(schema);\n        return function (data) {\n          return data instanceof Constructor;\n        };\n      }\n\n      var constructors = schema.map(getConstructor);\n      return function (data) {\n        for (var i = 0; i < constructors.length; i++) if (data instanceof constructors[i]) return true;\n\n        return false;\n      };\n    },\n    CONSTRUCTORS: CONSTRUCTORS,\n    metaSchema: {\n      anyOf: [{\n        type: 'string'\n      }, {\n        type: 'array',\n        items: {\n          type: 'string'\n        }\n      }]\n    }\n  };\n  ajv.addKeyword('instanceof', defFunc.definition);\n  return ajv;\n\n  function getConstructor(c) {\n    var Constructor = CONSTRUCTORS[c];\n    if (Constructor) return Constructor;\n    throw new Error('invalid \"instanceof\" keyword value ' + c);\n  }\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/instanceof.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/oneRequired.js":
/*!***********************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/oneRequired.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function defFunc(ajv) {\n  defFunc.definition = {\n    type: 'object',\n    macro: function (schema) {\n      if (schema.length == 0) return true;\n      if (schema.length == 1) return {\n        required: schema\n      };\n      var schemas = schema.map(function (prop) {\n        return {\n          required: [prop]\n        };\n      });\n      return {\n        oneOf: schemas\n      };\n    },\n    metaSchema: {\n      type: 'array',\n      items: {\n        type: 'string'\n      }\n    }\n  };\n  ajv.addKeyword('oneRequired', defFunc.definition);\n  return ajv;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/oneRequired.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/patternRequired.js":
/*!***************************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/patternRequired.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function defFunc(ajv) {\n  defFunc.definition = {\n    type: 'object',\n    inline: __webpack_require__(/*! ./dotjs/patternRequired */ \"./node_modules/ajv-keywords/keywords/dotjs/patternRequired.js\"),\n    statements: true,\n    errors: 'full',\n    metaSchema: {\n      type: 'array',\n      items: {\n        type: 'string',\n        format: 'regex'\n      },\n      uniqueItems: true\n    }\n  };\n  ajv.addKeyword('patternRequired', defFunc.definition);\n  return ajv;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/patternRequired.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/prohibited.js":
/*!**********************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/prohibited.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function defFunc(ajv) {\n  defFunc.definition = {\n    type: 'object',\n    macro: function (schema) {\n      if (schema.length == 0) return true;\n      if (schema.length == 1) return {\n        not: {\n          required: schema\n        }\n      };\n      var schemas = schema.map(function (prop) {\n        return {\n          required: [prop]\n        };\n      });\n      return {\n        not: {\n          anyOf: schemas\n        }\n      };\n    },\n    metaSchema: {\n      type: 'array',\n      items: {\n        type: 'string'\n      }\n    }\n  };\n  ajv.addKeyword('prohibited', defFunc.definition);\n  return ajv;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/prohibited.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/range.js":
/*!*****************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/range.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function defFunc(ajv) {\n  defFunc.definition = {\n    type: 'number',\n    macro: function (schema, parentSchema) {\n      var min = schema[0],\n          max = schema[1],\n          exclusive = parentSchema.exclusiveRange;\n      validateRangeSchema(min, max, exclusive);\n      return exclusive === true ? {\n        exclusiveMinimum: min,\n        exclusiveMaximum: max\n      } : {\n        minimum: min,\n        maximum: max\n      };\n    },\n    metaSchema: {\n      type: 'array',\n      minItems: 2,\n      maxItems: 2,\n      items: {\n        type: 'number'\n      }\n    }\n  };\n  ajv.addKeyword('range', defFunc.definition);\n  ajv.addKeyword('exclusiveRange');\n  return ajv;\n\n  function validateRangeSchema(min, max, exclusive) {\n    if (exclusive !== undefined && typeof exclusive != 'boolean') throw new Error('Invalid schema for exclusiveRange keyword, should be boolean');\n    if (min > max || exclusive && min == max) throw new Error('There are no numbers in range');\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/range.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/regexp.js":
/*!******************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/regexp.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function defFunc(ajv) {\n  defFunc.definition = {\n    type: 'string',\n    inline: function (it, keyword, schema) {\n      return getRegExp() + '.test(data' + (it.dataLevel || '') + ')';\n\n      function getRegExp() {\n        try {\n          if (typeof schema == 'object') return new RegExp(schema.pattern, schema.flags);\n          var rx = schema.match(/^\\/(.*)\\/([gimuy]*)$/);\n          if (rx) return new RegExp(rx[1], rx[2]);\n          throw new Error('cannot parse string into RegExp');\n        } catch (e) {\n          console.error('regular expression', schema, 'is invalid');\n          throw e;\n        }\n      }\n    },\n    metaSchema: {\n      type: ['string', 'object'],\n      properties: {\n        pattern: {\n          type: 'string'\n        },\n        flags: {\n          type: 'string'\n        }\n      },\n      required: ['pattern'],\n      additionalProperties: false\n    }\n  };\n  ajv.addKeyword('regexp', defFunc.definition);\n  return ajv;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/regexp.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/select.js":
/*!******************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/select.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar util = __webpack_require__(/*! ./_util */ \"./node_modules/ajv-keywords/keywords/_util.js\");\n\nmodule.exports = function defFunc(ajv) {\n  if (!ajv._opts.$data) {\n    console.warn('keyword select requires $data option');\n    return ajv;\n  }\n\n  var metaSchemaRef = util.metaSchemaRef(ajv);\n  var compiledCaseSchemas = [];\n  defFunc.definition = {\n    validate: function v(schema, data, parentSchema) {\n      if (parentSchema.selectCases === undefined) throw new Error('keyword \"selectCases\" is absent');\n      var compiled = getCompiledSchemas(parentSchema, false);\n      var validate = compiled.cases[schema];\n      if (validate === undefined) validate = compiled.default;\n      if (typeof validate == 'boolean') return validate;\n      var valid = validate(data);\n      if (!valid) v.errors = validate.errors;\n      return valid;\n    },\n    $data: true,\n    metaSchema: {\n      type: ['string', 'number', 'boolean', 'null']\n    }\n  };\n  ajv.addKeyword('select', defFunc.definition);\n  ajv.addKeyword('selectCases', {\n    compile: function (schemas, parentSchema) {\n      var compiled = getCompiledSchemas(parentSchema);\n\n      for (var value in schemas) compiled.cases[value] = compileOrBoolean(schemas[value]);\n\n      return function () {\n        return true;\n      };\n    },\n    valid: true,\n    metaSchema: {\n      type: 'object',\n      additionalProperties: metaSchemaRef\n    }\n  });\n  ajv.addKeyword('selectDefault', {\n    compile: function (schema, parentSchema) {\n      var compiled = getCompiledSchemas(parentSchema);\n      compiled.default = compileOrBoolean(schema);\n      return function () {\n        return true;\n      };\n    },\n    valid: true,\n    metaSchema: metaSchemaRef\n  });\n  return ajv;\n\n  function getCompiledSchemas(parentSchema, create) {\n    var compiled;\n    compiledCaseSchemas.some(function (c) {\n      if (c.parentSchema === parentSchema) {\n        compiled = c;\n        return true;\n      }\n    });\n\n    if (!compiled && create !== false) {\n      compiled = {\n        parentSchema: parentSchema,\n        cases: {},\n        default: true\n      };\n      compiledCaseSchemas.push(compiled);\n    }\n\n    return compiled;\n  }\n\n  function compileOrBoolean(schema) {\n    return typeof schema == 'boolean' ? schema : ajv.compile(schema);\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/select.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/switch.js":
/*!******************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/switch.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar util = __webpack_require__(/*! ./_util */ \"./node_modules/ajv-keywords/keywords/_util.js\");\n\nmodule.exports = function defFunc(ajv) {\n  if (ajv.RULES.keywords.switch && ajv.RULES.keywords.if) return;\n  var metaSchemaRef = util.metaSchemaRef(ajv);\n  defFunc.definition = {\n    inline: __webpack_require__(/*! ./dotjs/switch */ \"./node_modules/ajv-keywords/keywords/dotjs/switch.js\"),\n    statements: true,\n    errors: 'full',\n    metaSchema: {\n      type: 'array',\n      items: {\n        required: ['then'],\n        properties: {\n          'if': metaSchemaRef,\n          'then': {\n            anyOf: [{\n              type: 'boolean'\n            }, metaSchemaRef]\n          },\n          'continue': {\n            type: 'boolean'\n          }\n        },\n        additionalProperties: false,\n        dependencies: {\n          'continue': ['if']\n        }\n      }\n    }\n  };\n  ajv.addKeyword('switch', defFunc.definition);\n  return ajv;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/switch.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/transform.js":
/*!*********************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/transform.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function defFunc(ajv) {\n  var transform = {\n    trimLeft: function (value) {\n      return value.replace(/^[\\s]+/, '');\n    },\n    trimRight: function (value) {\n      return value.replace(/[\\s]+$/, '');\n    },\n    trim: function (value) {\n      return value.trim();\n    },\n    toLowerCase: function (value) {\n      return value.toLowerCase();\n    },\n    toUpperCase: function (value) {\n      return value.toUpperCase();\n    },\n    toEnumCase: function (value, cfg) {\n      return cfg.hash[makeHashTableKey(value)] || value;\n    }\n  };\n  defFunc.definition = {\n    type: 'string',\n    errors: false,\n    modifying: true,\n    valid: true,\n    compile: function (schema, parentSchema) {\n      var cfg;\n\n      if (schema.indexOf('toEnumCase') !== -1) {\n        // build hash table to enum values\n        cfg = {\n          hash: {}\n        }; // requires `enum` in schema\n\n        if (!parentSchema.enum) throw new Error('Missing enum. To use `transform:[\"toEnumCase\"]`, `enum:[...]` is required.');\n\n        for (var i = parentSchema.enum.length; i--; i) {\n          var v = parentSchema.enum[i];\n          if (typeof v !== 'string') continue;\n          var k = makeHashTableKey(v); // requires all `enum` values have unique keys\n\n          if (cfg.hash[k]) throw new Error('Invalid enum uniqueness. To use `transform:[\"toEnumCase\"]`, all values must be unique when case insensitive.');\n          cfg.hash[k] = v;\n        }\n      }\n\n      return function (data, dataPath, object, key) {\n        // skip if value only\n        if (!object) return; // apply transform in order provided\n\n        for (var j = 0, l = schema.length; j < l; j++) data = transform[schema[j]](data, cfg);\n\n        object[key] = data;\n      };\n    },\n    metaSchema: {\n      type: 'array',\n      items: {\n        type: 'string',\n        enum: ['trimLeft', 'trimRight', 'trim', 'toLowerCase', 'toUpperCase', 'toEnumCase']\n      }\n    }\n  };\n  ajv.addKeyword('transform', defFunc.definition);\n  return ajv;\n\n  function makeHashTableKey(value) {\n    return value.toLowerCase();\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/transform.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/typeof.js":
/*!******************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/typeof.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar KNOWN_TYPES = ['undefined', 'string', 'number', 'object', 'function', 'boolean', 'symbol'];\n\nmodule.exports = function defFunc(ajv) {\n  defFunc.definition = {\n    inline: function (it, keyword, schema) {\n      var data = 'data' + (it.dataLevel || '');\n      if (typeof schema == 'string') return 'typeof ' + data + ' == \"' + schema + '\"';\n      schema = 'validate.schema' + it.schemaPath + '.' + keyword;\n      return schema + '.indexOf(typeof ' + data + ') >= 0';\n    },\n    metaSchema: {\n      anyOf: [{\n        type: 'string',\n        enum: KNOWN_TYPES\n      }, {\n        type: 'array',\n        items: {\n          type: 'string',\n          enum: KNOWN_TYPES\n        }\n      }]\n    }\n  };\n  ajv.addKeyword('typeof', defFunc.definition);\n  return ajv;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/typeof.js?");

/***/ }),

/***/ "./node_modules/ajv-keywords/keywords/uniqueItemProperties.js":
/*!********************************************************************!*\
  !*** ./node_modules/ajv-keywords/keywords/uniqueItemProperties.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar SCALAR_TYPES = ['number', 'integer', 'string', 'boolean', 'null'];\n\nmodule.exports = function defFunc(ajv) {\n  defFunc.definition = {\n    type: 'array',\n    compile: function (keys, parentSchema, it) {\n      var equal = it.util.equal;\n      var scalar = getScalarKeys(keys, parentSchema);\n      return function (data) {\n        if (data.length > 1) {\n          for (var k = 0; k < keys.length; k++) {\n            var i,\n                key = keys[k];\n\n            if (scalar[k]) {\n              var hash = {};\n\n              for (i = data.length; i--;) {\n                if (!data[i] || typeof data[i] != 'object') continue;\n                var prop = data[i][key];\n                if (prop && typeof prop == 'object') continue;\n                if (typeof prop == 'string') prop = '\"' + prop;\n                if (hash[prop]) return false;\n                hash[prop] = true;\n              }\n            } else {\n              for (i = data.length; i--;) {\n                if (!data[i] || typeof data[i] != 'object') continue;\n\n                for (var j = i; j--;) {\n                  if (data[j] && typeof data[j] == 'object' && equal(data[i][key], data[j][key])) return false;\n                }\n              }\n            }\n          }\n        }\n\n        return true;\n      };\n    },\n    metaSchema: {\n      type: 'array',\n      items: {\n        type: 'string'\n      }\n    }\n  };\n  ajv.addKeyword('uniqueItemProperties', defFunc.definition);\n  return ajv;\n};\n\nfunction getScalarKeys(keys, schema) {\n  return keys.map(function (key) {\n    var properties = schema.items && schema.items.properties;\n    var propType = properties && properties[key] && properties[key].type;\n    return Array.isArray(propType) ? propType.indexOf('object') < 0 && propType.indexOf('array') < 0 : SCALAR_TYPES.indexOf(propType) >= 0;\n  });\n}\n\n//# sourceURL=webpack:///./node_modules/ajv-keywords/keywords/uniqueItemProperties.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/ajv.js":
/*!*************************************!*\
  !*** ./node_modules/ajv/lib/ajv.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar compileSchema = __webpack_require__(/*! ./compile */ \"./node_modules/ajv/lib/compile/index.js\"),\n    resolve = __webpack_require__(/*! ./compile/resolve */ \"./node_modules/ajv/lib/compile/resolve.js\"),\n    Cache = __webpack_require__(/*! ./cache */ \"./node_modules/ajv/lib/cache.js\"),\n    SchemaObject = __webpack_require__(/*! ./compile/schema_obj */ \"./node_modules/ajv/lib/compile/schema_obj.js\"),\n    stableStringify = __webpack_require__(/*! fast-json-stable-stringify */ \"./node_modules/fast-json-stable-stringify/index.js\"),\n    formats = __webpack_require__(/*! ./compile/formats */ \"./node_modules/ajv/lib/compile/formats.js\"),\n    rules = __webpack_require__(/*! ./compile/rules */ \"./node_modules/ajv/lib/compile/rules.js\"),\n    $dataMetaSchema = __webpack_require__(/*! ./data */ \"./node_modules/ajv/lib/data.js\"),\n    util = __webpack_require__(/*! ./compile/util */ \"./node_modules/ajv/lib/compile/util.js\");\n\nmodule.exports = Ajv;\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\nAjv.prototype.compileAsync = __webpack_require__(/*! ./compile/async */ \"./node_modules/ajv/lib/compile/async.js\");\n\nvar customKeyword = __webpack_require__(/*! ./keyword */ \"./node_modules/ajv/lib/keyword.js\");\n\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = __webpack_require__(/*! ./compile/error_classes */ \"./node_modules/ajv/lib/compile/error_classes.js\");\n\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\nvar META_IGNORE_OPTIONS = ['removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults'];\nvar META_SUPPORT_DATA = ['/properties'];\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\n\nfunction Ajv(opts) {\n  if (!(this instanceof Ajv)) return new Ajv(opts);\n  opts = this._opts = util.copy(opts) || {};\n  setLogger(this);\n  this._schemas = {};\n  this._refs = {};\n  this._fragments = {};\n  this._formats = formats(opts.format);\n  this._cache = opts.cache || new Cache();\n  this._loadingSchemas = {};\n  this._compilations = [];\n  this.RULES = rules();\n  this._getId = chooseGetId(opts);\n  opts.loopRequired = opts.loopRequired || Infinity;\n  if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n  if (opts.serialize === undefined) opts.serialize = stableStringify;\n  this._metaOpts = getMetaSchemaOptions(this);\n  if (opts.formats) addInitialFormats(this);\n  if (opts.keywords) addInitialKeywords(this);\n  addDefaultMetaSchema(this);\n  if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n  if (opts.nullable) this.addKeyword('nullable', {\n    metaSchema: {\n      type: 'boolean'\n    }\n  });\n  addInitialSchemas(this);\n}\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this   Ajv\n * @param  {String|Object} schemaKeyRef key, ref or schema object\n * @param  {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\n\n\nfunction validate(schemaKeyRef, data) {\n  var v;\n\n  if (typeof schemaKeyRef == 'string') {\n    v = this.getSchema(schemaKeyRef);\n    if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n  } else {\n    var schemaObj = this._addSchema(schemaKeyRef);\n\n    v = schemaObj.validate || this._compile(schemaObj);\n  }\n\n  var valid = v(data);\n  if (v.$async !== true) this.errors = v.errors;\n  return valid;\n}\n/**\n * Create validating function for passed schema.\n * @this   Ajv\n * @param  {Object} schema schema object\n * @param  {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\n\n\nfunction compile(schema, _meta) {\n  var schemaObj = this._addSchema(schema, undefined, _meta);\n\n  return schemaObj.validate || this._compile(schemaObj);\n}\n/**\n * Adds schema to the instance.\n * @this   Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\n\n\nfunction addSchema(schema, key, _skipValidation, _meta) {\n  if (Array.isArray(schema)) {\n    for (var i = 0; i < schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);\n\n    return this;\n  }\n\n  var id = this._getId(schema);\n\n  if (id !== undefined && typeof id != 'string') throw new Error('schema id must be string');\n  key = resolve.normalizeId(key || id);\n  checkUnique(this, key);\n  this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n  return this;\n}\n/**\n * Add schema that will be used to validate other schemas\n * options in META_IGNORE_OPTIONS are alway set to false\n * @this   Ajv\n * @param {Object} schema schema object\n * @param {String} key optional schema key\n * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema\n * @return {Ajv} this for method chaining\n */\n\n\nfunction addMetaSchema(schema, key, skipValidation) {\n  this.addSchema(schema, key, skipValidation, true);\n  return this;\n}\n/**\n * Validate schema\n * @this   Ajv\n * @param {Object} schema schema to validate\n * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid\n * @return {Boolean} true if schema is valid\n */\n\n\nfunction validateSchema(schema, throwOrLogError) {\n  var $schema = schema.$schema;\n  if ($schema !== undefined && typeof $schema != 'string') throw new Error('$schema must be a string');\n  $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n\n  if (!$schema) {\n    this.logger.warn('meta-schema not available');\n    this.errors = null;\n    return true;\n  }\n\n  var valid = this.validate($schema, schema);\n\n  if (!valid && throwOrLogError) {\n    var message = 'schema is invalid: ' + this.errorsText();\n    if (this._opts.validateSchema == 'log') this.logger.error(message);else throw new Error(message);\n  }\n\n  return valid;\n}\n\nfunction defaultMeta(self) {\n  var meta = self._opts.meta;\n  self._opts.defaultMeta = typeof meta == 'object' ? self._getId(meta) || meta : self.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined;\n  return self._opts.defaultMeta;\n}\n/**\n * Get compiled schema from the instance by `key` or `ref`.\n * @this   Ajv\n * @param  {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).\n * @return {Function} schema validating function (with property `schema`).\n */\n\n\nfunction getSchema(keyRef) {\n  var schemaObj = _getSchemaObj(this, keyRef);\n\n  switch (typeof schemaObj) {\n    case 'object':\n      return schemaObj.validate || this._compile(schemaObj);\n\n    case 'string':\n      return this.getSchema(schemaObj);\n\n    case 'undefined':\n      return _getSchemaFragment(this, keyRef);\n  }\n}\n\nfunction _getSchemaFragment(self, ref) {\n  var res = resolve.schema.call(self, {\n    schema: {}\n  }, ref);\n\n  if (res) {\n    var schema = res.schema,\n        root = res.root,\n        baseId = res.baseId;\n    var v = compileSchema.call(self, schema, root, undefined, baseId);\n    self._fragments[ref] = new SchemaObject({\n      ref: ref,\n      fragment: true,\n      schema: schema,\n      root: root,\n      baseId: baseId,\n      validate: v\n    });\n    return v;\n  }\n}\n\nfunction _getSchemaObj(self, keyRef) {\n  keyRef = resolve.normalizeId(keyRef);\n  return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];\n}\n/**\n * Remove cached schema(s).\n * If no parameter is passed all schemas but meta-schemas are removed.\n * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n * @this   Ajv\n * @param  {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object\n * @return {Ajv} this for method chaining\n */\n\n\nfunction removeSchema(schemaKeyRef) {\n  if (schemaKeyRef instanceof RegExp) {\n    _removeAllSchemas(this, this._schemas, schemaKeyRef);\n\n    _removeAllSchemas(this, this._refs, schemaKeyRef);\n\n    return this;\n  }\n\n  switch (typeof schemaKeyRef) {\n    case 'undefined':\n      _removeAllSchemas(this, this._schemas);\n\n      _removeAllSchemas(this, this._refs);\n\n      this._cache.clear();\n\n      return this;\n\n    case 'string':\n      var schemaObj = _getSchemaObj(this, schemaKeyRef);\n\n      if (schemaObj) this._cache.del(schemaObj.cacheKey);\n      delete this._schemas[schemaKeyRef];\n      delete this._refs[schemaKeyRef];\n      return this;\n\n    case 'object':\n      var serialize = this._opts.serialize;\n      var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n\n      this._cache.del(cacheKey);\n\n      var id = this._getId(schemaKeyRef);\n\n      if (id) {\n        id = resolve.normalizeId(id);\n        delete this._schemas[id];\n        delete this._refs[id];\n      }\n\n  }\n\n  return this;\n}\n\nfunction _removeAllSchemas(self, schemas, regex) {\n  for (var keyRef in schemas) {\n    var schemaObj = schemas[keyRef];\n\n    if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n      self._cache.del(schemaObj.cacheKey);\n\n      delete schemas[keyRef];\n    }\n  }\n}\n/* @this   Ajv */\n\n\nfunction _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n  if (typeof schema != 'object' && typeof schema != 'boolean') throw new Error('schema should be object or boolean');\n  var serialize = this._opts.serialize;\n  var cacheKey = serialize ? serialize(schema) : schema;\n\n  var cached = this._cache.get(cacheKey);\n\n  if (cached) return cached;\n  shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n  var id = resolve.normalizeId(this._getId(schema));\n  if (id && shouldAddSchema) checkUnique(this, id);\n  var willValidate = this._opts.validateSchema !== false && !skipValidation;\n  var recursiveMeta;\n  if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema))) this.validateSchema(schema, true);\n  var localRefs = resolve.ids.call(this, schema);\n  var schemaObj = new SchemaObject({\n    id: id,\n    schema: schema,\n    localRefs: localRefs,\n    cacheKey: cacheKey,\n    meta: meta\n  });\n  if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;\n\n  this._cache.put(cacheKey, schemaObj);\n\n  if (willValidate && recursiveMeta) this.validateSchema(schema, true);\n  return schemaObj;\n}\n/* @this   Ajv */\n\n\nfunction _compile(schemaObj, root) {\n  if (schemaObj.compiling) {\n    schemaObj.validate = callValidate;\n    callValidate.schema = schemaObj.schema;\n    callValidate.errors = null;\n    callValidate.root = root ? root : callValidate;\n    if (schemaObj.schema.$async === true) callValidate.$async = true;\n    return callValidate;\n  }\n\n  schemaObj.compiling = true;\n  var currentOpts;\n\n  if (schemaObj.meta) {\n    currentOpts = this._opts;\n    this._opts = this._metaOpts;\n  }\n\n  var v;\n\n  try {\n    v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs);\n  } catch (e) {\n    delete schemaObj.validate;\n    throw e;\n  } finally {\n    schemaObj.compiling = false;\n    if (schemaObj.meta) this._opts = currentOpts;\n  }\n\n  schemaObj.validate = v;\n  schemaObj.refs = v.refs;\n  schemaObj.refVal = v.refVal;\n  schemaObj.root = v.root;\n  return v;\n  /* @this   {*} - custom context, see passContext option */\n\n  function callValidate() {\n    /* jshint validthis: true */\n    var _validate = schemaObj.validate;\n\n    var result = _validate.apply(this, arguments);\n\n    callValidate.errors = _validate.errors;\n    return result;\n  }\n}\n\nfunction chooseGetId(opts) {\n  switch (opts.schemaId) {\n    case 'auto':\n      return _get$IdOrId;\n\n    case 'id':\n      return _getId;\n\n    default:\n      return _get$Id;\n  }\n}\n/* @this   Ajv */\n\n\nfunction _getId(schema) {\n  if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);\n  return schema.id;\n}\n/* @this   Ajv */\n\n\nfunction _get$Id(schema) {\n  if (schema.id) this.logger.warn('schema id ignored', schema.id);\n  return schema.$id;\n}\n\nfunction _get$IdOrId(schema) {\n  if (schema.$id && schema.id && schema.$id != schema.id) throw new Error('schema $id is different from id');\n  return schema.$id || schema.id;\n}\n/**\n * Convert array of error message objects to string\n * @this   Ajv\n * @param  {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param  {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\n\n\nfunction errorsText(errors, options) {\n  errors = errors || this.errors;\n  if (!errors) return 'No errors';\n  options = options || {};\n  var separator = options.separator === undefined ? ', ' : options.separator;\n  var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n  var text = '';\n\n  for (var i = 0; i < errors.length; i++) {\n    var e = errors[i];\n    if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;\n  }\n\n  return text.slice(0, -separator.length);\n}\n/**\n * Add custom format\n * @this   Ajv\n * @param {String} name format name\n * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)\n * @return {Ajv} this for method chaining\n */\n\n\nfunction addFormat(name, format) {\n  if (typeof format == 'string') format = new RegExp(format);\n  this._formats[name] = format;\n  return this;\n}\n\nfunction addDefaultMetaSchema(self) {\n  var $dataSchema;\n\n  if (self._opts.$data) {\n    $dataSchema = __webpack_require__(/*! ./refs/data.json */ \"./node_modules/ajv/lib/refs/data.json\");\n    self.addMetaSchema($dataSchema, $dataSchema.$id, true);\n  }\n\n  if (self._opts.meta === false) return;\n\n  var metaSchema = __webpack_require__(/*! ./refs/json-schema-draft-07.json */ \"./node_modules/ajv/lib/refs/json-schema-draft-07.json\");\n\n  if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n  self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n  self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;\n}\n\nfunction addInitialSchemas(self) {\n  var optsSchemas = self._opts.schemas;\n  if (!optsSchemas) return;\n  if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);\n}\n\nfunction addInitialFormats(self) {\n  for (var name in self._opts.formats) {\n    var format = self._opts.formats[name];\n    self.addFormat(name, format);\n  }\n}\n\nfunction addInitialKeywords(self) {\n  for (var name in self._opts.keywords) {\n    var keyword = self._opts.keywords[name];\n    self.addKeyword(name, keyword);\n  }\n}\n\nfunction checkUnique(self, id) {\n  if (self._schemas[id] || self._refs[id]) throw new Error('schema with key or id \"' + id + '\" already exists');\n}\n\nfunction getMetaSchemaOptions(self) {\n  var metaOpts = util.copy(self._opts);\n\n  for (var i = 0; i < META_IGNORE_OPTIONS.length; i++) delete metaOpts[META_IGNORE_OPTIONS[i]];\n\n  return metaOpts;\n}\n\nfunction setLogger(self) {\n  var logger = self._opts.logger;\n\n  if (logger === false) {\n    self.logger = {\n      log: noop,\n      warn: noop,\n      error: noop\n    };\n  } else {\n    if (logger === undefined) logger = console;\n    if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error)) throw new Error('logger must implement log, warn and error methods');\n    self.logger = logger;\n  }\n}\n\nfunction noop() {}\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/ajv.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/cache.js":
/*!***************************************!*\
  !*** ./node_modules/ajv/lib/cache.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Cache = module.exports = function Cache() {\n  this._cache = {};\n};\n\nCache.prototype.put = function Cache_put(key, value) {\n  this._cache[key] = value;\n};\n\nCache.prototype.get = function Cache_get(key) {\n  return this._cache[key];\n};\n\nCache.prototype.del = function Cache_del(key) {\n  delete this._cache[key];\n};\n\nCache.prototype.clear = function Cache_clear() {\n  this._cache = {};\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/cache.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/compile/async.js":
/*!***********************************************!*\
  !*** ./node_modules/ajv/lib/compile/async.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar MissingRefError = __webpack_require__(/*! ./error_classes */ \"./node_modules/ajv/lib/compile/error_classes.js\").MissingRef;\n\nmodule.exports = compileAsync;\n/**\n * Creates validating function for passed schema with asynchronous loading of missing schemas.\n * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n * @this  Ajv\n * @param {Object}   schema schema object\n * @param {Boolean}  meta optional true to compile meta-schema; this parameter can be skipped\n * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.\n * @return {Promise} promise that resolves with a validating function.\n */\n\nfunction compileAsync(schema, meta, callback) {\n  /* eslint no-shadow: 0 */\n\n  /* global Promise */\n\n  /* jshint validthis: true */\n  var self = this;\n  if (typeof this._opts.loadSchema != 'function') throw new Error('options.loadSchema should be a function');\n\n  if (typeof meta == 'function') {\n    callback = meta;\n    meta = undefined;\n  }\n\n  var p = loadMetaSchemaOf(schema).then(function () {\n    var schemaObj = self._addSchema(schema, undefined, meta);\n\n    return schemaObj.validate || _compileAsync(schemaObj);\n  });\n\n  if (callback) {\n    p.then(function (v) {\n      callback(null, v);\n    }, callback);\n  }\n\n  return p;\n\n  function loadMetaSchemaOf(sch) {\n    var $schema = sch.$schema;\n    return $schema && !self.getSchema($schema) ? compileAsync.call(self, {\n      $ref: $schema\n    }, true) : Promise.resolve();\n  }\n\n  function _compileAsync(schemaObj) {\n    try {\n      return self._compile(schemaObj);\n    } catch (e) {\n      if (e instanceof MissingRefError) return loadMissingSchema(e);\n      throw e;\n    }\n\n    function loadMissingSchema(e) {\n      var ref = e.missingSchema;\n      if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');\n      var schemaPromise = self._loadingSchemas[ref];\n\n      if (!schemaPromise) {\n        schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);\n        schemaPromise.then(removePromise, removePromise);\n      }\n\n      return schemaPromise.then(function (sch) {\n        if (!added(ref)) {\n          return loadMetaSchemaOf(sch).then(function () {\n            if (!added(ref)) self.addSchema(sch, ref, undefined, meta);\n          });\n        }\n      }).then(function () {\n        return _compileAsync(schemaObj);\n      });\n\n      function removePromise() {\n        delete self._loadingSchemas[ref];\n      }\n\n      function added(ref) {\n        return self._refs[ref] || self._schemas[ref];\n      }\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/compile/async.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/compile/error_classes.js":
/*!*******************************************************!*\
  !*** ./node_modules/ajv/lib/compile/error_classes.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar resolve = __webpack_require__(/*! ./resolve */ \"./node_modules/ajv/lib/compile/resolve.js\");\n\nmodule.exports = {\n  Validation: errorSubclass(ValidationError),\n  MissingRef: errorSubclass(MissingRefError)\n};\n\nfunction ValidationError(errors) {\n  this.message = 'validation failed';\n  this.errors = errors;\n  this.ajv = this.validation = true;\n}\n\nMissingRefError.message = function (baseId, ref) {\n  return 'can\\'t resolve reference ' + ref + ' from id ' + baseId;\n};\n\nfunction MissingRefError(baseId, ref, message) {\n  this.message = message || MissingRefError.message(baseId, ref);\n  this.missingRef = resolve.url(baseId, ref);\n  this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n}\n\nfunction errorSubclass(Subclass) {\n  Subclass.prototype = Object.create(Error.prototype);\n  Subclass.prototype.constructor = Subclass;\n  return Subclass;\n}\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/compile/error_classes.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/compile/formats.js":
/*!*************************************************!*\
  !*** ./node_modules/ajv/lib/compile/formats.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar util = __webpack_require__(/*! ./util */ \"./node_modules/ajv/lib/compile/util.js\");\n\nvar DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nvar DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nvar HOSTNAME = /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\nvar URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nvar URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i; // uri-template: https://tools.ietf.org/html/rfc6570\n\nvar URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i; // For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\n\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\nmodule.exports = formats;\n\nfunction formats(mode) {\n  mode = mode == 'full' ? 'full' : 'fast';\n  return util.copy(formats[mode]);\n}\n\nformats.fast = {\n  // date: http://tools.ietf.org/html/rfc3339#section-5.6\n  date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n  // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n  time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n  'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n  // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n  uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n  'uri-reference': /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n  'uri-template': URITEMPLATE,\n  url: URL,\n  // email (sources from jsen validator):\n  // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n  // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n  email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n  hostname: HOSTNAME,\n  // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n  ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n  // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n  ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n  regex: regex,\n  // uuid: http://tools.ietf.org/html/rfc4122\n  uuid: UUID,\n  // JSON-pointer: https://tools.ietf.org/html/rfc6901\n  // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n  'json-pointer': JSON_POINTER,\n  'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n  // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n  'relative-json-pointer': RELATIVE_JSON_POINTER\n};\nformats.full = {\n  date: date,\n  time: time,\n  'date-time': date_time,\n  uri: uri,\n  'uri-reference': URIREF,\n  'uri-template': URITEMPLATE,\n  url: URL,\n  email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n  hostname: HOSTNAME,\n  ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n  ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n  regex: regex,\n  uuid: UUID,\n  'json-pointer': JSON_POINTER,\n  'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n  'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\nfunction isLeapYear(year) {\n  // https://tools.ietf.org/html/rfc3339#appendix-C\n  return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nfunction date(str) {\n  // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n  var matches = str.match(DATE);\n  if (!matches) return false;\n  var year = +matches[1];\n  var month = +matches[2];\n  var day = +matches[3];\n  return month >= 1 && month <= 12 && day >= 1 && day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\nfunction time(str, full) {\n  var matches = str.match(TIME);\n  if (!matches) return false;\n  var hour = matches[1];\n  var minute = matches[2];\n  var second = matches[3];\n  var timeZone = matches[5];\n  return (hour <= 23 && minute <= 59 && second <= 59 || hour == 23 && minute == 59 && second == 60) && (!full || timeZone);\n}\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\n\nfunction date_time(str) {\n  // http://tools.ietf.org/html/rfc3339#section-5.6\n  var dateTime = str.split(DATE_TIME_SEPARATOR);\n  return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\n\nfunction uri(str) {\n  // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n  return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\n\nfunction regex(str) {\n  if (Z_ANCHOR.test(str)) return false;\n\n  try {\n    new RegExp(str);\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/compile/formats.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/compile/index.js":
/*!***********************************************!*\
  !*** ./node_modules/ajv/lib/compile/index.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar resolve = __webpack_require__(/*! ./resolve */ \"./node_modules/ajv/lib/compile/resolve.js\"),\n    util = __webpack_require__(/*! ./util */ \"./node_modules/ajv/lib/compile/util.js\"),\n    errorClasses = __webpack_require__(/*! ./error_classes */ \"./node_modules/ajv/lib/compile/error_classes.js\"),\n    stableStringify = __webpack_require__(/*! fast-json-stable-stringify */ \"./node_modules/fast-json-stable-stringify/index.js\");\n\nvar validateGenerator = __webpack_require__(/*! ../dotjs/validate */ \"./node_modules/ajv/lib/dotjs/validate.js\");\n/**\n * Functions below are used inside compiled validations function\n */\n\n\nvar ucs2length = util.ucs2length;\n\nvar equal = __webpack_require__(/*! fast-deep-equal */ \"./node_modules/fast-deep-equal/index.js\"); // this error is thrown by async schemas to return validation errors via exception\n\n\nvar ValidationError = errorClasses.Validation;\nmodule.exports = compile;\n/**\n * Compiles schema to validation function\n * @this   Ajv\n * @param  {Object} schema schema object\n * @param  {Object} root object with information about the root schema for this schema\n * @param  {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param  {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\n\nfunction compile(schema, root, localRefs, baseId) {\n  /* jshint validthis: true, evil: true */\n\n  /* eslint no-shadow: 0 */\n  var self = this,\n      opts = this._opts,\n      refVal = [undefined],\n      refs = {},\n      patterns = [],\n      patternsHash = {},\n      defaults = [],\n      defaultsHash = {},\n      customRules = [];\n  root = root || {\n    schema: schema,\n    refVal: refVal,\n    refs: refs\n  };\n  var c = checkCompiling.call(this, schema, root, baseId);\n  var compilation = this._compilations[c.index];\n  if (c.compiling) return compilation.callValidate = callValidate;\n  var formats = this._formats;\n  var RULES = this.RULES;\n\n  try {\n    var v = localCompile(schema, root, localRefs, baseId);\n    compilation.validate = v;\n    var cv = compilation.callValidate;\n\n    if (cv) {\n      cv.schema = v.schema;\n      cv.errors = null;\n      cv.refs = v.refs;\n      cv.refVal = v.refVal;\n      cv.root = v.root;\n      cv.$async = v.$async;\n      if (opts.sourceCode) cv.source = v.source;\n    }\n\n    return v;\n  } finally {\n    endCompiling.call(this, schema, root, baseId);\n  }\n  /* @this   {*} - custom context, see passContext option */\n\n\n  function callValidate() {\n    /* jshint validthis: true */\n    var validate = compilation.validate;\n    var result = validate.apply(this, arguments);\n    callValidate.errors = validate.errors;\n    return result;\n  }\n\n  function localCompile(_schema, _root, localRefs, baseId) {\n    var isRoot = !_root || _root && _root.schema == _schema;\n    if (_root.schema != root.schema) return compile.call(self, _schema, _root, localRefs, baseId);\n    var $async = _schema.$async === true;\n    var sourceCode = validateGenerator({\n      isTop: true,\n      schema: _schema,\n      isRoot: isRoot,\n      baseId: baseId,\n      root: _root,\n      schemaPath: '',\n      errSchemaPath: '#',\n      errorPath: '\"\"',\n      MissingRefError: errorClasses.MissingRef,\n      RULES: RULES,\n      validate: validateGenerator,\n      util: util,\n      resolve: resolve,\n      resolveRef: resolveRef,\n      usePattern: usePattern,\n      useDefault: useDefault,\n      useCustomRule: useCustomRule,\n      opts: opts,\n      formats: formats,\n      logger: self.logger,\n      self: self\n    });\n    sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode) + vars(defaults, defaultCode) + vars(customRules, customRuleCode) + sourceCode;\n    if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema); // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n\n    var validate;\n\n    try {\n      var makeValidate = new Function('self', 'RULES', 'formats', 'root', 'refVal', 'defaults', 'customRules', 'equal', 'ucs2length', 'ValidationError', sourceCode);\n      validate = makeValidate(self, RULES, formats, root, refVal, defaults, customRules, equal, ucs2length, ValidationError);\n      refVal[0] = validate;\n    } catch (e) {\n      self.logger.error('Error compiling schema, function code:', sourceCode);\n      throw e;\n    }\n\n    validate.schema = _schema;\n    validate.errors = null;\n    validate.refs = refs;\n    validate.refVal = refVal;\n    validate.root = isRoot ? validate : _root;\n    if ($async) validate.$async = true;\n\n    if (opts.sourceCode === true) {\n      validate.source = {\n        code: sourceCode,\n        patterns: patterns,\n        defaults: defaults\n      };\n    }\n\n    return validate;\n  }\n\n  function resolveRef(baseId, ref, isRoot) {\n    ref = resolve.url(baseId, ref);\n    var refIndex = refs[ref];\n\n    var _refVal, refCode;\n\n    if (refIndex !== undefined) {\n      _refVal = refVal[refIndex];\n      refCode = 'refVal[' + refIndex + ']';\n      return resolvedRef(_refVal, refCode);\n    }\n\n    if (!isRoot && root.refs) {\n      var rootRefId = root.refs[ref];\n\n      if (rootRefId !== undefined) {\n        _refVal = root.refVal[rootRefId];\n        refCode = addLocalRef(ref, _refVal);\n        return resolvedRef(_refVal, refCode);\n      }\n    }\n\n    refCode = addLocalRef(ref);\n    var v = resolve.call(self, localCompile, root, ref);\n\n    if (v === undefined) {\n      var localSchema = localRefs && localRefs[ref];\n\n      if (localSchema) {\n        v = resolve.inlineRef(localSchema, opts.inlineRefs) ? localSchema : compile.call(self, localSchema, root, localRefs, baseId);\n      }\n    }\n\n    if (v === undefined) {\n      removeLocalRef(ref);\n    } else {\n      replaceLocalRef(ref, v);\n      return resolvedRef(v, refCode);\n    }\n  }\n\n  function addLocalRef(ref, v) {\n    var refId = refVal.length;\n    refVal[refId] = v;\n    refs[ref] = refId;\n    return 'refVal' + refId;\n  }\n\n  function removeLocalRef(ref) {\n    delete refs[ref];\n  }\n\n  function replaceLocalRef(ref, v) {\n    var refId = refs[ref];\n    refVal[refId] = v;\n  }\n\n  function resolvedRef(refVal, code) {\n    return typeof refVal == 'object' || typeof refVal == 'boolean' ? {\n      code: code,\n      schema: refVal,\n      inline: true\n    } : {\n      code: code,\n      $async: refVal && !!refVal.$async\n    };\n  }\n\n  function usePattern(regexStr) {\n    var index = patternsHash[regexStr];\n\n    if (index === undefined) {\n      index = patternsHash[regexStr] = patterns.length;\n      patterns[index] = regexStr;\n    }\n\n    return 'pattern' + index;\n  }\n\n  function useDefault(value) {\n    switch (typeof value) {\n      case 'boolean':\n      case 'number':\n        return '' + value;\n\n      case 'string':\n        return util.toQuotedString(value);\n\n      case 'object':\n        if (value === null) return 'null';\n        var valueStr = stableStringify(value);\n        var index = defaultsHash[valueStr];\n\n        if (index === undefined) {\n          index = defaultsHash[valueStr] = defaults.length;\n          defaults[index] = value;\n        }\n\n        return 'default' + index;\n    }\n  }\n\n  function useCustomRule(rule, schema, parentSchema, it) {\n    if (self._opts.validateSchema !== false) {\n      var deps = rule.definition.dependencies;\n      if (deps && !deps.every(function (keyword) {\n        return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n      })) throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n      var validateSchema = rule.definition.validateSchema;\n\n      if (validateSchema) {\n        var valid = validateSchema(schema);\n\n        if (!valid) {\n          var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n          if (self._opts.validateSchema == 'log') self.logger.error(message);else throw new Error(message);\n        }\n      }\n    }\n\n    var compile = rule.definition.compile,\n        inline = rule.definition.inline,\n        macro = rule.definition.macro;\n    var validate;\n\n    if (compile) {\n      validate = compile.call(self, schema, parentSchema, it);\n    } else if (macro) {\n      validate = macro.call(self, schema, parentSchema, it);\n      if (opts.validateSchema !== false) self.validateSchema(validate, true);\n    } else if (inline) {\n      validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n    } else {\n      validate = rule.definition.validate;\n      if (!validate) return;\n    }\n\n    if (validate === undefined) throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n    var index = customRules.length;\n    customRules[index] = validate;\n    return {\n      code: 'customRule' + index,\n      validate: validate\n    };\n  }\n}\n/**\n * Checks if the schema is currently compiled\n * @this   Ajv\n * @param  {Object} schema schema to compile\n * @param  {Object} root root object\n * @param  {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\n\n\nfunction checkCompiling(schema, root, baseId) {\n  /* jshint validthis: true */\n  var index = compIndex.call(this, schema, root, baseId);\n  if (index >= 0) return {\n    index: index,\n    compiling: true\n  };\n  index = this._compilations.length;\n  this._compilations[index] = {\n    schema: schema,\n    root: root,\n    baseId: baseId\n  };\n  return {\n    index: index,\n    compiling: false\n  };\n}\n/**\n * Removes the schema from the currently compiled list\n * @this   Ajv\n * @param  {Object} schema schema to compile\n * @param  {Object} root root object\n * @param  {String} baseId base schema ID\n */\n\n\nfunction endCompiling(schema, root, baseId) {\n  /* jshint validthis: true */\n  var i = compIndex.call(this, schema, root, baseId);\n  if (i >= 0) this._compilations.splice(i, 1);\n}\n/**\n * Index of schema compilation in the currently compiled list\n * @this   Ajv\n * @param  {Object} schema schema to compile\n * @param  {Object} root root object\n * @param  {String} baseId base schema ID\n * @return {Integer} compilation index\n */\n\n\nfunction compIndex(schema, root, baseId) {\n  /* jshint validthis: true */\n  for (var i = 0; i < this._compilations.length; i++) {\n    var c = this._compilations[i];\n    if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n  }\n\n  return -1;\n}\n\nfunction patternCode(i, patterns) {\n  return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';\n}\n\nfunction defaultCode(i) {\n  return 'var default' + i + ' = defaults[' + i + '];';\n}\n\nfunction refValCode(i, refVal) {\n  return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n}\n\nfunction customRuleCode(i) {\n  return 'var customRule' + i + ' = customRules[' + i + '];';\n}\n\nfunction vars(arr, statement) {\n  if (!arr.length) return '';\n  var code = '';\n\n  for (var i = 0; i < arr.length; i++) code += statement(i, arr);\n\n  return code;\n}\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/compile/index.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/compile/resolve.js":
/*!*************************************************!*\
  !*** ./node_modules/ajv/lib/compile/resolve.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar URI = __webpack_require__(/*! uri-js */ \"./node_modules/uri-js/dist/es5/uri.all.js\"),\n    equal = __webpack_require__(/*! fast-deep-equal */ \"./node_modules/fast-deep-equal/index.js\"),\n    util = __webpack_require__(/*! ./util */ \"./node_modules/ajv/lib/compile/util.js\"),\n    SchemaObject = __webpack_require__(/*! ./schema_obj */ \"./node_modules/ajv/lib/compile/schema_obj.js\"),\n    traverse = __webpack_require__(/*! json-schema-traverse */ \"./node_modules/json-schema-traverse/index.js\");\n\nmodule.exports = resolve;\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n/**\n * [resolve and compile the references ($ref)]\n * @this   Ajv\n * @param  {Function} compile reference to schema compilation funciton (localCompile)\n * @param  {Object} root object with information about the root schema for the current schema\n * @param  {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\n\nfunction resolve(compile, root, ref) {\n  /* jshint validthis: true */\n  var refVal = this._refs[ref];\n\n  if (typeof refVal == 'string') {\n    if (this._refs[refVal]) refVal = this._refs[refVal];else return resolve.call(this, compile, root, refVal);\n  }\n\n  refVal = refVal || this._schemas[ref];\n\n  if (refVal instanceof SchemaObject) {\n    return inlineRef(refVal.schema, this._opts.inlineRefs) ? refVal.schema : refVal.validate || this._compile(refVal);\n  }\n\n  var res = resolveSchema.call(this, root, ref);\n  var schema, v, baseId;\n\n  if (res) {\n    schema = res.schema;\n    root = res.root;\n    baseId = res.baseId;\n  }\n\n  if (schema instanceof SchemaObject) {\n    v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n  } else if (schema !== undefined) {\n    v = inlineRef(schema, this._opts.inlineRefs) ? schema : compile.call(this, schema, root, undefined, baseId);\n  }\n\n  return v;\n}\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param  {Object} root root object with properties schema, refVal, refs\n * @param  {String} ref  reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\n\n\nfunction resolveSchema(root, ref) {\n  /* jshint validthis: true */\n  var p = URI.parse(ref),\n      refPath = _getFullPath(p),\n      baseId = getFullPath(this._getId(root.schema));\n\n  if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n    var id = normalizeId(refPath);\n    var refVal = this._refs[id];\n\n    if (typeof refVal == 'string') {\n      return resolveRecursive.call(this, root, refVal, p);\n    } else if (refVal instanceof SchemaObject) {\n      if (!refVal.validate) this._compile(refVal);\n      root = refVal;\n    } else {\n      refVal = this._schemas[id];\n\n      if (refVal instanceof SchemaObject) {\n        if (!refVal.validate) this._compile(refVal);\n        if (id == normalizeId(ref)) return {\n          schema: refVal,\n          root: root,\n          baseId: baseId\n        };\n        root = refVal;\n      } else {\n        return;\n      }\n    }\n\n    if (!root.schema) return;\n    baseId = getFullPath(this._getId(root.schema));\n  }\n\n  return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n/* @this Ajv */\n\n\nfunction resolveRecursive(root, ref, parsedRef) {\n  /* jshint validthis: true */\n  var res = resolveSchema.call(this, root, ref);\n\n  if (res) {\n    var schema = res.schema;\n    var baseId = res.baseId;\n    root = res.root;\n\n    var id = this._getId(schema);\n\n    if (id) baseId = resolveUrl(baseId, id);\n    return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n  }\n}\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\n\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n  /* jshint validthis: true */\n  parsedRef.fragment = parsedRef.fragment || '';\n  if (parsedRef.fragment.slice(0, 1) != '/') return;\n  var parts = parsedRef.fragment.split('/');\n\n  for (var i = 1; i < parts.length; i++) {\n    var part = parts[i];\n\n    if (part) {\n      part = util.unescapeFragment(part);\n      schema = schema[part];\n      if (schema === undefined) break;\n      var id;\n\n      if (!PREVENT_SCOPE_CHANGE[part]) {\n        id = this._getId(schema);\n        if (id) baseId = resolveUrl(baseId, id);\n\n        if (schema.$ref) {\n          var $ref = resolveUrl(baseId, schema.$ref);\n          var res = resolveSchema.call(this, root, $ref);\n\n          if (res) {\n            schema = res.schema;\n            root = res.root;\n            baseId = res.baseId;\n          }\n        }\n      }\n    }\n  }\n\n  if (schema !== undefined && schema !== root.schema) return {\n    schema: schema,\n    root: root,\n    baseId: baseId\n  };\n}\n\nvar SIMPLE_INLINED = util.toHash(['type', 'format', 'pattern', 'maxLength', 'minLength', 'maxProperties', 'minProperties', 'maxItems', 'minItems', 'maximum', 'minimum', 'uniqueItems', 'multipleOf', 'required', 'enum']);\n\nfunction inlineRef(schema, limit) {\n  if (limit === false) return false;\n  if (limit === undefined || limit === true) return checkNoRef(schema);else if (limit) return countKeys(schema) <= limit;\n}\n\nfunction checkNoRef(schema) {\n  var item;\n\n  if (Array.isArray(schema)) {\n    for (var i = 0; i < schema.length; i++) {\n      item = schema[i];\n      if (typeof item == 'object' && !checkNoRef(item)) return false;\n    }\n  } else {\n    for (var key in schema) {\n      if (key == '$ref') return false;\n      item = schema[key];\n      if (typeof item == 'object' && !checkNoRef(item)) return false;\n    }\n  }\n\n  return true;\n}\n\nfunction countKeys(schema) {\n  var count = 0,\n      item;\n\n  if (Array.isArray(schema)) {\n    for (var i = 0; i < schema.length; i++) {\n      item = schema[i];\n      if (typeof item == 'object') count += countKeys(item);\n      if (count == Infinity) return Infinity;\n    }\n  } else {\n    for (var key in schema) {\n      if (key == '$ref') return Infinity;\n\n      if (SIMPLE_INLINED[key]) {\n        count++;\n      } else {\n        item = schema[key];\n        if (typeof item == 'object') count += countKeys(item) + 1;\n        if (count == Infinity) return Infinity;\n      }\n    }\n  }\n\n  return count;\n}\n\nfunction getFullPath(id, normalize) {\n  if (normalize !== false) id = normalizeId(id);\n  var p = URI.parse(id);\n  return _getFullPath(p);\n}\n\nfunction _getFullPath(p) {\n  return URI.serialize(p).split('#')[0] + '#';\n}\n\nvar TRAILING_SLASH_HASH = /#\\/?$/;\n\nfunction normalizeId(id) {\n  return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n}\n\nfunction resolveUrl(baseId, id) {\n  id = normalizeId(id);\n  return URI.resolve(baseId, id);\n}\n/* @this Ajv */\n\n\nfunction resolveIds(schema) {\n  var schemaId = normalizeId(this._getId(schema));\n  var baseIds = {\n    '': schemaId\n  };\n  var fullPaths = {\n    '': getFullPath(schemaId, false)\n  };\n  var localRefs = {};\n  var self = this;\n  traverse(schema, {\n    allKeys: true\n  }, function (sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n    if (jsonPtr === '') return;\n\n    var id = self._getId(sch);\n\n    var baseId = baseIds[parentJsonPtr];\n    var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n    if (keyIndex !== undefined) fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n    if (typeof id == 'string') {\n      id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n      var refVal = self._refs[id];\n      if (typeof refVal == 'string') refVal = self._refs[refVal];\n\n      if (refVal && refVal.schema) {\n        if (!equal(sch, refVal.schema)) throw new Error('id \"' + id + '\" resolves to more than one schema');\n      } else if (id != normalizeId(fullPath)) {\n        if (id[0] == '#') {\n          if (localRefs[id] && !equal(sch, localRefs[id])) throw new Error('id \"' + id + '\" resolves to more than one schema');\n          localRefs[id] = sch;\n        } else {\n          self._refs[id] = fullPath;\n        }\n      }\n    }\n\n    baseIds[jsonPtr] = baseId;\n    fullPaths[jsonPtr] = fullPath;\n  });\n  return localRefs;\n}\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/compile/resolve.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/compile/rules.js":
/*!***********************************************!*\
  !*** ./node_modules/ajv/lib/compile/rules.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar ruleModules = __webpack_require__(/*! ../dotjs */ \"./node_modules/ajv/lib/dotjs/index.js\"),\n    toHash = __webpack_require__(/*! ./util */ \"./node_modules/ajv/lib/compile/util.js\").toHash;\n\nmodule.exports = function rules() {\n  var RULES = [{\n    type: 'number',\n    rules: [{\n      'maximum': ['exclusiveMaximum']\n    }, {\n      'minimum': ['exclusiveMinimum']\n    }, 'multipleOf', 'format']\n  }, {\n    type: 'string',\n    rules: ['maxLength', 'minLength', 'pattern', 'format']\n  }, {\n    type: 'array',\n    rules: ['maxItems', 'minItems', 'items', 'contains', 'uniqueItems']\n  }, {\n    type: 'object',\n    rules: ['maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames', {\n      'properties': ['additionalProperties', 'patternProperties']\n    }]\n  }, {\n    rules: ['$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if']\n  }];\n  var ALL = ['type', '$comment'];\n  var KEYWORDS = ['$schema', '$id', 'id', '$data', '$async', 'title', 'description', 'default', 'definitions', 'examples', 'readOnly', 'writeOnly', 'contentMediaType', 'contentEncoding', 'additionalItems', 'then', 'else'];\n  var TYPES = ['number', 'integer', 'string', 'array', 'object', 'boolean', 'null'];\n  RULES.all = toHash(ALL);\n  RULES.types = toHash(TYPES);\n  RULES.forEach(function (group) {\n    group.rules = group.rules.map(function (keyword) {\n      var implKeywords;\n\n      if (typeof keyword == 'object') {\n        var key = Object.keys(keyword)[0];\n        implKeywords = keyword[key];\n        keyword = key;\n        implKeywords.forEach(function (k) {\n          ALL.push(k);\n          RULES.all[k] = true;\n        });\n      }\n\n      ALL.push(keyword);\n      var rule = RULES.all[keyword] = {\n        keyword: keyword,\n        code: ruleModules[keyword],\n        implements: implKeywords\n      };\n      return rule;\n    });\n    RULES.all.$comment = {\n      keyword: '$comment',\n      code: ruleModules.$comment\n    };\n    if (group.type) RULES.types[group.type] = group;\n  });\n  RULES.keywords = toHash(ALL.concat(KEYWORDS));\n  RULES.custom = {};\n  return RULES;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/compile/rules.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/compile/schema_obj.js":
/*!****************************************************!*\
  !*** ./node_modules/ajv/lib/compile/schema_obj.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar util = __webpack_require__(/*! ./util */ \"./node_modules/ajv/lib/compile/util.js\");\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n  util.copy(obj, this);\n}\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/compile/schema_obj.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/compile/ucs2length.js":
/*!****************************************************!*\
  !*** ./node_modules/ajv/lib/compile/ucs2length.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval(" // https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\n\nmodule.exports = function ucs2length(str) {\n  var length = 0,\n      len = str.length,\n      pos = 0,\n      value;\n\n  while (pos < len) {\n    length++;\n    value = str.charCodeAt(pos++);\n\n    if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n      // high surrogate, and there is a next character\n      value = str.charCodeAt(pos);\n      if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n    }\n  }\n\n  return length;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/compile/ucs2length.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/compile/util.js":
/*!**********************************************!*\
  !*** ./node_modules/ajv/lib/compile/util.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = {\n  copy: copy,\n  checkDataType: checkDataType,\n  checkDataTypes: checkDataTypes,\n  coerceToTypes: coerceToTypes,\n  toHash: toHash,\n  getProperty: getProperty,\n  escapeQuotes: escapeQuotes,\n  equal: __webpack_require__(/*! fast-deep-equal */ \"./node_modules/fast-deep-equal/index.js\"),\n  ucs2length: __webpack_require__(/*! ./ucs2length */ \"./node_modules/ajv/lib/compile/ucs2length.js\"),\n  varOccurences: varOccurences,\n  varReplace: varReplace,\n  schemaHasRules: schemaHasRules,\n  schemaHasRulesExcept: schemaHasRulesExcept,\n  schemaUnknownRules: schemaUnknownRules,\n  toQuotedString: toQuotedString,\n  getPathExpr: getPathExpr,\n  getPath: getPath,\n  getData: getData,\n  unescapeFragment: unescapeFragment,\n  unescapeJsonPointer: unescapeJsonPointer,\n  escapeFragment: escapeFragment,\n  escapeJsonPointer: escapeJsonPointer\n};\n\nfunction copy(o, to) {\n  to = to || {};\n\n  for (var key in o) to[key] = o[key];\n\n  return to;\n}\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n  var EQUAL = negate ? ' !== ' : ' === ',\n      AND = negate ? ' || ' : ' && ',\n      OK = negate ? '!' : '',\n      NOT = negate ? '' : '!';\n\n  switch (dataType) {\n    case 'null':\n      return data + EQUAL + 'null';\n\n    case 'array':\n      return OK + 'Array.isArray(' + data + ')';\n\n    case 'object':\n      return '(' + OK + data + AND + 'typeof ' + data + EQUAL + '\"object\"' + AND + NOT + 'Array.isArray(' + data + '))';\n\n    case 'integer':\n      return '(typeof ' + data + EQUAL + '\"number\"' + AND + NOT + '(' + data + ' % 1)' + AND + data + EQUAL + data + (strictNumbers ? AND + OK + 'isFinite(' + data + ')' : '') + ')';\n\n    case 'number':\n      return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' + (strictNumbers ? AND + OK + 'isFinite(' + data + ')' : '') + ')';\n\n    default:\n      return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n  }\n}\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n  switch (dataTypes.length) {\n    case 1:\n      return checkDataType(dataTypes[0], data, strictNumbers, true);\n\n    default:\n      var code = '';\n      var types = toHash(dataTypes);\n\n      if (types.array && types.object) {\n        code = types.null ? '(' : '(!' + data + ' || ';\n        code += 'typeof ' + data + ' !== \"object\")';\n        delete types.null;\n        delete types.array;\n        delete types.object;\n      }\n\n      if (types.number) delete types.integer;\n\n      for (var t in types) code += (code ? ' && ' : '') + checkDataType(t, data, strictNumbers, true);\n\n      return code;\n  }\n}\n\nvar COERCE_TO_TYPES = toHash(['string', 'number', 'integer', 'boolean', 'null']);\n\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n  if (Array.isArray(dataTypes)) {\n    var types = [];\n\n    for (var i = 0; i < dataTypes.length; i++) {\n      var t = dataTypes[i];\n      if (COERCE_TO_TYPES[t]) types[types.length] = t;else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;\n    }\n\n    if (types.length) return types;\n  } else if (COERCE_TO_TYPES[dataTypes]) {\n    return [dataTypes];\n  } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {\n    return ['array'];\n  }\n}\n\nfunction toHash(arr) {\n  var hash = {};\n\n  for (var i = 0; i < arr.length; i++) hash[arr[i]] = true;\n\n  return hash;\n}\n\nvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nvar SINGLE_QUOTE = /'|\\\\/g;\n\nfunction getProperty(key) {\n  return typeof key == 'number' ? '[' + key + ']' : IDENTIFIER.test(key) ? '.' + key : \"['\" + escapeQuotes(key) + \"']\";\n}\n\nfunction escapeQuotes(str) {\n  return str.replace(SINGLE_QUOTE, '\\\\$&').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\f/g, '\\\\f').replace(/\\t/g, '\\\\t');\n}\n\nfunction varOccurences(str, dataVar) {\n  dataVar += '[^0-9]';\n  var matches = str.match(new RegExp(dataVar, 'g'));\n  return matches ? matches.length : 0;\n}\n\nfunction varReplace(str, dataVar, expr) {\n  dataVar += '([^0-9])';\n  expr = expr.replace(/\\$/g, '$$$$');\n  return str.replace(new RegExp(dataVar, 'g'), expr + '$1');\n}\n\nfunction schemaHasRules(schema, rules) {\n  if (typeof schema == 'boolean') return !schema;\n\n  for (var key in schema) if (rules[key]) return true;\n}\n\nfunction schemaHasRulesExcept(schema, rules, exceptKeyword) {\n  if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';\n\n  for (var key in schema) if (key != exceptKeyword && rules[key]) return true;\n}\n\nfunction schemaUnknownRules(schema, rules) {\n  if (typeof schema == 'boolean') return;\n\n  for (var key in schema) if (!rules[key]) return key;\n}\n\nfunction toQuotedString(str) {\n  return '\\'' + escapeQuotes(str) + '\\'';\n}\n\nfunction getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n  var path = jsonPointers // false by default\n  ? '\\'/\\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\')') : isNumber ? '\\'[\\' + ' + expr + ' + \\']\\'' : '\\'[\\\\\\'\\' + ' + expr + ' + \\'\\\\\\']\\'';\n  return joinPaths(currentPath, path);\n}\n\nfunction getPath(currentPath, prop, jsonPointers) {\n  var path = jsonPointers // false by default\n  ? toQuotedString('/' + escapeJsonPointer(prop)) : toQuotedString(getProperty(prop));\n  return joinPaths(currentPath, path);\n}\n\nvar JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nvar RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\n\nfunction getData($data, lvl, paths) {\n  var up, jsonPointer, data, matches;\n  if ($data === '') return 'rootData';\n\n  if ($data[0] == '/') {\n    if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);\n    jsonPointer = $data;\n    data = 'rootData';\n  } else {\n    matches = $data.match(RELATIVE_JSON_POINTER);\n    if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);\n    up = +matches[1];\n    jsonPointer = matches[2];\n\n    if (jsonPointer == '#') {\n      if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n      return paths[lvl - up];\n    }\n\n    if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n    data = 'data' + (lvl - up || '');\n    if (!jsonPointer) return data;\n  }\n\n  var expr = data;\n  var segments = jsonPointer.split('/');\n\n  for (var i = 0; i < segments.length; i++) {\n    var segment = segments[i];\n\n    if (segment) {\n      data += getProperty(unescapeJsonPointer(segment));\n      expr += ' && ' + data;\n    }\n  }\n\n  return expr;\n}\n\nfunction joinPaths(a, b) {\n  if (a == '\"\"') return b;\n  return (a + ' + ' + b).replace(/([^\\\\])' \\+ '/g, '$1');\n}\n\nfunction unescapeFragment(str) {\n  return unescapeJsonPointer(decodeURIComponent(str));\n}\n\nfunction escapeFragment(str) {\n  return encodeURIComponent(escapeJsonPointer(str));\n}\n\nfunction escapeJsonPointer(str) {\n  return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\nfunction unescapeJsonPointer(str) {\n  return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/compile/util.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/data.js":
/*!**************************************!*\
  !*** ./node_modules/ajv/lib/data.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar KEYWORDS = ['multipleOf', 'maximum', 'exclusiveMaximum', 'minimum', 'exclusiveMinimum', 'maxLength', 'minLength', 'pattern', 'additionalItems', 'maxItems', 'minItems', 'uniqueItems', 'maxProperties', 'minProperties', 'required', 'additionalProperties', 'enum', 'format', 'const'];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n  for (var i = 0; i < keywordsJsonPointers.length; i++) {\n    metaSchema = JSON.parse(JSON.stringify(metaSchema));\n    var segments = keywordsJsonPointers[i].split('/');\n    var keywords = metaSchema;\n    var j;\n\n    for (j = 1; j < segments.length; j++) keywords = keywords[segments[j]];\n\n    for (j = 0; j < KEYWORDS.length; j++) {\n      var key = KEYWORDS[j];\n      var schema = keywords[key];\n\n      if (schema) {\n        keywords[key] = {\n          anyOf: [schema, {\n            $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#'\n          }]\n        };\n      }\n    }\n  }\n\n  return metaSchema;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/data.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/definition_schema.js":
/*!***************************************************!*\
  !*** ./node_modules/ajv/lib/definition_schema.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar metaSchema = __webpack_require__(/*! ./refs/json-schema-draft-07.json */ \"./node_modules/ajv/lib/refs/json-schema-draft-07.json\");\n\nmodule.exports = {\n  $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',\n  definitions: {\n    simpleTypes: metaSchema.definitions.simpleTypes\n  },\n  type: 'object',\n  dependencies: {\n    schema: ['validate'],\n    $data: ['validate'],\n    statements: ['inline'],\n    valid: {\n      not: {\n        required: ['macro']\n      }\n    }\n  },\n  properties: {\n    type: metaSchema.properties.type,\n    schema: {\n      type: 'boolean'\n    },\n    statements: {\n      type: 'boolean'\n    },\n    dependencies: {\n      type: 'array',\n      items: {\n        type: 'string'\n      }\n    },\n    metaSchema: {\n      type: 'object'\n    },\n    modifying: {\n      type: 'boolean'\n    },\n    valid: {\n      type: 'boolean'\n    },\n    $data: {\n      type: 'boolean'\n    },\n    async: {\n      type: 'boolean'\n    },\n    errors: {\n      anyOf: [{\n        type: 'boolean'\n      }, {\n        const: 'full'\n      }]\n    }\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/definition_schema.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/_limit.js":
/*!**********************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/_limit.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $errorKeyword;\n  var $data = 'data' + ($dataLvl || '');\n  var $isData = it.opts.$data && $schema && $schema.$data,\n      $schemaValue;\n\n  if ($isData) {\n    out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n    $schemaValue = 'schema' + $lvl;\n  } else {\n    $schemaValue = $schema;\n  }\n\n  var $isMax = $keyword == 'maximum',\n      $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n      $schemaExcl = it.schema[$exclusiveKeyword],\n      $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n      $op = $isMax ? '<' : '>',\n      $notOp = $isMax ? '>' : '<',\n      $errorKeyword = undefined;\n\n  if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n    throw new Error($keyword + ' must be number');\n  }\n\n  if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n    throw new Error($exclusiveKeyword + ' must be number or boolean');\n  }\n\n  if ($isDataExcl) {\n    var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n        $exclusive = 'exclusive' + $lvl,\n        $exclType = 'exclType' + $lvl,\n        $exclIsNumber = 'exclIsNumber' + $lvl,\n        $opExpr = 'op' + $lvl,\n        $opStr = '\\' + ' + $opExpr + ' + \\'';\n    out += ' var schemaExcl' + $lvl + ' = ' + $schemaValueExcl + '; ';\n    $schemaValueExcl = 'schemaExcl' + $lvl;\n    out += ' var ' + $exclusive + '; var ' + $exclType + ' = typeof ' + $schemaValueExcl + '; if (' + $exclType + ' != \\'boolean\\' && ' + $exclType + ' != \\'undefined\\' && ' + $exclType + ' != \\'number\\') { ';\n    var $errorKeyword = $exclusiveKeyword;\n    var $$outStack = $$outStack || [];\n    $$outStack.push(out);\n    out = '';\n    /* istanbul ignore else */\n\n    if (it.createErrors !== false) {\n      out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: {} ';\n\n      if (it.opts.messages !== false) {\n        out += ' , message: \\'' + $exclusiveKeyword + ' should be boolean\\' ';\n      }\n\n      if (it.opts.verbose) {\n        out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n      }\n\n      out += ' } ';\n    } else {\n      out += ' {} ';\n    }\n\n    var __err = out;\n    out = $$outStack.pop();\n\n    if (!it.compositeRule && $breakOnError) {\n      /* istanbul ignore if */\n      if (it.async) {\n        out += ' throw new ValidationError([' + __err + ']); ';\n      } else {\n        out += ' validate.errors = [' + __err + ']; return false; ';\n      }\n    } else {\n      out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n    }\n\n    out += ' } else if ( ';\n\n    if ($isData) {\n      out += ' (' + $schemaValue + ' !== undefined && typeof ' + $schemaValue + ' != \\'number\\') || ';\n    }\n\n    out += ' ' + $exclType + ' == \\'number\\' ? ( (' + $exclusive + ' = ' + $schemaValue + ' === undefined || ' + $schemaValueExcl + ' ' + $op + '= ' + $schemaValue + ') ? ' + $data + ' ' + $notOp + '= ' + $schemaValueExcl + ' : ' + $data + ' ' + $notOp + ' ' + $schemaValue + ' ) : ( (' + $exclusive + ' = ' + $schemaValueExcl + ' === true) ? ' + $data + ' ' + $notOp + '= ' + $schemaValue + ' : ' + $data + ' ' + $notOp + ' ' + $schemaValue + ' ) || ' + $data + ' !== ' + $data + ') { var op' + $lvl + ' = ' + $exclusive + ' ? \\'' + $op + '\\' : \\'' + $op + '=\\'; ';\n\n    if ($schema === undefined) {\n      $errorKeyword = $exclusiveKeyword;\n      $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n      $schemaValue = $schemaValueExcl;\n      $isData = $isDataExcl;\n    }\n  } else {\n    var $exclIsNumber = typeof $schemaExcl == 'number',\n        $opStr = $op;\n\n    if ($exclIsNumber && $isData) {\n      var $opExpr = '\\'' + $opStr + '\\'';\n      out += ' if ( ';\n\n      if ($isData) {\n        out += ' (' + $schemaValue + ' !== undefined && typeof ' + $schemaValue + ' != \\'number\\') || ';\n      }\n\n      out += ' ( ' + $schemaValue + ' === undefined || ' + $schemaExcl + ' ' + $op + '= ' + $schemaValue + ' ? ' + $data + ' ' + $notOp + '= ' + $schemaExcl + ' : ' + $data + ' ' + $notOp + ' ' + $schemaValue + ' ) || ' + $data + ' !== ' + $data + ') { ';\n    } else {\n      if ($exclIsNumber && $schema === undefined) {\n        $exclusive = true;\n        $errorKeyword = $exclusiveKeyword;\n        $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n        $schemaValue = $schemaExcl;\n        $notOp += '=';\n      } else {\n        if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n\n        if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n          $exclusive = true;\n          $errorKeyword = $exclusiveKeyword;\n          $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n          $notOp += '=';\n        } else {\n          $exclusive = false;\n          $opStr += '=';\n        }\n      }\n\n      var $opExpr = '\\'' + $opStr + '\\'';\n      out += ' if ( ';\n\n      if ($isData) {\n        out += ' (' + $schemaValue + ' !== undefined && typeof ' + $schemaValue + ' != \\'number\\') || ';\n      }\n\n      out += ' ' + $data + ' ' + $notOp + ' ' + $schemaValue + ' || ' + $data + ' !== ' + $data + ') { ';\n    }\n  }\n\n  $errorKeyword = $errorKeyword || $keyword;\n  var $$outStack = $$outStack || [];\n  $$outStack.push(out);\n  out = '';\n  /* istanbul ignore else */\n\n  if (it.createErrors !== false) {\n    out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { comparison: ' + $opExpr + ', limit: ' + $schemaValue + ', exclusive: ' + $exclusive + ' } ';\n\n    if (it.opts.messages !== false) {\n      out += ' , message: \\'should be ' + $opStr + ' ';\n\n      if ($isData) {\n        out += '\\' + ' + $schemaValue;\n      } else {\n        out += '' + $schemaValue + '\\'';\n      }\n    }\n\n    if (it.opts.verbose) {\n      out += ' , schema:  ';\n\n      if ($isData) {\n        out += 'validate.schema' + $schemaPath;\n      } else {\n        out += '' + $schema;\n      }\n\n      out += '         , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n    }\n\n    out += ' } ';\n  } else {\n    out += ' {} ';\n  }\n\n  var __err = out;\n  out = $$outStack.pop();\n\n  if (!it.compositeRule && $breakOnError) {\n    /* istanbul ignore if */\n    if (it.async) {\n      out += ' throw new ValidationError([' + __err + ']); ';\n    } else {\n      out += ' validate.errors = [' + __err + ']; return false; ';\n    }\n  } else {\n    out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n  }\n\n  out += ' } ';\n\n  if ($breakOnError) {\n    out += ' else { ';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/_limit.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/_limitItems.js":
/*!***************************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/_limitItems.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $errorKeyword;\n  var $data = 'data' + ($dataLvl || '');\n  var $isData = it.opts.$data && $schema && $schema.$data,\n      $schemaValue;\n\n  if ($isData) {\n    out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n    $schemaValue = 'schema' + $lvl;\n  } else {\n    $schemaValue = $schema;\n  }\n\n  if (!($isData || typeof $schema == 'number')) {\n    throw new Error($keyword + ' must be number');\n  }\n\n  var $op = $keyword == 'maxItems' ? '>' : '<';\n  out += 'if ( ';\n\n  if ($isData) {\n    out += ' (' + $schemaValue + ' !== undefined && typeof ' + $schemaValue + ' != \\'number\\') || ';\n  }\n\n  out += ' ' + $data + '.length ' + $op + ' ' + $schemaValue + ') { ';\n  var $errorKeyword = $keyword;\n  var $$outStack = $$outStack || [];\n  $$outStack.push(out);\n  out = '';\n  /* istanbul ignore else */\n\n  if (it.createErrors !== false) {\n    out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { limit: ' + $schemaValue + ' } ';\n\n    if (it.opts.messages !== false) {\n      out += ' , message: \\'should NOT have ';\n\n      if ($keyword == 'maxItems') {\n        out += 'more';\n      } else {\n        out += 'fewer';\n      }\n\n      out += ' than ';\n\n      if ($isData) {\n        out += '\\' + ' + $schemaValue + ' + \\'';\n      } else {\n        out += '' + $schema;\n      }\n\n      out += ' items\\' ';\n    }\n\n    if (it.opts.verbose) {\n      out += ' , schema:  ';\n\n      if ($isData) {\n        out += 'validate.schema' + $schemaPath;\n      } else {\n        out += '' + $schema;\n      }\n\n      out += '         , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n    }\n\n    out += ' } ';\n  } else {\n    out += ' {} ';\n  }\n\n  var __err = out;\n  out = $$outStack.pop();\n\n  if (!it.compositeRule && $breakOnError) {\n    /* istanbul ignore if */\n    if (it.async) {\n      out += ' throw new ValidationError([' + __err + ']); ';\n    } else {\n      out += ' validate.errors = [' + __err + ']; return false; ';\n    }\n  } else {\n    out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n  }\n\n  out += '} ';\n\n  if ($breakOnError) {\n    out += ' else { ';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/_limitItems.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/_limitLength.js":
/*!****************************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/_limitLength.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $errorKeyword;\n  var $data = 'data' + ($dataLvl || '');\n  var $isData = it.opts.$data && $schema && $schema.$data,\n      $schemaValue;\n\n  if ($isData) {\n    out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n    $schemaValue = 'schema' + $lvl;\n  } else {\n    $schemaValue = $schema;\n  }\n\n  if (!($isData || typeof $schema == 'number')) {\n    throw new Error($keyword + ' must be number');\n  }\n\n  var $op = $keyword == 'maxLength' ? '>' : '<';\n  out += 'if ( ';\n\n  if ($isData) {\n    out += ' (' + $schemaValue + ' !== undefined && typeof ' + $schemaValue + ' != \\'number\\') || ';\n  }\n\n  if (it.opts.unicode === false) {\n    out += ' ' + $data + '.length ';\n  } else {\n    out += ' ucs2length(' + $data + ') ';\n  }\n\n  out += ' ' + $op + ' ' + $schemaValue + ') { ';\n  var $errorKeyword = $keyword;\n  var $$outStack = $$outStack || [];\n  $$outStack.push(out);\n  out = '';\n  /* istanbul ignore else */\n\n  if (it.createErrors !== false) {\n    out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { limit: ' + $schemaValue + ' } ';\n\n    if (it.opts.messages !== false) {\n      out += ' , message: \\'should NOT be ';\n\n      if ($keyword == 'maxLength') {\n        out += 'longer';\n      } else {\n        out += 'shorter';\n      }\n\n      out += ' than ';\n\n      if ($isData) {\n        out += '\\' + ' + $schemaValue + ' + \\'';\n      } else {\n        out += '' + $schema;\n      }\n\n      out += ' characters\\' ';\n    }\n\n    if (it.opts.verbose) {\n      out += ' , schema:  ';\n\n      if ($isData) {\n        out += 'validate.schema' + $schemaPath;\n      } else {\n        out += '' + $schema;\n      }\n\n      out += '         , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n    }\n\n    out += ' } ';\n  } else {\n    out += ' {} ';\n  }\n\n  var __err = out;\n  out = $$outStack.pop();\n\n  if (!it.compositeRule && $breakOnError) {\n    /* istanbul ignore if */\n    if (it.async) {\n      out += ' throw new ValidationError([' + __err + ']); ';\n    } else {\n      out += ' validate.errors = [' + __err + ']; return false; ';\n    }\n  } else {\n    out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n  }\n\n  out += '} ';\n\n  if ($breakOnError) {\n    out += ' else { ';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/_limitLength.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/_limitProperties.js":
/*!********************************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/_limitProperties.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $errorKeyword;\n  var $data = 'data' + ($dataLvl || '');\n  var $isData = it.opts.$data && $schema && $schema.$data,\n      $schemaValue;\n\n  if ($isData) {\n    out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n    $schemaValue = 'schema' + $lvl;\n  } else {\n    $schemaValue = $schema;\n  }\n\n  if (!($isData || typeof $schema == 'number')) {\n    throw new Error($keyword + ' must be number');\n  }\n\n  var $op = $keyword == 'maxProperties' ? '>' : '<';\n  out += 'if ( ';\n\n  if ($isData) {\n    out += ' (' + $schemaValue + ' !== undefined && typeof ' + $schemaValue + ' != \\'number\\') || ';\n  }\n\n  out += ' Object.keys(' + $data + ').length ' + $op + ' ' + $schemaValue + ') { ';\n  var $errorKeyword = $keyword;\n  var $$outStack = $$outStack || [];\n  $$outStack.push(out);\n  out = '';\n  /* istanbul ignore else */\n\n  if (it.createErrors !== false) {\n    out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { limit: ' + $schemaValue + ' } ';\n\n    if (it.opts.messages !== false) {\n      out += ' , message: \\'should NOT have ';\n\n      if ($keyword == 'maxProperties') {\n        out += 'more';\n      } else {\n        out += 'fewer';\n      }\n\n      out += ' than ';\n\n      if ($isData) {\n        out += '\\' + ' + $schemaValue + ' + \\'';\n      } else {\n        out += '' + $schema;\n      }\n\n      out += ' properties\\' ';\n    }\n\n    if (it.opts.verbose) {\n      out += ' , schema:  ';\n\n      if ($isData) {\n        out += 'validate.schema' + $schemaPath;\n      } else {\n        out += '' + $schema;\n      }\n\n      out += '         , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n    }\n\n    out += ' } ';\n  } else {\n    out += ' {} ';\n  }\n\n  var __err = out;\n  out = $$outStack.pop();\n\n  if (!it.compositeRule && $breakOnError) {\n    /* istanbul ignore if */\n    if (it.async) {\n      out += ' throw new ValidationError([' + __err + ']); ';\n    } else {\n      out += ' validate.errors = [' + __err + ']; return false; ';\n    }\n  } else {\n    out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n  }\n\n  out += '} ';\n\n  if ($breakOnError) {\n    out += ' else { ';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/_limitProperties.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/allOf.js":
/*!*********************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/allOf.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $it = it.util.copy(it);\n  var $closingBraces = '';\n  $it.level++;\n  var $nextValid = 'valid' + $it.level;\n  var $currentBaseId = $it.baseId,\n      $allSchemasEmpty = true;\n  var arr1 = $schema;\n\n  if (arr1) {\n    var $sch,\n        $i = -1,\n        l1 = arr1.length - 1;\n\n    while ($i < l1) {\n      $sch = arr1[$i += 1];\n\n      if (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {\n        $allSchemasEmpty = false;\n        $it.schema = $sch;\n        $it.schemaPath = $schemaPath + '[' + $i + ']';\n        $it.errSchemaPath = $errSchemaPath + '/' + $i;\n        out += '  ' + it.validate($it) + ' ';\n        $it.baseId = $currentBaseId;\n\n        if ($breakOnError) {\n          out += ' if (' + $nextValid + ') { ';\n          $closingBraces += '}';\n        }\n      }\n    }\n  }\n\n  if ($breakOnError) {\n    if ($allSchemasEmpty) {\n      out += ' if (true) { ';\n    } else {\n      out += ' ' + $closingBraces.slice(0, -1) + ' ';\n    }\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/allOf.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/anyOf.js":
/*!*********************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/anyOf.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  var $errs = 'errs__' + $lvl;\n  var $it = it.util.copy(it);\n  var $closingBraces = '';\n  $it.level++;\n  var $nextValid = 'valid' + $it.level;\n  var $noEmptySchema = $schema.every(function ($sch) {\n    return it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all);\n  });\n\n  if ($noEmptySchema) {\n    var $currentBaseId = $it.baseId;\n    out += ' var ' + $errs + ' = errors; var ' + $valid + ' = false;  ';\n    var $wasComposite = it.compositeRule;\n    it.compositeRule = $it.compositeRule = true;\n    var arr1 = $schema;\n\n    if (arr1) {\n      var $sch,\n          $i = -1,\n          l1 = arr1.length - 1;\n\n      while ($i < l1) {\n        $sch = arr1[$i += 1];\n        $it.schema = $sch;\n        $it.schemaPath = $schemaPath + '[' + $i + ']';\n        $it.errSchemaPath = $errSchemaPath + '/' + $i;\n        out += '  ' + it.validate($it) + ' ';\n        $it.baseId = $currentBaseId;\n        out += ' ' + $valid + ' = ' + $valid + ' || ' + $nextValid + '; if (!' + $valid + ') { ';\n        $closingBraces += '}';\n      }\n    }\n\n    it.compositeRule = $it.compositeRule = $wasComposite;\n    out += ' ' + $closingBraces + ' if (!' + $valid + ') {   var err =   ';\n    /* istanbul ignore else */\n\n    if (it.createErrors !== false) {\n      out += ' { keyword: \\'' + 'anyOf' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: {} ';\n\n      if (it.opts.messages !== false) {\n        out += ' , message: \\'should match some schema in anyOf\\' ';\n      }\n\n      if (it.opts.verbose) {\n        out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n      }\n\n      out += ' } ';\n    } else {\n      out += ' {} ';\n    }\n\n    out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\n    if (!it.compositeRule && $breakOnError) {\n      /* istanbul ignore if */\n      if (it.async) {\n        out += ' throw new ValidationError(vErrors); ';\n      } else {\n        out += ' validate.errors = vErrors; return false; ';\n      }\n    }\n\n    out += ' } else {  errors = ' + $errs + '; if (vErrors !== null) { if (' + $errs + ') vErrors.length = ' + $errs + '; else vErrors = null; } ';\n\n    if (it.opts.allErrors) {\n      out += ' } ';\n    }\n  } else {\n    if ($breakOnError) {\n      out += ' if (true) { ';\n    }\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/anyOf.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/comment.js":
/*!***********************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/comment.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $schema = it.schema[$keyword];\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $comment = it.util.toQuotedString($schema);\n\n  if (it.opts.$comment === true) {\n    out += ' console.log(' + $comment + ');';\n  } else if (typeof it.opts.$comment == 'function') {\n    out += ' self._opts.$comment(' + $comment + ', ' + it.util.toQuotedString($errSchemaPath) + ', validate.root.schema);';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/comment.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/const.js":
/*!*********************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/const.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  var $isData = it.opts.$data && $schema && $schema.$data,\n      $schemaValue;\n\n  if ($isData) {\n    out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n    $schemaValue = 'schema' + $lvl;\n  } else {\n    $schemaValue = $schema;\n  }\n\n  if (!$isData) {\n    out += ' var schema' + $lvl + ' = validate.schema' + $schemaPath + ';';\n  }\n\n  out += 'var ' + $valid + ' = equal(' + $data + ', schema' + $lvl + '); if (!' + $valid + ') {   ';\n  var $$outStack = $$outStack || [];\n  $$outStack.push(out);\n  out = '';\n  /* istanbul ignore else */\n\n  if (it.createErrors !== false) {\n    out += ' { keyword: \\'' + 'const' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { allowedValue: schema' + $lvl + ' } ';\n\n    if (it.opts.messages !== false) {\n      out += ' , message: \\'should be equal to constant\\' ';\n    }\n\n    if (it.opts.verbose) {\n      out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n    }\n\n    out += ' } ';\n  } else {\n    out += ' {} ';\n  }\n\n  var __err = out;\n  out = $$outStack.pop();\n\n  if (!it.compositeRule && $breakOnError) {\n    /* istanbul ignore if */\n    if (it.async) {\n      out += ' throw new ValidationError([' + __err + ']); ';\n    } else {\n      out += ' validate.errors = [' + __err + ']; return false; ';\n    }\n  } else {\n    out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n  }\n\n  out += ' }';\n\n  if ($breakOnError) {\n    out += ' else { ';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/const.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/contains.js":
/*!************************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/contains.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  var $errs = 'errs__' + $lvl;\n  var $it = it.util.copy(it);\n  var $closingBraces = '';\n  $it.level++;\n  var $nextValid = 'valid' + $it.level;\n  var $idx = 'i' + $lvl,\n      $dataNxt = $it.dataLevel = it.dataLevel + 1,\n      $nextData = 'data' + $dataNxt,\n      $currentBaseId = it.baseId,\n      $nonEmptySchema = it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 || $schema === false : it.util.schemaHasRules($schema, it.RULES.all);\n  out += 'var ' + $errs + ' = errors;var ' + $valid + ';';\n\n  if ($nonEmptySchema) {\n    var $wasComposite = it.compositeRule;\n    it.compositeRule = $it.compositeRule = true;\n    $it.schema = $schema;\n    $it.schemaPath = $schemaPath;\n    $it.errSchemaPath = $errSchemaPath;\n    out += ' var ' + $nextValid + ' = false; for (var ' + $idx + ' = 0; ' + $idx + ' < ' + $data + '.length; ' + $idx + '++) { ';\n    $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n    var $passData = $data + '[' + $idx + ']';\n    $it.dataPathArr[$dataNxt] = $idx;\n    var $code = it.validate($it);\n    $it.baseId = $currentBaseId;\n\n    if (it.util.varOccurences($code, $nextData) < 2) {\n      out += ' ' + it.util.varReplace($code, $nextData, $passData) + ' ';\n    } else {\n      out += ' var ' + $nextData + ' = ' + $passData + '; ' + $code + ' ';\n    }\n\n    out += ' if (' + $nextValid + ') break; }  ';\n    it.compositeRule = $it.compositeRule = $wasComposite;\n    out += ' ' + $closingBraces + ' if (!' + $nextValid + ') {';\n  } else {\n    out += ' if (' + $data + '.length == 0) {';\n  }\n\n  var $$outStack = $$outStack || [];\n  $$outStack.push(out);\n  out = '';\n  /* istanbul ignore else */\n\n  if (it.createErrors !== false) {\n    out += ' { keyword: \\'' + 'contains' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: {} ';\n\n    if (it.opts.messages !== false) {\n      out += ' , message: \\'should contain a valid item\\' ';\n    }\n\n    if (it.opts.verbose) {\n      out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n    }\n\n    out += ' } ';\n  } else {\n    out += ' {} ';\n  }\n\n  var __err = out;\n  out = $$outStack.pop();\n\n  if (!it.compositeRule && $breakOnError) {\n    /* istanbul ignore if */\n    if (it.async) {\n      out += ' throw new ValidationError([' + __err + ']); ';\n    } else {\n      out += ' validate.errors = [' + __err + ']; return false; ';\n    }\n  } else {\n    out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n  }\n\n  out += ' } else { ';\n\n  if ($nonEmptySchema) {\n    out += '  errors = ' + $errs + '; if (vErrors !== null) { if (' + $errs + ') vErrors.length = ' + $errs + '; else vErrors = null; } ';\n  }\n\n  if (it.opts.allErrors) {\n    out += ' } ';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/contains.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/custom.js":
/*!**********************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/custom.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $errorKeyword;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  var $errs = 'errs__' + $lvl;\n  var $isData = it.opts.$data && $schema && $schema.$data,\n      $schemaValue;\n\n  if ($isData) {\n    out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n    $schemaValue = 'schema' + $lvl;\n  } else {\n    $schemaValue = $schema;\n  }\n\n  var $rule = this,\n      $definition = 'definition' + $lvl,\n      $rDef = $rule.definition,\n      $closingBraces = '';\n  var $compile, $inline, $macro, $ruleValidate, $validateCode;\n\n  if ($isData && $rDef.$data) {\n    $validateCode = 'keywordValidate' + $lvl;\n    var $validateSchema = $rDef.validateSchema;\n    out += ' var ' + $definition + ' = RULES.custom[\\'' + $keyword + '\\'].definition; var ' + $validateCode + ' = ' + $definition + '.validate;';\n  } else {\n    $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n    if (!$ruleValidate) return;\n    $schemaValue = 'validate.schema' + $schemaPath;\n    $validateCode = $ruleValidate.code;\n    $compile = $rDef.compile;\n    $inline = $rDef.inline;\n    $macro = $rDef.macro;\n  }\n\n  var $ruleErrs = $validateCode + '.errors',\n      $i = 'i' + $lvl,\n      $ruleErr = 'ruleErr' + $lvl,\n      $asyncKeyword = $rDef.async;\n  if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n\n  if (!($inline || $macro)) {\n    out += '' + $ruleErrs + ' = null;';\n  }\n\n  out += 'var ' + $errs + ' = errors;var ' + $valid + ';';\n\n  if ($isData && $rDef.$data) {\n    $closingBraces += '}';\n    out += ' if (' + $schemaValue + ' === undefined) { ' + $valid + ' = true; } else { ';\n\n    if ($validateSchema) {\n      $closingBraces += '}';\n      out += ' ' + $valid + ' = ' + $definition + '.validateSchema(' + $schemaValue + '); if (' + $valid + ') { ';\n    }\n  }\n\n  if ($inline) {\n    if ($rDef.statements) {\n      out += ' ' + $ruleValidate.validate + ' ';\n    } else {\n      out += ' ' + $valid + ' = ' + $ruleValidate.validate + '; ';\n    }\n  } else if ($macro) {\n    var $it = it.util.copy(it);\n    var $closingBraces = '';\n    $it.level++;\n    var $nextValid = 'valid' + $it.level;\n    $it.schema = $ruleValidate.validate;\n    $it.schemaPath = '';\n    var $wasComposite = it.compositeRule;\n    it.compositeRule = $it.compositeRule = true;\n    var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n    it.compositeRule = $it.compositeRule = $wasComposite;\n    out += ' ' + $code;\n  } else {\n    var $$outStack = $$outStack || [];\n    $$outStack.push(out);\n    out = '';\n    out += '  ' + $validateCode + '.call( ';\n\n    if (it.opts.passContext) {\n      out += 'this';\n    } else {\n      out += 'self';\n    }\n\n    if ($compile || $rDef.schema === false) {\n      out += ' , ' + $data + ' ';\n    } else {\n      out += ' , ' + $schemaValue + ' , ' + $data + ' , validate.schema' + it.schemaPath + ' ';\n    }\n\n    out += ' , (dataPath || \\'\\')';\n\n    if (it.errorPath != '\"\"') {\n      out += ' + ' + it.errorPath;\n    }\n\n    var $parentData = $dataLvl ? 'data' + ($dataLvl - 1 || '') : 'parentData',\n        $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n    out += ' , ' + $parentData + ' , ' + $parentDataProperty + ' , rootData )  ';\n    var def_callRuleValidate = out;\n    out = $$outStack.pop();\n\n    if ($rDef.errors === false) {\n      out += ' ' + $valid + ' = ';\n\n      if ($asyncKeyword) {\n        out += 'await ';\n      }\n\n      out += '' + def_callRuleValidate + '; ';\n    } else {\n      if ($asyncKeyword) {\n        $ruleErrs = 'customErrors' + $lvl;\n        out += ' var ' + $ruleErrs + ' = null; try { ' + $valid + ' = await ' + def_callRuleValidate + '; } catch (e) { ' + $valid + ' = false; if (e instanceof ValidationError) ' + $ruleErrs + ' = e.errors; else throw e; } ';\n      } else {\n        out += ' ' + $ruleErrs + ' = null; ' + $valid + ' = ' + def_callRuleValidate + '; ';\n      }\n    }\n  }\n\n  if ($rDef.modifying) {\n    out += ' if (' + $parentData + ') ' + $data + ' = ' + $parentData + '[' + $parentDataProperty + '];';\n  }\n\n  out += '' + $closingBraces;\n\n  if ($rDef.valid) {\n    if ($breakOnError) {\n      out += ' if (true) { ';\n    }\n  } else {\n    out += ' if ( ';\n\n    if ($rDef.valid === undefined) {\n      out += ' !';\n\n      if ($macro) {\n        out += '' + $nextValid;\n      } else {\n        out += '' + $valid;\n      }\n    } else {\n      out += ' ' + !$rDef.valid + ' ';\n    }\n\n    out += ') { ';\n    $errorKeyword = $rule.keyword;\n    var $$outStack = $$outStack || [];\n    $$outStack.push(out);\n    out = '';\n    var $$outStack = $$outStack || [];\n    $$outStack.push(out);\n    out = '';\n    /* istanbul ignore else */\n\n    if (it.createErrors !== false) {\n      out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { keyword: \\'' + $rule.keyword + '\\' } ';\n\n      if (it.opts.messages !== false) {\n        out += ' , message: \\'should pass \"' + $rule.keyword + '\" keyword validation\\' ';\n      }\n\n      if (it.opts.verbose) {\n        out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n      }\n\n      out += ' } ';\n    } else {\n      out += ' {} ';\n    }\n\n    var __err = out;\n    out = $$outStack.pop();\n\n    if (!it.compositeRule && $breakOnError) {\n      /* istanbul ignore if */\n      if (it.async) {\n        out += ' throw new ValidationError([' + __err + ']); ';\n      } else {\n        out += ' validate.errors = [' + __err + ']; return false; ';\n      }\n    } else {\n      out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n    }\n\n    var def_customError = out;\n    out = $$outStack.pop();\n\n    if ($inline) {\n      if ($rDef.errors) {\n        if ($rDef.errors != 'full') {\n          out += '  for (var ' + $i + '=' + $errs + '; ' + $i + '<errors; ' + $i + '++) { var ' + $ruleErr + ' = vErrors[' + $i + ']; if (' + $ruleErr + '.dataPath === undefined) ' + $ruleErr + '.dataPath = (dataPath || \\'\\') + ' + it.errorPath + '; if (' + $ruleErr + '.schemaPath === undefined) { ' + $ruleErr + '.schemaPath = \"' + $errSchemaPath + '\"; } ';\n\n          if (it.opts.verbose) {\n            out += ' ' + $ruleErr + '.schema = ' + $schemaValue + '; ' + $ruleErr + '.data = ' + $data + '; ';\n          }\n\n          out += ' } ';\n        }\n      } else {\n        if ($rDef.errors === false) {\n          out += ' ' + def_customError + ' ';\n        } else {\n          out += ' if (' + $errs + ' == errors) { ' + def_customError + ' } else {  for (var ' + $i + '=' + $errs + '; ' + $i + '<errors; ' + $i + '++) { var ' + $ruleErr + ' = vErrors[' + $i + ']; if (' + $ruleErr + '.dataPath === undefined) ' + $ruleErr + '.dataPath = (dataPath || \\'\\') + ' + it.errorPath + '; if (' + $ruleErr + '.schemaPath === undefined) { ' + $ruleErr + '.schemaPath = \"' + $errSchemaPath + '\"; } ';\n\n          if (it.opts.verbose) {\n            out += ' ' + $ruleErr + '.schema = ' + $schemaValue + '; ' + $ruleErr + '.data = ' + $data + '; ';\n          }\n\n          out += ' } } ';\n        }\n      }\n    } else if ($macro) {\n      out += '   var err =   ';\n      /* istanbul ignore else */\n\n      if (it.createErrors !== false) {\n        out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { keyword: \\'' + $rule.keyword + '\\' } ';\n\n        if (it.opts.messages !== false) {\n          out += ' , message: \\'should pass \"' + $rule.keyword + '\" keyword validation\\' ';\n        }\n\n        if (it.opts.verbose) {\n          out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n        }\n\n        out += ' } ';\n      } else {\n        out += ' {} ';\n      }\n\n      out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\n      if (!it.compositeRule && $breakOnError) {\n        /* istanbul ignore if */\n        if (it.async) {\n          out += ' throw new ValidationError(vErrors); ';\n        } else {\n          out += ' validate.errors = vErrors; return false; ';\n        }\n      }\n    } else {\n      if ($rDef.errors === false) {\n        out += ' ' + def_customError + ' ';\n      } else {\n        out += ' if (Array.isArray(' + $ruleErrs + ')) { if (vErrors === null) vErrors = ' + $ruleErrs + '; else vErrors = vErrors.concat(' + $ruleErrs + '); errors = vErrors.length;  for (var ' + $i + '=' + $errs + '; ' + $i + '<errors; ' + $i + '++) { var ' + $ruleErr + ' = vErrors[' + $i + ']; if (' + $ruleErr + '.dataPath === undefined) ' + $ruleErr + '.dataPath = (dataPath || \\'\\') + ' + it.errorPath + ';  ' + $ruleErr + '.schemaPath = \"' + $errSchemaPath + '\";  ';\n\n        if (it.opts.verbose) {\n          out += ' ' + $ruleErr + '.schema = ' + $schemaValue + '; ' + $ruleErr + '.data = ' + $data + '; ';\n        }\n\n        out += ' } } else { ' + def_customError + ' } ';\n      }\n    }\n\n    out += ' } ';\n\n    if ($breakOnError) {\n      out += ' else { ';\n    }\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/custom.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/dependencies.js":
/*!****************************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/dependencies.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $errs = 'errs__' + $lvl;\n  var $it = it.util.copy(it);\n  var $closingBraces = '';\n  $it.level++;\n  var $nextValid = 'valid' + $it.level;\n  var $schemaDeps = {},\n      $propertyDeps = {},\n      $ownProperties = it.opts.ownProperties;\n\n  for ($property in $schema) {\n    if ($property == '__proto__') continue;\n    var $sch = $schema[$property];\n    var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n    $deps[$property] = $sch;\n  }\n\n  out += 'var ' + $errs + ' = errors;';\n  var $currentErrorPath = it.errorPath;\n  out += 'var missing' + $lvl + ';';\n\n  for (var $property in $propertyDeps) {\n    $deps = $propertyDeps[$property];\n\n    if ($deps.length) {\n      out += ' if ( ' + $data + it.util.getProperty($property) + ' !== undefined ';\n\n      if ($ownProperties) {\n        out += ' && Object.prototype.hasOwnProperty.call(' + $data + ', \\'' + it.util.escapeQuotes($property) + '\\') ';\n      }\n\n      if ($breakOnError) {\n        out += ' && ( ';\n        var arr1 = $deps;\n\n        if (arr1) {\n          var $propertyKey,\n              $i = -1,\n              l1 = arr1.length - 1;\n\n          while ($i < l1) {\n            $propertyKey = arr1[$i += 1];\n\n            if ($i) {\n              out += ' || ';\n            }\n\n            var $prop = it.util.getProperty($propertyKey),\n                $useData = $data + $prop;\n            out += ' ( ( ' + $useData + ' === undefined ';\n\n            if ($ownProperties) {\n              out += ' || ! Object.prototype.hasOwnProperty.call(' + $data + ', \\'' + it.util.escapeQuotes($propertyKey) + '\\') ';\n            }\n\n            out += ') && (missing' + $lvl + ' = ' + it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop) + ') ) ';\n          }\n        }\n\n        out += ')) {  ';\n        var $propertyPath = 'missing' + $lvl,\n            $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n\n        if (it.opts._errorDataPathProperty) {\n          it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n        }\n\n        var $$outStack = $$outStack || [];\n        $$outStack.push(out);\n        out = '';\n        /* istanbul ignore else */\n\n        if (it.createErrors !== false) {\n          out += ' { keyword: \\'' + 'dependencies' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { property: \\'' + it.util.escapeQuotes($property) + '\\', missingProperty: \\'' + $missingProperty + '\\', depsCount: ' + $deps.length + ', deps: \\'' + it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \")) + '\\' } ';\n\n          if (it.opts.messages !== false) {\n            out += ' , message: \\'should have ';\n\n            if ($deps.length == 1) {\n              out += 'property ' + it.util.escapeQuotes($deps[0]);\n            } else {\n              out += 'properties ' + it.util.escapeQuotes($deps.join(\", \"));\n            }\n\n            out += ' when property ' + it.util.escapeQuotes($property) + ' is present\\' ';\n          }\n\n          if (it.opts.verbose) {\n            out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n          }\n\n          out += ' } ';\n        } else {\n          out += ' {} ';\n        }\n\n        var __err = out;\n        out = $$outStack.pop();\n\n        if (!it.compositeRule && $breakOnError) {\n          /* istanbul ignore if */\n          if (it.async) {\n            out += ' throw new ValidationError([' + __err + ']); ';\n          } else {\n            out += ' validate.errors = [' + __err + ']; return false; ';\n          }\n        } else {\n          out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n        }\n      } else {\n        out += ' ) { ';\n        var arr2 = $deps;\n\n        if (arr2) {\n          var $propertyKey,\n              i2 = -1,\n              l2 = arr2.length - 1;\n\n          while (i2 < l2) {\n            $propertyKey = arr2[i2 += 1];\n            var $prop = it.util.getProperty($propertyKey),\n                $missingProperty = it.util.escapeQuotes($propertyKey),\n                $useData = $data + $prop;\n\n            if (it.opts._errorDataPathProperty) {\n              it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n            }\n\n            out += ' if ( ' + $useData + ' === undefined ';\n\n            if ($ownProperties) {\n              out += ' || ! Object.prototype.hasOwnProperty.call(' + $data + ', \\'' + it.util.escapeQuotes($propertyKey) + '\\') ';\n            }\n\n            out += ') {  var err =   ';\n            /* istanbul ignore else */\n\n            if (it.createErrors !== false) {\n              out += ' { keyword: \\'' + 'dependencies' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { property: \\'' + it.util.escapeQuotes($property) + '\\', missingProperty: \\'' + $missingProperty + '\\', depsCount: ' + $deps.length + ', deps: \\'' + it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \")) + '\\' } ';\n\n              if (it.opts.messages !== false) {\n                out += ' , message: \\'should have ';\n\n                if ($deps.length == 1) {\n                  out += 'property ' + it.util.escapeQuotes($deps[0]);\n                } else {\n                  out += 'properties ' + it.util.escapeQuotes($deps.join(\", \"));\n                }\n\n                out += ' when property ' + it.util.escapeQuotes($property) + ' is present\\' ';\n              }\n\n              if (it.opts.verbose) {\n                out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n              }\n\n              out += ' } ';\n            } else {\n              out += ' {} ';\n            }\n\n            out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n          }\n        }\n      }\n\n      out += ' }   ';\n\n      if ($breakOnError) {\n        $closingBraces += '}';\n        out += ' else { ';\n      }\n    }\n  }\n\n  it.errorPath = $currentErrorPath;\n  var $currentBaseId = $it.baseId;\n\n  for (var $property in $schemaDeps) {\n    var $sch = $schemaDeps[$property];\n\n    if (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {\n      out += ' ' + $nextValid + ' = true; if ( ' + $data + it.util.getProperty($property) + ' !== undefined ';\n\n      if ($ownProperties) {\n        out += ' && Object.prototype.hasOwnProperty.call(' + $data + ', \\'' + it.util.escapeQuotes($property) + '\\') ';\n      }\n\n      out += ') { ';\n      $it.schema = $sch;\n      $it.schemaPath = $schemaPath + it.util.getProperty($property);\n      $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n      out += '  ' + it.validate($it) + ' ';\n      $it.baseId = $currentBaseId;\n      out += ' }  ';\n\n      if ($breakOnError) {\n        out += ' if (' + $nextValid + ') { ';\n        $closingBraces += '}';\n      }\n    }\n  }\n\n  if ($breakOnError) {\n    out += '   ' + $closingBraces + ' if (' + $errs + ' == errors) {';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/dependencies.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/enum.js":
/*!********************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/enum.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  var $isData = it.opts.$data && $schema && $schema.$data,\n      $schemaValue;\n\n  if ($isData) {\n    out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n    $schemaValue = 'schema' + $lvl;\n  } else {\n    $schemaValue = $schema;\n  }\n\n  var $i = 'i' + $lvl,\n      $vSchema = 'schema' + $lvl;\n\n  if (!$isData) {\n    out += ' var ' + $vSchema + ' = validate.schema' + $schemaPath + ';';\n  }\n\n  out += 'var ' + $valid + ';';\n\n  if ($isData) {\n    out += ' if (schema' + $lvl + ' === undefined) ' + $valid + ' = true; else if (!Array.isArray(schema' + $lvl + ')) ' + $valid + ' = false; else {';\n  }\n\n  out += '' + $valid + ' = false;for (var ' + $i + '=0; ' + $i + '<' + $vSchema + '.length; ' + $i + '++) if (equal(' + $data + ', ' + $vSchema + '[' + $i + '])) { ' + $valid + ' = true; break; }';\n\n  if ($isData) {\n    out += '  }  ';\n  }\n\n  out += ' if (!' + $valid + ') {   ';\n  var $$outStack = $$outStack || [];\n  $$outStack.push(out);\n  out = '';\n  /* istanbul ignore else */\n\n  if (it.createErrors !== false) {\n    out += ' { keyword: \\'' + 'enum' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { allowedValues: schema' + $lvl + ' } ';\n\n    if (it.opts.messages !== false) {\n      out += ' , message: \\'should be equal to one of the allowed values\\' ';\n    }\n\n    if (it.opts.verbose) {\n      out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n    }\n\n    out += ' } ';\n  } else {\n    out += ' {} ';\n  }\n\n  var __err = out;\n  out = $$outStack.pop();\n\n  if (!it.compositeRule && $breakOnError) {\n    /* istanbul ignore if */\n    if (it.async) {\n      out += ' throw new ValidationError([' + __err + ']); ';\n    } else {\n      out += ' validate.errors = [' + __err + ']; return false; ';\n    }\n  } else {\n    out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n  }\n\n  out += ' }';\n\n  if ($breakOnError) {\n    out += ' else { ';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/enum.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/format.js":
/*!**********************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/format.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n\n  if (it.opts.format === false) {\n    if ($breakOnError) {\n      out += ' if (true) { ';\n    }\n\n    return out;\n  }\n\n  var $isData = it.opts.$data && $schema && $schema.$data,\n      $schemaValue;\n\n  if ($isData) {\n    out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n    $schemaValue = 'schema' + $lvl;\n  } else {\n    $schemaValue = $schema;\n  }\n\n  var $unknownFormats = it.opts.unknownFormats,\n      $allowUnknown = Array.isArray($unknownFormats);\n\n  if ($isData) {\n    var $format = 'format' + $lvl,\n        $isObject = 'isObject' + $lvl,\n        $formatType = 'formatType' + $lvl;\n    out += ' var ' + $format + ' = formats[' + $schemaValue + ']; var ' + $isObject + ' = typeof ' + $format + ' == \\'object\\' && !(' + $format + ' instanceof RegExp) && ' + $format + '.validate; var ' + $formatType + ' = ' + $isObject + ' && ' + $format + '.type || \\'string\\'; if (' + $isObject + ') { ';\n\n    if (it.async) {\n      out += ' var async' + $lvl + ' = ' + $format + '.async; ';\n    }\n\n    out += ' ' + $format + ' = ' + $format + '.validate; } if (  ';\n\n    if ($isData) {\n      out += ' (' + $schemaValue + ' !== undefined && typeof ' + $schemaValue + ' != \\'string\\') || ';\n    }\n\n    out += ' (';\n\n    if ($unknownFormats != 'ignore') {\n      out += ' (' + $schemaValue + ' && !' + $format + ' ';\n\n      if ($allowUnknown) {\n        out += ' && self._opts.unknownFormats.indexOf(' + $schemaValue + ') == -1 ';\n      }\n\n      out += ') || ';\n    }\n\n    out += ' (' + $format + ' && ' + $formatType + ' == \\'' + $ruleType + '\\' && !(typeof ' + $format + ' == \\'function\\' ? ';\n\n    if (it.async) {\n      out += ' (async' + $lvl + ' ? await ' + $format + '(' + $data + ') : ' + $format + '(' + $data + ')) ';\n    } else {\n      out += ' ' + $format + '(' + $data + ') ';\n    }\n\n    out += ' : ' + $format + '.test(' + $data + '))))) {';\n  } else {\n    var $format = it.formats[$schema];\n\n    if (!$format) {\n      if ($unknownFormats == 'ignore') {\n        it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n\n        if ($breakOnError) {\n          out += ' if (true) { ';\n        }\n\n        return out;\n      } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n        if ($breakOnError) {\n          out += ' if (true) { ';\n        }\n\n        return out;\n      } else {\n        throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n      }\n    }\n\n    var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n    var $formatType = $isObject && $format.type || 'string';\n\n    if ($isObject) {\n      var $async = $format.async === true;\n      $format = $format.validate;\n    }\n\n    if ($formatType != $ruleType) {\n      if ($breakOnError) {\n        out += ' if (true) { ';\n      }\n\n      return out;\n    }\n\n    if ($async) {\n      if (!it.async) throw new Error('async format in sync schema');\n      var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n      out += ' if (!(await ' + $formatRef + '(' + $data + '))) { ';\n    } else {\n      out += ' if (! ';\n      var $formatRef = 'formats' + it.util.getProperty($schema);\n      if ($isObject) $formatRef += '.validate';\n\n      if (typeof $format == 'function') {\n        out += ' ' + $formatRef + '(' + $data + ') ';\n      } else {\n        out += ' ' + $formatRef + '.test(' + $data + ') ';\n      }\n\n      out += ') { ';\n    }\n  }\n\n  var $$outStack = $$outStack || [];\n  $$outStack.push(out);\n  out = '';\n  /* istanbul ignore else */\n\n  if (it.createErrors !== false) {\n    out += ' { keyword: \\'' + 'format' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { format:  ';\n\n    if ($isData) {\n      out += '' + $schemaValue;\n    } else {\n      out += '' + it.util.toQuotedString($schema);\n    }\n\n    out += '  } ';\n\n    if (it.opts.messages !== false) {\n      out += ' , message: \\'should match format \"';\n\n      if ($isData) {\n        out += '\\' + ' + $schemaValue + ' + \\'';\n      } else {\n        out += '' + it.util.escapeQuotes($schema);\n      }\n\n      out += '\"\\' ';\n    }\n\n    if (it.opts.verbose) {\n      out += ' , schema:  ';\n\n      if ($isData) {\n        out += 'validate.schema' + $schemaPath;\n      } else {\n        out += '' + it.util.toQuotedString($schema);\n      }\n\n      out += '         , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n    }\n\n    out += ' } ';\n  } else {\n    out += ' {} ';\n  }\n\n  var __err = out;\n  out = $$outStack.pop();\n\n  if (!it.compositeRule && $breakOnError) {\n    /* istanbul ignore if */\n    if (it.async) {\n      out += ' throw new ValidationError([' + __err + ']); ';\n    } else {\n      out += ' validate.errors = [' + __err + ']; return false; ';\n    }\n  } else {\n    out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n  }\n\n  out += ' } ';\n\n  if ($breakOnError) {\n    out += ' else { ';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/format.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/if.js":
/*!******************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/if.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  var $errs = 'errs__' + $lvl;\n  var $it = it.util.copy(it);\n  $it.level++;\n  var $nextValid = 'valid' + $it.level;\n  var $thenSch = it.schema['then'],\n      $elseSch = it.schema['else'],\n      $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? typeof $thenSch == 'object' && Object.keys($thenSch).length > 0 || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n      $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? typeof $elseSch == 'object' && Object.keys($elseSch).length > 0 || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),\n      $currentBaseId = $it.baseId;\n\n  if ($thenPresent || $elsePresent) {\n    var $ifClause;\n    $it.createErrors = false;\n    $it.schema = $schema;\n    $it.schemaPath = $schemaPath;\n    $it.errSchemaPath = $errSchemaPath;\n    out += ' var ' + $errs + ' = errors; var ' + $valid + ' = true;  ';\n    var $wasComposite = it.compositeRule;\n    it.compositeRule = $it.compositeRule = true;\n    out += '  ' + it.validate($it) + ' ';\n    $it.baseId = $currentBaseId;\n    $it.createErrors = true;\n    out += '  errors = ' + $errs + '; if (vErrors !== null) { if (' + $errs + ') vErrors.length = ' + $errs + '; else vErrors = null; }  ';\n    it.compositeRule = $it.compositeRule = $wasComposite;\n\n    if ($thenPresent) {\n      out += ' if (' + $nextValid + ') {  ';\n      $it.schema = it.schema['then'];\n      $it.schemaPath = it.schemaPath + '.then';\n      $it.errSchemaPath = it.errSchemaPath + '/then';\n      out += '  ' + it.validate($it) + ' ';\n      $it.baseId = $currentBaseId;\n      out += ' ' + $valid + ' = ' + $nextValid + '; ';\n\n      if ($thenPresent && $elsePresent) {\n        $ifClause = 'ifClause' + $lvl;\n        out += ' var ' + $ifClause + ' = \\'then\\'; ';\n      } else {\n        $ifClause = '\\'then\\'';\n      }\n\n      out += ' } ';\n\n      if ($elsePresent) {\n        out += ' else { ';\n      }\n    } else {\n      out += ' if (!' + $nextValid + ') { ';\n    }\n\n    if ($elsePresent) {\n      $it.schema = it.schema['else'];\n      $it.schemaPath = it.schemaPath + '.else';\n      $it.errSchemaPath = it.errSchemaPath + '/else';\n      out += '  ' + it.validate($it) + ' ';\n      $it.baseId = $currentBaseId;\n      out += ' ' + $valid + ' = ' + $nextValid + '; ';\n\n      if ($thenPresent && $elsePresent) {\n        $ifClause = 'ifClause' + $lvl;\n        out += ' var ' + $ifClause + ' = \\'else\\'; ';\n      } else {\n        $ifClause = '\\'else\\'';\n      }\n\n      out += ' } ';\n    }\n\n    out += ' if (!' + $valid + ') {   var err =   ';\n    /* istanbul ignore else */\n\n    if (it.createErrors !== false) {\n      out += ' { keyword: \\'' + 'if' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { failingKeyword: ' + $ifClause + ' } ';\n\n      if (it.opts.messages !== false) {\n        out += ' , message: \\'should match \"\\' + ' + $ifClause + ' + \\'\" schema\\' ';\n      }\n\n      if (it.opts.verbose) {\n        out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n      }\n\n      out += ' } ';\n    } else {\n      out += ' {} ';\n    }\n\n    out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\n    if (!it.compositeRule && $breakOnError) {\n      /* istanbul ignore if */\n      if (it.async) {\n        out += ' throw new ValidationError(vErrors); ';\n      } else {\n        out += ' validate.errors = vErrors; return false; ';\n      }\n    }\n\n    out += ' }   ';\n\n    if ($breakOnError) {\n      out += ' else { ';\n    }\n  } else {\n    if ($breakOnError) {\n      out += ' if (true) { ';\n    }\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/if.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/index.js":
/*!*********************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/index.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval(" //all requires must be explicit because browserify won't work with dynamic requires\n\nmodule.exports = {\n  '$ref': __webpack_require__(/*! ./ref */ \"./node_modules/ajv/lib/dotjs/ref.js\"),\n  allOf: __webpack_require__(/*! ./allOf */ \"./node_modules/ajv/lib/dotjs/allOf.js\"),\n  anyOf: __webpack_require__(/*! ./anyOf */ \"./node_modules/ajv/lib/dotjs/anyOf.js\"),\n  '$comment': __webpack_require__(/*! ./comment */ \"./node_modules/ajv/lib/dotjs/comment.js\"),\n  const: __webpack_require__(/*! ./const */ \"./node_modules/ajv/lib/dotjs/const.js\"),\n  contains: __webpack_require__(/*! ./contains */ \"./node_modules/ajv/lib/dotjs/contains.js\"),\n  dependencies: __webpack_require__(/*! ./dependencies */ \"./node_modules/ajv/lib/dotjs/dependencies.js\"),\n  'enum': __webpack_require__(/*! ./enum */ \"./node_modules/ajv/lib/dotjs/enum.js\"),\n  format: __webpack_require__(/*! ./format */ \"./node_modules/ajv/lib/dotjs/format.js\"),\n  'if': __webpack_require__(/*! ./if */ \"./node_modules/ajv/lib/dotjs/if.js\"),\n  items: __webpack_require__(/*! ./items */ \"./node_modules/ajv/lib/dotjs/items.js\"),\n  maximum: __webpack_require__(/*! ./_limit */ \"./node_modules/ajv/lib/dotjs/_limit.js\"),\n  minimum: __webpack_require__(/*! ./_limit */ \"./node_modules/ajv/lib/dotjs/_limit.js\"),\n  maxItems: __webpack_require__(/*! ./_limitItems */ \"./node_modules/ajv/lib/dotjs/_limitItems.js\"),\n  minItems: __webpack_require__(/*! ./_limitItems */ \"./node_modules/ajv/lib/dotjs/_limitItems.js\"),\n  maxLength: __webpack_require__(/*! ./_limitLength */ \"./node_modules/ajv/lib/dotjs/_limitLength.js\"),\n  minLength: __webpack_require__(/*! ./_limitLength */ \"./node_modules/ajv/lib/dotjs/_limitLength.js\"),\n  maxProperties: __webpack_require__(/*! ./_limitProperties */ \"./node_modules/ajv/lib/dotjs/_limitProperties.js\"),\n  minProperties: __webpack_require__(/*! ./_limitProperties */ \"./node_modules/ajv/lib/dotjs/_limitProperties.js\"),\n  multipleOf: __webpack_require__(/*! ./multipleOf */ \"./node_modules/ajv/lib/dotjs/multipleOf.js\"),\n  not: __webpack_require__(/*! ./not */ \"./node_modules/ajv/lib/dotjs/not.js\"),\n  oneOf: __webpack_require__(/*! ./oneOf */ \"./node_modules/ajv/lib/dotjs/oneOf.js\"),\n  pattern: __webpack_require__(/*! ./pattern */ \"./node_modules/ajv/lib/dotjs/pattern.js\"),\n  properties: __webpack_require__(/*! ./properties */ \"./node_modules/ajv/lib/dotjs/properties.js\"),\n  propertyNames: __webpack_require__(/*! ./propertyNames */ \"./node_modules/ajv/lib/dotjs/propertyNames.js\"),\n  required: __webpack_require__(/*! ./required */ \"./node_modules/ajv/lib/dotjs/required.js\"),\n  uniqueItems: __webpack_require__(/*! ./uniqueItems */ \"./node_modules/ajv/lib/dotjs/uniqueItems.js\"),\n  validate: __webpack_require__(/*! ./validate */ \"./node_modules/ajv/lib/dotjs/validate.js\")\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/index.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/items.js":
/*!*********************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/items.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  var $errs = 'errs__' + $lvl;\n  var $it = it.util.copy(it);\n  var $closingBraces = '';\n  $it.level++;\n  var $nextValid = 'valid' + $it.level;\n  var $idx = 'i' + $lvl,\n      $dataNxt = $it.dataLevel = it.dataLevel + 1,\n      $nextData = 'data' + $dataNxt,\n      $currentBaseId = it.baseId;\n  out += 'var ' + $errs + ' = errors;var ' + $valid + ';';\n\n  if (Array.isArray($schema)) {\n    var $additionalItems = it.schema.additionalItems;\n\n    if ($additionalItems === false) {\n      out += ' ' + $valid + ' = ' + $data + '.length <= ' + $schema.length + '; ';\n      var $currErrSchemaPath = $errSchemaPath;\n      $errSchemaPath = it.errSchemaPath + '/additionalItems';\n      out += '  if (!' + $valid + ') {   ';\n      var $$outStack = $$outStack || [];\n      $$outStack.push(out);\n      out = '';\n      /* istanbul ignore else */\n\n      if (it.createErrors !== false) {\n        out += ' { keyword: \\'' + 'additionalItems' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { limit: ' + $schema.length + ' } ';\n\n        if (it.opts.messages !== false) {\n          out += ' , message: \\'should NOT have more than ' + $schema.length + ' items\\' ';\n        }\n\n        if (it.opts.verbose) {\n          out += ' , schema: false , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n        }\n\n        out += ' } ';\n      } else {\n        out += ' {} ';\n      }\n\n      var __err = out;\n      out = $$outStack.pop();\n\n      if (!it.compositeRule && $breakOnError) {\n        /* istanbul ignore if */\n        if (it.async) {\n          out += ' throw new ValidationError([' + __err + ']); ';\n        } else {\n          out += ' validate.errors = [' + __err + ']; return false; ';\n        }\n      } else {\n        out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n      }\n\n      out += ' } ';\n      $errSchemaPath = $currErrSchemaPath;\n\n      if ($breakOnError) {\n        $closingBraces += '}';\n        out += ' else { ';\n      }\n    }\n\n    var arr1 = $schema;\n\n    if (arr1) {\n      var $sch,\n          $i = -1,\n          l1 = arr1.length - 1;\n\n      while ($i < l1) {\n        $sch = arr1[$i += 1];\n\n        if (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {\n          out += ' ' + $nextValid + ' = true; if (' + $data + '.length > ' + $i + ') { ';\n          var $passData = $data + '[' + $i + ']';\n          $it.schema = $sch;\n          $it.schemaPath = $schemaPath + '[' + $i + ']';\n          $it.errSchemaPath = $errSchemaPath + '/' + $i;\n          $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n          $it.dataPathArr[$dataNxt] = $i;\n          var $code = it.validate($it);\n          $it.baseId = $currentBaseId;\n\n          if (it.util.varOccurences($code, $nextData) < 2) {\n            out += ' ' + it.util.varReplace($code, $nextData, $passData) + ' ';\n          } else {\n            out += ' var ' + $nextData + ' = ' + $passData + '; ' + $code + ' ';\n          }\n\n          out += ' }  ';\n\n          if ($breakOnError) {\n            out += ' if (' + $nextValid + ') { ';\n            $closingBraces += '}';\n          }\n        }\n      }\n    }\n\n    if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0 || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n      $it.schema = $additionalItems;\n      $it.schemaPath = it.schemaPath + '.additionalItems';\n      $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n      out += ' ' + $nextValid + ' = true; if (' + $data + '.length > ' + $schema.length + ') {  for (var ' + $idx + ' = ' + $schema.length + '; ' + $idx + ' < ' + $data + '.length; ' + $idx + '++) { ';\n      $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n      var $passData = $data + '[' + $idx + ']';\n      $it.dataPathArr[$dataNxt] = $idx;\n      var $code = it.validate($it);\n      $it.baseId = $currentBaseId;\n\n      if (it.util.varOccurences($code, $nextData) < 2) {\n        out += ' ' + it.util.varReplace($code, $nextData, $passData) + ' ';\n      } else {\n        out += ' var ' + $nextData + ' = ' + $passData + '; ' + $code + ' ';\n      }\n\n      if ($breakOnError) {\n        out += ' if (!' + $nextValid + ') break; ';\n      }\n\n      out += ' } }  ';\n\n      if ($breakOnError) {\n        out += ' if (' + $nextValid + ') { ';\n        $closingBraces += '}';\n      }\n    }\n  } else if (it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 || $schema === false : it.util.schemaHasRules($schema, it.RULES.all)) {\n    $it.schema = $schema;\n    $it.schemaPath = $schemaPath;\n    $it.errSchemaPath = $errSchemaPath;\n    out += '  for (var ' + $idx + ' = ' + 0 + '; ' + $idx + ' < ' + $data + '.length; ' + $idx + '++) { ';\n    $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n    var $passData = $data + '[' + $idx + ']';\n    $it.dataPathArr[$dataNxt] = $idx;\n    var $code = it.validate($it);\n    $it.baseId = $currentBaseId;\n\n    if (it.util.varOccurences($code, $nextData) < 2) {\n      out += ' ' + it.util.varReplace($code, $nextData, $passData) + ' ';\n    } else {\n      out += ' var ' + $nextData + ' = ' + $passData + '; ' + $code + ' ';\n    }\n\n    if ($breakOnError) {\n      out += ' if (!' + $nextValid + ') break; ';\n    }\n\n    out += ' }';\n  }\n\n  if ($breakOnError) {\n    out += ' ' + $closingBraces + ' if (' + $errs + ' == errors) {';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/items.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/multipleOf.js":
/*!**************************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/multipleOf.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $isData = it.opts.$data && $schema && $schema.$data,\n      $schemaValue;\n\n  if ($isData) {\n    out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n    $schemaValue = 'schema' + $lvl;\n  } else {\n    $schemaValue = $schema;\n  }\n\n  if (!($isData || typeof $schema == 'number')) {\n    throw new Error($keyword + ' must be number');\n  }\n\n  out += 'var division' + $lvl + ';if (';\n\n  if ($isData) {\n    out += ' ' + $schemaValue + ' !== undefined && ( typeof ' + $schemaValue + ' != \\'number\\' || ';\n  }\n\n  out += ' (division' + $lvl + ' = ' + $data + ' / ' + $schemaValue + ', ';\n\n  if (it.opts.multipleOfPrecision) {\n    out += ' Math.abs(Math.round(division' + $lvl + ') - division' + $lvl + ') > 1e-' + it.opts.multipleOfPrecision + ' ';\n  } else {\n    out += ' division' + $lvl + ' !== parseInt(division' + $lvl + ') ';\n  }\n\n  out += ' ) ';\n\n  if ($isData) {\n    out += '  )  ';\n  }\n\n  out += ' ) {   ';\n  var $$outStack = $$outStack || [];\n  $$outStack.push(out);\n  out = '';\n  /* istanbul ignore else */\n\n  if (it.createErrors !== false) {\n    out += ' { keyword: \\'' + 'multipleOf' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { multipleOf: ' + $schemaValue + ' } ';\n\n    if (it.opts.messages !== false) {\n      out += ' , message: \\'should be multiple of ';\n\n      if ($isData) {\n        out += '\\' + ' + $schemaValue;\n      } else {\n        out += '' + $schemaValue + '\\'';\n      }\n    }\n\n    if (it.opts.verbose) {\n      out += ' , schema:  ';\n\n      if ($isData) {\n        out += 'validate.schema' + $schemaPath;\n      } else {\n        out += '' + $schema;\n      }\n\n      out += '         , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n    }\n\n    out += ' } ';\n  } else {\n    out += ' {} ';\n  }\n\n  var __err = out;\n  out = $$outStack.pop();\n\n  if (!it.compositeRule && $breakOnError) {\n    /* istanbul ignore if */\n    if (it.async) {\n      out += ' throw new ValidationError([' + __err + ']); ';\n    } else {\n      out += ' validate.errors = [' + __err + ']; return false; ';\n    }\n  } else {\n    out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n  }\n\n  out += '} ';\n\n  if ($breakOnError) {\n    out += ' else { ';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/multipleOf.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/not.js":
/*!*******************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/not.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $errs = 'errs__' + $lvl;\n  var $it = it.util.copy(it);\n  $it.level++;\n  var $nextValid = 'valid' + $it.level;\n\n  if (it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 || $schema === false : it.util.schemaHasRules($schema, it.RULES.all)) {\n    $it.schema = $schema;\n    $it.schemaPath = $schemaPath;\n    $it.errSchemaPath = $errSchemaPath;\n    out += ' var ' + $errs + ' = errors;  ';\n    var $wasComposite = it.compositeRule;\n    it.compositeRule = $it.compositeRule = true;\n    $it.createErrors = false;\n    var $allErrorsOption;\n\n    if ($it.opts.allErrors) {\n      $allErrorsOption = $it.opts.allErrors;\n      $it.opts.allErrors = false;\n    }\n\n    out += ' ' + it.validate($it) + ' ';\n    $it.createErrors = true;\n    if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n    it.compositeRule = $it.compositeRule = $wasComposite;\n    out += ' if (' + $nextValid + ') {   ';\n    var $$outStack = $$outStack || [];\n    $$outStack.push(out);\n    out = '';\n    /* istanbul ignore else */\n\n    if (it.createErrors !== false) {\n      out += ' { keyword: \\'' + 'not' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: {} ';\n\n      if (it.opts.messages !== false) {\n        out += ' , message: \\'should NOT be valid\\' ';\n      }\n\n      if (it.opts.verbose) {\n        out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n      }\n\n      out += ' } ';\n    } else {\n      out += ' {} ';\n    }\n\n    var __err = out;\n    out = $$outStack.pop();\n\n    if (!it.compositeRule && $breakOnError) {\n      /* istanbul ignore if */\n      if (it.async) {\n        out += ' throw new ValidationError([' + __err + ']); ';\n      } else {\n        out += ' validate.errors = [' + __err + ']; return false; ';\n      }\n    } else {\n      out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n    }\n\n    out += ' } else {  errors = ' + $errs + '; if (vErrors !== null) { if (' + $errs + ') vErrors.length = ' + $errs + '; else vErrors = null; } ';\n\n    if (it.opts.allErrors) {\n      out += ' } ';\n    }\n  } else {\n    out += '  var err =   ';\n    /* istanbul ignore else */\n\n    if (it.createErrors !== false) {\n      out += ' { keyword: \\'' + 'not' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: {} ';\n\n      if (it.opts.messages !== false) {\n        out += ' , message: \\'should NOT be valid\\' ';\n      }\n\n      if (it.opts.verbose) {\n        out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n      }\n\n      out += ' } ';\n    } else {\n      out += ' {} ';\n    }\n\n    out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\n    if ($breakOnError) {\n      out += ' if (false) { ';\n    }\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/not.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/oneOf.js":
/*!*********************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/oneOf.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  var $errs = 'errs__' + $lvl;\n  var $it = it.util.copy(it);\n  var $closingBraces = '';\n  $it.level++;\n  var $nextValid = 'valid' + $it.level;\n  var $currentBaseId = $it.baseId,\n      $prevValid = 'prevValid' + $lvl,\n      $passingSchemas = 'passingSchemas' + $lvl;\n  out += 'var ' + $errs + ' = errors , ' + $prevValid + ' = false , ' + $valid + ' = false , ' + $passingSchemas + ' = null; ';\n  var $wasComposite = it.compositeRule;\n  it.compositeRule = $it.compositeRule = true;\n  var arr1 = $schema;\n\n  if (arr1) {\n    var $sch,\n        $i = -1,\n        l1 = arr1.length - 1;\n\n    while ($i < l1) {\n      $sch = arr1[$i += 1];\n\n      if (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {\n        $it.schema = $sch;\n        $it.schemaPath = $schemaPath + '[' + $i + ']';\n        $it.errSchemaPath = $errSchemaPath + '/' + $i;\n        out += '  ' + it.validate($it) + ' ';\n        $it.baseId = $currentBaseId;\n      } else {\n        out += ' var ' + $nextValid + ' = true; ';\n      }\n\n      if ($i) {\n        out += ' if (' + $nextValid + ' && ' + $prevValid + ') { ' + $valid + ' = false; ' + $passingSchemas + ' = [' + $passingSchemas + ', ' + $i + ']; } else { ';\n        $closingBraces += '}';\n      }\n\n      out += ' if (' + $nextValid + ') { ' + $valid + ' = ' + $prevValid + ' = true; ' + $passingSchemas + ' = ' + $i + '; }';\n    }\n  }\n\n  it.compositeRule = $it.compositeRule = $wasComposite;\n  out += '' + $closingBraces + 'if (!' + $valid + ') {   var err =   ';\n  /* istanbul ignore else */\n\n  if (it.createErrors !== false) {\n    out += ' { keyword: \\'' + 'oneOf' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { passingSchemas: ' + $passingSchemas + ' } ';\n\n    if (it.opts.messages !== false) {\n      out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n    }\n\n    if (it.opts.verbose) {\n      out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n    }\n\n    out += ' } ';\n  } else {\n    out += ' {} ';\n  }\n\n  out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\n  if (!it.compositeRule && $breakOnError) {\n    /* istanbul ignore if */\n    if (it.async) {\n      out += ' throw new ValidationError(vErrors); ';\n    } else {\n      out += ' validate.errors = vErrors; return false; ';\n    }\n  }\n\n  out += '} else {  errors = ' + $errs + '; if (vErrors !== null) { if (' + $errs + ') vErrors.length = ' + $errs + '; else vErrors = null; }';\n\n  if (it.opts.allErrors) {\n    out += ' } ';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/oneOf.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/pattern.js":
/*!***********************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/pattern.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $isData = it.opts.$data && $schema && $schema.$data,\n      $schemaValue;\n\n  if ($isData) {\n    out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n    $schemaValue = 'schema' + $lvl;\n  } else {\n    $schemaValue = $schema;\n  }\n\n  var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n  out += 'if ( ';\n\n  if ($isData) {\n    out += ' (' + $schemaValue + ' !== undefined && typeof ' + $schemaValue + ' != \\'string\\') || ';\n  }\n\n  out += ' !' + $regexp + '.test(' + $data + ') ) {   ';\n  var $$outStack = $$outStack || [];\n  $$outStack.push(out);\n  out = '';\n  /* istanbul ignore else */\n\n  if (it.createErrors !== false) {\n    out += ' { keyword: \\'' + 'pattern' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { pattern:  ';\n\n    if ($isData) {\n      out += '' + $schemaValue;\n    } else {\n      out += '' + it.util.toQuotedString($schema);\n    }\n\n    out += '  } ';\n\n    if (it.opts.messages !== false) {\n      out += ' , message: \\'should match pattern \"';\n\n      if ($isData) {\n        out += '\\' + ' + $schemaValue + ' + \\'';\n      } else {\n        out += '' + it.util.escapeQuotes($schema);\n      }\n\n      out += '\"\\' ';\n    }\n\n    if (it.opts.verbose) {\n      out += ' , schema:  ';\n\n      if ($isData) {\n        out += 'validate.schema' + $schemaPath;\n      } else {\n        out += '' + it.util.toQuotedString($schema);\n      }\n\n      out += '         , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n    }\n\n    out += ' } ';\n  } else {\n    out += ' {} ';\n  }\n\n  var __err = out;\n  out = $$outStack.pop();\n\n  if (!it.compositeRule && $breakOnError) {\n    /* istanbul ignore if */\n    if (it.async) {\n      out += ' throw new ValidationError([' + __err + ']); ';\n    } else {\n      out += ' validate.errors = [' + __err + ']; return false; ';\n    }\n  } else {\n    out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n  }\n\n  out += '} ';\n\n  if ($breakOnError) {\n    out += ' else { ';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/pattern.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/properties.js":
/*!**************************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/properties.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $errs = 'errs__' + $lvl;\n  var $it = it.util.copy(it);\n  var $closingBraces = '';\n  $it.level++;\n  var $nextValid = 'valid' + $it.level;\n  var $key = 'key' + $lvl,\n      $idx = 'idx' + $lvl,\n      $dataNxt = $it.dataLevel = it.dataLevel + 1,\n      $nextData = 'data' + $dataNxt,\n      $dataProperties = 'dataProperties' + $lvl;\n  var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n      $pProperties = it.schema.patternProperties || {},\n      $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n      $aProperties = it.schema.additionalProperties,\n      $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n      $noAdditional = $aProperties === false,\n      $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n      $removeAdditional = it.opts.removeAdditional,\n      $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n      $ownProperties = it.opts.ownProperties,\n      $currentBaseId = it.baseId;\n  var $required = it.schema.required;\n\n  if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n    var $requiredHash = it.util.toHash($required);\n  }\n\n  function notProto(p) {\n    return p !== '__proto__';\n  }\n\n  out += 'var ' + $errs + ' = errors;var ' + $nextValid + ' = true;';\n\n  if ($ownProperties) {\n    out += ' var ' + $dataProperties + ' = undefined;';\n  }\n\n  if ($checkAdditional) {\n    if ($ownProperties) {\n      out += ' ' + $dataProperties + ' = ' + $dataProperties + ' || Object.keys(' + $data + '); for (var ' + $idx + '=0; ' + $idx + '<' + $dataProperties + '.length; ' + $idx + '++) { var ' + $key + ' = ' + $dataProperties + '[' + $idx + ']; ';\n    } else {\n      out += ' for (var ' + $key + ' in ' + $data + ') { ';\n    }\n\n    if ($someProperties) {\n      out += ' var isAdditional' + $lvl + ' = !(false ';\n\n      if ($schemaKeys.length) {\n        if ($schemaKeys.length > 8) {\n          out += ' || validate.schema' + $schemaPath + '.hasOwnProperty(' + $key + ') ';\n        } else {\n          var arr1 = $schemaKeys;\n\n          if (arr1) {\n            var $propertyKey,\n                i1 = -1,\n                l1 = arr1.length - 1;\n\n            while (i1 < l1) {\n              $propertyKey = arr1[i1 += 1];\n              out += ' || ' + $key + ' == ' + it.util.toQuotedString($propertyKey) + ' ';\n            }\n          }\n        }\n      }\n\n      if ($pPropertyKeys.length) {\n        var arr2 = $pPropertyKeys;\n\n        if (arr2) {\n          var $pProperty,\n              $i = -1,\n              l2 = arr2.length - 1;\n\n          while ($i < l2) {\n            $pProperty = arr2[$i += 1];\n            out += ' || ' + it.usePattern($pProperty) + '.test(' + $key + ') ';\n          }\n        }\n      }\n\n      out += ' ); if (isAdditional' + $lvl + ') { ';\n    }\n\n    if ($removeAdditional == 'all') {\n      out += ' delete ' + $data + '[' + $key + ']; ';\n    } else {\n      var $currentErrorPath = it.errorPath;\n      var $additionalProperty = '\\' + ' + $key + ' + \\'';\n\n      if (it.opts._errorDataPathProperty) {\n        it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n      }\n\n      if ($noAdditional) {\n        if ($removeAdditional) {\n          out += ' delete ' + $data + '[' + $key + ']; ';\n        } else {\n          out += ' ' + $nextValid + ' = false; ';\n          var $currErrSchemaPath = $errSchemaPath;\n          $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n          var $$outStack = $$outStack || [];\n          $$outStack.push(out);\n          out = '';\n          /* istanbul ignore else */\n\n          if (it.createErrors !== false) {\n            out += ' { keyword: \\'' + 'additionalProperties' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { additionalProperty: \\'' + $additionalProperty + '\\' } ';\n\n            if (it.opts.messages !== false) {\n              out += ' , message: \\'';\n\n              if (it.opts._errorDataPathProperty) {\n                out += 'is an invalid additional property';\n              } else {\n                out += 'should NOT have additional properties';\n              }\n\n              out += '\\' ';\n            }\n\n            if (it.opts.verbose) {\n              out += ' , schema: false , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n            }\n\n            out += ' } ';\n          } else {\n            out += ' {} ';\n          }\n\n          var __err = out;\n          out = $$outStack.pop();\n\n          if (!it.compositeRule && $breakOnError) {\n            /* istanbul ignore if */\n            if (it.async) {\n              out += ' throw new ValidationError([' + __err + ']); ';\n            } else {\n              out += ' validate.errors = [' + __err + ']; return false; ';\n            }\n          } else {\n            out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n          }\n\n          $errSchemaPath = $currErrSchemaPath;\n\n          if ($breakOnError) {\n            out += ' break; ';\n          }\n        }\n      } else if ($additionalIsSchema) {\n        if ($removeAdditional == 'failing') {\n          out += ' var ' + $errs + ' = errors;  ';\n          var $wasComposite = it.compositeRule;\n          it.compositeRule = $it.compositeRule = true;\n          $it.schema = $aProperties;\n          $it.schemaPath = it.schemaPath + '.additionalProperties';\n          $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n          $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n          var $passData = $data + '[' + $key + ']';\n          $it.dataPathArr[$dataNxt] = $key;\n          var $code = it.validate($it);\n          $it.baseId = $currentBaseId;\n\n          if (it.util.varOccurences($code, $nextData) < 2) {\n            out += ' ' + it.util.varReplace($code, $nextData, $passData) + ' ';\n          } else {\n            out += ' var ' + $nextData + ' = ' + $passData + '; ' + $code + ' ';\n          }\n\n          out += ' if (!' + $nextValid + ') { errors = ' + $errs + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + $data + '[' + $key + ']; }  ';\n          it.compositeRule = $it.compositeRule = $wasComposite;\n        } else {\n          $it.schema = $aProperties;\n          $it.schemaPath = it.schemaPath + '.additionalProperties';\n          $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n          $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n          var $passData = $data + '[' + $key + ']';\n          $it.dataPathArr[$dataNxt] = $key;\n          var $code = it.validate($it);\n          $it.baseId = $currentBaseId;\n\n          if (it.util.varOccurences($code, $nextData) < 2) {\n            out += ' ' + it.util.varReplace($code, $nextData, $passData) + ' ';\n          } else {\n            out += ' var ' + $nextData + ' = ' + $passData + '; ' + $code + ' ';\n          }\n\n          if ($breakOnError) {\n            out += ' if (!' + $nextValid + ') break; ';\n          }\n        }\n      }\n\n      it.errorPath = $currentErrorPath;\n    }\n\n    if ($someProperties) {\n      out += ' } ';\n    }\n\n    out += ' }  ';\n\n    if ($breakOnError) {\n      out += ' if (' + $nextValid + ') { ';\n      $closingBraces += '}';\n    }\n  }\n\n  var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n\n  if ($schemaKeys.length) {\n    var arr3 = $schemaKeys;\n\n    if (arr3) {\n      var $propertyKey,\n          i3 = -1,\n          l3 = arr3.length - 1;\n\n      while (i3 < l3) {\n        $propertyKey = arr3[i3 += 1];\n        var $sch = $schema[$propertyKey];\n\n        if (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {\n          var $prop = it.util.getProperty($propertyKey),\n              $passData = $data + $prop,\n              $hasDefault = $useDefaults && $sch.default !== undefined;\n          $it.schema = $sch;\n          $it.schemaPath = $schemaPath + $prop;\n          $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n          $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n          $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n          var $code = it.validate($it);\n          $it.baseId = $currentBaseId;\n\n          if (it.util.varOccurences($code, $nextData) < 2) {\n            $code = it.util.varReplace($code, $nextData, $passData);\n            var $useData = $passData;\n          } else {\n            var $useData = $nextData;\n            out += ' var ' + $nextData + ' = ' + $passData + '; ';\n          }\n\n          if ($hasDefault) {\n            out += ' ' + $code + ' ';\n          } else {\n            if ($requiredHash && $requiredHash[$propertyKey]) {\n              out += ' if ( ' + $useData + ' === undefined ';\n\n              if ($ownProperties) {\n                out += ' || ! Object.prototype.hasOwnProperty.call(' + $data + ', \\'' + it.util.escapeQuotes($propertyKey) + '\\') ';\n              }\n\n              out += ') { ' + $nextValid + ' = false; ';\n              var $currentErrorPath = it.errorPath,\n                  $currErrSchemaPath = $errSchemaPath,\n                  $missingProperty = it.util.escapeQuotes($propertyKey);\n\n              if (it.opts._errorDataPathProperty) {\n                it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n              }\n\n              $errSchemaPath = it.errSchemaPath + '/required';\n              var $$outStack = $$outStack || [];\n              $$outStack.push(out);\n              out = '';\n              /* istanbul ignore else */\n\n              if (it.createErrors !== false) {\n                out += ' { keyword: \\'' + 'required' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { missingProperty: \\'' + $missingProperty + '\\' } ';\n\n                if (it.opts.messages !== false) {\n                  out += ' , message: \\'';\n\n                  if (it.opts._errorDataPathProperty) {\n                    out += 'is a required property';\n                  } else {\n                    out += 'should have required property \\\\\\'' + $missingProperty + '\\\\\\'';\n                  }\n\n                  out += '\\' ';\n                }\n\n                if (it.opts.verbose) {\n                  out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n                }\n\n                out += ' } ';\n              } else {\n                out += ' {} ';\n              }\n\n              var __err = out;\n              out = $$outStack.pop();\n\n              if (!it.compositeRule && $breakOnError) {\n                /* istanbul ignore if */\n                if (it.async) {\n                  out += ' throw new ValidationError([' + __err + ']); ';\n                } else {\n                  out += ' validate.errors = [' + __err + ']; return false; ';\n                }\n              } else {\n                out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n              }\n\n              $errSchemaPath = $currErrSchemaPath;\n              it.errorPath = $currentErrorPath;\n              out += ' } else { ';\n            } else {\n              if ($breakOnError) {\n                out += ' if ( ' + $useData + ' === undefined ';\n\n                if ($ownProperties) {\n                  out += ' || ! Object.prototype.hasOwnProperty.call(' + $data + ', \\'' + it.util.escapeQuotes($propertyKey) + '\\') ';\n                }\n\n                out += ') { ' + $nextValid + ' = true; } else { ';\n              } else {\n                out += ' if (' + $useData + ' !== undefined ';\n\n                if ($ownProperties) {\n                  out += ' &&   Object.prototype.hasOwnProperty.call(' + $data + ', \\'' + it.util.escapeQuotes($propertyKey) + '\\') ';\n                }\n\n                out += ' ) { ';\n              }\n            }\n\n            out += ' ' + $code + ' } ';\n          }\n        }\n\n        if ($breakOnError) {\n          out += ' if (' + $nextValid + ') { ';\n          $closingBraces += '}';\n        }\n      }\n    }\n  }\n\n  if ($pPropertyKeys.length) {\n    var arr4 = $pPropertyKeys;\n\n    if (arr4) {\n      var $pProperty,\n          i4 = -1,\n          l4 = arr4.length - 1;\n\n      while (i4 < l4) {\n        $pProperty = arr4[i4 += 1];\n        var $sch = $pProperties[$pProperty];\n\n        if (it.opts.strictKeywords ? typeof $sch == 'object' && Object.keys($sch).length > 0 || $sch === false : it.util.schemaHasRules($sch, it.RULES.all)) {\n          $it.schema = $sch;\n          $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n          $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n\n          if ($ownProperties) {\n            out += ' ' + $dataProperties + ' = ' + $dataProperties + ' || Object.keys(' + $data + '); for (var ' + $idx + '=0; ' + $idx + '<' + $dataProperties + '.length; ' + $idx + '++) { var ' + $key + ' = ' + $dataProperties + '[' + $idx + ']; ';\n          } else {\n            out += ' for (var ' + $key + ' in ' + $data + ') { ';\n          }\n\n          out += ' if (' + it.usePattern($pProperty) + '.test(' + $key + ')) { ';\n          $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n          var $passData = $data + '[' + $key + ']';\n          $it.dataPathArr[$dataNxt] = $key;\n          var $code = it.validate($it);\n          $it.baseId = $currentBaseId;\n\n          if (it.util.varOccurences($code, $nextData) < 2) {\n            out += ' ' + it.util.varReplace($code, $nextData, $passData) + ' ';\n          } else {\n            out += ' var ' + $nextData + ' = ' + $passData + '; ' + $code + ' ';\n          }\n\n          if ($breakOnError) {\n            out += ' if (!' + $nextValid + ') break; ';\n          }\n\n          out += ' } ';\n\n          if ($breakOnError) {\n            out += ' else ' + $nextValid + ' = true; ';\n          }\n\n          out += ' }  ';\n\n          if ($breakOnError) {\n            out += ' if (' + $nextValid + ') { ';\n            $closingBraces += '}';\n          }\n        }\n      }\n    }\n  }\n\n  if ($breakOnError) {\n    out += ' ' + $closingBraces + ' if (' + $errs + ' == errors) {';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/properties.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/propertyNames.js":
/*!*****************************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/propertyNames.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $errs = 'errs__' + $lvl;\n  var $it = it.util.copy(it);\n  var $closingBraces = '';\n  $it.level++;\n  var $nextValid = 'valid' + $it.level;\n  out += 'var ' + $errs + ' = errors;';\n\n  if (it.opts.strictKeywords ? typeof $schema == 'object' && Object.keys($schema).length > 0 || $schema === false : it.util.schemaHasRules($schema, it.RULES.all)) {\n    $it.schema = $schema;\n    $it.schemaPath = $schemaPath;\n    $it.errSchemaPath = $errSchemaPath;\n    var $key = 'key' + $lvl,\n        $idx = 'idx' + $lvl,\n        $i = 'i' + $lvl,\n        $invalidName = '\\' + ' + $key + ' + \\'',\n        $dataNxt = $it.dataLevel = it.dataLevel + 1,\n        $nextData = 'data' + $dataNxt,\n        $dataProperties = 'dataProperties' + $lvl,\n        $ownProperties = it.opts.ownProperties,\n        $currentBaseId = it.baseId;\n\n    if ($ownProperties) {\n      out += ' var ' + $dataProperties + ' = undefined; ';\n    }\n\n    if ($ownProperties) {\n      out += ' ' + $dataProperties + ' = ' + $dataProperties + ' || Object.keys(' + $data + '); for (var ' + $idx + '=0; ' + $idx + '<' + $dataProperties + '.length; ' + $idx + '++) { var ' + $key + ' = ' + $dataProperties + '[' + $idx + ']; ';\n    } else {\n      out += ' for (var ' + $key + ' in ' + $data + ') { ';\n    }\n\n    out += ' var startErrs' + $lvl + ' = errors; ';\n    var $passData = $key;\n    var $wasComposite = it.compositeRule;\n    it.compositeRule = $it.compositeRule = true;\n    var $code = it.validate($it);\n    $it.baseId = $currentBaseId;\n\n    if (it.util.varOccurences($code, $nextData) < 2) {\n      out += ' ' + it.util.varReplace($code, $nextData, $passData) + ' ';\n    } else {\n      out += ' var ' + $nextData + ' = ' + $passData + '; ' + $code + ' ';\n    }\n\n    it.compositeRule = $it.compositeRule = $wasComposite;\n    out += ' if (!' + $nextValid + ') { for (var ' + $i + '=startErrs' + $lvl + '; ' + $i + '<errors; ' + $i + '++) { vErrors[' + $i + '].propertyName = ' + $key + '; }   var err =   ';\n    /* istanbul ignore else */\n\n    if (it.createErrors !== false) {\n      out += ' { keyword: \\'' + 'propertyNames' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { propertyName: \\'' + $invalidName + '\\' } ';\n\n      if (it.opts.messages !== false) {\n        out += ' , message: \\'property name \\\\\\'' + $invalidName + '\\\\\\' is invalid\\' ';\n      }\n\n      if (it.opts.verbose) {\n        out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n      }\n\n      out += ' } ';\n    } else {\n      out += ' {} ';\n    }\n\n    out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\n    if (!it.compositeRule && $breakOnError) {\n      /* istanbul ignore if */\n      if (it.async) {\n        out += ' throw new ValidationError(vErrors); ';\n      } else {\n        out += ' validate.errors = vErrors; return false; ';\n      }\n    }\n\n    if ($breakOnError) {\n      out += ' break; ';\n    }\n\n    out += ' } }';\n  }\n\n  if ($breakOnError) {\n    out += ' ' + $closingBraces + ' if (' + $errs + ' == errors) {';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/propertyNames.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/ref.js":
/*!*******************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/ref.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  var $async, $refCode;\n\n  if ($schema == '#' || $schema == '#/') {\n    if (it.isRoot) {\n      $async = it.async;\n      $refCode = 'validate';\n    } else {\n      $async = it.root.schema.$async === true;\n      $refCode = 'root.refVal[0]';\n    }\n  } else {\n    var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n\n    if ($refVal === undefined) {\n      var $message = it.MissingRefError.message(it.baseId, $schema);\n\n      if (it.opts.missingRefs == 'fail') {\n        it.logger.error($message);\n        var $$outStack = $$outStack || [];\n        $$outStack.push(out);\n        out = '';\n        /* istanbul ignore else */\n\n        if (it.createErrors !== false) {\n          out += ' { keyword: \\'' + '$ref' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { ref: \\'' + it.util.escapeQuotes($schema) + '\\' } ';\n\n          if (it.opts.messages !== false) {\n            out += ' , message: \\'can\\\\\\'t resolve reference ' + it.util.escapeQuotes($schema) + '\\' ';\n          }\n\n          if (it.opts.verbose) {\n            out += ' , schema: ' + it.util.toQuotedString($schema) + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n          }\n\n          out += ' } ';\n        } else {\n          out += ' {} ';\n        }\n\n        var __err = out;\n        out = $$outStack.pop();\n\n        if (!it.compositeRule && $breakOnError) {\n          /* istanbul ignore if */\n          if (it.async) {\n            out += ' throw new ValidationError([' + __err + ']); ';\n          } else {\n            out += ' validate.errors = [' + __err + ']; return false; ';\n          }\n        } else {\n          out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n        }\n\n        if ($breakOnError) {\n          out += ' if (false) { ';\n        }\n      } else if (it.opts.missingRefs == 'ignore') {\n        it.logger.warn($message);\n\n        if ($breakOnError) {\n          out += ' if (true) { ';\n        }\n      } else {\n        throw new it.MissingRefError(it.baseId, $schema, $message);\n      }\n    } else if ($refVal.inline) {\n      var $it = it.util.copy(it);\n      $it.level++;\n      var $nextValid = 'valid' + $it.level;\n      $it.schema = $refVal.schema;\n      $it.schemaPath = '';\n      $it.errSchemaPath = $schema;\n      var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n      out += ' ' + $code + ' ';\n\n      if ($breakOnError) {\n        out += ' if (' + $nextValid + ') { ';\n      }\n    } else {\n      $async = $refVal.$async === true || it.async && $refVal.$async !== false;\n      $refCode = $refVal.code;\n    }\n  }\n\n  if ($refCode) {\n    var $$outStack = $$outStack || [];\n    $$outStack.push(out);\n    out = '';\n\n    if (it.opts.passContext) {\n      out += ' ' + $refCode + '.call(this, ';\n    } else {\n      out += ' ' + $refCode + '( ';\n    }\n\n    out += ' ' + $data + ', (dataPath || \\'\\')';\n\n    if (it.errorPath != '\"\"') {\n      out += ' + ' + it.errorPath;\n    }\n\n    var $parentData = $dataLvl ? 'data' + ($dataLvl - 1 || '') : 'parentData',\n        $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n    out += ' , ' + $parentData + ' , ' + $parentDataProperty + ', rootData)  ';\n    var __callValidate = out;\n    out = $$outStack.pop();\n\n    if ($async) {\n      if (!it.async) throw new Error('async schema referenced by sync schema');\n\n      if ($breakOnError) {\n        out += ' var ' + $valid + '; ';\n      }\n\n      out += ' try { await ' + __callValidate + '; ';\n\n      if ($breakOnError) {\n        out += ' ' + $valid + ' = true; ';\n      }\n\n      out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n\n      if ($breakOnError) {\n        out += ' ' + $valid + ' = false; ';\n      }\n\n      out += ' } ';\n\n      if ($breakOnError) {\n        out += ' if (' + $valid + ') { ';\n      }\n    } else {\n      out += ' if (!' + __callValidate + ') { if (vErrors === null) vErrors = ' + $refCode + '.errors; else vErrors = vErrors.concat(' + $refCode + '.errors); errors = vErrors.length; } ';\n\n      if ($breakOnError) {\n        out += ' else { ';\n      }\n    }\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/ref.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/required.js":
/*!************************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/required.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_required(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  var $isData = it.opts.$data && $schema && $schema.$data,\n      $schemaValue;\n\n  if ($isData) {\n    out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n    $schemaValue = 'schema' + $lvl;\n  } else {\n    $schemaValue = $schema;\n  }\n\n  var $vSchema = 'schema' + $lvl;\n\n  if (!$isData) {\n    if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n      var $required = [];\n      var arr1 = $schema;\n\n      if (arr1) {\n        var $property,\n            i1 = -1,\n            l1 = arr1.length - 1;\n\n        while (i1 < l1) {\n          $property = arr1[i1 += 1];\n          var $propertySch = it.schema.properties[$property];\n\n          if (!($propertySch && (it.opts.strictKeywords ? typeof $propertySch == 'object' && Object.keys($propertySch).length > 0 || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n            $required[$required.length] = $property;\n          }\n        }\n      }\n    } else {\n      var $required = $schema;\n    }\n  }\n\n  if ($isData || $required.length) {\n    var $currentErrorPath = it.errorPath,\n        $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n        $ownProperties = it.opts.ownProperties;\n\n    if ($breakOnError) {\n      out += ' var missing' + $lvl + '; ';\n\n      if ($loopRequired) {\n        if (!$isData) {\n          out += ' var ' + $vSchema + ' = validate.schema' + $schemaPath + '; ';\n        }\n\n        var $i = 'i' + $lvl,\n            $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n            $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n\n        if (it.opts._errorDataPathProperty) {\n          it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n        }\n\n        out += ' var ' + $valid + ' = true; ';\n\n        if ($isData) {\n          out += ' if (schema' + $lvl + ' === undefined) ' + $valid + ' = true; else if (!Array.isArray(schema' + $lvl + ')) ' + $valid + ' = false; else {';\n        }\n\n        out += ' for (var ' + $i + ' = 0; ' + $i + ' < ' + $vSchema + '.length; ' + $i + '++) { ' + $valid + ' = ' + $data + '[' + $vSchema + '[' + $i + ']] !== undefined ';\n\n        if ($ownProperties) {\n          out += ' &&   Object.prototype.hasOwnProperty.call(' + $data + ', ' + $vSchema + '[' + $i + ']) ';\n        }\n\n        out += '; if (!' + $valid + ') break; } ';\n\n        if ($isData) {\n          out += '  }  ';\n        }\n\n        out += '  if (!' + $valid + ') {   ';\n        var $$outStack = $$outStack || [];\n        $$outStack.push(out);\n        out = '';\n        /* istanbul ignore else */\n\n        if (it.createErrors !== false) {\n          out += ' { keyword: \\'' + 'required' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { missingProperty: \\'' + $missingProperty + '\\' } ';\n\n          if (it.opts.messages !== false) {\n            out += ' , message: \\'';\n\n            if (it.opts._errorDataPathProperty) {\n              out += 'is a required property';\n            } else {\n              out += 'should have required property \\\\\\'' + $missingProperty + '\\\\\\'';\n            }\n\n            out += '\\' ';\n          }\n\n          if (it.opts.verbose) {\n            out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n          }\n\n          out += ' } ';\n        } else {\n          out += ' {} ';\n        }\n\n        var __err = out;\n        out = $$outStack.pop();\n\n        if (!it.compositeRule && $breakOnError) {\n          /* istanbul ignore if */\n          if (it.async) {\n            out += ' throw new ValidationError([' + __err + ']); ';\n          } else {\n            out += ' validate.errors = [' + __err + ']; return false; ';\n          }\n        } else {\n          out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n        }\n\n        out += ' } else { ';\n      } else {\n        out += ' if ( ';\n        var arr2 = $required;\n\n        if (arr2) {\n          var $propertyKey,\n              $i = -1,\n              l2 = arr2.length - 1;\n\n          while ($i < l2) {\n            $propertyKey = arr2[$i += 1];\n\n            if ($i) {\n              out += ' || ';\n            }\n\n            var $prop = it.util.getProperty($propertyKey),\n                $useData = $data + $prop;\n            out += ' ( ( ' + $useData + ' === undefined ';\n\n            if ($ownProperties) {\n              out += ' || ! Object.prototype.hasOwnProperty.call(' + $data + ', \\'' + it.util.escapeQuotes($propertyKey) + '\\') ';\n            }\n\n            out += ') && (missing' + $lvl + ' = ' + it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop) + ') ) ';\n          }\n        }\n\n        out += ') {  ';\n        var $propertyPath = 'missing' + $lvl,\n            $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n\n        if (it.opts._errorDataPathProperty) {\n          it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n        }\n\n        var $$outStack = $$outStack || [];\n        $$outStack.push(out);\n        out = '';\n        /* istanbul ignore else */\n\n        if (it.createErrors !== false) {\n          out += ' { keyword: \\'' + 'required' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { missingProperty: \\'' + $missingProperty + '\\' } ';\n\n          if (it.opts.messages !== false) {\n            out += ' , message: \\'';\n\n            if (it.opts._errorDataPathProperty) {\n              out += 'is a required property';\n            } else {\n              out += 'should have required property \\\\\\'' + $missingProperty + '\\\\\\'';\n            }\n\n            out += '\\' ';\n          }\n\n          if (it.opts.verbose) {\n            out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n          }\n\n          out += ' } ';\n        } else {\n          out += ' {} ';\n        }\n\n        var __err = out;\n        out = $$outStack.pop();\n\n        if (!it.compositeRule && $breakOnError) {\n          /* istanbul ignore if */\n          if (it.async) {\n            out += ' throw new ValidationError([' + __err + ']); ';\n          } else {\n            out += ' validate.errors = [' + __err + ']; return false; ';\n          }\n        } else {\n          out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n        }\n\n        out += ' } else { ';\n      }\n    } else {\n      if ($loopRequired) {\n        if (!$isData) {\n          out += ' var ' + $vSchema + ' = validate.schema' + $schemaPath + '; ';\n        }\n\n        var $i = 'i' + $lvl,\n            $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n            $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n\n        if (it.opts._errorDataPathProperty) {\n          it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n        }\n\n        if ($isData) {\n          out += ' if (' + $vSchema + ' && !Array.isArray(' + $vSchema + ')) {  var err =   ';\n          /* istanbul ignore else */\n\n          if (it.createErrors !== false) {\n            out += ' { keyword: \\'' + 'required' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { missingProperty: \\'' + $missingProperty + '\\' } ';\n\n            if (it.opts.messages !== false) {\n              out += ' , message: \\'';\n\n              if (it.opts._errorDataPathProperty) {\n                out += 'is a required property';\n              } else {\n                out += 'should have required property \\\\\\'' + $missingProperty + '\\\\\\'';\n              }\n\n              out += '\\' ';\n            }\n\n            if (it.opts.verbose) {\n              out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n            }\n\n            out += ' } ';\n          } else {\n            out += ' {} ';\n          }\n\n          out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + $vSchema + ' !== undefined) { ';\n        }\n\n        out += ' for (var ' + $i + ' = 0; ' + $i + ' < ' + $vSchema + '.length; ' + $i + '++) { if (' + $data + '[' + $vSchema + '[' + $i + ']] === undefined ';\n\n        if ($ownProperties) {\n          out += ' || ! Object.prototype.hasOwnProperty.call(' + $data + ', ' + $vSchema + '[' + $i + ']) ';\n        }\n\n        out += ') {  var err =   ';\n        /* istanbul ignore else */\n\n        if (it.createErrors !== false) {\n          out += ' { keyword: \\'' + 'required' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { missingProperty: \\'' + $missingProperty + '\\' } ';\n\n          if (it.opts.messages !== false) {\n            out += ' , message: \\'';\n\n            if (it.opts._errorDataPathProperty) {\n              out += 'is a required property';\n            } else {\n              out += 'should have required property \\\\\\'' + $missingProperty + '\\\\\\'';\n            }\n\n            out += '\\' ';\n          }\n\n          if (it.opts.verbose) {\n            out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n          }\n\n          out += ' } ';\n        } else {\n          out += ' {} ';\n        }\n\n        out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n\n        if ($isData) {\n          out += '  }  ';\n        }\n      } else {\n        var arr3 = $required;\n\n        if (arr3) {\n          var $propertyKey,\n              i3 = -1,\n              l3 = arr3.length - 1;\n\n          while (i3 < l3) {\n            $propertyKey = arr3[i3 += 1];\n            var $prop = it.util.getProperty($propertyKey),\n                $missingProperty = it.util.escapeQuotes($propertyKey),\n                $useData = $data + $prop;\n\n            if (it.opts._errorDataPathProperty) {\n              it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n            }\n\n            out += ' if ( ' + $useData + ' === undefined ';\n\n            if ($ownProperties) {\n              out += ' || ! Object.prototype.hasOwnProperty.call(' + $data + ', \\'' + it.util.escapeQuotes($propertyKey) + '\\') ';\n            }\n\n            out += ') {  var err =   ';\n            /* istanbul ignore else */\n\n            if (it.createErrors !== false) {\n              out += ' { keyword: \\'' + 'required' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { missingProperty: \\'' + $missingProperty + '\\' } ';\n\n              if (it.opts.messages !== false) {\n                out += ' , message: \\'';\n\n                if (it.opts._errorDataPathProperty) {\n                  out += 'is a required property';\n                } else {\n                  out += 'should have required property \\\\\\'' + $missingProperty + '\\\\\\'';\n                }\n\n                out += '\\' ';\n              }\n\n              if (it.opts.verbose) {\n                out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n              }\n\n              out += ' } ';\n            } else {\n              out += ' {} ';\n            }\n\n            out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n          }\n        }\n      }\n    }\n\n    it.errorPath = $currentErrorPath;\n  } else if ($breakOnError) {\n    out += ' if (true) {';\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/required.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/uniqueItems.js":
/*!***************************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/uniqueItems.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n  var out = ' ';\n  var $lvl = it.level;\n  var $dataLvl = it.dataLevel;\n  var $schema = it.schema[$keyword];\n  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n  var $breakOnError = !it.opts.allErrors;\n  var $data = 'data' + ($dataLvl || '');\n  var $valid = 'valid' + $lvl;\n  var $isData = it.opts.$data && $schema && $schema.$data,\n      $schemaValue;\n\n  if ($isData) {\n    out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n    $schemaValue = 'schema' + $lvl;\n  } else {\n    $schemaValue = $schema;\n  }\n\n  if (($schema || $isData) && it.opts.uniqueItems !== false) {\n    if ($isData) {\n      out += ' var ' + $valid + '; if (' + $schemaValue + ' === false || ' + $schemaValue + ' === undefined) ' + $valid + ' = true; else if (typeof ' + $schemaValue + ' != \\'boolean\\') ' + $valid + ' = false; else { ';\n    }\n\n    out += ' var i = ' + $data + '.length , ' + $valid + ' = true , j; if (i > 1) { ';\n    var $itemType = it.schema.items && it.schema.items.type,\n        $typeIsArray = Array.isArray($itemType);\n\n    if (!$itemType || $itemType == 'object' || $itemType == 'array' || $typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0)) {\n      out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + $data + '[i], ' + $data + '[j])) { ' + $valid + ' = false; break outer; } } } ';\n    } else {\n      out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + $data + '[i]; ';\n      var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n      out += ' if (' + it.util[$method]($itemType, 'item', it.opts.strictNumbers, true) + ') continue; ';\n\n      if ($typeIsArray) {\n        out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n      }\n\n      out += ' if (typeof itemIndices[item] == \\'number\\') { ' + $valid + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n    }\n\n    out += ' } ';\n\n    if ($isData) {\n      out += '  }  ';\n    }\n\n    out += ' if (!' + $valid + ') {   ';\n    var $$outStack = $$outStack || [];\n    $$outStack.push(out);\n    out = '';\n    /* istanbul ignore else */\n\n    if (it.createErrors !== false) {\n      out += ' { keyword: \\'' + 'uniqueItems' + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { i: i, j: j } ';\n\n      if (it.opts.messages !== false) {\n        out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n      }\n\n      if (it.opts.verbose) {\n        out += ' , schema:  ';\n\n        if ($isData) {\n          out += 'validate.schema' + $schemaPath;\n        } else {\n          out += '' + $schema;\n        }\n\n        out += '         , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n      }\n\n      out += ' } ';\n    } else {\n      out += ' {} ';\n    }\n\n    var __err = out;\n    out = $$outStack.pop();\n\n    if (!it.compositeRule && $breakOnError) {\n      /* istanbul ignore if */\n      if (it.async) {\n        out += ' throw new ValidationError([' + __err + ']); ';\n      } else {\n        out += ' validate.errors = [' + __err + ']; return false; ';\n      }\n    } else {\n      out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n    }\n\n    out += ' } ';\n\n    if ($breakOnError) {\n      out += ' else { ';\n    }\n  } else {\n    if ($breakOnError) {\n      out += ' if (true) { ';\n    }\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/uniqueItems.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/dotjs/validate.js":
/*!************************************************!*\
  !*** ./node_modules/ajv/lib/dotjs/validate.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n  var out = '';\n\n  var $async = it.schema.$async === true,\n      $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n      $id = it.self._getId(it.schema);\n\n  if (it.opts.strictKeywords) {\n    var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n\n    if ($unknownKwd) {\n      var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n      if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);else throw new Error($keywordsMsg);\n    }\n  }\n\n  if (it.isTop) {\n    out += ' var validate = ';\n\n    if ($async) {\n      it.async = true;\n      out += 'async ';\n    }\n\n    out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n\n    if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n      out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n    }\n  }\n\n  if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n    var $keyword = 'false schema';\n    var $lvl = it.level;\n    var $dataLvl = it.dataLevel;\n    var $schema = it.schema[$keyword];\n    var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n    var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n    var $breakOnError = !it.opts.allErrors;\n    var $errorKeyword;\n    var $data = 'data' + ($dataLvl || '');\n    var $valid = 'valid' + $lvl;\n\n    if (it.schema === false) {\n      if (it.isTop) {\n        $breakOnError = true;\n      } else {\n        out += ' var ' + $valid + ' = false; ';\n      }\n\n      var $$outStack = $$outStack || [];\n      $$outStack.push(out);\n      out = '';\n      /* istanbul ignore else */\n\n      if (it.createErrors !== false) {\n        out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: {} ';\n\n        if (it.opts.messages !== false) {\n          out += ' , message: \\'boolean schema is false\\' ';\n        }\n\n        if (it.opts.verbose) {\n          out += ' , schema: false , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n        }\n\n        out += ' } ';\n      } else {\n        out += ' {} ';\n      }\n\n      var __err = out;\n      out = $$outStack.pop();\n\n      if (!it.compositeRule && $breakOnError) {\n        /* istanbul ignore if */\n        if (it.async) {\n          out += ' throw new ValidationError([' + __err + ']); ';\n        } else {\n          out += ' validate.errors = [' + __err + ']; return false; ';\n        }\n      } else {\n        out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n      }\n    } else {\n      if (it.isTop) {\n        if ($async) {\n          out += ' return data; ';\n        } else {\n          out += ' validate.errors = null; return true; ';\n        }\n      } else {\n        out += ' var ' + $valid + ' = true; ';\n      }\n    }\n\n    if (it.isTop) {\n      out += ' }; return validate; ';\n    }\n\n    return out;\n  }\n\n  if (it.isTop) {\n    var $top = it.isTop,\n        $lvl = it.level = 0,\n        $dataLvl = it.dataLevel = 0,\n        $data = 'data';\n    it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n    it.baseId = it.baseId || it.rootId;\n    delete it.isTop;\n    it.dataPathArr = [\"\"];\n\n    if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n      var $defaultMsg = 'default is ignored in the schema root';\n      if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);else throw new Error($defaultMsg);\n    }\n\n    out += ' var vErrors = null; ';\n    out += ' var errors = 0;     ';\n    out += ' if (rootData === undefined) rootData = data; ';\n  } else {\n    var $lvl = it.level,\n        $dataLvl = it.dataLevel,\n        $data = 'data' + ($dataLvl || '');\n    if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n    if ($async && !it.async) throw new Error('async schema in sync schema');\n    out += ' var errs_' + $lvl + ' = errors;';\n  }\n\n  var $valid = 'valid' + $lvl,\n      $breakOnError = !it.opts.allErrors,\n      $closingBraces1 = '',\n      $closingBraces2 = '';\n  var $errorKeyword;\n  var $typeSchema = it.schema.type,\n      $typeIsArray = Array.isArray($typeSchema);\n\n  if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n    if ($typeIsArray) {\n      if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n    } else if ($typeSchema != 'null') {\n      $typeSchema = [$typeSchema, 'null'];\n      $typeIsArray = true;\n    }\n  }\n\n  if ($typeIsArray && $typeSchema.length == 1) {\n    $typeSchema = $typeSchema[0];\n    $typeIsArray = false;\n  }\n\n  if (it.schema.$ref && $refKeywords) {\n    if (it.opts.extendRefs == 'fail') {\n      throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n    } else if (it.opts.extendRefs !== true) {\n      $refKeywords = false;\n      it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n    }\n  }\n\n  if (it.schema.$comment && it.opts.$comment) {\n    out += ' ' + it.RULES.all.$comment.code(it, '$comment');\n  }\n\n  if ($typeSchema) {\n    if (it.opts.coerceTypes) {\n      var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n    }\n\n    var $rulesGroup = it.RULES.types[$typeSchema];\n\n    if ($coerceToTypes || $typeIsArray || $rulesGroup === true || $rulesGroup && !$shouldUseGroup($rulesGroup)) {\n      var $schemaPath = it.schemaPath + '.type',\n          $errSchemaPath = it.errSchemaPath + '/type';\n      var $schemaPath = it.schemaPath + '.type',\n          $errSchemaPath = it.errSchemaPath + '/type',\n          $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n      out += ' if (' + it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true) + ') { ';\n\n      if ($coerceToTypes) {\n        var $dataType = 'dataType' + $lvl,\n            $coerced = 'coerced' + $lvl;\n        out += ' var ' + $dataType + ' = typeof ' + $data + '; var ' + $coerced + ' = undefined; ';\n\n        if (it.opts.coerceTypes == 'array') {\n          out += ' if (' + $dataType + ' == \\'object\\' && Array.isArray(' + $data + ') && ' + $data + '.length == 1) { ' + $data + ' = ' + $data + '[0]; ' + $dataType + ' = typeof ' + $data + '; if (' + it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers) + ') ' + $coerced + ' = ' + $data + '; } ';\n        }\n\n        out += ' if (' + $coerced + ' !== undefined) ; ';\n        var arr1 = $coerceToTypes;\n\n        if (arr1) {\n          var $type,\n              $i = -1,\n              l1 = arr1.length - 1;\n\n          while ($i < l1) {\n            $type = arr1[$i += 1];\n\n            if ($type == 'string') {\n              out += ' else if (' + $dataType + ' == \\'number\\' || ' + $dataType + ' == \\'boolean\\') ' + $coerced + ' = \\'\\' + ' + $data + '; else if (' + $data + ' === null) ' + $coerced + ' = \\'\\'; ';\n            } else if ($type == 'number' || $type == 'integer') {\n              out += ' else if (' + $dataType + ' == \\'boolean\\' || ' + $data + ' === null || (' + $dataType + ' == \\'string\\' && ' + $data + ' && ' + $data + ' == +' + $data + ' ';\n\n              if ($type == 'integer') {\n                out += ' && !(' + $data + ' % 1)';\n              }\n\n              out += ')) ' + $coerced + ' = +' + $data + '; ';\n            } else if ($type == 'boolean') {\n              out += ' else if (' + $data + ' === \\'false\\' || ' + $data + ' === 0 || ' + $data + ' === null) ' + $coerced + ' = false; else if (' + $data + ' === \\'true\\' || ' + $data + ' === 1) ' + $coerced + ' = true; ';\n            } else if ($type == 'null') {\n              out += ' else if (' + $data + ' === \\'\\' || ' + $data + ' === 0 || ' + $data + ' === false) ' + $coerced + ' = null; ';\n            } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n              out += ' else if (' + $dataType + ' == \\'string\\' || ' + $dataType + ' == \\'number\\' || ' + $dataType + ' == \\'boolean\\' || ' + $data + ' == null) ' + $coerced + ' = [' + $data + ']; ';\n            }\n          }\n        }\n\n        out += ' else {   ';\n        var $$outStack = $$outStack || [];\n        $$outStack.push(out);\n        out = '';\n        /* istanbul ignore else */\n\n        if (it.createErrors !== false) {\n          out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { type: \\'';\n\n          if ($typeIsArray) {\n            out += '' + $typeSchema.join(\",\");\n          } else {\n            out += '' + $typeSchema;\n          }\n\n          out += '\\' } ';\n\n          if (it.opts.messages !== false) {\n            out += ' , message: \\'should be ';\n\n            if ($typeIsArray) {\n              out += '' + $typeSchema.join(\",\");\n            } else {\n              out += '' + $typeSchema;\n            }\n\n            out += '\\' ';\n          }\n\n          if (it.opts.verbose) {\n            out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n          }\n\n          out += ' } ';\n        } else {\n          out += ' {} ';\n        }\n\n        var __err = out;\n        out = $$outStack.pop();\n\n        if (!it.compositeRule && $breakOnError) {\n          /* istanbul ignore if */\n          if (it.async) {\n            out += ' throw new ValidationError([' + __err + ']); ';\n          } else {\n            out += ' validate.errors = [' + __err + ']; return false; ';\n          }\n        } else {\n          out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n        }\n\n        out += ' } if (' + $coerced + ' !== undefined) {  ';\n        var $parentData = $dataLvl ? 'data' + ($dataLvl - 1 || '') : 'parentData',\n            $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n        out += ' ' + $data + ' = ' + $coerced + '; ';\n\n        if (!$dataLvl) {\n          out += 'if (' + $parentData + ' !== undefined)';\n        }\n\n        out += ' ' + $parentData + '[' + $parentDataProperty + '] = ' + $coerced + '; } ';\n      } else {\n        var $$outStack = $$outStack || [];\n        $$outStack.push(out);\n        out = '';\n        /* istanbul ignore else */\n\n        if (it.createErrors !== false) {\n          out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { type: \\'';\n\n          if ($typeIsArray) {\n            out += '' + $typeSchema.join(\",\");\n          } else {\n            out += '' + $typeSchema;\n          }\n\n          out += '\\' } ';\n\n          if (it.opts.messages !== false) {\n            out += ' , message: \\'should be ';\n\n            if ($typeIsArray) {\n              out += '' + $typeSchema.join(\",\");\n            } else {\n              out += '' + $typeSchema;\n            }\n\n            out += '\\' ';\n          }\n\n          if (it.opts.verbose) {\n            out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n          }\n\n          out += ' } ';\n        } else {\n          out += ' {} ';\n        }\n\n        var __err = out;\n        out = $$outStack.pop();\n\n        if (!it.compositeRule && $breakOnError) {\n          /* istanbul ignore if */\n          if (it.async) {\n            out += ' throw new ValidationError([' + __err + ']); ';\n          } else {\n            out += ' validate.errors = [' + __err + ']; return false; ';\n          }\n        } else {\n          out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n        }\n      }\n\n      out += ' } ';\n    }\n  }\n\n  if (it.schema.$ref && !$refKeywords) {\n    out += ' ' + it.RULES.all.$ref.code(it, '$ref') + ' ';\n\n    if ($breakOnError) {\n      out += ' } if (errors === ';\n\n      if ($top) {\n        out += '0';\n      } else {\n        out += 'errs_' + $lvl;\n      }\n\n      out += ') { ';\n      $closingBraces2 += '}';\n    }\n  } else {\n    var arr2 = it.RULES;\n\n    if (arr2) {\n      var $rulesGroup,\n          i2 = -1,\n          l2 = arr2.length - 1;\n\n      while (i2 < l2) {\n        $rulesGroup = arr2[i2 += 1];\n\n        if ($shouldUseGroup($rulesGroup)) {\n          if ($rulesGroup.type) {\n            out += ' if (' + it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers) + ') { ';\n          }\n\n          if (it.opts.useDefaults) {\n            if ($rulesGroup.type == 'object' && it.schema.properties) {\n              var $schema = it.schema.properties,\n                  $schemaKeys = Object.keys($schema);\n              var arr3 = $schemaKeys;\n\n              if (arr3) {\n                var $propertyKey,\n                    i3 = -1,\n                    l3 = arr3.length - 1;\n\n                while (i3 < l3) {\n                  $propertyKey = arr3[i3 += 1];\n                  var $sch = $schema[$propertyKey];\n\n                  if ($sch.default !== undefined) {\n                    var $passData = $data + it.util.getProperty($propertyKey);\n\n                    if (it.compositeRule) {\n                      if (it.opts.strictDefaults) {\n                        var $defaultMsg = 'default is ignored for: ' + $passData;\n                        if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);else throw new Error($defaultMsg);\n                      }\n                    } else {\n                      out += ' if (' + $passData + ' === undefined ';\n\n                      if (it.opts.useDefaults == 'empty') {\n                        out += ' || ' + $passData + ' === null || ' + $passData + ' === \\'\\' ';\n                      }\n\n                      out += ' ) ' + $passData + ' = ';\n\n                      if (it.opts.useDefaults == 'shared') {\n                        out += ' ' + it.useDefault($sch.default) + ' ';\n                      } else {\n                        out += ' ' + JSON.stringify($sch.default) + ' ';\n                      }\n\n                      out += '; ';\n                    }\n                  }\n                }\n              }\n            } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n              var arr4 = it.schema.items;\n\n              if (arr4) {\n                var $sch,\n                    $i = -1,\n                    l4 = arr4.length - 1;\n\n                while ($i < l4) {\n                  $sch = arr4[$i += 1];\n\n                  if ($sch.default !== undefined) {\n                    var $passData = $data + '[' + $i + ']';\n\n                    if (it.compositeRule) {\n                      if (it.opts.strictDefaults) {\n                        var $defaultMsg = 'default is ignored for: ' + $passData;\n                        if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);else throw new Error($defaultMsg);\n                      }\n                    } else {\n                      out += ' if (' + $passData + ' === undefined ';\n\n                      if (it.opts.useDefaults == 'empty') {\n                        out += ' || ' + $passData + ' === null || ' + $passData + ' === \\'\\' ';\n                      }\n\n                      out += ' ) ' + $passData + ' = ';\n\n                      if (it.opts.useDefaults == 'shared') {\n                        out += ' ' + it.useDefault($sch.default) + ' ';\n                      } else {\n                        out += ' ' + JSON.stringify($sch.default) + ' ';\n                      }\n\n                      out += '; ';\n                    }\n                  }\n                }\n              }\n            }\n          }\n\n          var arr5 = $rulesGroup.rules;\n\n          if (arr5) {\n            var $rule,\n                i5 = -1,\n                l5 = arr5.length - 1;\n\n            while (i5 < l5) {\n              $rule = arr5[i5 += 1];\n\n              if ($shouldUseRule($rule)) {\n                var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n\n                if ($code) {\n                  out += ' ' + $code + ' ';\n\n                  if ($breakOnError) {\n                    $closingBraces1 += '}';\n                  }\n                }\n              }\n            }\n          }\n\n          if ($breakOnError) {\n            out += ' ' + $closingBraces1 + ' ';\n            $closingBraces1 = '';\n          }\n\n          if ($rulesGroup.type) {\n            out += ' } ';\n\n            if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n              out += ' else { ';\n              var $schemaPath = it.schemaPath + '.type',\n                  $errSchemaPath = it.errSchemaPath + '/type';\n              var $$outStack = $$outStack || [];\n              $$outStack.push(out);\n              out = '';\n              /* istanbul ignore else */\n\n              if (it.createErrors !== false) {\n                out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { type: \\'';\n\n                if ($typeIsArray) {\n                  out += '' + $typeSchema.join(\",\");\n                } else {\n                  out += '' + $typeSchema;\n                }\n\n                out += '\\' } ';\n\n                if (it.opts.messages !== false) {\n                  out += ' , message: \\'should be ';\n\n                  if ($typeIsArray) {\n                    out += '' + $typeSchema.join(\",\");\n                  } else {\n                    out += '' + $typeSchema;\n                  }\n\n                  out += '\\' ';\n                }\n\n                if (it.opts.verbose) {\n                  out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n                }\n\n                out += ' } ';\n              } else {\n                out += ' {} ';\n              }\n\n              var __err = out;\n              out = $$outStack.pop();\n\n              if (!it.compositeRule && $breakOnError) {\n                /* istanbul ignore if */\n                if (it.async) {\n                  out += ' throw new ValidationError([' + __err + ']); ';\n                } else {\n                  out += ' validate.errors = [' + __err + ']; return false; ';\n                }\n              } else {\n                out += ' var err = ' + __err + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n              }\n\n              out += ' } ';\n            }\n          }\n\n          if ($breakOnError) {\n            out += ' if (errors === ';\n\n            if ($top) {\n              out += '0';\n            } else {\n              out += 'errs_' + $lvl;\n            }\n\n            out += ') { ';\n            $closingBraces2 += '}';\n          }\n        }\n      }\n    }\n  }\n\n  if ($breakOnError) {\n    out += ' ' + $closingBraces2 + ' ';\n  }\n\n  if ($top) {\n    if ($async) {\n      out += ' if (errors === 0) return data;           ';\n      out += ' else throw new ValidationError(vErrors); ';\n    } else {\n      out += ' validate.errors = vErrors; ';\n      out += ' return errors === 0;       ';\n    }\n\n    out += ' }; return validate;';\n  } else {\n    out += ' var ' + $valid + ' = errors === errs_' + $lvl + ';';\n  }\n\n  function $shouldUseGroup($rulesGroup) {\n    var rules = $rulesGroup.rules;\n\n    for (var i = 0; i < rules.length; i++) if ($shouldUseRule(rules[i])) return true;\n  }\n\n  function $shouldUseRule($rule) {\n    return it.schema[$rule.keyword] !== undefined || $rule.implements && $ruleImplementsSomeKeyword($rule);\n  }\n\n  function $ruleImplementsSomeKeyword($rule) {\n    var impl = $rule.implements;\n\n    for (var i = 0; i < impl.length; i++) if (it.schema[impl[i]] !== undefined) return true;\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/dotjs/validate.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/keyword.js":
/*!*****************************************!*\
  !*** ./node_modules/ajv/lib/keyword.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\n\nvar customRuleCode = __webpack_require__(/*! ./dotjs/custom */ \"./node_modules/ajv/lib/dotjs/custom.js\");\n\nvar definitionSchema = __webpack_require__(/*! ./definition_schema */ \"./node_modules/ajv/lib/definition_schema.js\");\n\nmodule.exports = {\n  add: addKeyword,\n  get: getKeyword,\n  remove: removeKeyword,\n  validate: validateKeyword\n};\n/**\n * Define custom keyword\n * @this  Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\n\nfunction addKeyword(keyword, definition) {\n  /* jshint validthis: true */\n\n  /* eslint no-shadow: 0 */\n  var RULES = this.RULES;\n  if (RULES.keywords[keyword]) throw new Error('Keyword ' + keyword + ' is already defined');\n  if (!IDENTIFIER.test(keyword)) throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n  if (definition) {\n    this.validateKeyword(definition, true);\n    var dataType = definition.type;\n\n    if (Array.isArray(dataType)) {\n      for (var i = 0; i < dataType.length; i++) _addRule(keyword, dataType[i], definition);\n    } else {\n      _addRule(keyword, dataType, definition);\n    }\n\n    var metaSchema = definition.metaSchema;\n\n    if (metaSchema) {\n      if (definition.$data && this._opts.$data) {\n        metaSchema = {\n          anyOf: [metaSchema, {\n            '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#'\n          }]\n        };\n      }\n\n      definition.validateSchema = this.compile(metaSchema, true);\n    }\n  }\n\n  RULES.keywords[keyword] = RULES.all[keyword] = true;\n\n  function _addRule(keyword, dataType, definition) {\n    var ruleGroup;\n\n    for (var i = 0; i < RULES.length; i++) {\n      var rg = RULES[i];\n\n      if (rg.type == dataType) {\n        ruleGroup = rg;\n        break;\n      }\n    }\n\n    if (!ruleGroup) {\n      ruleGroup = {\n        type: dataType,\n        rules: []\n      };\n      RULES.push(ruleGroup);\n    }\n\n    var rule = {\n      keyword: keyword,\n      definition: definition,\n      custom: true,\n      code: customRuleCode,\n      implements: definition.implements\n    };\n    ruleGroup.rules.push(rule);\n    RULES.custom[keyword] = rule;\n  }\n\n  return this;\n}\n/**\n * Get keyword\n * @this  Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.\n */\n\n\nfunction getKeyword(keyword) {\n  /* jshint validthis: true */\n  var rule = this.RULES.custom[keyword];\n  return rule ? rule.definition : this.RULES.keywords[keyword] || false;\n}\n/**\n * Remove keyword\n * @this  Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Ajv} this for method chaining\n */\n\n\nfunction removeKeyword(keyword) {\n  /* jshint validthis: true */\n  var RULES = this.RULES;\n  delete RULES.keywords[keyword];\n  delete RULES.all[keyword];\n  delete RULES.custom[keyword];\n\n  for (var i = 0; i < RULES.length; i++) {\n    var rules = RULES[i].rules;\n\n    for (var j = 0; j < rules.length; j++) {\n      if (rules[j].keyword == keyword) {\n        rules.splice(j, 1);\n        break;\n      }\n    }\n  }\n\n  return this;\n}\n/**\n * Validate keyword definition\n * @this  Ajv\n * @param {Object} definition keyword definition object.\n * @param {Boolean} throwError true to throw exception if definition is invalid\n * @return {boolean} validation result\n */\n\n\nfunction validateKeyword(definition, throwError) {\n  validateKeyword.errors = null;\n  var v = this._validateKeyword = this._validateKeyword || this.compile(definitionSchema, true);\n  if (v(definition)) return true;\n  validateKeyword.errors = v.errors;\n  if (throwError) throw new Error('custom keyword definition is invalid: ' + this.errorsText(v.errors));else return false;\n}\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/keyword.js?");

/***/ }),

/***/ "./node_modules/ajv/lib/refs/data.json":
/*!*********************************************!*\
  !*** ./node_modules/ajv/lib/refs/data.json ***!
  \*********************************************/
/*! exports provided: $schema, $id, description, type, required, properties, additionalProperties, default */
/***/ (function(module) {

eval("module.exports = JSON.parse(\"{\\\"$schema\\\":\\\"http://json-schema.org/draft-07/schema#\\\",\\\"$id\\\":\\\"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\\\",\\\"description\\\":\\\"Meta-schema for $data reference (JSON Schema extension proposal)\\\",\\\"type\\\":\\\"object\\\",\\\"required\\\":[\\\"$data\\\"],\\\"properties\\\":{\\\"$data\\\":{\\\"type\\\":\\\"string\\\",\\\"anyOf\\\":[{\\\"format\\\":\\\"relative-json-pointer\\\"},{\\\"format\\\":\\\"json-pointer\\\"}]}},\\\"additionalProperties\\\":false}\");\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/refs/data.json?");

/***/ }),

/***/ "./node_modules/ajv/lib/refs/json-schema-draft-07.json":
/*!*************************************************************!*\
  !*** ./node_modules/ajv/lib/refs/json-schema-draft-07.json ***!
  \*************************************************************/
/*! exports provided: $schema, $id, title, definitions, type, properties, default */
/***/ (function(module) {

eval("module.exports = JSON.parse(\"{\\\"$schema\\\":\\\"http://json-schema.org/draft-07/schema#\\\",\\\"$id\\\":\\\"http://json-schema.org/draft-07/schema#\\\",\\\"title\\\":\\\"Core schema meta-schema\\\",\\\"definitions\\\":{\\\"schemaArray\\\":{\\\"type\\\":\\\"array\\\",\\\"minItems\\\":1,\\\"items\\\":{\\\"$ref\\\":\\\"#\\\"}},\\\"nonNegativeInteger\\\":{\\\"type\\\":\\\"integer\\\",\\\"minimum\\\":0},\\\"nonNegativeIntegerDefault0\\\":{\\\"allOf\\\":[{\\\"$ref\\\":\\\"#/definitions/nonNegativeInteger\\\"},{\\\"default\\\":0}]},\\\"simpleTypes\\\":{\\\"enum\\\":[\\\"array\\\",\\\"boolean\\\",\\\"integer\\\",\\\"null\\\",\\\"number\\\",\\\"object\\\",\\\"string\\\"]},\\\"stringArray\\\":{\\\"type\\\":\\\"array\\\",\\\"items\\\":{\\\"type\\\":\\\"string\\\"},\\\"uniqueItems\\\":true,\\\"default\\\":[]}},\\\"type\\\":[\\\"object\\\",\\\"boolean\\\"],\\\"properties\\\":{\\\"$id\\\":{\\\"type\\\":\\\"string\\\",\\\"format\\\":\\\"uri-reference\\\"},\\\"$schema\\\":{\\\"type\\\":\\\"string\\\",\\\"format\\\":\\\"uri\\\"},\\\"$ref\\\":{\\\"type\\\":\\\"string\\\",\\\"format\\\":\\\"uri-reference\\\"},\\\"$comment\\\":{\\\"type\\\":\\\"string\\\"},\\\"title\\\":{\\\"type\\\":\\\"string\\\"},\\\"description\\\":{\\\"type\\\":\\\"string\\\"},\\\"default\\\":true,\\\"readOnly\\\":{\\\"type\\\":\\\"boolean\\\",\\\"default\\\":false},\\\"examples\\\":{\\\"type\\\":\\\"array\\\",\\\"items\\\":true},\\\"multipleOf\\\":{\\\"type\\\":\\\"number\\\",\\\"exclusiveMinimum\\\":0},\\\"maximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"exclusiveMaximum\\\":{\\\"type\\\":\\\"number\\\"},\\\"minimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"exclusiveMinimum\\\":{\\\"type\\\":\\\"number\\\"},\\\"maxLength\\\":{\\\"$ref\\\":\\\"#/definitions/nonNegativeInteger\\\"},\\\"minLength\\\":{\\\"$ref\\\":\\\"#/definitions/nonNegativeIntegerDefault0\\\"},\\\"pattern\\\":{\\\"type\\\":\\\"string\\\",\\\"format\\\":\\\"regex\\\"},\\\"additionalItems\\\":{\\\"$ref\\\":\\\"#\\\"},\\\"items\\\":{\\\"anyOf\\\":[{\\\"$ref\\\":\\\"#\\\"},{\\\"$ref\\\":\\\"#/definitions/schemaArray\\\"}],\\\"default\\\":true},\\\"maxItems\\\":{\\\"$ref\\\":\\\"#/definitions/nonNegativeInteger\\\"},\\\"minItems\\\":{\\\"$ref\\\":\\\"#/definitions/nonNegativeIntegerDefault0\\\"},\\\"uniqueItems\\\":{\\\"type\\\":\\\"boolean\\\",\\\"default\\\":false},\\\"contains\\\":{\\\"$ref\\\":\\\"#\\\"},\\\"maxProperties\\\":{\\\"$ref\\\":\\\"#/definitions/nonNegativeInteger\\\"},\\\"minProperties\\\":{\\\"$ref\\\":\\\"#/definitions/nonNegativeIntegerDefault0\\\"},\\\"required\\\":{\\\"$ref\\\":\\\"#/definitions/stringArray\\\"},\\\"additionalProperties\\\":{\\\"$ref\\\":\\\"#\\\"},\\\"definitions\\\":{\\\"type\\\":\\\"object\\\",\\\"additionalProperties\\\":{\\\"$ref\\\":\\\"#\\\"},\\\"default\\\":{}},\\\"properties\\\":{\\\"type\\\":\\\"object\\\",\\\"additionalProperties\\\":{\\\"$ref\\\":\\\"#\\\"},\\\"default\\\":{}},\\\"patternProperties\\\":{\\\"type\\\":\\\"object\\\",\\\"additionalProperties\\\":{\\\"$ref\\\":\\\"#\\\"},\\\"propertyNames\\\":{\\\"format\\\":\\\"regex\\\"},\\\"default\\\":{}},\\\"dependencies\\\":{\\\"type\\\":\\\"object\\\",\\\"additionalProperties\\\":{\\\"anyOf\\\":[{\\\"$ref\\\":\\\"#\\\"},{\\\"$ref\\\":\\\"#/definitions/stringArray\\\"}]}},\\\"propertyNames\\\":{\\\"$ref\\\":\\\"#\\\"},\\\"const\\\":true,\\\"enum\\\":{\\\"type\\\":\\\"array\\\",\\\"items\\\":true,\\\"minItems\\\":1,\\\"uniqueItems\\\":true},\\\"type\\\":{\\\"anyOf\\\":[{\\\"$ref\\\":\\\"#/definitions/simpleTypes\\\"},{\\\"type\\\":\\\"array\\\",\\\"items\\\":{\\\"$ref\\\":\\\"#/definitions/simpleTypes\\\"},\\\"minItems\\\":1,\\\"uniqueItems\\\":true}]},\\\"format\\\":{\\\"type\\\":\\\"string\\\"},\\\"contentMediaType\\\":{\\\"type\\\":\\\"string\\\"},\\\"contentEncoding\\\":{\\\"type\\\":\\\"string\\\"},\\\"if\\\":{\\\"$ref\\\":\\\"#\\\"},\\\"then\\\":{\\\"$ref\\\":\\\"#\\\"},\\\"else\\\":{\\\"$ref\\\":\\\"#\\\"},\\\"allOf\\\":{\\\"$ref\\\":\\\"#/definitions/schemaArray\\\"},\\\"anyOf\\\":{\\\"$ref\\\":\\\"#/definitions/schemaArray\\\"},\\\"oneOf\\\":{\\\"$ref\\\":\\\"#/definitions/schemaArray\\\"},\\\"not\\\":{\\\"$ref\\\":\\\"#\\\"}},\\\"default\\\":true}\");\n\n//# sourceURL=webpack:///./node_modules/ajv/lib/refs/json-schema-draft-07.json?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1.js":
/*!******************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst asn1 = exports;\nasn1.bignum = __webpack_require__(/*! bn.js */ \"./node_modules/asn1.js/node_modules/bn.js/lib/bn.js\");\nasn1.define = __webpack_require__(/*! ./asn1/api */ \"./node_modules/asn1.js/lib/asn1/api.js\").define;\nasn1.base = __webpack_require__(/*! ./asn1/base */ \"./node_modules/asn1.js/lib/asn1/base/index.js\");\nasn1.constants = __webpack_require__(/*! ./asn1/constants */ \"./node_modules/asn1.js/lib/asn1/constants/index.js\");\nasn1.decoders = __webpack_require__(/*! ./asn1/decoders */ \"./node_modules/asn1.js/lib/asn1/decoders/index.js\");\nasn1.encoders = __webpack_require__(/*! ./asn1/encoders */ \"./node_modules/asn1.js/lib/asn1/encoders/index.js\");\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/api.js":
/*!**********************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/api.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst encoders = __webpack_require__(/*! ./encoders */ \"./node_modules/asn1.js/lib/asn1/encoders/index.js\");\n\nconst decoders = __webpack_require__(/*! ./decoders */ \"./node_modules/asn1.js/lib/asn1/decoders/index.js\");\n\nconst inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nconst api = exports;\n\napi.define = function define(name, body) {\n  return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n  this.name = name;\n  this.body = body;\n  this.decoders = {};\n  this.encoders = {};\n}\n\nEntity.prototype._createNamed = function createNamed(Base) {\n  const name = this.name;\n\n  function Generated(entity) {\n    this._initNamed(entity, name);\n  }\n\n  inherits(Generated, Base);\n\n  Generated.prototype._initNamed = function _initNamed(entity, name) {\n    Base.call(this, entity, name);\n  };\n\n  return new Generated(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n  enc = enc || 'der'; // Lazily create decoder\n\n  if (!this.decoders.hasOwnProperty(enc)) this.decoders[enc] = this._createNamed(decoders[enc]);\n  return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n  return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n  enc = enc || 'der'; // Lazily create encoder\n\n  if (!this.encoders.hasOwnProperty(enc)) this.encoders[enc] = this._createNamed(encoders[enc]);\n  return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc,\n/* internal */\nreporter) {\n  return this._getEncoder(enc).encode(data, reporter);\n};\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1/api.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/base/buffer.js":
/*!******************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/base/buffer.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nconst Reporter = __webpack_require__(/*! ../base/reporter */ \"./node_modules/asn1.js/lib/asn1/base/reporter.js\").Reporter;\n\nconst Buffer = __webpack_require__(/*! safer-buffer */ \"./node_modules/safer-buffer/safer.js\").Buffer;\n\nfunction DecoderBuffer(base, options) {\n  Reporter.call(this, options);\n\n  if (!Buffer.isBuffer(base)) {\n    this.error('Input not Buffer');\n    return;\n  }\n\n  this.base = base;\n  this.offset = 0;\n  this.length = base.length;\n}\n\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n  if (data instanceof DecoderBuffer) {\n    return true;\n  } // Or accept compatible API\n\n\n  const isCompatible = typeof data === 'object' && Buffer.isBuffer(data.base) && data.constructor.name === 'DecoderBuffer' && typeof data.offset === 'number' && typeof data.length === 'number' && typeof data.save === 'function' && typeof data.restore === 'function' && typeof data.isEmpty === 'function' && typeof data.readUInt8 === 'function' && typeof data.skip === 'function' && typeof data.raw === 'function';\n  return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n  return {\n    offset: this.offset,\n    reporter: Reporter.prototype.save.call(this)\n  };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n  // Return skipped data\n  const res = new DecoderBuffer(this.base);\n  res.offset = save.offset;\n  res.length = this.offset;\n  this.offset = save.offset;\n  Reporter.prototype.restore.call(this, save.reporter);\n  return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n  return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n  if (this.offset + 1 <= this.length) return this.base.readUInt8(this.offset++, true);else return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n  if (!(this.offset + bytes <= this.length)) return this.error(fail || 'DecoderBuffer overrun');\n  const res = new DecoderBuffer(this.base); // Share reporter state\n\n  res._reporterState = this._reporterState;\n  res.offset = this.offset;\n  res.length = this.offset + bytes;\n  this.offset += bytes;\n  return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n  return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n  if (Array.isArray(value)) {\n    this.length = 0;\n    this.value = value.map(function (item) {\n      if (!EncoderBuffer.isEncoderBuffer(item)) item = new EncoderBuffer(item, reporter);\n      this.length += item.length;\n      return item;\n    }, this);\n  } else if (typeof value === 'number') {\n    if (!(0 <= value && value <= 0xff)) return reporter.error('non-byte EncoderBuffer value');\n    this.value = value;\n    this.length = 1;\n  } else if (typeof value === 'string') {\n    this.value = value;\n    this.length = Buffer.byteLength(value);\n  } else if (Buffer.isBuffer(value)) {\n    this.value = value;\n    this.length = value.length;\n  } else {\n    return reporter.error('Unsupported type: ' + typeof value);\n  }\n}\n\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n  if (data instanceof EncoderBuffer) {\n    return true;\n  } // Or accept compatible API\n\n\n  const isCompatible = typeof data === 'object' && data.constructor.name === 'EncoderBuffer' && typeof data.length === 'number' && typeof data.join === 'function';\n  return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n  if (!out) out = Buffer.alloc(this.length);\n  if (!offset) offset = 0;\n  if (this.length === 0) return out;\n\n  if (Array.isArray(this.value)) {\n    this.value.forEach(function (item) {\n      item.join(out, offset);\n      offset += item.length;\n    });\n  } else {\n    if (typeof this.value === 'number') out[offset] = this.value;else if (typeof this.value === 'string') out.write(this.value, offset);else if (Buffer.isBuffer(this.value)) this.value.copy(out, offset);\n    offset += this.length;\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1/base/buffer.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/base/index.js":
/*!*****************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/base/index.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst base = exports;\nbase.Reporter = __webpack_require__(/*! ./reporter */ \"./node_modules/asn1.js/lib/asn1/base/reporter.js\").Reporter;\nbase.DecoderBuffer = __webpack_require__(/*! ./buffer */ \"./node_modules/asn1.js/lib/asn1/base/buffer.js\").DecoderBuffer;\nbase.EncoderBuffer = __webpack_require__(/*! ./buffer */ \"./node_modules/asn1.js/lib/asn1/base/buffer.js\").EncoderBuffer;\nbase.Node = __webpack_require__(/*! ./node */ \"./node_modules/asn1.js/lib/asn1/base/node.js\");\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1/base/index.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/base/node.js":
/*!****************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/base/node.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst Reporter = __webpack_require__(/*! ../base/reporter */ \"./node_modules/asn1.js/lib/asn1/base/reporter.js\").Reporter;\n\nconst EncoderBuffer = __webpack_require__(/*! ../base/buffer */ \"./node_modules/asn1.js/lib/asn1/base/buffer.js\").EncoderBuffer;\n\nconst DecoderBuffer = __webpack_require__(/*! ../base/buffer */ \"./node_modules/asn1.js/lib/asn1/base/buffer.js\").DecoderBuffer;\n\nconst assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\"); // Supported tags\n\n\nconst tags = ['seq', 'seqof', 'set', 'setof', 'objid', 'bool', 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc', 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str', 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr']; // Public methods list\n\nconst methods = ['key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice', 'any', 'contains'].concat(tags); // Overrided methods list\n\nconst overrided = ['_peekTag', '_decodeTag', '_use', '_decodeStr', '_decodeObjid', '_decodeTime', '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList', '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime', '_encodeNull', '_encodeInt', '_encodeBool'];\n\nfunction Node(enc, parent, name) {\n  const state = {};\n  this._baseState = state;\n  state.name = name;\n  state.enc = enc;\n  state.parent = parent || null;\n  state.children = null; // State\n\n  state.tag = null;\n  state.args = null;\n  state.reverseArgs = null;\n  state.choice = null;\n  state.optional = false;\n  state.any = false;\n  state.obj = false;\n  state.use = null;\n  state.useDecoder = null;\n  state.key = null;\n  state['default'] = null;\n  state.explicit = null;\n  state.implicit = null;\n  state.contains = null; // Should create new instance on each method\n\n  if (!state.parent) {\n    state.children = [];\n\n    this._wrap();\n  }\n}\n\nmodule.exports = Node;\nconst stateProps = ['enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice', 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit', 'implicit', 'contains'];\n\nNode.prototype.clone = function clone() {\n  const state = this._baseState;\n  const cstate = {};\n  stateProps.forEach(function (prop) {\n    cstate[prop] = state[prop];\n  });\n  const res = new this.constructor(cstate.parent);\n  res._baseState = cstate;\n  return res;\n};\n\nNode.prototype._wrap = function wrap() {\n  const state = this._baseState;\n  methods.forEach(function (method) {\n    this[method] = function _wrappedMethod() {\n      const clone = new this.constructor(this);\n      state.children.push(clone);\n      return clone[method].apply(clone, arguments);\n    };\n  }, this);\n};\n\nNode.prototype._init = function init(body) {\n  const state = this._baseState;\n  assert(state.parent === null);\n  body.call(this); // Filter children\n\n  state.children = state.children.filter(function (child) {\n    return child._baseState.parent === this;\n  }, this);\n  assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n  const state = this._baseState; // Filter children and args\n\n  const children = args.filter(function (arg) {\n    return arg instanceof this.constructor;\n  }, this);\n  args = args.filter(function (arg) {\n    return !(arg instanceof this.constructor);\n  }, this);\n\n  if (children.length !== 0) {\n    assert(state.children === null);\n    state.children = children; // Replace parent to maintain backward link\n\n    children.forEach(function (child) {\n      child._baseState.parent = this;\n    }, this);\n  }\n\n  if (args.length !== 0) {\n    assert(state.args === null);\n    state.args = args;\n    state.reverseArgs = args.map(function (arg) {\n      if (typeof arg !== 'object' || arg.constructor !== Object) return arg;\n      const res = {};\n      Object.keys(arg).forEach(function (key) {\n        if (key == (key | 0)) key |= 0;\n        const value = arg[key];\n        res[value] = key;\n      });\n      return res;\n    });\n  }\n}; //\n// Overrided methods\n//\n\n\noverrided.forEach(function (method) {\n  Node.prototype[method] = function _overrided() {\n    const state = this._baseState;\n    throw new Error(method + ' not implemented for encoding: ' + state.enc);\n  };\n}); //\n// Public methods\n//\n\ntags.forEach(function (tag) {\n  Node.prototype[tag] = function _tagMethod() {\n    const state = this._baseState;\n    const args = Array.prototype.slice.call(arguments);\n    assert(state.tag === null);\n    state.tag = tag;\n\n    this._useArgs(args);\n\n    return this;\n  };\n});\n\nNode.prototype.use = function use(item) {\n  assert(item);\n  const state = this._baseState;\n  assert(state.use === null);\n  state.use = item;\n  return this;\n};\n\nNode.prototype.optional = function optional() {\n  const state = this._baseState;\n  state.optional = true;\n  return this;\n};\n\nNode.prototype.def = function def(val) {\n  const state = this._baseState;\n  assert(state['default'] === null);\n  state['default'] = val;\n  state.optional = true;\n  return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n  const state = this._baseState;\n  assert(state.explicit === null && state.implicit === null);\n  state.explicit = num;\n  return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n  const state = this._baseState;\n  assert(state.explicit === null && state.implicit === null);\n  state.implicit = num;\n  return this;\n};\n\nNode.prototype.obj = function obj() {\n  const state = this._baseState;\n  const args = Array.prototype.slice.call(arguments);\n  state.obj = true;\n  if (args.length !== 0) this._useArgs(args);\n  return this;\n};\n\nNode.prototype.key = function key(newKey) {\n  const state = this._baseState;\n  assert(state.key === null);\n  state.key = newKey;\n  return this;\n};\n\nNode.prototype.any = function any() {\n  const state = this._baseState;\n  state.any = true;\n  return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n  const state = this._baseState;\n  assert(state.choice === null);\n  state.choice = obj;\n\n  this._useArgs(Object.keys(obj).map(function (key) {\n    return obj[key];\n  }));\n\n  return this;\n};\n\nNode.prototype.contains = function contains(item) {\n  const state = this._baseState;\n  assert(state.use === null);\n  state.contains = item;\n  return this;\n}; //\n// Decoding\n//\n\n\nNode.prototype._decode = function decode(input, options) {\n  const state = this._baseState; // Decode root node\n\n  if (state.parent === null) return input.wrapResult(state.children[0]._decode(input, options));\n  let result = state['default'];\n  let present = true;\n  let prevKey = null;\n  if (state.key !== null) prevKey = input.enterKey(state.key); // Check if tag is there\n\n  if (state.optional) {\n    let tag = null;\n    if (state.explicit !== null) tag = state.explicit;else if (state.implicit !== null) tag = state.implicit;else if (state.tag !== null) tag = state.tag;\n\n    if (tag === null && !state.any) {\n      // Trial and Error\n      const save = input.save();\n\n      try {\n        if (state.choice === null) this._decodeGeneric(state.tag, input, options);else this._decodeChoice(input, options);\n        present = true;\n      } catch (e) {\n        present = false;\n      }\n\n      input.restore(save);\n    } else {\n      present = this._peekTag(input, tag, state.any);\n      if (input.isError(present)) return present;\n    }\n  } // Push object on stack\n\n\n  let prevObj;\n  if (state.obj && present) prevObj = input.enterObject();\n\n  if (present) {\n    // Unwrap explicit values\n    if (state.explicit !== null) {\n      const explicit = this._decodeTag(input, state.explicit);\n\n      if (input.isError(explicit)) return explicit;\n      input = explicit;\n    }\n\n    const start = input.offset; // Unwrap implicit and normal values\n\n    if (state.use === null && state.choice === null) {\n      let save;\n      if (state.any) save = input.save();\n\n      const body = this._decodeTag(input, state.implicit !== null ? state.implicit : state.tag, state.any);\n\n      if (input.isError(body)) return body;\n      if (state.any) result = input.raw(save);else input = body;\n    }\n\n    if (options && options.track && state.tag !== null) options.track(input.path(), start, input.length, 'tagged');\n    if (options && options.track && state.tag !== null) options.track(input.path(), input.offset, input.length, 'content'); // Select proper method for tag\n\n    if (state.any) {// no-op\n    } else if (state.choice === null) {\n      result = this._decodeGeneric(state.tag, input, options);\n    } else {\n      result = this._decodeChoice(input, options);\n    }\n\n    if (input.isError(result)) return result; // Decode children\n\n    if (!state.any && state.choice === null && state.children !== null) {\n      state.children.forEach(function decodeChildren(child) {\n        // NOTE: We are ignoring errors here, to let parser continue with other\n        // parts of encoded data\n        child._decode(input, options);\n      });\n    } // Decode contained/encoded by schema, only in bit or octet strings\n\n\n    if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n      const data = new DecoderBuffer(result);\n      result = this._getUse(state.contains, input._reporterState.obj)._decode(data, options);\n    }\n  } // Pop object\n\n\n  if (state.obj && present) result = input.leaveObject(prevObj); // Set key\n\n  if (state.key !== null && (result !== null || present === true)) input.leaveKey(prevKey, state.key, result);else if (prevKey !== null) input.exitKey(prevKey);\n  return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n  const state = this._baseState;\n  if (tag === 'seq' || tag === 'set') return null;\n  if (tag === 'seqof' || tag === 'setof') return this._decodeList(input, tag, state.args[0], options);else if (/str$/.test(tag)) return this._decodeStr(input, tag, options);else if (tag === 'objid' && state.args) return this._decodeObjid(input, state.args[0], state.args[1], options);else if (tag === 'objid') return this._decodeObjid(input, null, null, options);else if (tag === 'gentime' || tag === 'utctime') return this._decodeTime(input, tag, options);else if (tag === 'null_') return this._decodeNull(input, options);else if (tag === 'bool') return this._decodeBool(input, options);else if (tag === 'objDesc') return this._decodeStr(input, tag, options);else if (tag === 'int' || tag === 'enum') return this._decodeInt(input, state.args && state.args[0], options);\n\n  if (state.use !== null) {\n    return this._getUse(state.use, input._reporterState.obj)._decode(input, options);\n  } else {\n    return input.error('unknown tag: ' + tag);\n  }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n  const state = this._baseState; // Create altered use decoder if implicit is set\n\n  state.useDecoder = this._use(entity, obj);\n  assert(state.useDecoder._baseState.parent === null);\n  state.useDecoder = state.useDecoder._baseState.children[0];\n\n  if (state.implicit !== state.useDecoder._baseState.implicit) {\n    state.useDecoder = state.useDecoder.clone();\n    state.useDecoder._baseState.implicit = state.implicit;\n  }\n\n  return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n  const state = this._baseState;\n  let result = null;\n  let match = false;\n  Object.keys(state.choice).some(function (key) {\n    const save = input.save();\n    const node = state.choice[key];\n\n    try {\n      const value = node._decode(input, options);\n\n      if (input.isError(value)) return false;\n      result = {\n        type: key,\n        value: value\n      };\n      match = true;\n    } catch (e) {\n      input.restore(save);\n      return false;\n    }\n\n    return true;\n  }, this);\n  if (!match) return input.error('Choice not matched');\n  return result;\n}; //\n// Encoding\n//\n\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n  return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n  const state = this._baseState;\n  if (state['default'] !== null && state['default'] === data) return;\n\n  const result = this._encodeValue(data, reporter, parent);\n\n  if (result === undefined) return;\n  if (this._skipDefault(result, reporter, parent)) return;\n  return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n  const state = this._baseState; // Decode root node\n\n  if (state.parent === null) return state.children[0]._encode(data, reporter || new Reporter());\n  let result = null; // Set reporter to share it with a child class\n\n  this.reporter = reporter; // Check if data is there\n\n  if (state.optional && data === undefined) {\n    if (state['default'] !== null) data = state['default'];else return;\n  } // Encode children first\n\n\n  let content = null;\n  let primitive = false;\n\n  if (state.any) {\n    // Anything that was given is translated to buffer\n    result = this._createEncoderBuffer(data);\n  } else if (state.choice) {\n    result = this._encodeChoice(data, reporter);\n  } else if (state.contains) {\n    content = this._getUse(state.contains, parent)._encode(data, reporter);\n    primitive = true;\n  } else if (state.children) {\n    content = state.children.map(function (child) {\n      if (child._baseState.tag === 'null_') return child._encode(null, reporter, data);\n      if (child._baseState.key === null) return reporter.error('Child should have a key');\n      const prevKey = reporter.enterKey(child._baseState.key);\n      if (typeof data !== 'object') return reporter.error('Child expected, but input is not object');\n\n      const res = child._encode(data[child._baseState.key], reporter, data);\n\n      reporter.leaveKey(prevKey);\n      return res;\n    }, this).filter(function (child) {\n      return child;\n    });\n    content = this._createEncoderBuffer(content);\n  } else {\n    if (state.tag === 'seqof' || state.tag === 'setof') {\n      // TODO(indutny): this should be thrown on DSL level\n      if (!(state.args && state.args.length === 1)) return reporter.error('Too many args for : ' + state.tag);\n      if (!Array.isArray(data)) return reporter.error('seqof/setof, but data is not Array');\n      const child = this.clone();\n      child._baseState.implicit = null;\n      content = this._createEncoderBuffer(data.map(function (item) {\n        const state = this._baseState;\n        return this._getUse(state.args[0], data)._encode(item, reporter);\n      }, child));\n    } else if (state.use !== null) {\n      result = this._getUse(state.use, parent)._encode(data, reporter);\n    } else {\n      content = this._encodePrimitive(state.tag, data);\n      primitive = true;\n    }\n  } // Encode data itself\n\n\n  if (!state.any && state.choice === null) {\n    const tag = state.implicit !== null ? state.implicit : state.tag;\n    const cls = state.implicit === null ? 'universal' : 'context';\n\n    if (tag === null) {\n      if (state.use === null) reporter.error('Tag could be omitted only for .use()');\n    } else {\n      if (state.use === null) result = this._encodeComposite(tag, primitive, cls, content);\n    }\n  } // Wrap in explicit\n\n\n  if (state.explicit !== null) result = this._encodeComposite(state.explicit, false, 'context', result);\n  return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n  const state = this._baseState;\n  const node = state.choice[data.type];\n\n  if (!node) {\n    assert(false, data.type + ' not found in ' + JSON.stringify(Object.keys(state.choice)));\n  }\n\n  return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n  const state = this._baseState;\n  if (/str$/.test(tag)) return this._encodeStr(data, tag);else if (tag === 'objid' && state.args) return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);else if (tag === 'objid') return this._encodeObjid(data, null, null);else if (tag === 'gentime' || tag === 'utctime') return this._encodeTime(data, tag);else if (tag === 'null_') return this._encodeNull();else if (tag === 'int' || tag === 'enum') return this._encodeInt(data, state.args && state.reverseArgs[0]);else if (tag === 'bool') return this._encodeBool(data);else if (tag === 'objDesc') return this._encodeStr(data, tag);else throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n  return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n  return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1/base/node.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/base/reporter.js":
/*!********************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/base/reporter.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction Reporter(options) {\n  this._reporterState = {\n    obj: null,\n    path: [],\n    options: options || {},\n    errors: []\n  };\n}\n\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n  return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n  const state = this._reporterState;\n  return {\n    obj: state.obj,\n    pathLen: state.path.length\n  };\n};\n\nReporter.prototype.restore = function restore(data) {\n  const state = this._reporterState;\n  state.obj = data.obj;\n  state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n  return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n  const state = this._reporterState;\n  state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n  const state = this._reporterState;\n  this.exitKey(index);\n  if (state.obj !== null) state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n  return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n  const state = this._reporterState;\n  const prev = state.obj;\n  state.obj = {};\n  return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n  const state = this._reporterState;\n  const now = state.obj;\n  state.obj = prev;\n  return now;\n};\n\nReporter.prototype.error = function error(msg) {\n  let err;\n  const state = this._reporterState;\n  const inherited = msg instanceof ReporterError;\n\n  if (inherited) {\n    err = msg;\n  } else {\n    err = new ReporterError(state.path.map(function (elem) {\n      return '[' + JSON.stringify(elem) + ']';\n    }).join(''), msg.message || msg, msg.stack);\n  }\n\n  if (!state.options.partial) throw err;\n  if (!inherited) state.errors.push(err);\n  return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n  const state = this._reporterState;\n  if (!state.options.partial) return result;\n  return {\n    result: this.isError(result) ? null : result,\n    errors: state.errors\n  };\n};\n\nfunction ReporterError(path, msg) {\n  this.path = path;\n  this.rethrow(msg);\n}\n\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n  this.message = msg + ' at: ' + (this.path || '(shallow)');\n  if (Error.captureStackTrace) Error.captureStackTrace(this, ReporterError);\n\n  if (!this.stack) {\n    try {\n      // IE only adds stack when thrown\n      throw new Error(this.message);\n    } catch (e) {\n      this.stack = e.stack;\n    }\n  }\n\n  return this;\n};\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1/base/reporter.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/constants/der.js":
/*!********************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/constants/der.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval(" // Helper\n\nfunction reverse(map) {\n  const res = {};\n  Object.keys(map).forEach(function (key) {\n    // Convert key to integer if it is stringified\n    if ((key | 0) == key) key = key | 0;\n    const value = map[key];\n    res[value] = key;\n  });\n  return res;\n}\n\nexports.tagClass = {\n  0: 'universal',\n  1: 'application',\n  2: 'context',\n  3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\nexports.tag = {\n  0x00: 'end',\n  0x01: 'bool',\n  0x02: 'int',\n  0x03: 'bitstr',\n  0x04: 'octstr',\n  0x05: 'null_',\n  0x06: 'objid',\n  0x07: 'objDesc',\n  0x08: 'external',\n  0x09: 'real',\n  0x0a: 'enum',\n  0x0b: 'embed',\n  0x0c: 'utf8str',\n  0x0d: 'relativeOid',\n  0x10: 'seq',\n  0x11: 'set',\n  0x12: 'numstr',\n  0x13: 'printstr',\n  0x14: 't61str',\n  0x15: 'videostr',\n  0x16: 'ia5str',\n  0x17: 'utctime',\n  0x18: 'gentime',\n  0x19: 'graphstr',\n  0x1a: 'iso646str',\n  0x1b: 'genstr',\n  0x1c: 'unistr',\n  0x1d: 'charstr',\n  0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1/constants/der.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/constants/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/constants/index.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst constants = exports; // Helper\n\nconstants._reverse = function reverse(map) {\n  const res = {};\n  Object.keys(map).forEach(function (key) {\n    // Convert key to integer if it is stringified\n    if ((key | 0) == key) key = key | 0;\n    const value = map[key];\n    res[value] = key;\n  });\n  return res;\n};\n\nconstants.der = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/constants/der.js\");\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1/constants/index.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/decoders/der.js":
/*!*******************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/decoders/der.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nconst bignum = __webpack_require__(/*! bn.js */ \"./node_modules/asn1.js/node_modules/bn.js/lib/bn.js\");\n\nconst DecoderBuffer = __webpack_require__(/*! ../base/buffer */ \"./node_modules/asn1.js/lib/asn1/base/buffer.js\").DecoderBuffer;\n\nconst Node = __webpack_require__(/*! ../base/node */ \"./node_modules/asn1.js/lib/asn1/base/node.js\"); // Import DER constants\n\n\nconst der = __webpack_require__(/*! ../constants/der */ \"./node_modules/asn1.js/lib/asn1/constants/der.js\");\n\nfunction DERDecoder(entity) {\n  this.enc = 'der';\n  this.name = entity.name;\n  this.entity = entity; // Construct base tree\n\n  this.tree = new DERNode();\n\n  this.tree._init(entity.body);\n}\n\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n  if (!DecoderBuffer.isDecoderBuffer(data)) {\n    data = new DecoderBuffer(data, options);\n  }\n\n  return this.tree._decode(data, options);\n}; // Tree methods\n\n\nfunction DERNode(parent) {\n  Node.call(this, 'der', parent);\n}\n\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n  if (buffer.isEmpty()) return false;\n  const state = buffer.save();\n  const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n  if (buffer.isError(decodedTag)) return decodedTag;\n  buffer.restore(state);\n  return decodedTag.tag === tag || decodedTag.tagStr === tag || decodedTag.tagStr + 'of' === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n  const decodedTag = derDecodeTag(buffer, 'Failed to decode tag of \"' + tag + '\"');\n  if (buffer.isError(decodedTag)) return decodedTag;\n  let len = derDecodeLen(buffer, decodedTag.primitive, 'Failed to get length of \"' + tag + '\"'); // Failure\n\n  if (buffer.isError(len)) return len;\n\n  if (!any && decodedTag.tag !== tag && decodedTag.tagStr !== tag && decodedTag.tagStr + 'of' !== tag) {\n    return buffer.error('Failed to match tag: \"' + tag + '\"');\n  }\n\n  if (decodedTag.primitive || len !== null) return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"'); // Indefinite length... find END tag\n\n  const state = buffer.save();\n\n  const res = this._skipUntilEnd(buffer, 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n\n  if (buffer.isError(res)) return res;\n  len = buffer.offset - state.offset;\n  buffer.restore(state);\n  return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n  for (;;) {\n    const tag = derDecodeTag(buffer, fail);\n    if (buffer.isError(tag)) return tag;\n    const len = derDecodeLen(buffer, tag.primitive, fail);\n    if (buffer.isError(len)) return len;\n    let res;\n    if (tag.primitive || len !== null) res = buffer.skip(len);else res = this._skipUntilEnd(buffer, fail); // Failure\n\n    if (buffer.isError(res)) return res;\n    if (tag.tagStr === 'end') break;\n  }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder, options) {\n  const result = [];\n\n  while (!buffer.isEmpty()) {\n    const possibleEnd = this._peekTag(buffer, 'end');\n\n    if (buffer.isError(possibleEnd)) return possibleEnd;\n    const res = decoder.decode(buffer, 'der', options);\n    if (buffer.isError(res) && possibleEnd) break;\n    result.push(res);\n  }\n\n  return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n  if (tag === 'bitstr') {\n    const unused = buffer.readUInt8();\n    if (buffer.isError(unused)) return unused;\n    return {\n      unused: unused,\n      data: buffer.raw()\n    };\n  } else if (tag === 'bmpstr') {\n    const raw = buffer.raw();\n    if (raw.length % 2 === 1) return buffer.error('Decoding of string type: bmpstr length mismatch');\n    let str = '';\n\n    for (let i = 0; i < raw.length / 2; i++) {\n      str += String.fromCharCode(raw.readUInt16BE(i * 2));\n    }\n\n    return str;\n  } else if (tag === 'numstr') {\n    const numstr = buffer.raw().toString('ascii');\n\n    if (!this._isNumstr(numstr)) {\n      return buffer.error('Decoding of string type: ' + 'numstr unsupported characters');\n    }\n\n    return numstr;\n  } else if (tag === 'octstr') {\n    return buffer.raw();\n  } else if (tag === 'objDesc') {\n    return buffer.raw();\n  } else if (tag === 'printstr') {\n    const printstr = buffer.raw().toString('ascii');\n\n    if (!this._isPrintstr(printstr)) {\n      return buffer.error('Decoding of string type: ' + 'printstr unsupported characters');\n    }\n\n    return printstr;\n  } else if (/str$/.test(tag)) {\n    return buffer.raw().toString();\n  } else {\n    return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n  }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n  let result;\n  const identifiers = [];\n  let ident = 0;\n  let subident = 0;\n\n  while (!buffer.isEmpty()) {\n    subident = buffer.readUInt8();\n    ident <<= 7;\n    ident |= subident & 0x7f;\n\n    if ((subident & 0x80) === 0) {\n      identifiers.push(ident);\n      ident = 0;\n    }\n  }\n\n  if (subident & 0x80) identifiers.push(ident);\n  const first = identifiers[0] / 40 | 0;\n  const second = identifiers[0] % 40;\n  if (relative) result = identifiers;else result = [first, second].concat(identifiers.slice(1));\n\n  if (values) {\n    let tmp = values[result.join(' ')];\n    if (tmp === undefined) tmp = values[result.join('.')];\n    if (tmp !== undefined) result = tmp;\n  }\n\n  return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n  const str = buffer.raw().toString();\n  let year;\n  let mon;\n  let day;\n  let hour;\n  let min;\n  let sec;\n\n  if (tag === 'gentime') {\n    year = str.slice(0, 4) | 0;\n    mon = str.slice(4, 6) | 0;\n    day = str.slice(6, 8) | 0;\n    hour = str.slice(8, 10) | 0;\n    min = str.slice(10, 12) | 0;\n    sec = str.slice(12, 14) | 0;\n  } else if (tag === 'utctime') {\n    year = str.slice(0, 2) | 0;\n    mon = str.slice(2, 4) | 0;\n    day = str.slice(4, 6) | 0;\n    hour = str.slice(6, 8) | 0;\n    min = str.slice(8, 10) | 0;\n    sec = str.slice(10, 12) | 0;\n    if (year < 70) year = 2000 + year;else year = 1900 + year;\n  } else {\n    return buffer.error('Decoding ' + tag + ' time is not supported yet');\n  }\n\n  return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n  return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n  const res = buffer.readUInt8();\n  if (buffer.isError(res)) return res;else return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n  // Bigint, return as it is (assume big endian)\n  const raw = buffer.raw();\n  let res = new bignum(raw);\n  if (values) res = values[res.toString(10)] || res;\n  return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n  if (typeof entity === 'function') entity = entity(obj);\n  return entity._getDecoder('der').tree;\n}; // Utility methods\n\n\nfunction derDecodeTag(buf, fail) {\n  let tag = buf.readUInt8(fail);\n  if (buf.isError(tag)) return tag;\n  const cls = der.tagClass[tag >> 6];\n  const primitive = (tag & 0x20) === 0; // Multi-octet tag - load\n\n  if ((tag & 0x1f) === 0x1f) {\n    let oct = tag;\n    tag = 0;\n\n    while ((oct & 0x80) === 0x80) {\n      oct = buf.readUInt8(fail);\n      if (buf.isError(oct)) return oct;\n      tag <<= 7;\n      tag |= oct & 0x7f;\n    }\n  } else {\n    tag &= 0x1f;\n  }\n\n  const tagStr = der.tag[tag];\n  return {\n    cls: cls,\n    primitive: primitive,\n    tag: tag,\n    tagStr: tagStr\n  };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n  let len = buf.readUInt8(fail);\n  if (buf.isError(len)) return len; // Indefinite form\n\n  if (!primitive && len === 0x80) return null; // Definite form\n\n  if ((len & 0x80) === 0) {\n    // Short form\n    return len;\n  } // Long form\n\n\n  const num = len & 0x7f;\n  if (num > 4) return buf.error('length octect is too long');\n  len = 0;\n\n  for (let i = 0; i < num; i++) {\n    len <<= 8;\n    const j = buf.readUInt8(fail);\n    if (buf.isError(j)) return j;\n    len |= j;\n  }\n\n  return len;\n}\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1/decoders/der.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/decoders/index.js":
/*!*********************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/decoders/index.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst decoders = exports;\ndecoders.der = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/decoders/der.js\");\ndecoders.pem = __webpack_require__(/*! ./pem */ \"./node_modules/asn1.js/lib/asn1/decoders/pem.js\");\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1/decoders/index.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/decoders/pem.js":
/*!*******************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/decoders/pem.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nconst Buffer = __webpack_require__(/*! safer-buffer */ \"./node_modules/safer-buffer/safer.js\").Buffer;\n\nconst DERDecoder = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/decoders/der.js\");\n\nfunction PEMDecoder(entity) {\n  DERDecoder.call(this, entity);\n  this.enc = 'pem';\n}\n\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n  const lines = data.toString().split(/[\\r\\n]+/g);\n  const label = options.label.toUpperCase();\n  const re = /^-----(BEGIN|END) ([^-]+)-----$/;\n  let start = -1;\n  let end = -1;\n\n  for (let i = 0; i < lines.length; i++) {\n    const match = lines[i].match(re);\n    if (match === null) continue;\n    if (match[2] !== label) continue;\n\n    if (start === -1) {\n      if (match[1] !== 'BEGIN') break;\n      start = i;\n    } else {\n      if (match[1] !== 'END') break;\n      end = i;\n      break;\n    }\n  }\n\n  if (start === -1 || end === -1) throw new Error('PEM section not found for: ' + label);\n  const base64 = lines.slice(start + 1, end).join(''); // Remove excessive symbols\n\n  base64.replace(/[^a-z0-9+/=]+/gi, '');\n  const input = Buffer.from(base64, 'base64');\n  return DERDecoder.prototype.decode.call(this, input, options);\n};\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1/decoders/pem.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/encoders/der.js":
/*!*******************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/encoders/der.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nconst Buffer = __webpack_require__(/*! safer-buffer */ \"./node_modules/safer-buffer/safer.js\").Buffer;\n\nconst Node = __webpack_require__(/*! ../base/node */ \"./node_modules/asn1.js/lib/asn1/base/node.js\"); // Import DER constants\n\n\nconst der = __webpack_require__(/*! ../constants/der */ \"./node_modules/asn1.js/lib/asn1/constants/der.js\");\n\nfunction DEREncoder(entity) {\n  this.enc = 'der';\n  this.name = entity.name;\n  this.entity = entity; // Construct base tree\n\n  this.tree = new DERNode();\n\n  this.tree._init(entity.body);\n}\n\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n  return this.tree._encode(data, reporter).join();\n}; // Tree methods\n\n\nfunction DERNode(parent) {\n  Node.call(this, 'der', parent);\n}\n\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag, primitive, cls, content) {\n  const encodedTag = encodeTag(tag, primitive, cls, this.reporter); // Short form\n\n  if (content.length < 0x80) {\n    const header = Buffer.alloc(2);\n    header[0] = encodedTag;\n    header[1] = content.length;\n    return this._createEncoderBuffer([header, content]);\n  } // Long form\n  // Count octets required to store length\n\n\n  let lenOctets = 1;\n\n  for (let i = content.length; i >= 0x100; i >>= 8) lenOctets++;\n\n  const header = Buffer.alloc(1 + 1 + lenOctets);\n  header[0] = encodedTag;\n  header[1] = 0x80 | lenOctets;\n\n  for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8) header[i] = j & 0xff;\n\n  return this._createEncoderBuffer([header, content]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n  if (tag === 'bitstr') {\n    return this._createEncoderBuffer([str.unused | 0, str.data]);\n  } else if (tag === 'bmpstr') {\n    const buf = Buffer.alloc(str.length * 2);\n\n    for (let i = 0; i < str.length; i++) {\n      buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n    }\n\n    return this._createEncoderBuffer(buf);\n  } else if (tag === 'numstr') {\n    if (!this._isNumstr(str)) {\n      return this.reporter.error('Encoding of string type: numstr supports ' + 'only digits and space');\n    }\n\n    return this._createEncoderBuffer(str);\n  } else if (tag === 'printstr') {\n    if (!this._isPrintstr(str)) {\n      return this.reporter.error('Encoding of string type: printstr supports ' + 'only latin upper and lower case letters, ' + 'digits, space, apostrophe, left and rigth ' + 'parenthesis, plus sign, comma, hyphen, ' + 'dot, slash, colon, equal sign, ' + 'question mark');\n    }\n\n    return this._createEncoderBuffer(str);\n  } else if (/str$/.test(tag)) {\n    return this._createEncoderBuffer(str);\n  } else if (tag === 'objDesc') {\n    return this._createEncoderBuffer(str);\n  } else {\n    return this.reporter.error('Encoding of string type: ' + tag + ' unsupported');\n  }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n  if (typeof id === 'string') {\n    if (!values) return this.reporter.error('string objid given, but no values map found');\n    if (!values.hasOwnProperty(id)) return this.reporter.error('objid not found in values map');\n    id = values[id].split(/[\\s.]+/g);\n\n    for (let i = 0; i < id.length; i++) id[i] |= 0;\n  } else if (Array.isArray(id)) {\n    id = id.slice();\n\n    for (let i = 0; i < id.length; i++) id[i] |= 0;\n  }\n\n  if (!Array.isArray(id)) {\n    return this.reporter.error('objid() should be either array or string, ' + 'got: ' + JSON.stringify(id));\n  }\n\n  if (!relative) {\n    if (id[1] >= 40) return this.reporter.error('Second objid identifier OOB');\n    id.splice(0, 2, id[0] * 40 + id[1]);\n  } // Count number of octets\n\n\n  let size = 0;\n\n  for (let i = 0; i < id.length; i++) {\n    let ident = id[i];\n\n    for (size++; ident >= 0x80; ident >>= 7) size++;\n  }\n\n  const objid = Buffer.alloc(size);\n  let offset = objid.length - 1;\n\n  for (let i = id.length - 1; i >= 0; i--) {\n    let ident = id[i];\n    objid[offset--] = ident & 0x7f;\n\n    while ((ident >>= 7) > 0) objid[offset--] = 0x80 | ident & 0x7f;\n  }\n\n  return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n  if (num < 10) return '0' + num;else return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n  let str;\n  const date = new Date(time);\n\n  if (tag === 'gentime') {\n    str = [two(date.getUTCFullYear()), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), 'Z'].join('');\n  } else if (tag === 'utctime') {\n    str = [two(date.getUTCFullYear() % 100), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), 'Z'].join('');\n  } else {\n    this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n  }\n\n  return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n  return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n  if (typeof num === 'string') {\n    if (!values) return this.reporter.error('String int or enum given, but no values map');\n\n    if (!values.hasOwnProperty(num)) {\n      return this.reporter.error('Values map doesn\\'t contain: ' + JSON.stringify(num));\n    }\n\n    num = values[num];\n  } // Bignum, assume big endian\n\n\n  if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n    const numArray = num.toArray();\n\n    if (!num.sign && numArray[0] & 0x80) {\n      numArray.unshift(0);\n    }\n\n    num = Buffer.from(numArray);\n  }\n\n  if (Buffer.isBuffer(num)) {\n    let size = num.length;\n    if (num.length === 0) size++;\n    const out = Buffer.alloc(size);\n    num.copy(out);\n    if (num.length === 0) out[0] = 0;\n    return this._createEncoderBuffer(out);\n  }\n\n  if (num < 0x80) return this._createEncoderBuffer(num);\n  if (num < 0x100) return this._createEncoderBuffer([0, num]);\n  let size = 1;\n\n  for (let i = num; i >= 0x100; i >>= 8) size++;\n\n  const out = new Array(size);\n\n  for (let i = out.length - 1; i >= 0; i--) {\n    out[i] = num & 0xff;\n    num >>= 8;\n  }\n\n  if (out[0] & 0x80) {\n    out.unshift(0);\n  }\n\n  return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n  return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n  if (typeof entity === 'function') entity = entity(obj);\n  return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n  const state = this._baseState;\n  let i;\n  if (state['default'] === null) return false;\n  const data = dataBuffer.join();\n  if (state.defaultBuffer === undefined) state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n  if (data.length !== state.defaultBuffer.length) return false;\n\n  for (i = 0; i < data.length; i++) if (data[i] !== state.defaultBuffer[i]) return false;\n\n  return true;\n}; // Utility methods\n\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n  let res;\n  if (tag === 'seqof') tag = 'seq';else if (tag === 'setof') tag = 'set';\n  if (der.tagByName.hasOwnProperty(tag)) res = der.tagByName[tag];else if (typeof tag === 'number' && (tag | 0) === tag) res = tag;else return reporter.error('Unknown tag: ' + tag);\n  if (res >= 0x1f) return reporter.error('Multi-octet tag encoding unsupported');\n  if (!primitive) res |= 0x20;\n  res |= der.tagClassByName[cls || 'universal'] << 6;\n  return res;\n}\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1/encoders/der.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/encoders/index.js":
/*!*********************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/encoders/index.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst encoders = exports;\nencoders.der = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/encoders/der.js\");\nencoders.pem = __webpack_require__(/*! ./pem */ \"./node_modules/asn1.js/lib/asn1/encoders/pem.js\");\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1/encoders/index.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/encoders/pem.js":
/*!*******************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/encoders/pem.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nconst DEREncoder = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/encoders/der.js\");\n\nfunction PEMEncoder(entity) {\n  DEREncoder.call(this, entity);\n  this.enc = 'pem';\n}\n\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n  const buf = DEREncoder.prototype.encode.call(this, data);\n  const p = buf.toString('base64');\n  const out = ['-----BEGIN ' + options.label + '-----'];\n\n  for (let i = 0; i < p.length; i += 64) out.push(p.slice(i, i + 64));\n\n  out.push('-----END ' + options.label + '-----');\n  return out.join('\\n');\n};\n\n//# sourceURL=webpack:///./node_modules/asn1.js/lib/asn1/encoders/pem.js?");

/***/ }),

/***/ "./node_modules/asn1.js/node_modules/bn.js/lib/bn.js":
/*!***********************************************************!*\
  !*** ./node_modules/asn1.js/node_modules/bn.js/lib/bn.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n  'use strict'; // Utils\n\n  function assert(val, msg) {\n    if (!val) throw new Error(msg || 'Assertion failed');\n  } // Could use `inherits` module, but don't want to move from single file\n  // architecture yet.\n\n\n  function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor;\n\n    var TempCtor = function () {};\n\n    TempCtor.prototype = superCtor.prototype;\n    ctor.prototype = new TempCtor();\n    ctor.prototype.constructor = ctor;\n  } // BN\n\n\n  function BN(number, base, endian) {\n    if (BN.isBN(number)) {\n      return number;\n    }\n\n    this.negative = 0;\n    this.words = null;\n    this.length = 0; // Reduction context\n\n    this.red = null;\n\n    if (number !== null) {\n      if (base === 'le' || base === 'be') {\n        endian = base;\n        base = 10;\n      }\n\n      this._init(number || 0, base || 10, endian || 'be');\n    }\n  }\n\n  if (typeof module === 'object') {\n    module.exports = BN;\n  } else {\n    exports.BN = BN;\n  }\n\n  BN.BN = BN;\n  BN.wordSize = 26;\n  var Buffer;\n\n  try {\n    if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n      Buffer = window.Buffer;\n    } else {\n      Buffer = __webpack_require__(/*! buffer */ 12).Buffer;\n    }\n  } catch (e) {}\n\n  BN.isBN = function isBN(num) {\n    if (num instanceof BN) {\n      return true;\n    }\n\n    return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n  };\n\n  BN.max = function max(left, right) {\n    if (left.cmp(right) > 0) return left;\n    return right;\n  };\n\n  BN.min = function min(left, right) {\n    if (left.cmp(right) < 0) return left;\n    return right;\n  };\n\n  BN.prototype._init = function init(number, base, endian) {\n    if (typeof number === 'number') {\n      return this._initNumber(number, base, endian);\n    }\n\n    if (typeof number === 'object') {\n      return this._initArray(number, base, endian);\n    }\n\n    if (base === 'hex') {\n      base = 16;\n    }\n\n    assert(base === (base | 0) && base >= 2 && base <= 36);\n    number = number.toString().replace(/\\s+/g, '');\n    var start = 0;\n\n    if (number[0] === '-') {\n      start++;\n      this.negative = 1;\n    }\n\n    if (start < number.length) {\n      if (base === 16) {\n        this._parseHex(number, start, endian);\n      } else {\n        this._parseBase(number, base, start);\n\n        if (endian === 'le') {\n          this._initArray(this.toArray(), base, endian);\n        }\n      }\n    }\n  };\n\n  BN.prototype._initNumber = function _initNumber(number, base, endian) {\n    if (number < 0) {\n      this.negative = 1;\n      number = -number;\n    }\n\n    if (number < 0x4000000) {\n      this.words = [number & 0x3ffffff];\n      this.length = 1;\n    } else if (number < 0x10000000000000) {\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n      this.length = 2;\n    } else {\n      assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n      this.length = 3;\n    }\n\n    if (endian !== 'le') return; // Reverse the bytes\n\n    this._initArray(this.toArray(), base, endian);\n  };\n\n  BN.prototype._initArray = function _initArray(number, base, endian) {\n    // Perhaps a Uint8Array\n    assert(typeof number.length === 'number');\n\n    if (number.length <= 0) {\n      this.words = [0];\n      this.length = 1;\n      return this;\n    }\n\n    this.length = Math.ceil(number.length / 3);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    }\n\n    var j, w;\n    var off = 0;\n\n    if (endian === 'be') {\n      for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n        w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    } else if (endian === 'le') {\n      for (i = 0, j = 0; i < number.length; i += 3) {\n        w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    }\n\n    return this.strip();\n  };\n\n  function parseHex4Bits(string, index) {\n    var c = string.charCodeAt(index); // 'A' - 'F'\n\n    if (c >= 65 && c <= 70) {\n      return c - 55; // 'a' - 'f'\n    } else if (c >= 97 && c <= 102) {\n      return c - 87; // '0' - '9'\n    } else {\n      return c - 48 & 0xf;\n    }\n  }\n\n  function parseHexByte(string, lowerBound, index) {\n    var r = parseHex4Bits(string, index);\n\n    if (index - 1 >= lowerBound) {\n      r |= parseHex4Bits(string, index - 1) << 4;\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseHex = function _parseHex(number, start, endian) {\n    // Create possibly bigger array to ensure that it fits the number\n    this.length = Math.ceil((number.length - start) / 6);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    } // 24-bits chunks\n\n\n    var off = 0;\n    var j = 0;\n    var w;\n\n    if (endian === 'be') {\n      for (i = number.length - 1; i >= start; i -= 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    } else {\n      var parseLength = number.length - start;\n\n      for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    }\n\n    this.strip();\n  };\n\n  function parseBase(str, start, end, mul) {\n    var r = 0;\n    var len = Math.min(str.length, end);\n\n    for (var i = start; i < len; i++) {\n      var c = str.charCodeAt(i) - 48;\n      r *= mul; // 'a'\n\n      if (c >= 49) {\n        r += c - 49 + 0xa; // 'A'\n      } else if (c >= 17) {\n        r += c - 17 + 0xa; // '0' - '9'\n      } else {\n        r += c;\n      }\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseBase = function _parseBase(number, base, start) {\n    // Initialize as zero\n    this.words = [0];\n    this.length = 1; // Find length of limb in base\n\n    for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n      limbLen++;\n    }\n\n    limbLen--;\n    limbPow = limbPow / base | 0;\n    var total = number.length - start;\n    var mod = total % limbLen;\n    var end = Math.min(total, total - mod) + start;\n    var word = 0;\n\n    for (var i = start; i < end; i += limbLen) {\n      word = parseBase(number, i, i + limbLen, base);\n      this.imuln(limbPow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    if (mod !== 0) {\n      var pow = 1;\n      word = parseBase(number, i, number.length, base);\n\n      for (i = 0; i < mod; i++) {\n        pow *= base;\n      }\n\n      this.imuln(pow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    this.strip();\n  };\n\n  BN.prototype.copy = function copy(dest) {\n    dest.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      dest.words[i] = this.words[i];\n    }\n\n    dest.length = this.length;\n    dest.negative = this.negative;\n    dest.red = this.red;\n  };\n\n  BN.prototype.clone = function clone() {\n    var r = new BN(null);\n    this.copy(r);\n    return r;\n  };\n\n  BN.prototype._expand = function _expand(size) {\n    while (this.length < size) {\n      this.words[this.length++] = 0;\n    }\n\n    return this;\n  }; // Remove leading `0` from `this`\n\n\n  BN.prototype.strip = function strip() {\n    while (this.length > 1 && this.words[this.length - 1] === 0) {\n      this.length--;\n    }\n\n    return this._normSign();\n  };\n\n  BN.prototype._normSign = function _normSign() {\n    // -0 = 0\n    if (this.length === 1 && this.words[0] === 0) {\n      this.negative = 0;\n    }\n\n    return this;\n  };\n\n  BN.prototype.inspect = function inspect() {\n    return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  };\n  /*\n   var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n   var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n   */\n\n\n  var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n  var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n  var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n  BN.prototype.toString = function toString(base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n    var out;\n\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = ((w << off | carry) & 0xffffff).toString(16);\n        carry = w >>> 24 - off & 0xffffff;\n\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n\n        off += 2;\n\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n      }\n\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n\n      while (!c.isZero()) {\n        var r = c.modn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber() {\n    var ret = this.words[0];\n\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + this.words[1] * 0x4000000;\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n\n    return this.negative !== 0 ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON() {\n    return this.toString(16);\n  };\n\n  BN.prototype.toBuffer = function toBuffer(endian, length) {\n    assert(typeof Buffer !== 'undefined');\n    return this.toArrayLike(Buffer, endian, length);\n  };\n\n  BN.prototype.toArray = function toArray(endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n    this.strip();\n    var littleEndian = endian === 'le';\n    var res = new ArrayType(reqLength);\n    var b, i;\n    var q = this.clone();\n\n    if (!littleEndian) {\n      // Assume big-endian\n      for (i = 0; i < reqLength - byteLength; i++) {\n        res[i] = 0;\n      }\n\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n        res[reqLength - i - 1] = b;\n      }\n    } else {\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n        res[i] = b;\n      }\n\n      for (; i < reqLength; i++) {\n        res[i] = 0;\n      }\n    }\n\n    return res;\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits(w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits(w) {\n      var t = w;\n      var r = 0;\n\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits(w) {\n    // Short-cut\n    if (w === 0) return 26;\n    var t = w;\n    var r = 0;\n\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n\n    return r;\n  }; // Return number of used bits in a BN\n\n\n  BN.prototype.bitLength = function bitLength() {\n    var w = this.words[this.length - 1];\n\n    var hi = this._countBits(w);\n\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray(num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = bit / 26 | 0;\n      var wbit = bit % 26;\n      w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n    }\n\n    return w;\n  } // Number of trailing zero bits\n\n\n  BN.prototype.zeroBits = function zeroBits() {\n    if (this.isZero()) return 0;\n    var r = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n\n      r += b;\n      if (b !== 26) break;\n    }\n\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength() {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos(width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos(width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg() {\n    return this.negative !== 0;\n  }; // Return negative clone of `this`\n\n\n  BN.prototype.neg = function neg() {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg() {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  }; // Or `num` with `this` in-place\n\n\n  BN.prototype.iuor = function iuor(num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ior = function ior(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  }; // Or `num` with `this`\n\n\n  BN.prototype.or = function or(num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor(num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  }; // And `num` with `this` in-place\n\n\n  BN.prototype.iuand = function iuand(num) {\n    // b = min-length(num, this)\n    var b;\n\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n    return this.strip();\n  };\n\n  BN.prototype.iand = function iand(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  }; // And `num` with `this`\n\n\n  BN.prototype.and = function and(num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand(num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  }; // Xor `num` with `this` in-place\n\n\n  BN.prototype.iuxor = function iuxor(num) {\n    // a.length > b.length\n    var a;\n    var b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n    return this.strip();\n  };\n\n  BN.prototype.ixor = function ixor(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  }; // Xor `num` with `this`\n\n\n  BN.prototype.xor = function xor(num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor(num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  }; // Not ``this`` with ``width`` bitwidth\n\n\n  BN.prototype.inotn = function inotn(width) {\n    assert(typeof width === 'number' && width >= 0);\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    } // Handle complete words\n\n\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    } // Handle the residue\n\n\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n    } // And remove leading zeroes\n\n\n    return this.strip();\n  };\n\n  BN.prototype.notn = function notn(width) {\n    return this.clone().inotn(width);\n  }; // Set `bit` of `this`\n\n\n  BN.prototype.setn = function setn(bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var off = bit / 26 | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | 1 << wbit;\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this.strip();\n  }; // Add `num` to `this` in-place\n\n\n  BN.prototype.iadd = function iadd(num) {\n    var r; // negative + positive\n\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign(); // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    } // a.length > b.length\n\n\n    var a, b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++; // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  }; // Add `num` to `this`\n\n\n  BN.prototype.add = function add(num) {\n    var res;\n\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n    return num.clone().iadd(this);\n  }; // Subtract `num` from `this` in-place\n\n\n  BN.prototype.isub = function isub(num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign(); // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    } // At this point both numbers are positive\n\n\n    var cmp = this.cmp(num); // Optimization - zeroify\n\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    } // a > b\n\n\n    var a, b;\n\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    } // Copy rest of the words\n\n\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this.strip();\n  }; // Subtract `num` from `this`\n\n\n  BN.prototype.sub = function sub(num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = self.length + num.length | 0;\n    out.length = len;\n    len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n    var lo = r & 0x3ffffff;\n    var carry = r / 0x4000000 | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += r / 0x4000000 | 0;\n        rword = r & 0x3ffffff;\n      }\n\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  } // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n\n\n  var comb10MulTo = function comb10MulTo(self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = mid + Math.imul(ah0, bl0) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = mid + Math.imul(ah1, bl0) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = lo + Math.imul(al0, bl1) | 0;\n    mid = mid + Math.imul(al0, bh1) | 0;\n    mid = mid + Math.imul(ah0, bl1) | 0;\n    hi = hi + Math.imul(ah0, bh1) | 0;\n    var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = mid + Math.imul(ah2, bl0) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = lo + Math.imul(al1, bl1) | 0;\n    mid = mid + Math.imul(al1, bh1) | 0;\n    mid = mid + Math.imul(ah1, bl1) | 0;\n    hi = hi + Math.imul(ah1, bh1) | 0;\n    lo = lo + Math.imul(al0, bl2) | 0;\n    mid = mid + Math.imul(al0, bh2) | 0;\n    mid = mid + Math.imul(ah0, bl2) | 0;\n    hi = hi + Math.imul(ah0, bh2) | 0;\n    var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = mid + Math.imul(ah3, bl0) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = lo + Math.imul(al2, bl1) | 0;\n    mid = mid + Math.imul(al2, bh1) | 0;\n    mid = mid + Math.imul(ah2, bl1) | 0;\n    hi = hi + Math.imul(ah2, bh1) | 0;\n    lo = lo + Math.imul(al1, bl2) | 0;\n    mid = mid + Math.imul(al1, bh2) | 0;\n    mid = mid + Math.imul(ah1, bl2) | 0;\n    hi = hi + Math.imul(ah1, bh2) | 0;\n    lo = lo + Math.imul(al0, bl3) | 0;\n    mid = mid + Math.imul(al0, bh3) | 0;\n    mid = mid + Math.imul(ah0, bl3) | 0;\n    hi = hi + Math.imul(ah0, bh3) | 0;\n    var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = mid + Math.imul(ah4, bl0) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = lo + Math.imul(al3, bl1) | 0;\n    mid = mid + Math.imul(al3, bh1) | 0;\n    mid = mid + Math.imul(ah3, bl1) | 0;\n    hi = hi + Math.imul(ah3, bh1) | 0;\n    lo = lo + Math.imul(al2, bl2) | 0;\n    mid = mid + Math.imul(al2, bh2) | 0;\n    mid = mid + Math.imul(ah2, bl2) | 0;\n    hi = hi + Math.imul(ah2, bh2) | 0;\n    lo = lo + Math.imul(al1, bl3) | 0;\n    mid = mid + Math.imul(al1, bh3) | 0;\n    mid = mid + Math.imul(ah1, bl3) | 0;\n    hi = hi + Math.imul(ah1, bh3) | 0;\n    lo = lo + Math.imul(al0, bl4) | 0;\n    mid = mid + Math.imul(al0, bh4) | 0;\n    mid = mid + Math.imul(ah0, bl4) | 0;\n    hi = hi + Math.imul(ah0, bh4) | 0;\n    var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = mid + Math.imul(ah5, bl0) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = lo + Math.imul(al4, bl1) | 0;\n    mid = mid + Math.imul(al4, bh1) | 0;\n    mid = mid + Math.imul(ah4, bl1) | 0;\n    hi = hi + Math.imul(ah4, bh1) | 0;\n    lo = lo + Math.imul(al3, bl2) | 0;\n    mid = mid + Math.imul(al3, bh2) | 0;\n    mid = mid + Math.imul(ah3, bl2) | 0;\n    hi = hi + Math.imul(ah3, bh2) | 0;\n    lo = lo + Math.imul(al2, bl3) | 0;\n    mid = mid + Math.imul(al2, bh3) | 0;\n    mid = mid + Math.imul(ah2, bl3) | 0;\n    hi = hi + Math.imul(ah2, bh3) | 0;\n    lo = lo + Math.imul(al1, bl4) | 0;\n    mid = mid + Math.imul(al1, bh4) | 0;\n    mid = mid + Math.imul(ah1, bl4) | 0;\n    hi = hi + Math.imul(ah1, bh4) | 0;\n    lo = lo + Math.imul(al0, bl5) | 0;\n    mid = mid + Math.imul(al0, bh5) | 0;\n    mid = mid + Math.imul(ah0, bl5) | 0;\n    hi = hi + Math.imul(ah0, bh5) | 0;\n    var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = mid + Math.imul(ah6, bl0) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = lo + Math.imul(al5, bl1) | 0;\n    mid = mid + Math.imul(al5, bh1) | 0;\n    mid = mid + Math.imul(ah5, bl1) | 0;\n    hi = hi + Math.imul(ah5, bh1) | 0;\n    lo = lo + Math.imul(al4, bl2) | 0;\n    mid = mid + Math.imul(al4, bh2) | 0;\n    mid = mid + Math.imul(ah4, bl2) | 0;\n    hi = hi + Math.imul(ah4, bh2) | 0;\n    lo = lo + Math.imul(al3, bl3) | 0;\n    mid = mid + Math.imul(al3, bh3) | 0;\n    mid = mid + Math.imul(ah3, bl3) | 0;\n    hi = hi + Math.imul(ah3, bh3) | 0;\n    lo = lo + Math.imul(al2, bl4) | 0;\n    mid = mid + Math.imul(al2, bh4) | 0;\n    mid = mid + Math.imul(ah2, bl4) | 0;\n    hi = hi + Math.imul(ah2, bh4) | 0;\n    lo = lo + Math.imul(al1, bl5) | 0;\n    mid = mid + Math.imul(al1, bh5) | 0;\n    mid = mid + Math.imul(ah1, bl5) | 0;\n    hi = hi + Math.imul(ah1, bh5) | 0;\n    lo = lo + Math.imul(al0, bl6) | 0;\n    mid = mid + Math.imul(al0, bh6) | 0;\n    mid = mid + Math.imul(ah0, bl6) | 0;\n    hi = hi + Math.imul(ah0, bh6) | 0;\n    var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = mid + Math.imul(ah7, bl0) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = lo + Math.imul(al6, bl1) | 0;\n    mid = mid + Math.imul(al6, bh1) | 0;\n    mid = mid + Math.imul(ah6, bl1) | 0;\n    hi = hi + Math.imul(ah6, bh1) | 0;\n    lo = lo + Math.imul(al5, bl2) | 0;\n    mid = mid + Math.imul(al5, bh2) | 0;\n    mid = mid + Math.imul(ah5, bl2) | 0;\n    hi = hi + Math.imul(ah5, bh2) | 0;\n    lo = lo + Math.imul(al4, bl3) | 0;\n    mid = mid + Math.imul(al4, bh3) | 0;\n    mid = mid + Math.imul(ah4, bl3) | 0;\n    hi = hi + Math.imul(ah4, bh3) | 0;\n    lo = lo + Math.imul(al3, bl4) | 0;\n    mid = mid + Math.imul(al3, bh4) | 0;\n    mid = mid + Math.imul(ah3, bl4) | 0;\n    hi = hi + Math.imul(ah3, bh4) | 0;\n    lo = lo + Math.imul(al2, bl5) | 0;\n    mid = mid + Math.imul(al2, bh5) | 0;\n    mid = mid + Math.imul(ah2, bl5) | 0;\n    hi = hi + Math.imul(ah2, bh5) | 0;\n    lo = lo + Math.imul(al1, bl6) | 0;\n    mid = mid + Math.imul(al1, bh6) | 0;\n    mid = mid + Math.imul(ah1, bl6) | 0;\n    hi = hi + Math.imul(ah1, bh6) | 0;\n    lo = lo + Math.imul(al0, bl7) | 0;\n    mid = mid + Math.imul(al0, bh7) | 0;\n    mid = mid + Math.imul(ah0, bl7) | 0;\n    hi = hi + Math.imul(ah0, bh7) | 0;\n    var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = mid + Math.imul(ah8, bl0) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = lo + Math.imul(al7, bl1) | 0;\n    mid = mid + Math.imul(al7, bh1) | 0;\n    mid = mid + Math.imul(ah7, bl1) | 0;\n    hi = hi + Math.imul(ah7, bh1) | 0;\n    lo = lo + Math.imul(al6, bl2) | 0;\n    mid = mid + Math.imul(al6, bh2) | 0;\n    mid = mid + Math.imul(ah6, bl2) | 0;\n    hi = hi + Math.imul(ah6, bh2) | 0;\n    lo = lo + Math.imul(al5, bl3) | 0;\n    mid = mid + Math.imul(al5, bh3) | 0;\n    mid = mid + Math.imul(ah5, bl3) | 0;\n    hi = hi + Math.imul(ah5, bh3) | 0;\n    lo = lo + Math.imul(al4, bl4) | 0;\n    mid = mid + Math.imul(al4, bh4) | 0;\n    mid = mid + Math.imul(ah4, bl4) | 0;\n    hi = hi + Math.imul(ah4, bh4) | 0;\n    lo = lo + Math.imul(al3, bl5) | 0;\n    mid = mid + Math.imul(al3, bh5) | 0;\n    mid = mid + Math.imul(ah3, bl5) | 0;\n    hi = hi + Math.imul(ah3, bh5) | 0;\n    lo = lo + Math.imul(al2, bl6) | 0;\n    mid = mid + Math.imul(al2, bh6) | 0;\n    mid = mid + Math.imul(ah2, bl6) | 0;\n    hi = hi + Math.imul(ah2, bh6) | 0;\n    lo = lo + Math.imul(al1, bl7) | 0;\n    mid = mid + Math.imul(al1, bh7) | 0;\n    mid = mid + Math.imul(ah1, bl7) | 0;\n    hi = hi + Math.imul(ah1, bh7) | 0;\n    lo = lo + Math.imul(al0, bl8) | 0;\n    mid = mid + Math.imul(al0, bh8) | 0;\n    mid = mid + Math.imul(ah0, bl8) | 0;\n    hi = hi + Math.imul(ah0, bh8) | 0;\n    var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = mid + Math.imul(ah9, bl0) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = lo + Math.imul(al8, bl1) | 0;\n    mid = mid + Math.imul(al8, bh1) | 0;\n    mid = mid + Math.imul(ah8, bl1) | 0;\n    hi = hi + Math.imul(ah8, bh1) | 0;\n    lo = lo + Math.imul(al7, bl2) | 0;\n    mid = mid + Math.imul(al7, bh2) | 0;\n    mid = mid + Math.imul(ah7, bl2) | 0;\n    hi = hi + Math.imul(ah7, bh2) | 0;\n    lo = lo + Math.imul(al6, bl3) | 0;\n    mid = mid + Math.imul(al6, bh3) | 0;\n    mid = mid + Math.imul(ah6, bl3) | 0;\n    hi = hi + Math.imul(ah6, bh3) | 0;\n    lo = lo + Math.imul(al5, bl4) | 0;\n    mid = mid + Math.imul(al5, bh4) | 0;\n    mid = mid + Math.imul(ah5, bl4) | 0;\n    hi = hi + Math.imul(ah5, bh4) | 0;\n    lo = lo + Math.imul(al4, bl5) | 0;\n    mid = mid + Math.imul(al4, bh5) | 0;\n    mid = mid + Math.imul(ah4, bl5) | 0;\n    hi = hi + Math.imul(ah4, bh5) | 0;\n    lo = lo + Math.imul(al3, bl6) | 0;\n    mid = mid + Math.imul(al3, bh6) | 0;\n    mid = mid + Math.imul(ah3, bl6) | 0;\n    hi = hi + Math.imul(ah3, bh6) | 0;\n    lo = lo + Math.imul(al2, bl7) | 0;\n    mid = mid + Math.imul(al2, bh7) | 0;\n    mid = mid + Math.imul(ah2, bl7) | 0;\n    hi = hi + Math.imul(ah2, bh7) | 0;\n    lo = lo + Math.imul(al1, bl8) | 0;\n    mid = mid + Math.imul(al1, bh8) | 0;\n    mid = mid + Math.imul(ah1, bl8) | 0;\n    hi = hi + Math.imul(ah1, bh8) | 0;\n    lo = lo + Math.imul(al0, bl9) | 0;\n    mid = mid + Math.imul(al0, bh9) | 0;\n    mid = mid + Math.imul(ah0, bl9) | 0;\n    hi = hi + Math.imul(ah0, bh9) | 0;\n    var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = mid + Math.imul(ah9, bl1) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = lo + Math.imul(al8, bl2) | 0;\n    mid = mid + Math.imul(al8, bh2) | 0;\n    mid = mid + Math.imul(ah8, bl2) | 0;\n    hi = hi + Math.imul(ah8, bh2) | 0;\n    lo = lo + Math.imul(al7, bl3) | 0;\n    mid = mid + Math.imul(al7, bh3) | 0;\n    mid = mid + Math.imul(ah7, bl3) | 0;\n    hi = hi + Math.imul(ah7, bh3) | 0;\n    lo = lo + Math.imul(al6, bl4) | 0;\n    mid = mid + Math.imul(al6, bh4) | 0;\n    mid = mid + Math.imul(ah6, bl4) | 0;\n    hi = hi + Math.imul(ah6, bh4) | 0;\n    lo = lo + Math.imul(al5, bl5) | 0;\n    mid = mid + Math.imul(al5, bh5) | 0;\n    mid = mid + Math.imul(ah5, bl5) | 0;\n    hi = hi + Math.imul(ah5, bh5) | 0;\n    lo = lo + Math.imul(al4, bl6) | 0;\n    mid = mid + Math.imul(al4, bh6) | 0;\n    mid = mid + Math.imul(ah4, bl6) | 0;\n    hi = hi + Math.imul(ah4, bh6) | 0;\n    lo = lo + Math.imul(al3, bl7) | 0;\n    mid = mid + Math.imul(al3, bh7) | 0;\n    mid = mid + Math.imul(ah3, bl7) | 0;\n    hi = hi + Math.imul(ah3, bh7) | 0;\n    lo = lo + Math.imul(al2, bl8) | 0;\n    mid = mid + Math.imul(al2, bh8) | 0;\n    mid = mid + Math.imul(ah2, bl8) | 0;\n    hi = hi + Math.imul(ah2, bh8) | 0;\n    lo = lo + Math.imul(al1, bl9) | 0;\n    mid = mid + Math.imul(al1, bh9) | 0;\n    mid = mid + Math.imul(ah1, bl9) | 0;\n    hi = hi + Math.imul(ah1, bh9) | 0;\n    var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = mid + Math.imul(ah9, bl2) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = lo + Math.imul(al8, bl3) | 0;\n    mid = mid + Math.imul(al8, bh3) | 0;\n    mid = mid + Math.imul(ah8, bl3) | 0;\n    hi = hi + Math.imul(ah8, bh3) | 0;\n    lo = lo + Math.imul(al7, bl4) | 0;\n    mid = mid + Math.imul(al7, bh4) | 0;\n    mid = mid + Math.imul(ah7, bl4) | 0;\n    hi = hi + Math.imul(ah7, bh4) | 0;\n    lo = lo + Math.imul(al6, bl5) | 0;\n    mid = mid + Math.imul(al6, bh5) | 0;\n    mid = mid + Math.imul(ah6, bl5) | 0;\n    hi = hi + Math.imul(ah6, bh5) | 0;\n    lo = lo + Math.imul(al5, bl6) | 0;\n    mid = mid + Math.imul(al5, bh6) | 0;\n    mid = mid + Math.imul(ah5, bl6) | 0;\n    hi = hi + Math.imul(ah5, bh6) | 0;\n    lo = lo + Math.imul(al4, bl7) | 0;\n    mid = mid + Math.imul(al4, bh7) | 0;\n    mid = mid + Math.imul(ah4, bl7) | 0;\n    hi = hi + Math.imul(ah4, bh7) | 0;\n    lo = lo + Math.imul(al3, bl8) | 0;\n    mid = mid + Math.imul(al3, bh8) | 0;\n    mid = mid + Math.imul(ah3, bl8) | 0;\n    hi = hi + Math.imul(ah3, bh8) | 0;\n    lo = lo + Math.imul(al2, bl9) | 0;\n    mid = mid + Math.imul(al2, bh9) | 0;\n    mid = mid + Math.imul(ah2, bl9) | 0;\n    hi = hi + Math.imul(ah2, bh9) | 0;\n    var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = mid + Math.imul(ah9, bl3) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = lo + Math.imul(al8, bl4) | 0;\n    mid = mid + Math.imul(al8, bh4) | 0;\n    mid = mid + Math.imul(ah8, bl4) | 0;\n    hi = hi + Math.imul(ah8, bh4) | 0;\n    lo = lo + Math.imul(al7, bl5) | 0;\n    mid = mid + Math.imul(al7, bh5) | 0;\n    mid = mid + Math.imul(ah7, bl5) | 0;\n    hi = hi + Math.imul(ah7, bh5) | 0;\n    lo = lo + Math.imul(al6, bl6) | 0;\n    mid = mid + Math.imul(al6, bh6) | 0;\n    mid = mid + Math.imul(ah6, bl6) | 0;\n    hi = hi + Math.imul(ah6, bh6) | 0;\n    lo = lo + Math.imul(al5, bl7) | 0;\n    mid = mid + Math.imul(al5, bh7) | 0;\n    mid = mid + Math.imul(ah5, bl7) | 0;\n    hi = hi + Math.imul(ah5, bh7) | 0;\n    lo = lo + Math.imul(al4, bl8) | 0;\n    mid = mid + Math.imul(al4, bh8) | 0;\n    mid = mid + Math.imul(ah4, bl8) | 0;\n    hi = hi + Math.imul(ah4, bh8) | 0;\n    lo = lo + Math.imul(al3, bl9) | 0;\n    mid = mid + Math.imul(al3, bh9) | 0;\n    mid = mid + Math.imul(ah3, bl9) | 0;\n    hi = hi + Math.imul(ah3, bh9) | 0;\n    var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = mid + Math.imul(ah9, bl4) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = lo + Math.imul(al8, bl5) | 0;\n    mid = mid + Math.imul(al8, bh5) | 0;\n    mid = mid + Math.imul(ah8, bl5) | 0;\n    hi = hi + Math.imul(ah8, bh5) | 0;\n    lo = lo + Math.imul(al7, bl6) | 0;\n    mid = mid + Math.imul(al7, bh6) | 0;\n    mid = mid + Math.imul(ah7, bl6) | 0;\n    hi = hi + Math.imul(ah7, bh6) | 0;\n    lo = lo + Math.imul(al6, bl7) | 0;\n    mid = mid + Math.imul(al6, bh7) | 0;\n    mid = mid + Math.imul(ah6, bl7) | 0;\n    hi = hi + Math.imul(ah6, bh7) | 0;\n    lo = lo + Math.imul(al5, bl8) | 0;\n    mid = mid + Math.imul(al5, bh8) | 0;\n    mid = mid + Math.imul(ah5, bl8) | 0;\n    hi = hi + Math.imul(ah5, bh8) | 0;\n    lo = lo + Math.imul(al4, bl9) | 0;\n    mid = mid + Math.imul(al4, bh9) | 0;\n    mid = mid + Math.imul(ah4, bl9) | 0;\n    hi = hi + Math.imul(ah4, bh9) | 0;\n    var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = mid + Math.imul(ah9, bl5) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = lo + Math.imul(al8, bl6) | 0;\n    mid = mid + Math.imul(al8, bh6) | 0;\n    mid = mid + Math.imul(ah8, bl6) | 0;\n    hi = hi + Math.imul(ah8, bh6) | 0;\n    lo = lo + Math.imul(al7, bl7) | 0;\n    mid = mid + Math.imul(al7, bh7) | 0;\n    mid = mid + Math.imul(ah7, bl7) | 0;\n    hi = hi + Math.imul(ah7, bh7) | 0;\n    lo = lo + Math.imul(al6, bl8) | 0;\n    mid = mid + Math.imul(al6, bh8) | 0;\n    mid = mid + Math.imul(ah6, bl8) | 0;\n    hi = hi + Math.imul(ah6, bh8) | 0;\n    lo = lo + Math.imul(al5, bl9) | 0;\n    mid = mid + Math.imul(al5, bh9) | 0;\n    mid = mid + Math.imul(ah5, bl9) | 0;\n    hi = hi + Math.imul(ah5, bh9) | 0;\n    var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = mid + Math.imul(ah9, bl6) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = lo + Math.imul(al8, bl7) | 0;\n    mid = mid + Math.imul(al8, bh7) | 0;\n    mid = mid + Math.imul(ah8, bl7) | 0;\n    hi = hi + Math.imul(ah8, bh7) | 0;\n    lo = lo + Math.imul(al7, bl8) | 0;\n    mid = mid + Math.imul(al7, bh8) | 0;\n    mid = mid + Math.imul(ah7, bl8) | 0;\n    hi = hi + Math.imul(ah7, bh8) | 0;\n    lo = lo + Math.imul(al6, bl9) | 0;\n    mid = mid + Math.imul(al6, bh9) | 0;\n    mid = mid + Math.imul(ah6, bl9) | 0;\n    hi = hi + Math.imul(ah6, bh9) | 0;\n    var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = mid + Math.imul(ah9, bl7) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = lo + Math.imul(al8, bl8) | 0;\n    mid = mid + Math.imul(al8, bh8) | 0;\n    mid = mid + Math.imul(ah8, bl8) | 0;\n    hi = hi + Math.imul(ah8, bh8) | 0;\n    lo = lo + Math.imul(al7, bl9) | 0;\n    mid = mid + Math.imul(al7, bh9) | 0;\n    mid = mid + Math.imul(ah7, bl9) | 0;\n    hi = hi + Math.imul(ah7, bh9) | 0;\n    var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = mid + Math.imul(ah9, bl8) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = lo + Math.imul(al8, bl9) | 0;\n    mid = mid + Math.imul(al8, bh9) | 0;\n    mid = mid + Math.imul(ah8, bl9) | 0;\n    hi = hi + Math.imul(ah8, bh9) | 0;\n    var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = mid + Math.imul(ah9, bl9) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n\n    return out;\n  }; // Polyfill comb\n\n\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n    var carry = 0;\n    var hncarry = 0;\n\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n        var lo = r & 0x3ffffff;\n        ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n        lo = lo + rword | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = ncarry + (lo >>> 26) | 0;\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  function jumboMulTo(self, num, out) {\n    var fftm = new FFTM();\n    return fftm.mulp(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo(num, out) {\n    var res;\n    var len = this.length + num.length;\n\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  }; // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n\n  function FFTM(x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT(N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  }; // Returns binary-reversed representation of `x`\n\n\n  FFTM.prototype.revBin = function revBin(x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n    var rb = 0;\n\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << l - i - 1;\n      x >>= 1;\n    }\n\n    return rb;\n  }; // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n\n\n  FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n          var rx = rtwdf_ * ro - itwdf_ * io;\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n          /* jshint maxdepth : false */\n\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n      t = iws[i];\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n      rws[2 * i] = carry & 0x1fff;\n      carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff;\n      carry = carry >>> 13;\n    } // Pad with zeroes\n\n\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub(N) {\n    var ph = new Array(N);\n\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp(x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n    var rmws = out.words;\n    rmws.length = N;\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out.strip();\n  }; // Multiply `this` by `num`\n\n\n  BN.prototype.mul = function mul(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  }; // Multiply employing FFT\n\n\n  BN.prototype.mulf = function mulf(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  }; // In-place Multiplication\n\n\n  BN.prototype.imul = function imul(num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000); // Carry\n\n    var carry = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.muln = function muln(num) {\n    return this.clone().imuln(num);\n  }; // `this` * `this`\n\n\n  BN.prototype.sqr = function sqr() {\n    return this.mul(this);\n  }; // `this` * `this` in-place\n\n\n  BN.prototype.isqr = function isqr() {\n    return this.imul(this.clone());\n  }; // Math.pow(`this`, `num`)\n\n\n  BN.prototype.pow = function pow(num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n    var res = this;\n\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  }; // Shift-left in-place\n\n\n  BN.prototype.iushln = function iushln(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = (this.words[i] | 0) - newCarry << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> 26 - r;\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishln = function ishln(bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  }; // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n  BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n\n    if (hint) {\n      h = (hint - hint % 26) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n    var maskedWords = extended;\n    h -= s;\n    h = Math.max(0, h); // Extended mode, copy masked part\n\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {// No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = carry << 26 - r | word >>> r;\n      carry = word & mask;\n    } // Push carried bits as a mask\n\n\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  }; // Shift-left\n\n\n  BN.prototype.shln = function shln(bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln(bits) {\n    return this.clone().iushln(bits);\n  }; // Shift-right\n\n\n  BN.prototype.shrn = function shrn(bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn(bits) {\n    return this.clone().iushrn(bits);\n  }; // Test if n bit is set\n\n\n  BN.prototype.testn = function testn(bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) return false; // Check bit and return\n\n    var w = this.words[s];\n    return !!(w & q);\n  }; // Return only lowers bits of number (in-place)\n\n\n  BN.prototype.imaskn = function imaskn(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this.strip();\n  }; // Return only lowers bits of number\n\n\n  BN.prototype.maskn = function maskn(bits) {\n    return this.clone().imaskn(bits);\n  }; // Add plain number `num` to `this`\n\n\n  BN.prototype.iaddn = function iaddn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num); // Possible sign change\n\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) < num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    } // Add without checks\n\n\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn(num) {\n    this.words[0] += num; // Carry\n\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n\n    this.length = Math.max(this.length, i + 1);\n    return this;\n  }; // Subtract plain number `num` from `this`\n\n\n  BN.prototype.isubn = function isubn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.addn = function addn(num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn(num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs() {\n    this.negative = 0;\n    return this;\n  };\n\n  BN.prototype.abs = function abs() {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - (right / 0x4000000 | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this.strip(); // Subtraction overflow\n\n    assert(carry === -1);\n    carry = 0;\n\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n\n    this.negative = 1;\n    return this.strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv(num, mode) {\n    var shift = this.length - num.length;\n    var a = this.clone();\n    var b = num; // Normalize\n\n    var bhi = b.words[b.length - 1] | 0;\n\n    var bhiBits = this._countBits(bhi);\n\n    shift = 26 - bhiBits;\n\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    } // Initialize quotient\n\n\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n    if (diff.negative === 0) {\n      a = diff;\n\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n\n      qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n\n        a._ishlnsubmul(b, 1, j);\n\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n\n    if (q) {\n      q.strip();\n    }\n\n    a.strip(); // Denormalize\n\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n\n\n  BN.prototype.divmod = function divmod(num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    } // Both numbers are positive at this point\n    // Strip both numbers to approximate shift value\n\n\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    } // Very short reduction\n\n\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  }; // Find `this` / `num`\n\n\n  BN.prototype.div = function div(num) {\n    return this.divmod(num, 'div', false).div;\n  }; // Find `this` % `num`\n\n\n  BN.prototype.mod = function mod(num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod(num) {\n    return this.divmod(num, 'mod', true).mod;\n  }; // Find Round(`this` / `num`)\n\n\n  BN.prototype.divRound = function divRound(num) {\n    var dm = this.divmod(num); // Fast case - exact division\n\n    if (dm.mod.isZero()) return dm.div;\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half); // Round down\n\n    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modn = function modn(num) {\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n    var acc = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return acc;\n  }; // In-place division by number\n\n\n  BN.prototype.idivn = function idivn(num) {\n    assert(num <= 0x3ffffff);\n    var carry = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = w / num | 0;\n      carry = w % num;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.divn = function divn(num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    } // A * x + B * y = x\n\n\n    var A = new BN(1);\n    var B = new BN(0); // C * x + D * y = y\n\n    var C = new BN(0);\n    var D = new BN(1);\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        x.iushrn(i);\n\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        y.iushrn(j);\n\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  }; // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n\n\n  BN.prototype._invmp = function _invmp(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        a.iushrn(i);\n\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        b.iushrn(j);\n\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd(num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0; // Remove common factor of two\n\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  }; // Invert number in the field F(num)\n\n\n  BN.prototype.invm = function invm(num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven() {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd() {\n    return (this.words[0] & 1) === 1;\n  }; // And first word and num\n\n\n  BN.prototype.andln = function andln(num) {\n    return this.words[0] & num;\n  }; // Increment at the bit position in-line\n\n\n  BN.prototype.bincn = function bincn(bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) {\n      this._expand(s + 1);\n\n      this.words[s] |= q;\n      return this;\n    } // Add bit and propagate, if needed\n\n\n    var carry = q;\n\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero() {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn(num) {\n    var negative = num < 0;\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n    this.strip();\n    var res;\n\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n\n\n  BN.prototype.cmp = function cmp(num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Unsigned comparison\n\n\n  BN.prototype.ucmp = function ucmp(num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n    var res = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n      if (a === b) continue;\n\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n\n      break;\n    }\n\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn(num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt(num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten(num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte(num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn(num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt(num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten(num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte(num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn(num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq(num) {\n    return this.cmp(num) === 0;\n  }; //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n\n\n  BN.red = function red(num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed() {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed(ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd(num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd(num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub(num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub(num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl(num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr() {\n    assert(this.red, 'redSqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr() {\n    assert(this.red, 'redISqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.isqr(this);\n  }; // Square root over p\n\n\n  BN.prototype.redSqrt = function redSqrt() {\n    assert(this.red, 'redSqrt works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm() {\n    assert(this.red, 'redInvm works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.invm(this);\n  }; // Return negative clone of `this` % `red modulo`\n\n\n  BN.prototype.redNeg = function redNeg() {\n    assert(this.red, 'redNeg works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow(num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n\n    this.red._verify1(this);\n\n    return this.red.pow(this, num);\n  }; // Prime numbers with efficient reduction\n\n\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  }; // Pseudo-Mersenne prime\n\n  function MPrime(name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp() {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce(num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is BN v4 instance\n        r.strip();\n      } else {\n        // r is BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split(input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK(num) {\n    return num.imul(this.k);\n  };\n\n  function K256() {\n    MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split(input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n    var outLen = Math.min(input.length, 9);\n\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    } // Shift by 9 limbs\n\n\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n      prev = next;\n    }\n\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK(num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n    var lo = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + (lo / 0x4000000 | 0);\n    } // Fast length reduction\n\n\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n\n    return num;\n  };\n\n  function P224() {\n    MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n\n  inherits(P224, MPrime);\n\n  function P192() {\n    MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n\n  inherits(P192, MPrime);\n\n  function P25519() {\n    // 2 ^ 255 - 19\n    MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK(num) {\n    // K = 0x13\n    var carry = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n      num.words[i] = lo;\n      carry = hi;\n    }\n\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n\n    return num;\n  }; // Exported mostly for testing purposes, use plain name instead\n\n\n  BN._prime = function prime(name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n    var prime;\n\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n\n    primes[name] = prime;\n    return prime;\n  }; //\n  // Base reduction engine\n  //\n\n\n  function Red(m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1(a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2(a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red, 'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod(a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n    return a.umod(this.m)._forceRed(this);\n  };\n\n  Red.prototype.neg = function neg(a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add(a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd(a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.sub = function sub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.shl = function shl(a, num) {\n    this._verify1(a);\n\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr(a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr(a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt(a) {\n    if (a.isZero()) return a.clone();\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1); // Fast case\n\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n    var q = this.m.subn(1);\n    var s = 0;\n\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n\n    assert(!q.isZero());\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg(); // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm(a) {\n    var inv = a._invmp(this.m);\n\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow(a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = word >> j & 1;\n\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo(num) {\n    var r = num.umod(this.m);\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom(num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  }; //\n  // Montgomery method engine\n  //\n\n\n  BN.mont = function mont(num) {\n    return new Mont(num);\n  };\n\n  function Mont(m) {\n    Red.call(this, m);\n    this.shift = this.m.bitLength();\n\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - this.shift % 26;\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo(num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom(num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul(a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul(a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm(a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/asn1.js/node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/axios/index.js":
/*!*************************************!*\
  !*** ./node_modules/axios/index.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = __webpack_require__(/*! ./lib/axios */ \"./node_modules/axios/lib/axios.js\");\n\n//# sourceURL=webpack:///./node_modules/axios/index.js?");

/***/ }),

/***/ "./node_modules/axios/lib/adapters/xhr.js":
/*!************************************************!*\
  !*** ./node_modules/axios/lib/adapters/xhr.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nvar settle = __webpack_require__(/*! ./../core/settle */ \"./node_modules/axios/lib/core/settle.js\");\n\nvar cookies = __webpack_require__(/*! ./../helpers/cookies */ \"./node_modules/axios/lib/helpers/cookies.js\");\n\nvar buildURL = __webpack_require__(/*! ./../helpers/buildURL */ \"./node_modules/axios/lib/helpers/buildURL.js\");\n\nvar buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ \"./node_modules/axios/lib/core/buildFullPath.js\");\n\nvar parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ \"./node_modules/axios/lib/helpers/parseHeaders.js\");\n\nvar isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ \"./node_modules/axios/lib/helpers/isURLSameOrigin.js\");\n\nvar transitionalDefaults = __webpack_require__(/*! ../defaults/transitional */ \"./node_modules/axios/lib/defaults/transitional.js\");\n\nvar AxiosError = __webpack_require__(/*! ../core/AxiosError */ \"./node_modules/axios/lib/core/AxiosError.js\");\n\nvar CanceledError = __webpack_require__(/*! ../cancel/CanceledError */ \"./node_modules/axios/lib/cancel/CanceledError.js\");\n\nvar parseProtocol = __webpack_require__(/*! ../helpers/parseProtocol */ \"./node_modules/axios/lib/helpers/parseProtocol.js\");\n\nmodule.exports = function xhrAdapter(config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    var requestData = config.data;\n    var requestHeaders = config.headers;\n    var responseType = config.responseType;\n    var onCanceled;\n\n    function done() {\n      if (config.cancelToken) {\n        config.cancelToken.unsubscribe(onCanceled);\n      }\n\n      if (config.signal) {\n        config.signal.removeEventListener('abort', onCanceled);\n      }\n    }\n\n    if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n      delete requestHeaders['Content-Type']; // Let the browser set it\n    }\n\n    var request = new XMLHttpRequest(); // HTTP basic authentication\n\n    if (config.auth) {\n      var username = config.auth.username || '';\n      var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n    }\n\n    var fullPath = buildFullPath(config.baseURL, config.url);\n    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n    request.timeout = config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      } // Prepare the response\n\n\n      var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n      var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response;\n      var response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config: config,\n        request: request\n      };\n      settle(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response); // Clean up request\n\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        } // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n\n\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        } // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n\n\n        setTimeout(onloadend);\n      };\n    } // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); // Clean up request\n\n      request = null;\n    }; // Handle low level network errors\n\n\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request)); // Clean up request\n\n      request = null;\n    }; // Handle timeout\n\n\n    request.ontimeout = function handleTimeout() {\n      var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n      var transitional = config.transitional || transitionalDefaults;\n\n      if (config.timeoutErrorMessage) {\n        timeoutErrorMessage = config.timeoutErrorMessage;\n      }\n\n      reject(new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, config, request)); // Clean up request\n\n      request = null;\n    }; // Add xsrf header\n    // This is only done if running in a standard browser environment.\n    // Specifically not if we're in a web worker, or react-native.\n\n\n    if (utils.isStandardBrowserEnv()) {\n      // Add xsrf header\n      var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n      if (xsrfValue) {\n        requestHeaders[config.xsrfHeaderName] = xsrfValue;\n      }\n    } // Add headers to the request\n\n\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n          // Remove Content-Type if data is undefined\n          delete requestHeaders[key];\n        } else {\n          // Otherwise add header to the request\n          request.setRequestHeader(key, val);\n        }\n      });\n    } // Add withCredentials to request if needed\n\n\n    if (!utils.isUndefined(config.withCredentials)) {\n      request.withCredentials = !!config.withCredentials;\n    } // Add responseType to request if needed\n\n\n    if (responseType && responseType !== 'json') {\n      request.responseType = config.responseType;\n    } // Handle progress if needed\n\n\n    if (typeof config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', config.onDownloadProgress);\n    } // Not all browsers support upload events\n\n\n    if (typeof config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', config.onUploadProgress);\n    }\n\n    if (config.cancelToken || config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = function (cancel) {\n        if (!request) {\n          return;\n        }\n\n        reject(!cancel || cancel && cancel.type ? new CanceledError() : cancel);\n        request.abort();\n        request = null;\n      };\n\n      config.cancelToken && config.cancelToken.subscribe(onCanceled);\n\n      if (config.signal) {\n        config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    if (!requestData) {\n      requestData = null;\n    }\n\n    var protocol = parseProtocol(fullPath);\n\n    if (protocol && ['http', 'https', 'file'].indexOf(protocol) === -1) {\n      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n      return;\n    } // Send the request\n\n\n    request.send(requestData);\n  });\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/adapters/xhr.js?");

/***/ }),

/***/ "./node_modules/axios/lib/axios.js":
/*!*****************************************!*\
  !*** ./node_modules/axios/lib/axios.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/axios/lib/utils.js\");\n\nvar bind = __webpack_require__(/*! ./helpers/bind */ \"./node_modules/axios/lib/helpers/bind.js\");\n\nvar Axios = __webpack_require__(/*! ./core/Axios */ \"./node_modules/axios/lib/core/Axios.js\");\n\nvar mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ \"./node_modules/axios/lib/core/mergeConfig.js\");\n\nvar defaults = __webpack_require__(/*! ./defaults */ \"./node_modules/axios/lib/defaults/index.js\");\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n  var context = new Axios(defaultConfig);\n  var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n  utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n  utils.extend(instance, context); // Factory for creating new instances\n\n  instance.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(defaultConfig, instanceConfig));\n  };\n\n  return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Expose Cancel & CancelToken\n\naxios.CanceledError = __webpack_require__(/*! ./cancel/CanceledError */ \"./node_modules/axios/lib/cancel/CanceledError.js\");\naxios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ \"./node_modules/axios/lib/cancel/CancelToken.js\");\naxios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ \"./node_modules/axios/lib/cancel/isCancel.js\");\naxios.VERSION = __webpack_require__(/*! ./env/data */ \"./node_modules/axios/lib/env/data.js\").version;\naxios.toFormData = __webpack_require__(/*! ./helpers/toFormData */ \"./node_modules/axios/lib/helpers/toFormData.js\"); // Expose AxiosError class\n\naxios.AxiosError = __webpack_require__(/*! ../lib/core/AxiosError */ \"./node_modules/axios/lib/core/AxiosError.js\"); // alias for CanceledError for backward compatibility\n\naxios.Cancel = axios.CanceledError; // Expose all/spread\n\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\n\naxios.spread = __webpack_require__(/*! ./helpers/spread */ \"./node_modules/axios/lib/helpers/spread.js\"); // Expose isAxiosError\n\naxios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ \"./node_modules/axios/lib/helpers/isAxiosError.js\");\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;\n\n//# sourceURL=webpack:///./node_modules/axios/lib/axios.js?");

/***/ }),

/***/ "./node_modules/axios/lib/cancel/CancelToken.js":
/*!******************************************************!*\
  !*** ./node_modules/axios/lib/cancel/CancelToken.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar CanceledError = __webpack_require__(/*! ./CanceledError */ \"./node_modules/axios/lib/cancel/CanceledError.js\");\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n  if (typeof executor !== 'function') {\n    throw new TypeError('executor must be a function.');\n  }\n\n  var resolvePromise;\n  this.promise = new Promise(function promiseExecutor(resolve) {\n    resolvePromise = resolve;\n  });\n  var token = this; // eslint-disable-next-line func-names\n\n  this.promise.then(function (cancel) {\n    if (!token._listeners) return;\n    var i;\n    var l = token._listeners.length;\n\n    for (i = 0; i < l; i++) {\n      token._listeners[i](cancel);\n    }\n\n    token._listeners = null;\n  }); // eslint-disable-next-line func-names\n\n  this.promise.then = function (onfulfilled) {\n    var _resolve; // eslint-disable-next-line func-names\n\n\n    var promise = new Promise(function (resolve) {\n      token.subscribe(resolve);\n      _resolve = resolve;\n    }).then(onfulfilled);\n\n    promise.cancel = function reject() {\n      token.unsubscribe(_resolve);\n    };\n\n    return promise;\n  };\n\n  executor(function cancel(message) {\n    if (token.reason) {\n      // Cancellation has already been requested\n      return;\n    }\n\n    token.reason = new CanceledError(message);\n    resolvePromise(token.reason);\n  });\n}\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n  if (this.reason) {\n    throw this.reason;\n  }\n};\n/**\n * Subscribe to the cancel signal\n */\n\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n  if (this.reason) {\n    listener(this.reason);\n    return;\n  }\n\n  if (this._listeners) {\n    this._listeners.push(listener);\n  } else {\n    this._listeners = [listener];\n  }\n};\n/**\n * Unsubscribe from the cancel signal\n */\n\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n  if (!this._listeners) {\n    return;\n  }\n\n  var index = this._listeners.indexOf(listener);\n\n  if (index !== -1) {\n    this._listeners.splice(index, 1);\n  }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n  var cancel;\n  var token = new CancelToken(function executor(c) {\n    cancel = c;\n  });\n  return {\n    token: token,\n    cancel: cancel\n  };\n};\n\nmodule.exports = CancelToken;\n\n//# sourceURL=webpack:///./node_modules/axios/lib/cancel/CancelToken.js?");

/***/ }),

/***/ "./node_modules/axios/lib/cancel/CanceledError.js":
/*!********************************************************!*\
  !*** ./node_modules/axios/lib/cancel/CanceledError.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar AxiosError = __webpack_require__(/*! ../core/AxiosError */ \"./node_modules/axios/lib/core/AxiosError.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/axios/lib/utils.js\");\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\n\nfunction CanceledError(message) {\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n  this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n  __CANCEL__: true\n});\nmodule.exports = CanceledError;\n\n//# sourceURL=webpack:///./node_modules/axios/lib/cancel/CanceledError.js?");

/***/ }),

/***/ "./node_modules/axios/lib/cancel/isCancel.js":
/*!***************************************************!*\
  !*** ./node_modules/axios/lib/cancel/isCancel.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/cancel/isCancel.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/Axios.js":
/*!**********************************************!*\
  !*** ./node_modules/axios/lib/core/Axios.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nvar buildURL = __webpack_require__(/*! ../helpers/buildURL */ \"./node_modules/axios/lib/helpers/buildURL.js\");\n\nvar InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ \"./node_modules/axios/lib/core/InterceptorManager.js\");\n\nvar dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ \"./node_modules/axios/lib/core/dispatchRequest.js\");\n\nvar mergeConfig = __webpack_require__(/*! ./mergeConfig */ \"./node_modules/axios/lib/core/mergeConfig.js\");\n\nvar buildFullPath = __webpack_require__(/*! ./buildFullPath */ \"./node_modules/axios/lib/core/buildFullPath.js\");\n\nvar validator = __webpack_require__(/*! ../helpers/validator */ \"./node_modules/axios/lib/helpers/validator.js\");\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\nfunction Axios(instanceConfig) {\n  this.defaults = instanceConfig;\n  this.interceptors = {\n    request: new InterceptorManager(),\n    response: new InterceptorManager()\n  };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(configOrUrl, config) {\n  /*eslint no-param-reassign:0*/\n  // Allow for axios('example/url'[, config]) a la fetch API\n  if (typeof configOrUrl === 'string') {\n    config = config || {};\n    config.url = configOrUrl;\n  } else {\n    config = configOrUrl || {};\n  }\n\n  config = mergeConfig(this.defaults, config); // Set config.method\n\n  if (config.method) {\n    config.method = config.method.toLowerCase();\n  } else if (this.defaults.method) {\n    config.method = this.defaults.method.toLowerCase();\n  } else {\n    config.method = 'get';\n  }\n\n  var transitional = config.transitional;\n\n  if (transitional !== undefined) {\n    validator.assertOptions(transitional, {\n      silentJSONParsing: validators.transitional(validators.boolean),\n      forcedJSONParsing: validators.transitional(validators.boolean),\n      clarifyTimeoutError: validators.transitional(validators.boolean)\n    }, false);\n  } // filter out skipped interceptors\n\n\n  var requestInterceptorChain = [];\n  var synchronousRequestInterceptors = true;\n  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n    if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n      return;\n    }\n\n    synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n    requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n  });\n  var responseInterceptorChain = [];\n  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n    responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n  });\n  var promise;\n\n  if (!synchronousRequestInterceptors) {\n    var chain = [dispatchRequest, undefined];\n    Array.prototype.unshift.apply(chain, requestInterceptorChain);\n    chain = chain.concat(responseInterceptorChain);\n    promise = Promise.resolve(config);\n\n    while (chain.length) {\n      promise = promise.then(chain.shift(), chain.shift());\n    }\n\n    return promise;\n  }\n\n  var newConfig = config;\n\n  while (requestInterceptorChain.length) {\n    var onFulfilled = requestInterceptorChain.shift();\n    var onRejected = requestInterceptorChain.shift();\n\n    try {\n      newConfig = onFulfilled(newConfig);\n    } catch (error) {\n      onRejected(error);\n      break;\n    }\n  }\n\n  try {\n    promise = dispatchRequest(newConfig);\n  } catch (error) {\n    return Promise.reject(error);\n  }\n\n  while (responseInterceptorChain.length) {\n    promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n  }\n\n  return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n  config = mergeConfig(this.defaults, config);\n  var fullPath = buildFullPath(config.baseURL, config.url);\n  return buildURL(fullPath, config.params, config.paramsSerializer);\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function (url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: (config || {}).data\n    }));\n  };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request(mergeConfig(config || {}, {\n        method: method,\n        headers: isForm ? {\n          'Content-Type': 'multipart/form-data'\n        } : {},\n        url: url,\n        data: data\n      }));\n    };\n  }\n\n  Axios.prototype[method] = generateHTTPMethod();\n  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\nmodule.exports = Axios;\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/Axios.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/AxiosError.js":
/*!***************************************************!*\
  !*** ./node_modules/axios/lib/core/AxiosError.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/axios/lib/utils.js\");\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nfunction AxiosError(message, code, config, request, response) {\n  Error.call(this);\n  this.message = message;\n  this.name = 'AxiosError';\n  code && (this.code = code);\n  config && (this.config = config);\n  request && (this.request = request);\n  response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n  toJSON: function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: this.config,\n      code: this.code,\n      status: this.response && this.response.status ? this.response.status : null\n    };\n  }\n});\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n['ERR_BAD_OPTION_VALUE', 'ERR_BAD_OPTION', 'ECONNABORTED', 'ETIMEDOUT', 'ERR_NETWORK', 'ERR_FR_TOO_MANY_REDIRECTS', 'ERR_DEPRECATED', 'ERR_BAD_RESPONSE', 'ERR_BAD_REQUEST', 'ERR_CANCELED' // eslint-disable-next-line func-names\n].forEach(function (code) {\n  descriptors[code] = {\n    value: code\n  };\n});\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {\n  value: true\n}); // eslint-disable-next-line func-names\n\nAxiosError.from = function (error, code, config, request, response, customProps) {\n  var axiosError = Object.create(prototype);\n  utils.toFlatObject(error, axiosError, function filter(obj) {\n    return obj !== Error.prototype;\n  });\n  AxiosError.call(axiosError, error.message, code, config, request, response);\n  axiosError.name = error.name;\n  customProps && Object.assign(axiosError, customProps);\n  return axiosError;\n};\n\nmodule.exports = AxiosError;\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/AxiosError.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/InterceptorManager.js":
/*!***********************************************************!*\
  !*** ./node_modules/axios/lib/core/InterceptorManager.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nfunction InterceptorManager() {\n  this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n  this.handlers.push({\n    fulfilled: fulfilled,\n    rejected: rejected,\n    synchronous: options ? options.synchronous : false,\n    runWhen: options ? options.runWhen : null\n  });\n  return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n  if (this.handlers[id]) {\n    this.handlers[id] = null;\n  }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n  utils.forEach(this.handlers, function forEachHandler(h) {\n    if (h !== null) {\n      fn(h);\n    }\n  });\n};\n\nmodule.exports = InterceptorManager;\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/InterceptorManager.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/buildFullPath.js":
/*!******************************************************!*\
  !*** ./node_modules/axios/lib/core/buildFullPath.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ \"./node_modules/axios/lib/helpers/isAbsoluteURL.js\");\n\nvar combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ \"./node_modules/axios/lib/helpers/combineURLs.js\");\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\n\n\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n\n  return requestedURL;\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/buildFullPath.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/dispatchRequest.js":
/*!********************************************************!*\
  !*** ./node_modules/axios/lib/core/dispatchRequest.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nvar transformData = __webpack_require__(/*! ./transformData */ \"./node_modules/axios/lib/core/transformData.js\");\n\nvar isCancel = __webpack_require__(/*! ../cancel/isCancel */ \"./node_modules/axios/lib/cancel/isCancel.js\");\n\nvar defaults = __webpack_require__(/*! ../defaults */ \"./node_modules/axios/lib/defaults/index.js\");\n\nvar CanceledError = __webpack_require__(/*! ../cancel/CanceledError */ \"./node_modules/axios/lib/cancel/CanceledError.js\");\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new CanceledError();\n  }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n  throwIfCancellationRequested(config); // Ensure headers exist\n\n  config.headers = config.headers || {}; // Transform request data\n\n  config.data = transformData.call(config, config.data, config.headers, config.transformRequest); // Flatten headers\n\n  config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n  utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n    delete config.headers[method];\n  });\n  var adapter = config.adapter || defaults.adapter;\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config); // Transform response data\n\n    response.data = transformData.call(config, response.data, response.headers, config.transformResponse);\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config); // Transform response data\n\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse);\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/dispatchRequest.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/mergeConfig.js":
/*!****************************************************!*\
  !*** ./node_modules/axios/lib/core/mergeConfig.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/axios/lib/utils.js\");\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  var config = {};\n\n  function getMergedValue(target, source) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge(target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n\n    return source;\n  } // eslint-disable-next-line consistent-return\n\n\n  function mergeDeepProperties(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      return getMergedValue(config1[prop], config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      return getMergedValue(undefined, config1[prop]);\n    }\n  } // eslint-disable-next-line consistent-return\n\n\n  function valueFromConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      return getMergedValue(undefined, config2[prop]);\n    }\n  } // eslint-disable-next-line consistent-return\n\n\n  function defaultToConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      return getMergedValue(undefined, config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      return getMergedValue(undefined, config1[prop]);\n    }\n  } // eslint-disable-next-line consistent-return\n\n\n  function mergeDirectKeys(prop) {\n    if (prop in config2) {\n      return getMergedValue(config1[prop], config2[prop]);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, config1[prop]);\n    }\n  }\n\n  var mergeMap = {\n    'url': valueFromConfig2,\n    'method': valueFromConfig2,\n    'data': valueFromConfig2,\n    'baseURL': defaultToConfig2,\n    'transformRequest': defaultToConfig2,\n    'transformResponse': defaultToConfig2,\n    'paramsSerializer': defaultToConfig2,\n    'timeout': defaultToConfig2,\n    'timeoutMessage': defaultToConfig2,\n    'withCredentials': defaultToConfig2,\n    'adapter': defaultToConfig2,\n    'responseType': defaultToConfig2,\n    'xsrfCookieName': defaultToConfig2,\n    'xsrfHeaderName': defaultToConfig2,\n    'onUploadProgress': defaultToConfig2,\n    'onDownloadProgress': defaultToConfig2,\n    'decompress': defaultToConfig2,\n    'maxContentLength': defaultToConfig2,\n    'maxBodyLength': defaultToConfig2,\n    'beforeRedirect': defaultToConfig2,\n    'transport': defaultToConfig2,\n    'httpAgent': defaultToConfig2,\n    'httpsAgent': defaultToConfig2,\n    'cancelToken': defaultToConfig2,\n    'socketPath': defaultToConfig2,\n    'responseEncoding': defaultToConfig2,\n    'validateStatus': mergeDirectKeys\n  };\n  utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n    var merge = mergeMap[prop] || mergeDeepProperties;\n    var configValue = merge(prop);\n    utils.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);\n  });\n  return config;\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/mergeConfig.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/settle.js":
/*!***********************************************!*\
  !*** ./node_modules/axios/lib/core/settle.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar AxiosError = __webpack_require__(/*! ./AxiosError */ \"./node_modules/axios/lib/core/AxiosError.js\");\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n  var validateStatus = response.config.validateStatus;\n\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(new AxiosError('Request failed with status code ' + response.status, [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response));\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/settle.js?");

/***/ }),

/***/ "./node_modules/axios/lib/core/transformData.js":
/*!******************************************************!*\
  !*** ./node_modules/axios/lib/core/transformData.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nvar defaults = __webpack_require__(/*! ../defaults */ \"./node_modules/axios/lib/defaults/index.js\");\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n  var context = this || defaults;\n  /*eslint no-param-reassign:0*/\n\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(context, data, headers);\n  });\n  return data;\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/core/transformData.js?");

/***/ }),

/***/ "./node_modules/axios/lib/defaults/index.js":
/*!**************************************************!*\
  !*** ./node_modules/axios/lib/defaults/index.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/axios/lib/utils.js\");\n\nvar normalizeHeaderName = __webpack_require__(/*! ../helpers/normalizeHeaderName */ \"./node_modules/axios/lib/helpers/normalizeHeaderName.js\");\n\nvar AxiosError = __webpack_require__(/*! ../core/AxiosError */ \"./node_modules/axios/lib/core/AxiosError.js\");\n\nvar transitionalDefaults = __webpack_require__(/*! ./transitional */ \"./node_modules/axios/lib/defaults/transitional.js\");\n\nvar toFormData = __webpack_require__(/*! ../helpers/toFormData */ \"./node_modules/axios/lib/helpers/toFormData.js\");\n\nvar DEFAULT_CONTENT_TYPE = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n  if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n    headers['Content-Type'] = value;\n  }\n}\n\nfunction getDefaultAdapter() {\n  var adapter;\n\n  if (typeof XMLHttpRequest !== 'undefined') {\n    // For browsers use XHR adapter\n    adapter = __webpack_require__(/*! ../adapters/xhr */ \"./node_modules/axios/lib/adapters/xhr.js\");\n  } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n    // For node use HTTP adapter\n    adapter = __webpack_require__(/*! ../adapters/http */ \"./node_modules/axios/lib/adapters/xhr.js\");\n  }\n\n  return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n  transitional: transitionalDefaults,\n  adapter: getDefaultAdapter(),\n  transformRequest: [function transformRequest(data, headers) {\n    normalizeHeaderName(headers, 'Accept');\n    normalizeHeaderName(headers, 'Content-Type');\n\n    if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n      return data;\n    }\n\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n\n    if (utils.isURLSearchParams(data)) {\n      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n      return data.toString();\n    }\n\n    var isObjectPayload = utils.isObject(data);\n    var contentType = headers && headers['Content-Type'];\n    var isFileList;\n\n    if ((isFileList = utils.isFileList(data)) || isObjectPayload && contentType === 'multipart/form-data') {\n      var _FormData = this.env && this.env.FormData;\n\n      return toFormData(isFileList ? {\n        'files[]': data\n      } : data, _FormData && new _FormData());\n    } else if (isObjectPayload || contentType === 'application/json') {\n      setContentTypeIfUnset(headers, 'application/json');\n      return stringifySafely(data);\n    }\n\n    return data;\n  }],\n  transformResponse: [function transformResponse(data) {\n    var transitional = this.transitional || defaults.transitional;\n    var silentJSONParsing = transitional && transitional.silentJSONParsing;\n    var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n    if (strictJSONParsing || forcedJSONParsing && utils.isString(data) && data.length) {\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n          }\n\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n  maxContentLength: -1,\n  maxBodyLength: -1,\n  env: {\n    FormData: __webpack_require__(/*! ./env/FormData */ \"./node_modules/axios/lib/helpers/null.js\")\n  },\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*'\n    }\n  }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n  defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/axios/lib/defaults/index.js?");

/***/ }),

/***/ "./node_modules/axios/lib/defaults/transitional.js":
/*!*********************************************************!*\
  !*** ./node_modules/axios/lib/defaults/transitional.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = {\n  silentJSONParsing: true,\n  forcedJSONParsing: true,\n  clarifyTimeoutError: false\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/defaults/transitional.js?");

/***/ }),

/***/ "./node_modules/axios/lib/env/data.js":
/*!********************************************!*\
  !*** ./node_modules/axios/lib/env/data.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = {\n  \"version\": \"0.27.2\"\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/env/data.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/bind.js":
/*!************************************************!*\
  !*** ./node_modules/axios/lib/helpers/bind.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function bind(fn, thisArg) {\n  return function wrap() {\n    var args = new Array(arguments.length);\n\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n\n    return fn.apply(thisArg, args);\n  };\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/bind.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/buildURL.js":
/*!****************************************************!*\
  !*** ./node_modules/axios/lib/helpers/buildURL.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nfunction encode(val) {\n  return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n\n  var serializedParams;\n\n  if (paramsSerializer) {\n    serializedParams = paramsSerializer(params);\n  } else if (utils.isURLSearchParams(params)) {\n    serializedParams = params.toString();\n  } else {\n    var parts = [];\n    utils.forEach(params, function serialize(val, key) {\n      if (val === null || typeof val === 'undefined') {\n        return;\n      }\n\n      if (utils.isArray(val)) {\n        key = key + '[]';\n      } else {\n        val = [val];\n      }\n\n      utils.forEach(val, function parseValue(v) {\n        if (utils.isDate(v)) {\n          v = v.toISOString();\n        } else if (utils.isObject(v)) {\n          v = JSON.stringify(v);\n        }\n\n        parts.push(encode(key) + '=' + encode(v));\n      });\n    });\n    serializedParams = parts.join('&');\n  }\n\n  if (serializedParams) {\n    var hashmarkIndex = url.indexOf('#');\n\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/buildURL.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/combineURLs.js":
/*!*******************************************************!*\
  !*** ./node_modules/axios/lib/helpers/combineURLs.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n  return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/combineURLs.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/cookies.js":
/*!***************************************************!*\
  !*** ./node_modules/axios/lib/helpers/cookies.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n  return {\n    write: function write(name, value, expires, path, domain, secure) {\n      var cookie = [];\n      cookie.push(name + '=' + encodeURIComponent(value));\n\n      if (utils.isNumber(expires)) {\n        cookie.push('expires=' + new Date(expires).toGMTString());\n      }\n\n      if (utils.isString(path)) {\n        cookie.push('path=' + path);\n      }\n\n      if (utils.isString(domain)) {\n        cookie.push('domain=' + domain);\n      }\n\n      if (secure === true) {\n        cookie.push('secure');\n      }\n\n      document.cookie = cookie.join('; ');\n    },\n    read: function read(name) {\n      var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n      return match ? decodeURIComponent(match[3]) : null;\n    },\n    remove: function remove(name) {\n      this.write(name, '', Date.now() - 86400000);\n    }\n  };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n  return {\n    write: function write() {},\n    read: function read() {\n      return null;\n    },\n    remove: function remove() {}\n  };\n}();\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/cookies.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js":
/*!*********************************************************!*\
  !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/isAxiosError.js":
/*!********************************************************!*\
  !*** ./node_modules/axios/lib/helpers/isAxiosError.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\n\n\nmodule.exports = function isAxiosError(payload) {\n  return utils.isObject(payload) && payload.isAxiosError === true;\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/isAxiosError.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js":
/*!***********************************************************!*\
  !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\");\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n  var msie = /(msie|trident)/i.test(navigator.userAgent);\n  var urlParsingNode = document.createElement('a');\n  var originURL;\n  /**\n  * Parse a URL to discover it's components\n  *\n  * @param {String} url The URL to be parsed\n  * @returns {Object}\n  */\n\n  function resolveURL(url) {\n    var href = url;\n\n    if (msie) {\n      // IE needs attribute set twice to normalize properties\n      urlParsingNode.setAttribute('href', href);\n      href = urlParsingNode.href;\n    }\n\n    urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n    return {\n      href: urlParsingNode.href,\n      protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n      host: urlParsingNode.host,\n      search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n      hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n      hostname: urlParsingNode.hostname,\n      port: urlParsingNode.port,\n      pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n    };\n  }\n\n  originURL = resolveURL(window.location.href);\n  /**\n  * Determine if a URL shares the same origin as the current location\n  *\n  * @param {String} requestURL The URL to test\n  * @returns {boolean} True if URL shares the same origin, otherwise false\n  */\n\n  return function isURLSameOrigin(requestURL) {\n    var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n    return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n  };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n  return function isURLSameOrigin() {\n    return true;\n  };\n}();\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/normalizeHeaderName.js":
/*!***************************************************************!*\
  !*** ./node_modules/axios/lib/helpers/normalizeHeaderName.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/axios/lib/utils.js\");\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n  utils.forEach(headers, function processHeader(value, name) {\n    if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n      headers[normalizedName] = value;\n      delete headers[name];\n    }\n  });\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/null.js":
/*!************************************************!*\
  !*** ./node_modules/axios/lib/helpers/null.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("// eslint-disable-next-line strict\nmodule.exports = null;\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/null.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/parseHeaders.js":
/*!********************************************************!*\
  !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axios/lib/utils.js\"); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n  var parsed = {};\n  var key;\n  var val;\n  var i;\n\n  if (!headers) {\n    return parsed;\n  }\n\n  utils.forEach(headers.split('\\n'), function parser(line) {\n    i = line.indexOf(':');\n    key = utils.trim(line.substr(0, i)).toLowerCase();\n    val = utils.trim(line.substr(i + 1));\n\n    if (key) {\n      if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n        return;\n      }\n\n      if (key === 'set-cookie') {\n        parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n      } else {\n        parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n      }\n    }\n  });\n  return parsed;\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/parseHeaders.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/parseProtocol.js":
/*!*********************************************************!*\
  !*** ./node_modules/axios/lib/helpers/parseProtocol.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function parseProtocol(url) {\n  var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n  return match && match[1] || '';\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/parseProtocol.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/spread.js":
/*!**************************************************!*\
  !*** ./node_modules/axios/lib/helpers/spread.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/spread.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/toFormData.js":
/*!******************************************************!*\
  !*** ./node_modules/axios/lib/helpers/toFormData.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(Buffer) {\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/axios/lib/utils.js\");\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\n\nfunction toFormData(obj, formData) {\n  // eslint-disable-next-line no-param-reassign\n  formData = formData || new FormData();\n  var stack = [];\n\n  function convertValue(value) {\n    if (value === null) return '';\n\n    if (utils.isDate(value)) {\n      return value.toISOString();\n    }\n\n    if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n      return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n    }\n\n    return value;\n  }\n\n  function build(data, parentKey) {\n    if (utils.isPlainObject(data) || utils.isArray(data)) {\n      if (stack.indexOf(data) !== -1) {\n        throw Error('Circular reference detected in ' + parentKey);\n      }\n\n      stack.push(data);\n      utils.forEach(data, function each(value, key) {\n        if (utils.isUndefined(value)) return;\n        var fullKey = parentKey ? parentKey + '.' + key : key;\n        var arr;\n\n        if (value && !parentKey && typeof value === 'object') {\n          if (utils.endsWith(key, '{}')) {\n            // eslint-disable-next-line no-param-reassign\n            value = JSON.stringify(value);\n          } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n            // eslint-disable-next-line func-names\n            arr.forEach(function (el) {\n              !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n            });\n            return;\n          }\n        }\n\n        build(value, fullKey);\n      });\n      stack.pop();\n    } else {\n      formData.append(parentKey, convertValue(data));\n    }\n  }\n\n  build(obj);\n  return formData;\n}\n\nmodule.exports = toFormData;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/toFormData.js?");

/***/ }),

/***/ "./node_modules/axios/lib/helpers/validator.js":
/*!*****************************************************!*\
  !*** ./node_modules/axios/lib/helpers/validator.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar VERSION = __webpack_require__(/*! ../env/data */ \"./node_modules/axios/lib/env/data.js\").version;\n\nvar AxiosError = __webpack_require__(/*! ../core/AxiosError */ \"./node_modules/axios/lib/core/AxiosError.js\");\n\nvar validators = {}; // eslint-disable-next-line func-names\n\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\nvar deprecatedWarnings = {};\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\n\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  } // eslint-disable-next-line func-names\n\n\n  return function (value, opt, opts) {\n    if (validator === false) {\n      throw new AxiosError(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), AxiosError.ERR_DEPRECATED);\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true; // eslint-disable-next-line no-console\n\n      console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n  }\n\n  var keys = Object.keys(options);\n  var i = keys.length;\n\n  while (i-- > 0) {\n    var opt = keys[i];\n    var validator = schema[opt];\n\n    if (validator) {\n      var value = options[opt];\n      var result = value === undefined || validator(value, opt, options);\n\n      if (result !== true) {\n        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n      }\n\n      continue;\n    }\n\n    if (allowUnknown !== true) {\n      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n    }\n  }\n}\n\nmodule.exports = {\n  assertOptions: assertOptions,\n  validators: validators\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/helpers/validator.js?");

/***/ }),

/***/ "./node_modules/axios/lib/utils.js":
/*!*****************************************!*\
  !*** ./node_modules/axios/lib/utils.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar bind = __webpack_require__(/*! ./helpers/bind */ \"./node_modules/axios/lib/helpers/bind.js\"); // utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString; // eslint-disable-next-line func-names\n\nvar kindOf = function (cache) {\n  // eslint-disable-next-line func-names\n  return function (thing) {\n    var str = toString.call(thing);\n    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n  };\n}(Object.create(null));\n\nfunction kindOfTest(type) {\n  type = type.toLowerCase();\n  return function isKindOf(thing) {\n    return kindOf(thing) === type;\n  };\n}\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\n\nfunction isArray(val) {\n  return Array.isArray(val);\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n  return typeof val === 'undefined';\n}\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\n\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\nfunction isArrayBufferView(val) {\n  var result;\n\n  if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = val && val.buffer && isArrayBuffer(val.buffer);\n  }\n\n  return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n  return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n  return typeof val === 'number';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n  return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\n\n\nfunction isPlainObject(val) {\n  if (kindOf(val) !== 'object') {\n    return false;\n  }\n\n  var prototype = Object.getPrototypeOf(val);\n  return prototype === null || prototype === Object.prototype;\n}\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nvar isDate = kindOfTest('Date');\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\nvar isFile = kindOfTest('File');\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\nvar isBlob = kindOfTest('Blob');\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\nvar isFileList = kindOfTest('FileList');\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\nfunction isFunction(val) {\n  return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n  return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(thing) {\n  var pattern = '[object FormData]';\n  return thing && (typeof FormData === 'function' && thing instanceof FormData || toString.call(thing) === pattern || isFunction(thing.toString) && thing.toString() === pattern);\n}\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\nfunction trim(str) {\n  return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n  if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n    return false;\n  }\n\n  return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  } // Force an array if not already something iterable\n\n\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (var i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    for (var key in obj) {\n      if (Object.prototype.hasOwnProperty.call(obj, key)) {\n        fn.call(null, obj[key], key, obj);\n      }\n    }\n  }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction\n  /* obj1, obj2, obj3, ... */\nmerge() {\n  var result = {};\n\n  function assignValue(val, key) {\n    if (isPlainObject(result[key]) && isPlainObject(val)) {\n      result[key] = merge(result[key], val);\n    } else if (isPlainObject(val)) {\n      result[key] = merge({}, val);\n    } else if (isArray(val)) {\n      result[key] = val.slice();\n    } else {\n      result[key] = val;\n    }\n  }\n\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    forEach(arguments[i], assignValue);\n  }\n\n  return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n  forEach(b, function assignValue(val, key) {\n    if (thisArg && typeof val === 'function') {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  });\n  return a;\n}\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\n\n\nfunction stripBOM(content) {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n\n  return content;\n}\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n  constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n  constructor.prototype.constructor = constructor;\n  props && Object.assign(constructor.prototype, props);\n}\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n  var props;\n  var i;\n  var prop;\n  var merged = {};\n  destObj = destObj || {};\n\n  do {\n    props = Object.getOwnPropertyNames(sourceObj);\n    i = props.length;\n\n    while (i-- > 0) {\n      prop = props[i];\n\n      if (!merged[prop]) {\n        destObj[prop] = sourceObj[prop];\n        merged[prop] = true;\n      }\n    }\n\n    sourceObj = Object.getPrototypeOf(sourceObj);\n  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n  return destObj;\n}\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\n\n\nfunction endsWith(str, searchString, position) {\n  str = String(str);\n\n  if (position === undefined || position > str.length) {\n    position = str.length;\n  }\n\n  position -= searchString.length;\n  var lastIndex = str.indexOf(searchString, position);\n  return lastIndex !== -1 && lastIndex === position;\n}\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\n\n\nfunction toArray(thing) {\n  if (!thing) return null;\n  var i = thing.length;\n  if (isUndefined(i)) return null;\n  var arr = new Array(i);\n\n  while (i-- > 0) {\n    arr[i] = thing[i];\n  }\n\n  return arr;\n} // eslint-disable-next-line func-names\n\n\nvar isTypedArray = function (TypedArray) {\n  // eslint-disable-next-line func-names\n  return function (thing) {\n    return TypedArray && thing instanceof TypedArray;\n  };\n}(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n  isArray: isArray,\n  isArrayBuffer: isArrayBuffer,\n  isBuffer: isBuffer,\n  isFormData: isFormData,\n  isArrayBufferView: isArrayBufferView,\n  isString: isString,\n  isNumber: isNumber,\n  isObject: isObject,\n  isPlainObject: isPlainObject,\n  isUndefined: isUndefined,\n  isDate: isDate,\n  isFile: isFile,\n  isBlob: isBlob,\n  isFunction: isFunction,\n  isStream: isStream,\n  isURLSearchParams: isURLSearchParams,\n  isStandardBrowserEnv: isStandardBrowserEnv,\n  forEach: forEach,\n  merge: merge,\n  extend: extend,\n  trim: trim,\n  stripBOM: stripBOM,\n  inherits: inherits,\n  toFlatObject: toFlatObject,\n  kindOf: kindOf,\n  kindOfTest: kindOfTest,\n  endsWith: endsWith,\n  toArray: toArray,\n  isTypedArray: isTypedArray,\n  isFileList: isFileList\n};\n\n//# sourceURL=webpack:///./node_modules/axios/lib/utils.js?");

/***/ }),

/***/ "./node_modules/base64-js/index.js":
/*!*****************************************!*\
  !*** ./node_modules/base64-js/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i];\n  revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens(b64) {\n  var len = b64.length;\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4');\n  } // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n  var validLen = b64.indexOf('=');\n  if (validLen === -1) validLen = len;\n  var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n  return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\nfunction byteLength(b64) {\n  var lens = getLens(b64);\n  var validLen = lens[0];\n  var placeHoldersLen = lens[1];\n  return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction _byteLength(b64, validLen, placeHoldersLen) {\n  return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction toByteArray(b64) {\n  var tmp;\n  var lens = getLens(b64);\n  var validLen = lens[0];\n  var placeHoldersLen = lens[1];\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n  var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n  var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n  var i;\n\n  for (i = 0; i < len; i += 4) {\n    tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n    arr[curByte++] = tmp >> 16 & 0xFF;\n    arr[curByte++] = tmp >> 8 & 0xFF;\n    arr[curByte++] = tmp & 0xFF;\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n    arr[curByte++] = tmp & 0xFF;\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n    arr[curByte++] = tmp >> 8 & 0xFF;\n    arr[curByte++] = tmp & 0xFF;\n  }\n\n  return arr;\n}\n\nfunction tripletToBase64(num) {\n  return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n  var tmp;\n  var output = [];\n\n  for (var i = start; i < end; i += 3) {\n    tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n    output.push(tripletToBase64(tmp));\n  }\n\n  return output.join('');\n}\n\nfunction fromByteArray(uint8) {\n  var tmp;\n  var len = uint8.length;\n  var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n  var parts = [];\n  var maxChunkLength = 16383; // must be multiple of 3\n  // go through the array every three bytes, we'll deal with trailing stuff later\n\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n  } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1];\n    parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n    parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n  }\n\n  return parts.join('');\n}\n\n//# sourceURL=webpack:///./node_modules/base64-js/index.js?");

/***/ }),

/***/ "./node_modules/big.js/big.js":
/*!************************************!*\
  !*** ./node_modules/big.js/big.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*\r\n *  big.js v5.2.2\r\n *  A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.\r\n *  Copyright (c) 2018 Michael Mclaughlin <M8ch88l@gmail.com>\r\n *  https://github.com/MikeMcl/big.js/LICENCE\r\n */\n;\n\n(function (GLOBAL) {\n  'use strict';\n\n  var Big,\n\n  /************************************** EDITABLE DEFAULTS *****************************************/\n  // The default values below must be integers within the stated ranges.\n\n  /*\r\n   * The maximum number of decimal places (DP) of the results of operations involving division:\r\n   * div and sqrt, and pow with negative exponents.\r\n   */\n  DP = 20,\n      // 0 to MAX_DP\n\n  /*\r\n   * The rounding mode (RM) used when rounding to the above decimal places.\r\n   *\r\n   *  0  Towards zero (i.e. truncate, no rounding).       (ROUND_DOWN)\r\n   *  1  To nearest neighbour. If equidistant, round up.  (ROUND_HALF_UP)\r\n   *  2  To nearest neighbour. If equidistant, to even.   (ROUND_HALF_EVEN)\r\n   *  3  Away from zero.                                  (ROUND_UP)\r\n   */\n  RM = 1,\n      // 0, 1, 2 or 3\n  // The maximum value of DP and Big.DP.\n  MAX_DP = 1E6,\n      // 0 to 1000000\n  // The maximum magnitude of the exponent argument to the pow method.\n  MAX_POWER = 1E6,\n      // 1 to 1000000\n\n  /*\r\n   * The negative exponent (NE) at and beneath which toString returns exponential notation.\r\n   * (JavaScript numbers: -7)\r\n   * -1000000 is the minimum recommended exponent value of a Big.\r\n   */\n  NE = -7,\n      // 0 to -1000000\n\n  /*\r\n   * The positive exponent (PE) at and above which toString returns exponential notation.\r\n   * (JavaScript numbers: 21)\r\n   * 1000000 is the maximum recommended exponent value of a Big.\r\n   * (This limit is not enforced or checked.)\r\n   */\n  PE = 21,\n      // 0 to 1000000\n\n  /**************************************************************************************************/\n  // Error messages.\n  NAME = '[big.js] ',\n      INVALID = NAME + 'Invalid ',\n      INVALID_DP = INVALID + 'decimal places',\n      INVALID_RM = INVALID + 'rounding mode',\n      DIV_BY_ZERO = NAME + 'Division by zero',\n      // The shared prototype object.\n  P = {},\n      UNDEFINED = void 0,\n      NUMERIC = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i;\n  /*\r\n   * Create and return a Big constructor.\r\n   *\r\n   */\n\n  function _Big_() {\n    /*\r\n     * The Big constructor and exported function.\r\n     * Create and return a new instance of a Big number object.\r\n     *\r\n     * n {number|string|Big} A numeric value.\r\n     */\n    function Big(n) {\n      var x = this; // Enable constructor usage without new.\n\n      if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n); // Duplicate.\n\n      if (n instanceof Big) {\n        x.s = n.s;\n        x.e = n.e;\n        x.c = n.c.slice();\n      } else {\n        parse(x, n);\n      }\n      /*\r\n       * Retain a reference to this Big constructor, and shadow Big.prototype.constructor which\r\n       * points to Object.\r\n       */\n\n\n      x.constructor = Big;\n    }\n\n    Big.prototype = P;\n    Big.DP = DP;\n    Big.RM = RM;\n    Big.NE = NE;\n    Big.PE = PE;\n    Big.version = '5.2.2';\n    return Big;\n  }\n  /*\r\n   * Parse the number or string value passed to a Big constructor.\r\n   *\r\n   * x {Big} A Big number instance.\r\n   * n {number|string} A numeric value.\r\n   */\n\n\n  function parse(x, n) {\n    var e, i, nl; // Minus zero?\n\n    if (n === 0 && 1 / n < 0) n = '-0';else if (!NUMERIC.test(n += '')) throw Error(INVALID + 'number'); // Determine sign.\n\n    x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1; // Decimal point?\n\n    if ((e = n.indexOf('.')) > -1) n = n.replace('.', ''); // Exponential form?\n\n    if ((i = n.search(/e/i)) > 0) {\n      // Determine exponent.\n      if (e < 0) e = i;\n      e += +n.slice(i + 1);\n      n = n.substring(0, i);\n    } else if (e < 0) {\n      // Integer.\n      e = n.length;\n    }\n\n    nl = n.length; // Determine leading zeros.\n\n    for (i = 0; i < nl && n.charAt(i) == '0';) ++i;\n\n    if (i == nl) {\n      // Zero.\n      x.c = [x.e = 0];\n    } else {\n      // Determine trailing zeros.\n      for (; nl > 0 && n.charAt(--nl) == '0';);\n\n      x.e = e - i - 1;\n      x.c = []; // Convert string to array of digits without leading/trailing zeros.\n\n      for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);\n    }\n\n    return x;\n  }\n  /*\r\n   * Round Big x to a maximum of dp decimal places using rounding mode rm.\r\n   * Called by stringify, P.div, P.round and P.sqrt.\r\n   *\r\n   * x {Big} The Big to round.\r\n   * dp {number} Integer, 0 to MAX_DP inclusive.\r\n   * rm {number} 0, 1, 2 or 3 (DOWN, HALF_UP, HALF_EVEN, UP)\r\n   * [more] {boolean} Whether the result of division was truncated.\r\n   */\n\n\n  function round(x, dp, rm, more) {\n    var xc = x.c,\n        i = x.e + dp + 1;\n\n    if (i < xc.length) {\n      if (rm === 1) {\n        // xc[i] is the digit after the digit that may be rounded up.\n        more = xc[i] >= 5;\n      } else if (rm === 2) {\n        more = xc[i] > 5 || xc[i] == 5 && (more || i < 0 || xc[i + 1] !== UNDEFINED || xc[i - 1] & 1);\n      } else if (rm === 3) {\n        more = more || !!xc[0];\n      } else {\n        more = false;\n        if (rm !== 0) throw Error(INVALID_RM);\n      }\n\n      if (i < 1) {\n        xc.length = 1;\n\n        if (more) {\n          // 1, 0.1, 0.01, 0.001, 0.0001 etc.\n          x.e = -dp;\n          xc[0] = 1;\n        } else {\n          // Zero.\n          xc[0] = x.e = 0;\n        }\n      } else {\n        // Remove any digits after the required decimal places.\n        xc.length = i--; // Round up?\n\n        if (more) {\n          // Rounding up may mean the previous digit has to be rounded up.\n          for (; ++xc[i] > 9;) {\n            xc[i] = 0;\n\n            if (!i--) {\n              ++x.e;\n              xc.unshift(1);\n            }\n          }\n        } // Remove trailing zeros.\n\n\n        for (i = xc.length; !xc[--i];) xc.pop();\n      }\n    } else if (rm < 0 || rm > 3 || rm !== ~~rm) {\n      throw Error(INVALID_RM);\n    }\n\n    return x;\n  }\n  /*\r\n   * Return a string representing the value of Big x in normal or exponential notation.\r\n   * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.\r\n   *\r\n   * x {Big}\r\n   * id? {number} Caller id.\r\n   *         1 toExponential\r\n   *         2 toFixed\r\n   *         3 toPrecision\r\n   *         4 valueOf\r\n   * n? {number|undefined} Caller's argument.\r\n   * k? {number|undefined}\r\n   */\n\n\n  function stringify(x, id, n, k) {\n    var e,\n        s,\n        Big = x.constructor,\n        z = !x.c[0];\n\n    if (n !== UNDEFINED) {\n      if (n !== ~~n || n < (id == 3) || n > MAX_DP) {\n        throw Error(id == 3 ? INVALID + 'precision' : INVALID_DP);\n      }\n\n      x = new Big(x); // The index of the digit that may be rounded up.\n\n      n = k - x.e; // Round?\n\n      if (x.c.length > ++k) round(x, n, Big.RM); // toFixed: recalculate k as x.e may have changed if value rounded up.\n\n      if (id == 2) k = x.e + n + 1; // Append zeros?\n\n      for (; x.c.length < k;) x.c.push(0);\n    }\n\n    e = x.e;\n    s = x.c.join('');\n    n = s.length; // Exponential notation?\n\n    if (id != 2 && (id == 1 || id == 3 && k <= e || e <= Big.NE || e >= Big.PE)) {\n      s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e; // Normal notation.\n    } else if (e < 0) {\n      for (; ++e;) s = '0' + s;\n\n      s = '0.' + s;\n    } else if (e > 0) {\n      if (++e > n) for (e -= n; e--;) s += '0';else if (e < n) s = s.slice(0, e) + '.' + s.slice(e);\n    } else if (n > 1) {\n      s = s.charAt(0) + '.' + s.slice(1);\n    }\n\n    return x.s < 0 && (!z || id == 4) ? '-' + s : s;\n  } // Prototype/instance methods\n\n  /*\r\n   * Return a new Big whose value is the absolute value of this Big.\r\n   */\n\n\n  P.abs = function () {\n    var x = new this.constructor(this);\n    x.s = 1;\n    return x;\n  };\n  /*\r\n   * Return 1 if the value of this Big is greater than the value of Big y,\r\n   *       -1 if the value of this Big is less than the value of Big y, or\r\n   *        0 if they have the same value.\r\n  */\n\n\n  P.cmp = function (y) {\n    var isneg,\n        x = this,\n        xc = x.c,\n        yc = (y = new x.constructor(y)).c,\n        i = x.s,\n        j = y.s,\n        k = x.e,\n        l = y.e; // Either zero?\n\n    if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i; // Signs differ?\n\n    if (i != j) return i;\n    isneg = i < 0; // Compare exponents.\n\n    if (k != l) return k > l ^ isneg ? 1 : -1;\n    j = (k = xc.length) < (l = yc.length) ? k : l; // Compare digit by digit.\n\n    for (i = -1; ++i < j;) {\n      if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;\n    } // Compare lengths.\n\n\n    return k == l ? 0 : k > l ^ isneg ? 1 : -1;\n  };\n  /*\r\n   * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,\r\n   * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n   */\n\n\n  P.div = function (y) {\n    var x = this,\n        Big = x.constructor,\n        a = x.c,\n        // dividend\n    b = (y = new Big(y)).c,\n        // divisor\n    k = x.s == y.s ? 1 : -1,\n        dp = Big.DP;\n    if (dp !== ~~dp || dp < 0 || dp > MAX_DP) throw Error(INVALID_DP); // Divisor is zero?\n\n    if (!b[0]) throw Error(DIV_BY_ZERO); // Dividend is 0? Return +-0.\n\n    if (!a[0]) return new Big(k * 0);\n    var bl,\n        bt,\n        n,\n        cmp,\n        ri,\n        bz = b.slice(),\n        ai = bl = b.length,\n        al = a.length,\n        r = a.slice(0, bl),\n        // remainder\n    rl = r.length,\n        q = y,\n        // quotient\n    qc = q.c = [],\n        qi = 0,\n        d = dp + (q.e = x.e - y.e) + 1; // number of digits of the result\n\n    q.s = k;\n    k = d < 0 ? 0 : d; // Create version of divisor with leading zero.\n\n    bz.unshift(0); // Add zeros to make remainder as long as divisor.\n\n    for (; rl++ < bl;) r.push(0);\n\n    do {\n      // n is how many times the divisor goes into current remainder.\n      for (n = 0; n < 10; n++) {\n        // Compare divisor and remainder.\n        if (bl != (rl = r.length)) {\n          cmp = bl > rl ? 1 : -1;\n        } else {\n          for (ri = -1, cmp = 0; ++ri < bl;) {\n            if (b[ri] != r[ri]) {\n              cmp = b[ri] > r[ri] ? 1 : -1;\n              break;\n            }\n          }\n        } // If divisor < remainder, subtract divisor from remainder.\n\n\n        if (cmp < 0) {\n          // Remainder can't be more than 1 digit longer than divisor.\n          // Equalise lengths using divisor with extra leading zero?\n          for (bt = rl == bl ? b : bz; rl;) {\n            if (r[--rl] < bt[rl]) {\n              ri = rl;\n\n              for (; ri && !r[--ri];) r[ri] = 9;\n\n              --r[ri];\n              r[rl] += 10;\n            }\n\n            r[rl] -= bt[rl];\n          }\n\n          for (; !r[0];) r.shift();\n        } else {\n          break;\n        }\n      } // Add the digit n to the result array.\n\n\n      qc[qi++] = cmp ? n : ++n; // Update the remainder.\n\n      if (r[0] && cmp) r[rl] = a[ai] || 0;else r = [a[ai]];\n    } while ((ai++ < al || r[0] !== UNDEFINED) && k--); // Leading zero? Do not remove if result is simply zero (qi == 1).\n\n\n    if (!qc[0] && qi != 1) {\n      // There can't be more than one zero.\n      qc.shift();\n      q.e--;\n    } // Round?\n\n\n    if (qi > d) round(q, dp, Big.RM, r[0] !== UNDEFINED);\n    return q;\n  };\n  /*\r\n   * Return true if the value of this Big is equal to the value of Big y, otherwise return false.\r\n   */\n\n\n  P.eq = function (y) {\n    return !this.cmp(y);\n  };\n  /*\r\n   * Return true if the value of this Big is greater than the value of Big y, otherwise return\r\n   * false.\r\n   */\n\n\n  P.gt = function (y) {\n    return this.cmp(y) > 0;\n  };\n  /*\r\n   * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise\r\n   * return false.\r\n   */\n\n\n  P.gte = function (y) {\n    return this.cmp(y) > -1;\n  };\n  /*\r\n   * Return true if the value of this Big is less than the value of Big y, otherwise return false.\r\n   */\n\n\n  P.lt = function (y) {\n    return this.cmp(y) < 0;\n  };\n  /*\r\n   * Return true if the value of this Big is less than or equal to the value of Big y, otherwise\r\n   * return false.\r\n   */\n\n\n  P.lte = function (y) {\n    return this.cmp(y) < 1;\n  };\n  /*\r\n   * Return a new Big whose value is the value of this Big minus the value of Big y.\r\n   */\n\n\n  P.minus = P.sub = function (y) {\n    var i,\n        j,\n        t,\n        xlty,\n        x = this,\n        Big = x.constructor,\n        a = x.s,\n        b = (y = new Big(y)).s; // Signs differ?\n\n    if (a != b) {\n      y.s = -b;\n      return x.plus(y);\n    }\n\n    var xc = x.c.slice(),\n        xe = x.e,\n        yc = y.c,\n        ye = y.e; // Either zero?\n\n    if (!xc[0] || !yc[0]) {\n      // y is non-zero? x is non-zero? Or both are zero.\n      return yc[0] ? (y.s = -b, y) : new Big(xc[0] ? x : 0);\n    } // Determine which is the bigger number. Prepend zeros to equalise exponents.\n\n\n    if (a = xe - ye) {\n      if (xlty = a < 0) {\n        a = -a;\n        t = xc;\n      } else {\n        ye = xe;\n        t = yc;\n      }\n\n      t.reverse();\n\n      for (b = a; b--;) t.push(0);\n\n      t.reverse();\n    } else {\n      // Exponents equal. Check digit by digit.\n      j = ((xlty = xc.length < yc.length) ? xc : yc).length;\n\n      for (a = b = 0; b < j; b++) {\n        if (xc[b] != yc[b]) {\n          xlty = xc[b] < yc[b];\n          break;\n        }\n      }\n    } // x < y? Point xc to the array of the bigger number.\n\n\n    if (xlty) {\n      t = xc;\n      xc = yc;\n      yc = t;\n      y.s = -y.s;\n    }\n    /*\r\n     * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only\r\n     * needs to start at yc.length.\r\n     */\n\n\n    if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0; // Subtract yc from xc.\n\n    for (b = i; j > a;) {\n      if (xc[--j] < yc[j]) {\n        for (i = j; i && !xc[--i];) xc[i] = 9;\n\n        --xc[i];\n        xc[j] += 10;\n      }\n\n      xc[j] -= yc[j];\n    } // Remove trailing zeros.\n\n\n    for (; xc[--b] === 0;) xc.pop(); // Remove leading zeros and adjust exponent accordingly.\n\n\n    for (; xc[0] === 0;) {\n      xc.shift();\n      --ye;\n    }\n\n    if (!xc[0]) {\n      // n - n = +0\n      y.s = 1; // Result must be zero.\n\n      xc = [ye = 0];\n    }\n\n    y.c = xc;\n    y.e = ye;\n    return y;\n  };\n  /*\r\n   * Return a new Big whose value is the value of this Big modulo the value of Big y.\r\n   */\n\n\n  P.mod = function (y) {\n    var ygtx,\n        x = this,\n        Big = x.constructor,\n        a = x.s,\n        b = (y = new Big(y)).s;\n    if (!y.c[0]) throw Error(DIV_BY_ZERO);\n    x.s = y.s = 1;\n    ygtx = y.cmp(x) == 1;\n    x.s = a;\n    y.s = b;\n    if (ygtx) return new Big(x);\n    a = Big.DP;\n    b = Big.RM;\n    Big.DP = Big.RM = 0;\n    x = x.div(y);\n    Big.DP = a;\n    Big.RM = b;\n    return this.minus(x.times(y));\n  };\n  /*\r\n   * Return a new Big whose value is the value of this Big plus the value of Big y.\r\n   */\n\n\n  P.plus = P.add = function (y) {\n    var t,\n        x = this,\n        Big = x.constructor,\n        a = x.s,\n        b = (y = new Big(y)).s; // Signs differ?\n\n    if (a != b) {\n      y.s = -b;\n      return x.minus(y);\n    }\n\n    var xe = x.e,\n        xc = x.c,\n        ye = y.e,\n        yc = y.c; // Either zero? y is non-zero? x is non-zero? Or both are zero.\n\n    if (!xc[0] || !yc[0]) return yc[0] ? y : new Big(xc[0] ? x : a * 0);\n    xc = xc.slice(); // Prepend zeros to equalise exponents.\n    // Note: reverse faster than unshifts.\n\n    if (a = xe - ye) {\n      if (a > 0) {\n        ye = xe;\n        t = yc;\n      } else {\n        a = -a;\n        t = xc;\n      }\n\n      t.reverse();\n\n      for (; a--;) t.push(0);\n\n      t.reverse();\n    } // Point xc to the longer array.\n\n\n    if (xc.length - yc.length < 0) {\n      t = yc;\n      yc = xc;\n      xc = t;\n    }\n\n    a = yc.length; // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.\n\n    for (b = 0; a; xc[a] %= 10) b = (xc[--a] = xc[a] + yc[a] + b) / 10 | 0; // No need to check for zero, as +x + +y != 0 && -x + -y != 0\n\n\n    if (b) {\n      xc.unshift(b);\n      ++ye;\n    } // Remove trailing zeros.\n\n\n    for (a = xc.length; xc[--a] === 0;) xc.pop();\n\n    y.c = xc;\n    y.e = ye;\n    return y;\n  };\n  /*\r\n   * Return a Big whose value is the value of this Big raised to the power n.\r\n   * If n is negative, round to a maximum of Big.DP decimal places using rounding\r\n   * mode Big.RM.\r\n   *\r\n   * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.\r\n   */\n\n\n  P.pow = function (n) {\n    var x = this,\n        one = new x.constructor(1),\n        y = one,\n        isneg = n < 0;\n    if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) throw Error(INVALID + 'exponent');\n    if (isneg) n = -n;\n\n    for (;;) {\n      if (n & 1) y = y.times(x);\n      n >>= 1;\n      if (!n) break;\n      x = x.times(x);\n    }\n\n    return isneg ? one.div(y) : y;\n  };\n  /*\r\n   * Return a new Big whose value is the value of this Big rounded using rounding mode rm\r\n   * to a maximum of dp decimal places, or, if dp is negative, to an integer which is a\r\n   * multiple of 10**-dp.\r\n   * If dp is not specified, round to 0 decimal places.\r\n   * If rm is not specified, use Big.RM.\r\n   *\r\n   * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.\r\n   * rm? 0, 1, 2 or 3 (ROUND_DOWN, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_UP)\r\n   */\n\n\n  P.round = function (dp, rm) {\n    var Big = this.constructor;\n    if (dp === UNDEFINED) dp = 0;else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) throw Error(INVALID_DP);\n    return round(new Big(this), dp, rm === UNDEFINED ? Big.RM : rm);\n  };\n  /*\r\n   * Return a new Big whose value is the square root of the value of this Big, rounded, if\r\n   * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n   */\n\n\n  P.sqrt = function () {\n    var r,\n        c,\n        t,\n        x = this,\n        Big = x.constructor,\n        s = x.s,\n        e = x.e,\n        half = new Big(0.5); // Zero?\n\n    if (!x.c[0]) return new Big(x); // Negative?\n\n    if (s < 0) throw Error(NAME + 'No square root'); // Estimate.\n\n    s = Math.sqrt(x + ''); // Math.sqrt underflow/overflow?\n    // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.\n\n    if (s === 0 || s === 1 / 0) {\n      c = x.c.join('');\n      if (!(c.length + e & 1)) c += '0';\n      s = Math.sqrt(c);\n      e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);\n      r = new Big((s == 1 / 0 ? '1e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);\n    } else {\n      r = new Big(s);\n    }\n\n    e = r.e + (Big.DP += 4); // Newton-Raphson iteration.\n\n    do {\n      t = r;\n      r = half.times(t.plus(x.div(t)));\n    } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));\n\n    return round(r, Big.DP -= 4, Big.RM);\n  };\n  /*\r\n   * Return a new Big whose value is the value of this Big times the value of Big y.\r\n   */\n\n\n  P.times = P.mul = function (y) {\n    var c,\n        x = this,\n        Big = x.constructor,\n        xc = x.c,\n        yc = (y = new Big(y)).c,\n        a = xc.length,\n        b = yc.length,\n        i = x.e,\n        j = y.e; // Determine sign of result.\n\n    y.s = x.s == y.s ? 1 : -1; // Return signed 0 if either 0.\n\n    if (!xc[0] || !yc[0]) return new Big(y.s * 0); // Initialise exponent of result as x.e + y.e.\n\n    y.e = i + j; // If array xc has fewer digits than yc, swap xc and yc, and lengths.\n\n    if (a < b) {\n      c = xc;\n      xc = yc;\n      yc = c;\n      j = a;\n      a = b;\n      b = j;\n    } // Initialise coefficient array of result with zeros.\n\n\n    for (c = new Array(j = a + b); j--;) c[j] = 0; // Multiply.\n    // i is initially xc.length.\n\n\n    for (i = b; i--;) {\n      b = 0; // a is yc.length.\n\n      for (j = a + i; j > i;) {\n        // Current sum of products at this digit position, plus carry.\n        b = c[j] + yc[i] * xc[j - i - 1] + b;\n        c[j--] = b % 10; // carry\n\n        b = b / 10 | 0;\n      }\n\n      c[j] = (c[j] + b) % 10;\n    } // Increment result exponent if there is a final carry, otherwise remove leading zero.\n\n\n    if (b) ++y.e;else c.shift(); // Remove trailing zeros.\n\n    for (i = c.length; !c[--i];) c.pop();\n\n    y.c = c;\n    return y;\n  };\n  /*\r\n   * Return a string representing the value of this Big in exponential notation to dp fixed decimal\r\n   * places and rounded using Big.RM.\r\n   *\r\n   * dp? {number} Integer, 0 to MAX_DP inclusive.\r\n   */\n\n\n  P.toExponential = function (dp) {\n    return stringify(this, 1, dp, dp);\n  };\n  /*\r\n   * Return a string representing the value of this Big in normal notation to dp fixed decimal\r\n   * places and rounded using Big.RM.\r\n   *\r\n   * dp? {number} Integer, 0 to MAX_DP inclusive.\r\n   *\r\n   * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n   * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n   */\n\n\n  P.toFixed = function (dp) {\n    return stringify(this, 2, dp, this.e + dp);\n  };\n  /*\r\n   * Return a string representing the value of this Big rounded to sd significant digits using\r\n   * Big.RM. Use exponential notation if sd is less than the number of digits necessary to represent\r\n   * the integer part of the value in normal notation.\r\n   *\r\n   * sd {number} Integer, 1 to MAX_DP inclusive.\r\n   */\n\n\n  P.toPrecision = function (sd) {\n    return stringify(this, 3, sd, sd - 1);\n  };\n  /*\r\n   * Return a string representing the value of this Big.\r\n   * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n   * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n   * Omit the sign for negative zero.\r\n   */\n\n\n  P.toString = function () {\n    return stringify(this);\n  };\n  /*\r\n   * Return a string representing the value of this Big.\r\n   * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n   * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n   * Include the sign for negative zero.\r\n   */\n\n\n  P.valueOf = P.toJSON = function () {\n    return stringify(this, 4);\n  }; // Export\n\n\n  Big = _Big_();\n  Big['default'] = Big.Big = Big; //AMD.\n\n  if (true) {\n    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n      return Big;\n    }).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); // Node and other CommonJS-like environments that support module.exports.\n  } else {}\n})(this);\n\n//# sourceURL=webpack:///./node_modules/big.js/big.js?");

/***/ }),

/***/ "./node_modules/bn.js/lib/bn.js":
/*!**************************************!*\
  !*** ./node_modules/bn.js/lib/bn.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n  'use strict'; // Utils\n\n  function assert(val, msg) {\n    if (!val) throw new Error(msg || 'Assertion failed');\n  } // Could use `inherits` module, but don't want to move from single file\n  // architecture yet.\n\n\n  function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor;\n\n    var TempCtor = function () {};\n\n    TempCtor.prototype = superCtor.prototype;\n    ctor.prototype = new TempCtor();\n    ctor.prototype.constructor = ctor;\n  } // BN\n\n\n  function BN(number, base, endian) {\n    if (BN.isBN(number)) {\n      return number;\n    }\n\n    this.negative = 0;\n    this.words = null;\n    this.length = 0; // Reduction context\n\n    this.red = null;\n\n    if (number !== null) {\n      if (base === 'le' || base === 'be') {\n        endian = base;\n        base = 10;\n      }\n\n      this._init(number || 0, base || 10, endian || 'be');\n    }\n  }\n\n  if (typeof module === 'object') {\n    module.exports = BN;\n  } else {\n    exports.BN = BN;\n  }\n\n  BN.BN = BN;\n  BN.wordSize = 26;\n  var Buffer;\n\n  try {\n    if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n      Buffer = window.Buffer;\n    } else {\n      Buffer = __webpack_require__(/*! buffer */ 10).Buffer;\n    }\n  } catch (e) {}\n\n  BN.isBN = function isBN(num) {\n    if (num instanceof BN) {\n      return true;\n    }\n\n    return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n  };\n\n  BN.max = function max(left, right) {\n    if (left.cmp(right) > 0) return left;\n    return right;\n  };\n\n  BN.min = function min(left, right) {\n    if (left.cmp(right) < 0) return left;\n    return right;\n  };\n\n  BN.prototype._init = function init(number, base, endian) {\n    if (typeof number === 'number') {\n      return this._initNumber(number, base, endian);\n    }\n\n    if (typeof number === 'object') {\n      return this._initArray(number, base, endian);\n    }\n\n    if (base === 'hex') {\n      base = 16;\n    }\n\n    assert(base === (base | 0) && base >= 2 && base <= 36);\n    number = number.toString().replace(/\\s+/g, '');\n    var start = 0;\n\n    if (number[0] === '-') {\n      start++;\n      this.negative = 1;\n    }\n\n    if (start < number.length) {\n      if (base === 16) {\n        this._parseHex(number, start, endian);\n      } else {\n        this._parseBase(number, base, start);\n\n        if (endian === 'le') {\n          this._initArray(this.toArray(), base, endian);\n        }\n      }\n    }\n  };\n\n  BN.prototype._initNumber = function _initNumber(number, base, endian) {\n    if (number < 0) {\n      this.negative = 1;\n      number = -number;\n    }\n\n    if (number < 0x4000000) {\n      this.words = [number & 0x3ffffff];\n      this.length = 1;\n    } else if (number < 0x10000000000000) {\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n      this.length = 2;\n    } else {\n      assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n      this.length = 3;\n    }\n\n    if (endian !== 'le') return; // Reverse the bytes\n\n    this._initArray(this.toArray(), base, endian);\n  };\n\n  BN.prototype._initArray = function _initArray(number, base, endian) {\n    // Perhaps a Uint8Array\n    assert(typeof number.length === 'number');\n\n    if (number.length <= 0) {\n      this.words = [0];\n      this.length = 1;\n      return this;\n    }\n\n    this.length = Math.ceil(number.length / 3);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    }\n\n    var j, w;\n    var off = 0;\n\n    if (endian === 'be') {\n      for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n        w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    } else if (endian === 'le') {\n      for (i = 0, j = 0; i < number.length; i += 3) {\n        w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    }\n\n    return this._strip();\n  };\n\n  function parseHex4Bits(string, index) {\n    var c = string.charCodeAt(index); // '0' - '9'\n\n    if (c >= 48 && c <= 57) {\n      return c - 48; // 'A' - 'F'\n    } else if (c >= 65 && c <= 70) {\n      return c - 55; // 'a' - 'f'\n    } else if (c >= 97 && c <= 102) {\n      return c - 87;\n    } else {\n      assert(false, 'Invalid character in ' + string);\n    }\n  }\n\n  function parseHexByte(string, lowerBound, index) {\n    var r = parseHex4Bits(string, index);\n\n    if (index - 1 >= lowerBound) {\n      r |= parseHex4Bits(string, index - 1) << 4;\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseHex = function _parseHex(number, start, endian) {\n    // Create possibly bigger array to ensure that it fits the number\n    this.length = Math.ceil((number.length - start) / 6);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    } // 24-bits chunks\n\n\n    var off = 0;\n    var j = 0;\n    var w;\n\n    if (endian === 'be') {\n      for (i = number.length - 1; i >= start; i -= 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    } else {\n      var parseLength = number.length - start;\n\n      for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    }\n\n    this._strip();\n  };\n\n  function parseBase(str, start, end, mul) {\n    var r = 0;\n    var b = 0;\n    var len = Math.min(str.length, end);\n\n    for (var i = start; i < len; i++) {\n      var c = str.charCodeAt(i) - 48;\n      r *= mul; // 'a'\n\n      if (c >= 49) {\n        b = c - 49 + 0xa; // 'A'\n      } else if (c >= 17) {\n        b = c - 17 + 0xa; // '0' - '9'\n      } else {\n        b = c;\n      }\n\n      assert(c >= 0 && b < mul, 'Invalid character');\n      r += b;\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseBase = function _parseBase(number, base, start) {\n    // Initialize as zero\n    this.words = [0];\n    this.length = 1; // Find length of limb in base\n\n    for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n      limbLen++;\n    }\n\n    limbLen--;\n    limbPow = limbPow / base | 0;\n    var total = number.length - start;\n    var mod = total % limbLen;\n    var end = Math.min(total, total - mod) + start;\n    var word = 0;\n\n    for (var i = start; i < end; i += limbLen) {\n      word = parseBase(number, i, i + limbLen, base);\n      this.imuln(limbPow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    if (mod !== 0) {\n      var pow = 1;\n      word = parseBase(number, i, number.length, base);\n\n      for (i = 0; i < mod; i++) {\n        pow *= base;\n      }\n\n      this.imuln(pow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    this._strip();\n  };\n\n  BN.prototype.copy = function copy(dest) {\n    dest.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      dest.words[i] = this.words[i];\n    }\n\n    dest.length = this.length;\n    dest.negative = this.negative;\n    dest.red = this.red;\n  };\n\n  function move(dest, src) {\n    dest.words = src.words;\n    dest.length = src.length;\n    dest.negative = src.negative;\n    dest.red = src.red;\n  }\n\n  BN.prototype._move = function _move(dest) {\n    move(dest, this);\n  };\n\n  BN.prototype.clone = function clone() {\n    var r = new BN(null);\n    this.copy(r);\n    return r;\n  };\n\n  BN.prototype._expand = function _expand(size) {\n    while (this.length < size) {\n      this.words[this.length++] = 0;\n    }\n\n    return this;\n  }; // Remove leading `0` from `this`\n\n\n  BN.prototype._strip = function strip() {\n    while (this.length > 1 && this.words[this.length - 1] === 0) {\n      this.length--;\n    }\n\n    return this._normSign();\n  };\n\n  BN.prototype._normSign = function _normSign() {\n    // -0 = 0\n    if (this.length === 1 && this.words[0] === 0) {\n      this.negative = 0;\n    }\n\n    return this;\n  }; // Check Symbol.for because not everywhere where Symbol defined\n  // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n\n\n  if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n    try {\n      BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n    } catch (e) {\n      BN.prototype.inspect = inspect;\n    }\n  } else {\n    BN.prototype.inspect = inspect;\n  }\n\n  function inspect() {\n    return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  }\n  /*\n   var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n   var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n   */\n\n\n  var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n  var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n  var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n  BN.prototype.toString = function toString(base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n    var out;\n\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = ((w << off | carry) & 0xffffff).toString(16);\n        carry = w >>> 24 - off & 0xffffff;\n        off += 2;\n\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n      }\n\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n\n      while (!c.isZero()) {\n        var r = c.modrn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber() {\n    var ret = this.words[0];\n\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + this.words[1] * 0x4000000;\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n\n    return this.negative !== 0 ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON() {\n    return this.toString(16, 2);\n  };\n\n  if (Buffer) {\n    BN.prototype.toBuffer = function toBuffer(endian, length) {\n      return this.toArrayLike(Buffer, endian, length);\n    };\n  }\n\n  BN.prototype.toArray = function toArray(endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  var allocate = function allocate(ArrayType, size) {\n    if (ArrayType.allocUnsafe) {\n      return ArrayType.allocUnsafe(size);\n    }\n\n    return new ArrayType(size);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n    this._strip();\n\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n    var res = allocate(ArrayType, reqLength);\n    var postfix = endian === 'le' ? 'LE' : 'BE';\n    this['_toArrayLike' + postfix](res, byteLength);\n    return res;\n  };\n\n  BN.prototype._toArrayLikeLE = function _toArrayLikeLE(res, byteLength) {\n    var position = 0;\n    var carry = 0;\n\n    for (var i = 0, shift = 0; i < this.length; i++) {\n      var word = this.words[i] << shift | carry;\n      res[position++] = word & 0xff;\n\n      if (position < res.length) {\n        res[position++] = word >> 8 & 0xff;\n      }\n\n      if (position < res.length) {\n        res[position++] = word >> 16 & 0xff;\n      }\n\n      if (shift === 6) {\n        if (position < res.length) {\n          res[position++] = word >> 24 & 0xff;\n        }\n\n        carry = 0;\n        shift = 0;\n      } else {\n        carry = word >>> 24;\n        shift += 2;\n      }\n    }\n\n    if (position < res.length) {\n      res[position++] = carry;\n\n      while (position < res.length) {\n        res[position++] = 0;\n      }\n    }\n  };\n\n  BN.prototype._toArrayLikeBE = function _toArrayLikeBE(res, byteLength) {\n    var position = res.length - 1;\n    var carry = 0;\n\n    for (var i = 0, shift = 0; i < this.length; i++) {\n      var word = this.words[i] << shift | carry;\n      res[position--] = word & 0xff;\n\n      if (position >= 0) {\n        res[position--] = word >> 8 & 0xff;\n      }\n\n      if (position >= 0) {\n        res[position--] = word >> 16 & 0xff;\n      }\n\n      if (shift === 6) {\n        if (position >= 0) {\n          res[position--] = word >> 24 & 0xff;\n        }\n\n        carry = 0;\n        shift = 0;\n      } else {\n        carry = word >>> 24;\n        shift += 2;\n      }\n    }\n\n    if (position >= 0) {\n      res[position--] = carry;\n\n      while (position >= 0) {\n        res[position--] = 0;\n      }\n    }\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits(w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits(w) {\n      var t = w;\n      var r = 0;\n\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits(w) {\n    // Short-cut\n    if (w === 0) return 26;\n    var t = w;\n    var r = 0;\n\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n\n    return r;\n  }; // Return number of used bits in a BN\n\n\n  BN.prototype.bitLength = function bitLength() {\n    var w = this.words[this.length - 1];\n\n    var hi = this._countBits(w);\n\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray(num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = bit / 26 | 0;\n      var wbit = bit % 26;\n      w[bit] = num.words[off] >>> wbit & 0x01;\n    }\n\n    return w;\n  } // Number of trailing zero bits\n\n\n  BN.prototype.zeroBits = function zeroBits() {\n    if (this.isZero()) return 0;\n    var r = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n\n      r += b;\n      if (b !== 26) break;\n    }\n\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength() {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos(width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos(width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg() {\n    return this.negative !== 0;\n  }; // Return negative clone of `this`\n\n\n  BN.prototype.neg = function neg() {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg() {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  }; // Or `num` with `this` in-place\n\n\n  BN.prototype.iuor = function iuor(num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this._strip();\n  };\n\n  BN.prototype.ior = function ior(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  }; // Or `num` with `this`\n\n\n  BN.prototype.or = function or(num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor(num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  }; // And `num` with `this` in-place\n\n\n  BN.prototype.iuand = function iuand(num) {\n    // b = min-length(num, this)\n    var b;\n\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n    return this._strip();\n  };\n\n  BN.prototype.iand = function iand(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  }; // And `num` with `this`\n\n\n  BN.prototype.and = function and(num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand(num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  }; // Xor `num` with `this` in-place\n\n\n  BN.prototype.iuxor = function iuxor(num) {\n    // a.length > b.length\n    var a;\n    var b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n    return this._strip();\n  };\n\n  BN.prototype.ixor = function ixor(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  }; // Xor `num` with `this`\n\n\n  BN.prototype.xor = function xor(num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor(num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  }; // Not ``this`` with ``width`` bitwidth\n\n\n  BN.prototype.inotn = function inotn(width) {\n    assert(typeof width === 'number' && width >= 0);\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    } // Handle complete words\n\n\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    } // Handle the residue\n\n\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n    } // And remove leading zeroes\n\n\n    return this._strip();\n  };\n\n  BN.prototype.notn = function notn(width) {\n    return this.clone().inotn(width);\n  }; // Set `bit` of `this`\n\n\n  BN.prototype.setn = function setn(bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var off = bit / 26 | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | 1 << wbit;\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this._strip();\n  }; // Add `num` to `this` in-place\n\n\n  BN.prototype.iadd = function iadd(num) {\n    var r; // negative + positive\n\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign(); // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    } // a.length > b.length\n\n\n    var a, b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++; // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  }; // Add `num` to `this`\n\n\n  BN.prototype.add = function add(num) {\n    var res;\n\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n    return num.clone().iadd(this);\n  }; // Subtract `num` from `this` in-place\n\n\n  BN.prototype.isub = function isub(num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign(); // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    } // At this point both numbers are positive\n\n\n    var cmp = this.cmp(num); // Optimization - zeroify\n\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    } // a > b\n\n\n    var a, b;\n\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    } // Copy rest of the words\n\n\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this._strip();\n  }; // Subtract `num` from `this`\n\n\n  BN.prototype.sub = function sub(num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = self.length + num.length | 0;\n    out.length = len;\n    len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n    var lo = r & 0x3ffffff;\n    var carry = r / 0x4000000 | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += r / 0x4000000 | 0;\n        rword = r & 0x3ffffff;\n      }\n\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out._strip();\n  } // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n\n\n  var comb10MulTo = function comb10MulTo(self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = mid + Math.imul(ah0, bl0) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = mid + Math.imul(ah1, bl0) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = lo + Math.imul(al0, bl1) | 0;\n    mid = mid + Math.imul(al0, bh1) | 0;\n    mid = mid + Math.imul(ah0, bl1) | 0;\n    hi = hi + Math.imul(ah0, bh1) | 0;\n    var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = mid + Math.imul(ah2, bl0) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = lo + Math.imul(al1, bl1) | 0;\n    mid = mid + Math.imul(al1, bh1) | 0;\n    mid = mid + Math.imul(ah1, bl1) | 0;\n    hi = hi + Math.imul(ah1, bh1) | 0;\n    lo = lo + Math.imul(al0, bl2) | 0;\n    mid = mid + Math.imul(al0, bh2) | 0;\n    mid = mid + Math.imul(ah0, bl2) | 0;\n    hi = hi + Math.imul(ah0, bh2) | 0;\n    var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = mid + Math.imul(ah3, bl0) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = lo + Math.imul(al2, bl1) | 0;\n    mid = mid + Math.imul(al2, bh1) | 0;\n    mid = mid + Math.imul(ah2, bl1) | 0;\n    hi = hi + Math.imul(ah2, bh1) | 0;\n    lo = lo + Math.imul(al1, bl2) | 0;\n    mid = mid + Math.imul(al1, bh2) | 0;\n    mid = mid + Math.imul(ah1, bl2) | 0;\n    hi = hi + Math.imul(ah1, bh2) | 0;\n    lo = lo + Math.imul(al0, bl3) | 0;\n    mid = mid + Math.imul(al0, bh3) | 0;\n    mid = mid + Math.imul(ah0, bl3) | 0;\n    hi = hi + Math.imul(ah0, bh3) | 0;\n    var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = mid + Math.imul(ah4, bl0) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = lo + Math.imul(al3, bl1) | 0;\n    mid = mid + Math.imul(al3, bh1) | 0;\n    mid = mid + Math.imul(ah3, bl1) | 0;\n    hi = hi + Math.imul(ah3, bh1) | 0;\n    lo = lo + Math.imul(al2, bl2) | 0;\n    mid = mid + Math.imul(al2, bh2) | 0;\n    mid = mid + Math.imul(ah2, bl2) | 0;\n    hi = hi + Math.imul(ah2, bh2) | 0;\n    lo = lo + Math.imul(al1, bl3) | 0;\n    mid = mid + Math.imul(al1, bh3) | 0;\n    mid = mid + Math.imul(ah1, bl3) | 0;\n    hi = hi + Math.imul(ah1, bh3) | 0;\n    lo = lo + Math.imul(al0, bl4) | 0;\n    mid = mid + Math.imul(al0, bh4) | 0;\n    mid = mid + Math.imul(ah0, bl4) | 0;\n    hi = hi + Math.imul(ah0, bh4) | 0;\n    var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = mid + Math.imul(ah5, bl0) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = lo + Math.imul(al4, bl1) | 0;\n    mid = mid + Math.imul(al4, bh1) | 0;\n    mid = mid + Math.imul(ah4, bl1) | 0;\n    hi = hi + Math.imul(ah4, bh1) | 0;\n    lo = lo + Math.imul(al3, bl2) | 0;\n    mid = mid + Math.imul(al3, bh2) | 0;\n    mid = mid + Math.imul(ah3, bl2) | 0;\n    hi = hi + Math.imul(ah3, bh2) | 0;\n    lo = lo + Math.imul(al2, bl3) | 0;\n    mid = mid + Math.imul(al2, bh3) | 0;\n    mid = mid + Math.imul(ah2, bl3) | 0;\n    hi = hi + Math.imul(ah2, bh3) | 0;\n    lo = lo + Math.imul(al1, bl4) | 0;\n    mid = mid + Math.imul(al1, bh4) | 0;\n    mid = mid + Math.imul(ah1, bl4) | 0;\n    hi = hi + Math.imul(ah1, bh4) | 0;\n    lo = lo + Math.imul(al0, bl5) | 0;\n    mid = mid + Math.imul(al0, bh5) | 0;\n    mid = mid + Math.imul(ah0, bl5) | 0;\n    hi = hi + Math.imul(ah0, bh5) | 0;\n    var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = mid + Math.imul(ah6, bl0) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = lo + Math.imul(al5, bl1) | 0;\n    mid = mid + Math.imul(al5, bh1) | 0;\n    mid = mid + Math.imul(ah5, bl1) | 0;\n    hi = hi + Math.imul(ah5, bh1) | 0;\n    lo = lo + Math.imul(al4, bl2) | 0;\n    mid = mid + Math.imul(al4, bh2) | 0;\n    mid = mid + Math.imul(ah4, bl2) | 0;\n    hi = hi + Math.imul(ah4, bh2) | 0;\n    lo = lo + Math.imul(al3, bl3) | 0;\n    mid = mid + Math.imul(al3, bh3) | 0;\n    mid = mid + Math.imul(ah3, bl3) | 0;\n    hi = hi + Math.imul(ah3, bh3) | 0;\n    lo = lo + Math.imul(al2, bl4) | 0;\n    mid = mid + Math.imul(al2, bh4) | 0;\n    mid = mid + Math.imul(ah2, bl4) | 0;\n    hi = hi + Math.imul(ah2, bh4) | 0;\n    lo = lo + Math.imul(al1, bl5) | 0;\n    mid = mid + Math.imul(al1, bh5) | 0;\n    mid = mid + Math.imul(ah1, bl5) | 0;\n    hi = hi + Math.imul(ah1, bh5) | 0;\n    lo = lo + Math.imul(al0, bl6) | 0;\n    mid = mid + Math.imul(al0, bh6) | 0;\n    mid = mid + Math.imul(ah0, bl6) | 0;\n    hi = hi + Math.imul(ah0, bh6) | 0;\n    var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = mid + Math.imul(ah7, bl0) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = lo + Math.imul(al6, bl1) | 0;\n    mid = mid + Math.imul(al6, bh1) | 0;\n    mid = mid + Math.imul(ah6, bl1) | 0;\n    hi = hi + Math.imul(ah6, bh1) | 0;\n    lo = lo + Math.imul(al5, bl2) | 0;\n    mid = mid + Math.imul(al5, bh2) | 0;\n    mid = mid + Math.imul(ah5, bl2) | 0;\n    hi = hi + Math.imul(ah5, bh2) | 0;\n    lo = lo + Math.imul(al4, bl3) | 0;\n    mid = mid + Math.imul(al4, bh3) | 0;\n    mid = mid + Math.imul(ah4, bl3) | 0;\n    hi = hi + Math.imul(ah4, bh3) | 0;\n    lo = lo + Math.imul(al3, bl4) | 0;\n    mid = mid + Math.imul(al3, bh4) | 0;\n    mid = mid + Math.imul(ah3, bl4) | 0;\n    hi = hi + Math.imul(ah3, bh4) | 0;\n    lo = lo + Math.imul(al2, bl5) | 0;\n    mid = mid + Math.imul(al2, bh5) | 0;\n    mid = mid + Math.imul(ah2, bl5) | 0;\n    hi = hi + Math.imul(ah2, bh5) | 0;\n    lo = lo + Math.imul(al1, bl6) | 0;\n    mid = mid + Math.imul(al1, bh6) | 0;\n    mid = mid + Math.imul(ah1, bl6) | 0;\n    hi = hi + Math.imul(ah1, bh6) | 0;\n    lo = lo + Math.imul(al0, bl7) | 0;\n    mid = mid + Math.imul(al0, bh7) | 0;\n    mid = mid + Math.imul(ah0, bl7) | 0;\n    hi = hi + Math.imul(ah0, bh7) | 0;\n    var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = mid + Math.imul(ah8, bl0) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = lo + Math.imul(al7, bl1) | 0;\n    mid = mid + Math.imul(al7, bh1) | 0;\n    mid = mid + Math.imul(ah7, bl1) | 0;\n    hi = hi + Math.imul(ah7, bh1) | 0;\n    lo = lo + Math.imul(al6, bl2) | 0;\n    mid = mid + Math.imul(al6, bh2) | 0;\n    mid = mid + Math.imul(ah6, bl2) | 0;\n    hi = hi + Math.imul(ah6, bh2) | 0;\n    lo = lo + Math.imul(al5, bl3) | 0;\n    mid = mid + Math.imul(al5, bh3) | 0;\n    mid = mid + Math.imul(ah5, bl3) | 0;\n    hi = hi + Math.imul(ah5, bh3) | 0;\n    lo = lo + Math.imul(al4, bl4) | 0;\n    mid = mid + Math.imul(al4, bh4) | 0;\n    mid = mid + Math.imul(ah4, bl4) | 0;\n    hi = hi + Math.imul(ah4, bh4) | 0;\n    lo = lo + Math.imul(al3, bl5) | 0;\n    mid = mid + Math.imul(al3, bh5) | 0;\n    mid = mid + Math.imul(ah3, bl5) | 0;\n    hi = hi + Math.imul(ah3, bh5) | 0;\n    lo = lo + Math.imul(al2, bl6) | 0;\n    mid = mid + Math.imul(al2, bh6) | 0;\n    mid = mid + Math.imul(ah2, bl6) | 0;\n    hi = hi + Math.imul(ah2, bh6) | 0;\n    lo = lo + Math.imul(al1, bl7) | 0;\n    mid = mid + Math.imul(al1, bh7) | 0;\n    mid = mid + Math.imul(ah1, bl7) | 0;\n    hi = hi + Math.imul(ah1, bh7) | 0;\n    lo = lo + Math.imul(al0, bl8) | 0;\n    mid = mid + Math.imul(al0, bh8) | 0;\n    mid = mid + Math.imul(ah0, bl8) | 0;\n    hi = hi + Math.imul(ah0, bh8) | 0;\n    var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = mid + Math.imul(ah9, bl0) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = lo + Math.imul(al8, bl1) | 0;\n    mid = mid + Math.imul(al8, bh1) | 0;\n    mid = mid + Math.imul(ah8, bl1) | 0;\n    hi = hi + Math.imul(ah8, bh1) | 0;\n    lo = lo + Math.imul(al7, bl2) | 0;\n    mid = mid + Math.imul(al7, bh2) | 0;\n    mid = mid + Math.imul(ah7, bl2) | 0;\n    hi = hi + Math.imul(ah7, bh2) | 0;\n    lo = lo + Math.imul(al6, bl3) | 0;\n    mid = mid + Math.imul(al6, bh3) | 0;\n    mid = mid + Math.imul(ah6, bl3) | 0;\n    hi = hi + Math.imul(ah6, bh3) | 0;\n    lo = lo + Math.imul(al5, bl4) | 0;\n    mid = mid + Math.imul(al5, bh4) | 0;\n    mid = mid + Math.imul(ah5, bl4) | 0;\n    hi = hi + Math.imul(ah5, bh4) | 0;\n    lo = lo + Math.imul(al4, bl5) | 0;\n    mid = mid + Math.imul(al4, bh5) | 0;\n    mid = mid + Math.imul(ah4, bl5) | 0;\n    hi = hi + Math.imul(ah4, bh5) | 0;\n    lo = lo + Math.imul(al3, bl6) | 0;\n    mid = mid + Math.imul(al3, bh6) | 0;\n    mid = mid + Math.imul(ah3, bl6) | 0;\n    hi = hi + Math.imul(ah3, bh6) | 0;\n    lo = lo + Math.imul(al2, bl7) | 0;\n    mid = mid + Math.imul(al2, bh7) | 0;\n    mid = mid + Math.imul(ah2, bl7) | 0;\n    hi = hi + Math.imul(ah2, bh7) | 0;\n    lo = lo + Math.imul(al1, bl8) | 0;\n    mid = mid + Math.imul(al1, bh8) | 0;\n    mid = mid + Math.imul(ah1, bl8) | 0;\n    hi = hi + Math.imul(ah1, bh8) | 0;\n    lo = lo + Math.imul(al0, bl9) | 0;\n    mid = mid + Math.imul(al0, bh9) | 0;\n    mid = mid + Math.imul(ah0, bl9) | 0;\n    hi = hi + Math.imul(ah0, bh9) | 0;\n    var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = mid + Math.imul(ah9, bl1) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = lo + Math.imul(al8, bl2) | 0;\n    mid = mid + Math.imul(al8, bh2) | 0;\n    mid = mid + Math.imul(ah8, bl2) | 0;\n    hi = hi + Math.imul(ah8, bh2) | 0;\n    lo = lo + Math.imul(al7, bl3) | 0;\n    mid = mid + Math.imul(al7, bh3) | 0;\n    mid = mid + Math.imul(ah7, bl3) | 0;\n    hi = hi + Math.imul(ah7, bh3) | 0;\n    lo = lo + Math.imul(al6, bl4) | 0;\n    mid = mid + Math.imul(al6, bh4) | 0;\n    mid = mid + Math.imul(ah6, bl4) | 0;\n    hi = hi + Math.imul(ah6, bh4) | 0;\n    lo = lo + Math.imul(al5, bl5) | 0;\n    mid = mid + Math.imul(al5, bh5) | 0;\n    mid = mid + Math.imul(ah5, bl5) | 0;\n    hi = hi + Math.imul(ah5, bh5) | 0;\n    lo = lo + Math.imul(al4, bl6) | 0;\n    mid = mid + Math.imul(al4, bh6) | 0;\n    mid = mid + Math.imul(ah4, bl6) | 0;\n    hi = hi + Math.imul(ah4, bh6) | 0;\n    lo = lo + Math.imul(al3, bl7) | 0;\n    mid = mid + Math.imul(al3, bh7) | 0;\n    mid = mid + Math.imul(ah3, bl7) | 0;\n    hi = hi + Math.imul(ah3, bh7) | 0;\n    lo = lo + Math.imul(al2, bl8) | 0;\n    mid = mid + Math.imul(al2, bh8) | 0;\n    mid = mid + Math.imul(ah2, bl8) | 0;\n    hi = hi + Math.imul(ah2, bh8) | 0;\n    lo = lo + Math.imul(al1, bl9) | 0;\n    mid = mid + Math.imul(al1, bh9) | 0;\n    mid = mid + Math.imul(ah1, bl9) | 0;\n    hi = hi + Math.imul(ah1, bh9) | 0;\n    var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = mid + Math.imul(ah9, bl2) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = lo + Math.imul(al8, bl3) | 0;\n    mid = mid + Math.imul(al8, bh3) | 0;\n    mid = mid + Math.imul(ah8, bl3) | 0;\n    hi = hi + Math.imul(ah8, bh3) | 0;\n    lo = lo + Math.imul(al7, bl4) | 0;\n    mid = mid + Math.imul(al7, bh4) | 0;\n    mid = mid + Math.imul(ah7, bl4) | 0;\n    hi = hi + Math.imul(ah7, bh4) | 0;\n    lo = lo + Math.imul(al6, bl5) | 0;\n    mid = mid + Math.imul(al6, bh5) | 0;\n    mid = mid + Math.imul(ah6, bl5) | 0;\n    hi = hi + Math.imul(ah6, bh5) | 0;\n    lo = lo + Math.imul(al5, bl6) | 0;\n    mid = mid + Math.imul(al5, bh6) | 0;\n    mid = mid + Math.imul(ah5, bl6) | 0;\n    hi = hi + Math.imul(ah5, bh6) | 0;\n    lo = lo + Math.imul(al4, bl7) | 0;\n    mid = mid + Math.imul(al4, bh7) | 0;\n    mid = mid + Math.imul(ah4, bl7) | 0;\n    hi = hi + Math.imul(ah4, bh7) | 0;\n    lo = lo + Math.imul(al3, bl8) | 0;\n    mid = mid + Math.imul(al3, bh8) | 0;\n    mid = mid + Math.imul(ah3, bl8) | 0;\n    hi = hi + Math.imul(ah3, bh8) | 0;\n    lo = lo + Math.imul(al2, bl9) | 0;\n    mid = mid + Math.imul(al2, bh9) | 0;\n    mid = mid + Math.imul(ah2, bl9) | 0;\n    hi = hi + Math.imul(ah2, bh9) | 0;\n    var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = mid + Math.imul(ah9, bl3) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = lo + Math.imul(al8, bl4) | 0;\n    mid = mid + Math.imul(al8, bh4) | 0;\n    mid = mid + Math.imul(ah8, bl4) | 0;\n    hi = hi + Math.imul(ah8, bh4) | 0;\n    lo = lo + Math.imul(al7, bl5) | 0;\n    mid = mid + Math.imul(al7, bh5) | 0;\n    mid = mid + Math.imul(ah7, bl5) | 0;\n    hi = hi + Math.imul(ah7, bh5) | 0;\n    lo = lo + Math.imul(al6, bl6) | 0;\n    mid = mid + Math.imul(al6, bh6) | 0;\n    mid = mid + Math.imul(ah6, bl6) | 0;\n    hi = hi + Math.imul(ah6, bh6) | 0;\n    lo = lo + Math.imul(al5, bl7) | 0;\n    mid = mid + Math.imul(al5, bh7) | 0;\n    mid = mid + Math.imul(ah5, bl7) | 0;\n    hi = hi + Math.imul(ah5, bh7) | 0;\n    lo = lo + Math.imul(al4, bl8) | 0;\n    mid = mid + Math.imul(al4, bh8) | 0;\n    mid = mid + Math.imul(ah4, bl8) | 0;\n    hi = hi + Math.imul(ah4, bh8) | 0;\n    lo = lo + Math.imul(al3, bl9) | 0;\n    mid = mid + Math.imul(al3, bh9) | 0;\n    mid = mid + Math.imul(ah3, bl9) | 0;\n    hi = hi + Math.imul(ah3, bh9) | 0;\n    var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = mid + Math.imul(ah9, bl4) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = lo + Math.imul(al8, bl5) | 0;\n    mid = mid + Math.imul(al8, bh5) | 0;\n    mid = mid + Math.imul(ah8, bl5) | 0;\n    hi = hi + Math.imul(ah8, bh5) | 0;\n    lo = lo + Math.imul(al7, bl6) | 0;\n    mid = mid + Math.imul(al7, bh6) | 0;\n    mid = mid + Math.imul(ah7, bl6) | 0;\n    hi = hi + Math.imul(ah7, bh6) | 0;\n    lo = lo + Math.imul(al6, bl7) | 0;\n    mid = mid + Math.imul(al6, bh7) | 0;\n    mid = mid + Math.imul(ah6, bl7) | 0;\n    hi = hi + Math.imul(ah6, bh7) | 0;\n    lo = lo + Math.imul(al5, bl8) | 0;\n    mid = mid + Math.imul(al5, bh8) | 0;\n    mid = mid + Math.imul(ah5, bl8) | 0;\n    hi = hi + Math.imul(ah5, bh8) | 0;\n    lo = lo + Math.imul(al4, bl9) | 0;\n    mid = mid + Math.imul(al4, bh9) | 0;\n    mid = mid + Math.imul(ah4, bl9) | 0;\n    hi = hi + Math.imul(ah4, bh9) | 0;\n    var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = mid + Math.imul(ah9, bl5) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = lo + Math.imul(al8, bl6) | 0;\n    mid = mid + Math.imul(al8, bh6) | 0;\n    mid = mid + Math.imul(ah8, bl6) | 0;\n    hi = hi + Math.imul(ah8, bh6) | 0;\n    lo = lo + Math.imul(al7, bl7) | 0;\n    mid = mid + Math.imul(al7, bh7) | 0;\n    mid = mid + Math.imul(ah7, bl7) | 0;\n    hi = hi + Math.imul(ah7, bh7) | 0;\n    lo = lo + Math.imul(al6, bl8) | 0;\n    mid = mid + Math.imul(al6, bh8) | 0;\n    mid = mid + Math.imul(ah6, bl8) | 0;\n    hi = hi + Math.imul(ah6, bh8) | 0;\n    lo = lo + Math.imul(al5, bl9) | 0;\n    mid = mid + Math.imul(al5, bh9) | 0;\n    mid = mid + Math.imul(ah5, bl9) | 0;\n    hi = hi + Math.imul(ah5, bh9) | 0;\n    var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = mid + Math.imul(ah9, bl6) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = lo + Math.imul(al8, bl7) | 0;\n    mid = mid + Math.imul(al8, bh7) | 0;\n    mid = mid + Math.imul(ah8, bl7) | 0;\n    hi = hi + Math.imul(ah8, bh7) | 0;\n    lo = lo + Math.imul(al7, bl8) | 0;\n    mid = mid + Math.imul(al7, bh8) | 0;\n    mid = mid + Math.imul(ah7, bl8) | 0;\n    hi = hi + Math.imul(ah7, bh8) | 0;\n    lo = lo + Math.imul(al6, bl9) | 0;\n    mid = mid + Math.imul(al6, bh9) | 0;\n    mid = mid + Math.imul(ah6, bl9) | 0;\n    hi = hi + Math.imul(ah6, bh9) | 0;\n    var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = mid + Math.imul(ah9, bl7) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = lo + Math.imul(al8, bl8) | 0;\n    mid = mid + Math.imul(al8, bh8) | 0;\n    mid = mid + Math.imul(ah8, bl8) | 0;\n    hi = hi + Math.imul(ah8, bh8) | 0;\n    lo = lo + Math.imul(al7, bl9) | 0;\n    mid = mid + Math.imul(al7, bh9) | 0;\n    mid = mid + Math.imul(ah7, bl9) | 0;\n    hi = hi + Math.imul(ah7, bh9) | 0;\n    var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = mid + Math.imul(ah9, bl8) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = lo + Math.imul(al8, bl9) | 0;\n    mid = mid + Math.imul(al8, bh9) | 0;\n    mid = mid + Math.imul(ah8, bl9) | 0;\n    hi = hi + Math.imul(ah8, bh9) | 0;\n    var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = mid + Math.imul(ah9, bl9) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n\n    return out;\n  }; // Polyfill comb\n\n\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n    var carry = 0;\n    var hncarry = 0;\n\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n        var lo = r & 0x3ffffff;\n        ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n        lo = lo + rword | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = ncarry + (lo >>> 26) | 0;\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out._strip();\n  }\n\n  function jumboMulTo(self, num, out) {\n    // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n    // var fftm = new FFTM();\n    // return fftm.mulp(self, num, out);\n    return bigMulTo(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo(num, out) {\n    var res;\n    var len = this.length + num.length;\n\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  }; // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n\n  function FFTM(x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT(N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  }; // Returns binary-reversed representation of `x`\n\n\n  FFTM.prototype.revBin = function revBin(x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n    var rb = 0;\n\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << l - i - 1;\n      x >>= 1;\n    }\n\n    return rb;\n  }; // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n\n\n  FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n          var rx = rtwdf_ * ro - itwdf_ * io;\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n          /* jshint maxdepth : false */\n\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n      t = iws[i];\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n      rws[2 * i] = carry & 0x1fff;\n      carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff;\n      carry = carry >>> 13;\n    } // Pad with zeroes\n\n\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub(N) {\n    var ph = new Array(N);\n\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp(x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n    var rmws = out.words;\n    rmws.length = N;\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out._strip();\n  }; // Multiply `this` by `num`\n\n\n  BN.prototype.mul = function mul(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  }; // Multiply employing FFT\n\n\n  BN.prototype.mulf = function mulf(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  }; // In-place Multiplication\n\n\n  BN.prototype.imul = function imul(num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln(num) {\n    var isNegNum = num < 0;\n    if (isNegNum) num = -num;\n    assert(typeof num === 'number');\n    assert(num < 0x4000000); // Carry\n\n    var carry = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return isNegNum ? this.ineg() : this;\n  };\n\n  BN.prototype.muln = function muln(num) {\n    return this.clone().imuln(num);\n  }; // `this` * `this`\n\n\n  BN.prototype.sqr = function sqr() {\n    return this.mul(this);\n  }; // `this` * `this` in-place\n\n\n  BN.prototype.isqr = function isqr() {\n    return this.imul(this.clone());\n  }; // Math.pow(`this`, `num`)\n\n\n  BN.prototype.pow = function pow(num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n    var res = this;\n\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  }; // Shift-left in-place\n\n\n  BN.prototype.iushln = function iushln(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = (this.words[i] | 0) - newCarry << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> 26 - r;\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this._strip();\n  };\n\n  BN.prototype.ishln = function ishln(bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  }; // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n  BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n\n    if (hint) {\n      h = (hint - hint % 26) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n    var maskedWords = extended;\n    h -= s;\n    h = Math.max(0, h); // Extended mode, copy masked part\n\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {// No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = carry << 26 - r | word >>> r;\n      carry = word & mask;\n    } // Push carried bits as a mask\n\n\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this._strip();\n  };\n\n  BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  }; // Shift-left\n\n\n  BN.prototype.shln = function shln(bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln(bits) {\n    return this.clone().iushln(bits);\n  }; // Shift-right\n\n\n  BN.prototype.shrn = function shrn(bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn(bits) {\n    return this.clone().iushrn(bits);\n  }; // Test if n bit is set\n\n\n  BN.prototype.testn = function testn(bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) return false; // Check bit and return\n\n    var w = this.words[s];\n    return !!(w & q);\n  }; // Return only lowers bits of number (in-place)\n\n\n  BN.prototype.imaskn = function imaskn(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this._strip();\n  }; // Return only lowers bits of number\n\n\n  BN.prototype.maskn = function maskn(bits) {\n    return this.clone().imaskn(bits);\n  }; // Add plain number `num` to `this`\n\n\n  BN.prototype.iaddn = function iaddn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num); // Possible sign change\n\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) <= num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    } // Add without checks\n\n\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn(num) {\n    this.words[0] += num; // Carry\n\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n\n    this.length = Math.max(this.length, i + 1);\n    return this;\n  }; // Subtract plain number `num` from `this`\n\n\n  BN.prototype.isubn = function isubn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this._strip();\n  };\n\n  BN.prototype.addn = function addn(num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn(num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs() {\n    this.negative = 0;\n    return this;\n  };\n\n  BN.prototype.abs = function abs() {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - (right / 0x4000000 | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this._strip(); // Subtraction overflow\n\n    assert(carry === -1);\n    carry = 0;\n\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n\n    this.negative = 1;\n    return this._strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv(num, mode) {\n    var shift = this.length - num.length;\n    var a = this.clone();\n    var b = num; // Normalize\n\n    var bhi = b.words[b.length - 1] | 0;\n\n    var bhiBits = this._countBits(bhi);\n\n    shift = 26 - bhiBits;\n\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    } // Initialize quotient\n\n\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n    if (diff.negative === 0) {\n      a = diff;\n\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n\n      qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n\n        a._ishlnsubmul(b, 1, j);\n\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n\n    if (q) {\n      q._strip();\n    }\n\n    a._strip(); // Denormalize\n\n\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n\n\n  BN.prototype.divmod = function divmod(num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    } // Both numbers are positive at this point\n    // Strip both numbers to approximate shift value\n\n\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    } // Very short reduction\n\n\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modrn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modrn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  }; // Find `this` / `num`\n\n\n  BN.prototype.div = function div(num) {\n    return this.divmod(num, 'div', false).div;\n  }; // Find `this` % `num`\n\n\n  BN.prototype.mod = function mod(num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod(num) {\n    return this.divmod(num, 'mod', true).mod;\n  }; // Find Round(`this` / `num`)\n\n\n  BN.prototype.divRound = function divRound(num) {\n    var dm = this.divmod(num); // Fast case - exact division\n\n    if (dm.mod.isZero()) return dm.div;\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half); // Round down\n\n    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modrn = function modrn(num) {\n    var isNegNum = num < 0;\n    if (isNegNum) num = -num;\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n    var acc = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return isNegNum ? -acc : acc;\n  }; // WARNING: DEPRECATED\n\n\n  BN.prototype.modn = function modn(num) {\n    return this.modrn(num);\n  }; // In-place division by number\n\n\n  BN.prototype.idivn = function idivn(num) {\n    var isNegNum = num < 0;\n    if (isNegNum) num = -num;\n    assert(num <= 0x3ffffff);\n    var carry = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = w / num | 0;\n      carry = w % num;\n    }\n\n    this._strip();\n\n    return isNegNum ? this.ineg() : this;\n  };\n\n  BN.prototype.divn = function divn(num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    } // A * x + B * y = x\n\n\n    var A = new BN(1);\n    var B = new BN(0); // C * x + D * y = y\n\n    var C = new BN(0);\n    var D = new BN(1);\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        x.iushrn(i);\n\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        y.iushrn(j);\n\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  }; // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n\n\n  BN.prototype._invmp = function _invmp(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        a.iushrn(i);\n\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        b.iushrn(j);\n\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd(num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0; // Remove common factor of two\n\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  }; // Invert number in the field F(num)\n\n\n  BN.prototype.invm = function invm(num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven() {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd() {\n    return (this.words[0] & 1) === 1;\n  }; // And first word and num\n\n\n  BN.prototype.andln = function andln(num) {\n    return this.words[0] & num;\n  }; // Increment at the bit position in-line\n\n\n  BN.prototype.bincn = function bincn(bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) {\n      this._expand(s + 1);\n\n      this.words[s] |= q;\n      return this;\n    } // Add bit and propagate, if needed\n\n\n    var carry = q;\n\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero() {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn(num) {\n    var negative = num < 0;\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n\n    this._strip();\n\n    var res;\n\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n\n\n  BN.prototype.cmp = function cmp(num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Unsigned comparison\n\n\n  BN.prototype.ucmp = function ucmp(num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n    var res = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n      if (a === b) continue;\n\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n\n      break;\n    }\n\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn(num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt(num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten(num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte(num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn(num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt(num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten(num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte(num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn(num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq(num) {\n    return this.cmp(num) === 0;\n  }; //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n\n\n  BN.red = function red(num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed() {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed(ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd(num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd(num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub(num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub(num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl(num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr() {\n    assert(this.red, 'redSqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr() {\n    assert(this.red, 'redISqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.isqr(this);\n  }; // Square root over p\n\n\n  BN.prototype.redSqrt = function redSqrt() {\n    assert(this.red, 'redSqrt works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm() {\n    assert(this.red, 'redInvm works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.invm(this);\n  }; // Return negative clone of `this` % `red modulo`\n\n\n  BN.prototype.redNeg = function redNeg() {\n    assert(this.red, 'redNeg works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow(num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n\n    this.red._verify1(this);\n\n    return this.red.pow(this, num);\n  }; // Prime numbers with efficient reduction\n\n\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  }; // Pseudo-Mersenne prime\n\n  function MPrime(name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp() {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce(num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is a BN v4 instance\n        r.strip();\n      } else {\n        // r is a BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split(input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK(num) {\n    return num.imul(this.k);\n  };\n\n  function K256() {\n    MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split(input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n    var outLen = Math.min(input.length, 9);\n\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    } // Shift by 9 limbs\n\n\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n      prev = next;\n    }\n\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK(num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n    var lo = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + (lo / 0x4000000 | 0);\n    } // Fast length reduction\n\n\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n\n    return num;\n  };\n\n  function P224() {\n    MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n\n  inherits(P224, MPrime);\n\n  function P192() {\n    MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n\n  inherits(P192, MPrime);\n\n  function P25519() {\n    // 2 ^ 255 - 19\n    MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK(num) {\n    // K = 0x13\n    var carry = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n      num.words[i] = lo;\n      carry = hi;\n    }\n\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n\n    return num;\n  }; // Exported mostly for testing purposes, use plain name instead\n\n\n  BN._prime = function prime(name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n    var prime;\n\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n\n    primes[name] = prime;\n    return prime;\n  }; //\n  // Base reduction engine\n  //\n\n\n  function Red(m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1(a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2(a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red, 'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod(a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n    move(a, a.umod(this.m)._forceRed(this));\n    return a;\n  };\n\n  Red.prototype.neg = function neg(a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add(a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd(a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.sub = function sub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.shl = function shl(a, num) {\n    this._verify1(a);\n\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr(a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr(a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt(a) {\n    if (a.isZero()) return a.clone();\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1); // Fast case\n\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n    var q = this.m.subn(1);\n    var s = 0;\n\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n\n    assert(!q.isZero());\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg(); // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm(a) {\n    var inv = a._invmp(this.m);\n\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow(a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = word >> j & 1;\n\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo(num) {\n    var r = num.umod(this.m);\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom(num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  }; //\n  // Montgomery method engine\n  //\n\n\n  BN.mont = function mont(num) {\n    return new Mont(num);\n  };\n\n  function Mont(m) {\n    Red.call(this, m);\n    this.shift = this.m.bitLength();\n\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - this.shift % 26;\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo(num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom(num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul(a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul(a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm(a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/brorand/index.js":
/*!***************************************!*\
  !*** ./node_modules/brorand/index.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var r;\n\nmodule.exports = function rand(len) {\n  if (!r) r = new Rand(null);\n  return r.generate(len);\n};\n\nfunction Rand(rand) {\n  this.rand = rand;\n}\n\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n  return this._rand(len);\n}; // Emulate crypto API using randy\n\n\nRand.prototype._rand = function _rand(n) {\n  if (this.rand.getBytes) return this.rand.getBytes(n);\n  var res = new Uint8Array(n);\n\n  for (var i = 0; i < res.length; i++) res[i] = this.rand.getByte();\n\n  return res;\n};\n\nif (typeof self === 'object') {\n  if (self.crypto && self.crypto.getRandomValues) {\n    // Modern browsers\n    Rand.prototype._rand = function _rand(n) {\n      var arr = new Uint8Array(n);\n      self.crypto.getRandomValues(arr);\n      return arr;\n    };\n  } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n    // IE\n    Rand.prototype._rand = function _rand(n) {\n      var arr = new Uint8Array(n);\n      self.msCrypto.getRandomValues(arr);\n      return arr;\n    }; // Safari's WebWorkers do not have `crypto`\n\n  } else if (typeof window === 'object') {\n    // Old junk\n    Rand.prototype._rand = function () {\n      throw new Error('Not implemented yet');\n    };\n  }\n} else {\n  // Node.js or Web worker with no crypto support\n  try {\n    var crypto = __webpack_require__(/*! crypto */ 7);\n\n    if (typeof crypto.randomBytes !== 'function') throw new Error('Not supported');\n\n    Rand.prototype._rand = function _rand(n) {\n      return crypto.randomBytes(n);\n    };\n  } catch (e) {}\n}\n\n//# sourceURL=webpack:///./node_modules/brorand/index.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/aes.js":
/*!********************************************!*\
  !*** ./node_modules/browserify-aes/aes.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nfunction asUInt32Array(buf) {\n  if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n  var len = buf.length / 4 | 0;\n  var out = new Array(len);\n\n  for (var i = 0; i < len; i++) {\n    out[i] = buf.readUInt32BE(i * 4);\n  }\n\n  return out;\n}\n\nfunction scrubVec(v) {\n  for (var i = 0; i < v.length; v++) {\n    v[i] = 0;\n  }\n}\n\nfunction cryptBlock(M, keySchedule, SUB_MIX, SBOX, nRounds) {\n  var SUB_MIX0 = SUB_MIX[0];\n  var SUB_MIX1 = SUB_MIX[1];\n  var SUB_MIX2 = SUB_MIX[2];\n  var SUB_MIX3 = SUB_MIX[3];\n  var s0 = M[0] ^ keySchedule[0];\n  var s1 = M[1] ^ keySchedule[1];\n  var s2 = M[2] ^ keySchedule[2];\n  var s3 = M[3] ^ keySchedule[3];\n  var t0, t1, t2, t3;\n  var ksRow = 4;\n\n  for (var round = 1; round < nRounds; round++) {\n    t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[s1 >>> 16 & 0xff] ^ SUB_MIX2[s2 >>> 8 & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++];\n    t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[s2 >>> 16 & 0xff] ^ SUB_MIX2[s3 >>> 8 & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++];\n    t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[s3 >>> 16 & 0xff] ^ SUB_MIX2[s0 >>> 8 & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++];\n    t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[s0 >>> 16 & 0xff] ^ SUB_MIX2[s1 >>> 8 & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++];\n    s0 = t0;\n    s1 = t1;\n    s2 = t2;\n    s3 = t3;\n  }\n\n  t0 = (SBOX[s0 >>> 24] << 24 | SBOX[s1 >>> 16 & 0xff] << 16 | SBOX[s2 >>> 8 & 0xff] << 8 | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n  t1 = (SBOX[s1 >>> 24] << 24 | SBOX[s2 >>> 16 & 0xff] << 16 | SBOX[s3 >>> 8 & 0xff] << 8 | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n  t2 = (SBOX[s2 >>> 24] << 24 | SBOX[s3 >>> 16 & 0xff] << 16 | SBOX[s0 >>> 8 & 0xff] << 8 | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n  t3 = (SBOX[s3 >>> 24] << 24 | SBOX[s0 >>> 16 & 0xff] << 16 | SBOX[s1 >>> 8 & 0xff] << 8 | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n  t0 = t0 >>> 0;\n  t1 = t1 >>> 0;\n  t2 = t2 >>> 0;\n  t3 = t3 >>> 0;\n  return [t0, t1, t2, t3];\n} // AES constants\n\n\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\nvar G = function () {\n  // Compute double table\n  var d = new Array(256);\n\n  for (var j = 0; j < 256; j++) {\n    if (j < 128) {\n      d[j] = j << 1;\n    } else {\n      d[j] = j << 1 ^ 0x11b;\n    }\n  }\n\n  var SBOX = [];\n  var INV_SBOX = [];\n  var SUB_MIX = [[], [], [], []];\n  var INV_SUB_MIX = [[], [], [], []]; // Walk GF(2^8)\n\n  var x = 0;\n  var xi = 0;\n\n  for (var i = 0; i < 256; ++i) {\n    // Compute sbox\n    var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;\n    sx = sx >>> 8 ^ sx & 0xff ^ 0x63;\n    SBOX[x] = sx;\n    INV_SBOX[sx] = x; // Compute multiplication\n\n    var x2 = d[x];\n    var x4 = d[x2];\n    var x8 = d[x4]; // Compute sub bytes, mix columns tables\n\n    var t = d[sx] * 0x101 ^ sx * 0x1010100;\n    SUB_MIX[0][x] = t << 24 | t >>> 8;\n    SUB_MIX[1][x] = t << 16 | t >>> 16;\n    SUB_MIX[2][x] = t << 8 | t >>> 24;\n    SUB_MIX[3][x] = t; // Compute inv sub bytes, inv mix columns tables\n\n    t = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;\n    INV_SUB_MIX[0][sx] = t << 24 | t >>> 8;\n    INV_SUB_MIX[1][sx] = t << 16 | t >>> 16;\n    INV_SUB_MIX[2][sx] = t << 8 | t >>> 24;\n    INV_SUB_MIX[3][sx] = t;\n\n    if (x === 0) {\n      x = xi = 1;\n    } else {\n      x = x2 ^ d[d[d[x8 ^ x2]]];\n      xi ^= d[d[xi]];\n    }\n  }\n\n  return {\n    SBOX: SBOX,\n    INV_SBOX: INV_SBOX,\n    SUB_MIX: SUB_MIX,\n    INV_SUB_MIX: INV_SUB_MIX\n  };\n}();\n\nfunction AES(key) {\n  this._key = asUInt32Array(key);\n\n  this._reset();\n}\n\nAES.blockSize = 4 * 4;\nAES.keySize = 256 / 8;\nAES.prototype.blockSize = AES.blockSize;\nAES.prototype.keySize = AES.keySize;\n\nAES.prototype._reset = function () {\n  var keyWords = this._key;\n  var keySize = keyWords.length;\n  var nRounds = keySize + 6;\n  var ksRows = (nRounds + 1) * 4;\n  var keySchedule = [];\n\n  for (var k = 0; k < keySize; k++) {\n    keySchedule[k] = keyWords[k];\n  }\n\n  for (k = keySize; k < ksRows; k++) {\n    var t = keySchedule[k - 1];\n\n    if (k % keySize === 0) {\n      t = t << 8 | t >>> 24;\n      t = G.SBOX[t >>> 24] << 24 | G.SBOX[t >>> 16 & 0xff] << 16 | G.SBOX[t >>> 8 & 0xff] << 8 | G.SBOX[t & 0xff];\n      t ^= RCON[k / keySize | 0] << 24;\n    } else if (keySize > 6 && k % keySize === 4) {\n      t = G.SBOX[t >>> 24] << 24 | G.SBOX[t >>> 16 & 0xff] << 16 | G.SBOX[t >>> 8 & 0xff] << 8 | G.SBOX[t & 0xff];\n    }\n\n    keySchedule[k] = keySchedule[k - keySize] ^ t;\n  }\n\n  var invKeySchedule = [];\n\n  for (var ik = 0; ik < ksRows; ik++) {\n    var ksR = ksRows - ik;\n    var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)];\n\n    if (ik < 4 || ksR <= 4) {\n      invKeySchedule[ik] = tt;\n    } else {\n      invKeySchedule[ik] = G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^ G.INV_SUB_MIX[1][G.SBOX[tt >>> 16 & 0xff]] ^ G.INV_SUB_MIX[2][G.SBOX[tt >>> 8 & 0xff]] ^ G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]];\n    }\n  }\n\n  this._nRounds = nRounds;\n  this._keySchedule = keySchedule;\n  this._invKeySchedule = invKeySchedule;\n};\n\nAES.prototype.encryptBlockRaw = function (M) {\n  M = asUInt32Array(M);\n  return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds);\n};\n\nAES.prototype.encryptBlock = function (M) {\n  var out = this.encryptBlockRaw(M);\n  var buf = Buffer.allocUnsafe(16);\n  buf.writeUInt32BE(out[0], 0);\n  buf.writeUInt32BE(out[1], 4);\n  buf.writeUInt32BE(out[2], 8);\n  buf.writeUInt32BE(out[3], 12);\n  return buf;\n};\n\nAES.prototype.decryptBlock = function (M) {\n  M = asUInt32Array(M); // swap\n\n  var m1 = M[1];\n  M[1] = M[3];\n  M[3] = m1;\n  var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds);\n  var buf = Buffer.allocUnsafe(16);\n  buf.writeUInt32BE(out[0], 0);\n  buf.writeUInt32BE(out[3], 4);\n  buf.writeUInt32BE(out[2], 8);\n  buf.writeUInt32BE(out[1], 12);\n  return buf;\n};\n\nAES.prototype.scrub = function () {\n  scrubVec(this._keySchedule);\n  scrubVec(this._invKeySchedule);\n  scrubVec(this._key);\n};\n\nmodule.exports.AES = AES;\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/aes.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/authCipher.js":
/*!***************************************************!*\
  !*** ./node_modules/browserify-aes/authCipher.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar GHASH = __webpack_require__(/*! ./ghash */ \"./node_modules/browserify-aes/ghash.js\");\n\nvar xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\");\n\nvar incr32 = __webpack_require__(/*! ./incr32 */ \"./node_modules/browserify-aes/incr32.js\");\n\nfunction xorTest(a, b) {\n  var out = 0;\n  if (a.length !== b.length) out++;\n  var len = Math.min(a.length, b.length);\n\n  for (var i = 0; i < len; ++i) {\n    out += a[i] ^ b[i];\n  }\n\n  return out;\n}\n\nfunction calcIv(self, iv, ck) {\n  if (iv.length === 12) {\n    self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])]);\n    return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])]);\n  }\n\n  var ghash = new GHASH(ck);\n  var len = iv.length;\n  var toPad = len % 16;\n  ghash.update(iv);\n\n  if (toPad) {\n    toPad = 16 - toPad;\n    ghash.update(Buffer.alloc(toPad, 0));\n  }\n\n  ghash.update(Buffer.alloc(8, 0));\n  var ivBits = len * 8;\n  var tail = Buffer.alloc(8);\n  tail.writeUIntBE(ivBits, 0, 8);\n  ghash.update(tail);\n  self._finID = ghash.state;\n  var out = Buffer.from(self._finID);\n  incr32(out);\n  return out;\n}\n\nfunction StreamCipher(mode, key, iv, decrypt) {\n  Transform.call(this);\n  var h = Buffer.alloc(4, 0);\n  this._cipher = new aes.AES(key);\n\n  var ck = this._cipher.encryptBlock(h);\n\n  this._ghash = new GHASH(ck);\n  iv = calcIv(this, iv, ck);\n  this._prev = Buffer.from(iv);\n  this._cache = Buffer.allocUnsafe(0);\n  this._secCache = Buffer.allocUnsafe(0);\n  this._decrypt = decrypt;\n  this._alen = 0;\n  this._len = 0;\n  this._mode = mode;\n  this._authTag = null;\n  this._called = false;\n}\n\ninherits(StreamCipher, Transform);\n\nStreamCipher.prototype._update = function (chunk) {\n  if (!this._called && this._alen) {\n    var rump = 16 - this._alen % 16;\n\n    if (rump < 16) {\n      rump = Buffer.alloc(rump, 0);\n\n      this._ghash.update(rump);\n    }\n  }\n\n  this._called = true;\n\n  var out = this._mode.encrypt(this, chunk);\n\n  if (this._decrypt) {\n    this._ghash.update(chunk);\n  } else {\n    this._ghash.update(out);\n  }\n\n  this._len += chunk.length;\n  return out;\n};\n\nStreamCipher.prototype._final = function () {\n  if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data');\n  var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID));\n  if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data');\n  this._authTag = tag;\n\n  this._cipher.scrub();\n};\n\nStreamCipher.prototype.getAuthTag = function getAuthTag() {\n  if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state');\n  return this._authTag;\n};\n\nStreamCipher.prototype.setAuthTag = function setAuthTag(tag) {\n  if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state');\n  this._authTag = tag;\n};\n\nStreamCipher.prototype.setAAD = function setAAD(buf) {\n  if (this._called) throw new Error('Attempting to set AAD in unsupported state');\n\n  this._ghash.update(buf);\n\n  this._alen += buf.length;\n};\n\nmodule.exports = StreamCipher;\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/authCipher.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/browser.js":
/*!************************************************!*\
  !*** ./node_modules/browserify-aes/browser.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var ciphers = __webpack_require__(/*! ./encrypter */ \"./node_modules/browserify-aes/encrypter.js\");\n\nvar deciphers = __webpack_require__(/*! ./decrypter */ \"./node_modules/browserify-aes/decrypter.js\");\n\nvar modes = __webpack_require__(/*! ./modes/list.json */ \"./node_modules/browserify-aes/modes/list.json\");\n\nfunction getCiphers() {\n  return Object.keys(modes);\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher;\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv;\nexports.createDecipher = exports.Decipher = deciphers.createDecipher;\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv;\nexports.listCiphers = exports.getCiphers = getCiphers;\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/browser.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/decrypter.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/decrypter.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var AuthCipher = __webpack_require__(/*! ./authCipher */ \"./node_modules/browserify-aes/authCipher.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar MODES = __webpack_require__(/*! ./modes */ \"./node_modules/browserify-aes/modes/index.js\");\n\nvar StreamCipher = __webpack_require__(/*! ./streamCipher */ \"./node_modules/browserify-aes/streamCipher.js\");\n\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\");\n\nvar ebtk = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction Decipher(mode, key, iv) {\n  Transform.call(this);\n  this._cache = new Splitter();\n  this._last = void 0;\n  this._cipher = new aes.AES(key);\n  this._prev = Buffer.from(iv);\n  this._mode = mode;\n  this._autopadding = true;\n}\n\ninherits(Decipher, Transform);\n\nDecipher.prototype._update = function (data) {\n  this._cache.add(data);\n\n  var chunk;\n  var thing;\n  var out = [];\n\n  while (chunk = this._cache.get(this._autopadding)) {\n    thing = this._mode.decrypt(this, chunk);\n    out.push(thing);\n  }\n\n  return Buffer.concat(out);\n};\n\nDecipher.prototype._final = function () {\n  var chunk = this._cache.flush();\n\n  if (this._autopadding) {\n    return unpad(this._mode.decrypt(this, chunk));\n  } else if (chunk) {\n    throw new Error('data not multiple of block length');\n  }\n};\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n  this._autopadding = !!setTo;\n  return this;\n};\n\nfunction Splitter() {\n  this.cache = Buffer.allocUnsafe(0);\n}\n\nSplitter.prototype.add = function (data) {\n  this.cache = Buffer.concat([this.cache, data]);\n};\n\nSplitter.prototype.get = function (autoPadding) {\n  var out;\n\n  if (autoPadding) {\n    if (this.cache.length > 16) {\n      out = this.cache.slice(0, 16);\n      this.cache = this.cache.slice(16);\n      return out;\n    }\n  } else {\n    if (this.cache.length >= 16) {\n      out = this.cache.slice(0, 16);\n      this.cache = this.cache.slice(16);\n      return out;\n    }\n  }\n\n  return null;\n};\n\nSplitter.prototype.flush = function () {\n  if (this.cache.length) return this.cache;\n};\n\nfunction unpad(last) {\n  var padded = last[15];\n\n  if (padded < 1 || padded > 16) {\n    throw new Error('unable to decrypt data');\n  }\n\n  var i = -1;\n\n  while (++i < padded) {\n    if (last[i + (16 - padded)] !== padded) {\n      throw new Error('unable to decrypt data');\n    }\n  }\n\n  if (padded === 16) return;\n  return last.slice(0, 16 - padded);\n}\n\nfunction createDecipheriv(suite, password, iv) {\n  var config = MODES[suite.toLowerCase()];\n  if (!config) throw new TypeError('invalid suite type');\n  if (typeof iv === 'string') iv = Buffer.from(iv);\n  if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length);\n  if (typeof password === 'string') password = Buffer.from(password);\n  if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length);\n\n  if (config.type === 'stream') {\n    return new StreamCipher(config.module, password, iv, true);\n  } else if (config.type === 'auth') {\n    return new AuthCipher(config.module, password, iv, true);\n  }\n\n  return new Decipher(config.module, password, iv);\n}\n\nfunction createDecipher(suite, password) {\n  var config = MODES[suite.toLowerCase()];\n  if (!config) throw new TypeError('invalid suite type');\n  var keys = ebtk(password, false, config.key, config.iv);\n  return createDecipheriv(suite, keys.key, keys.iv);\n}\n\nexports.createDecipher = createDecipher;\nexports.createDecipheriv = createDecipheriv;\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/decrypter.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/encrypter.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/encrypter.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var MODES = __webpack_require__(/*! ./modes */ \"./node_modules/browserify-aes/modes/index.js\");\n\nvar AuthCipher = __webpack_require__(/*! ./authCipher */ \"./node_modules/browserify-aes/authCipher.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar StreamCipher = __webpack_require__(/*! ./streamCipher */ \"./node_modules/browserify-aes/streamCipher.js\");\n\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\");\n\nvar ebtk = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction Cipher(mode, key, iv) {\n  Transform.call(this);\n  this._cache = new Splitter();\n  this._cipher = new aes.AES(key);\n  this._prev = Buffer.from(iv);\n  this._mode = mode;\n  this._autopadding = true;\n}\n\ninherits(Cipher, Transform);\n\nCipher.prototype._update = function (data) {\n  this._cache.add(data);\n\n  var chunk;\n  var thing;\n  var out = [];\n\n  while (chunk = this._cache.get()) {\n    thing = this._mode.encrypt(this, chunk);\n    out.push(thing);\n  }\n\n  return Buffer.concat(out);\n};\n\nvar PADDING = Buffer.alloc(16, 0x10);\n\nCipher.prototype._final = function () {\n  var chunk = this._cache.flush();\n\n  if (this._autopadding) {\n    chunk = this._mode.encrypt(this, chunk);\n\n    this._cipher.scrub();\n\n    return chunk;\n  }\n\n  if (!chunk.equals(PADDING)) {\n    this._cipher.scrub();\n\n    throw new Error('data not multiple of block length');\n  }\n};\n\nCipher.prototype.setAutoPadding = function (setTo) {\n  this._autopadding = !!setTo;\n  return this;\n};\n\nfunction Splitter() {\n  this.cache = Buffer.allocUnsafe(0);\n}\n\nSplitter.prototype.add = function (data) {\n  this.cache = Buffer.concat([this.cache, data]);\n};\n\nSplitter.prototype.get = function () {\n  if (this.cache.length > 15) {\n    var out = this.cache.slice(0, 16);\n    this.cache = this.cache.slice(16);\n    return out;\n  }\n\n  return null;\n};\n\nSplitter.prototype.flush = function () {\n  var len = 16 - this.cache.length;\n  var padBuff = Buffer.allocUnsafe(len);\n  var i = -1;\n\n  while (++i < len) {\n    padBuff.writeUInt8(len, i);\n  }\n\n  return Buffer.concat([this.cache, padBuff]);\n};\n\nfunction createCipheriv(suite, password, iv) {\n  var config = MODES[suite.toLowerCase()];\n  if (!config) throw new TypeError('invalid suite type');\n  if (typeof password === 'string') password = Buffer.from(password);\n  if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length);\n  if (typeof iv === 'string') iv = Buffer.from(iv);\n  if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length);\n\n  if (config.type === 'stream') {\n    return new StreamCipher(config.module, password, iv);\n  } else if (config.type === 'auth') {\n    return new AuthCipher(config.module, password, iv);\n  }\n\n  return new Cipher(config.module, password, iv);\n}\n\nfunction createCipher(suite, password) {\n  var config = MODES[suite.toLowerCase()];\n  if (!config) throw new TypeError('invalid suite type');\n  var keys = ebtk(password, false, config.key, config.iv);\n  return createCipheriv(suite, keys.key, keys.iv);\n}\n\nexports.createCipheriv = createCipheriv;\nexports.createCipher = createCipher;\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/encrypter.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/ghash.js":
/*!**********************************************!*\
  !*** ./node_modules/browserify-aes/ghash.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar ZEROES = Buffer.alloc(16, 0);\n\nfunction toArray(buf) {\n  return [buf.readUInt32BE(0), buf.readUInt32BE(4), buf.readUInt32BE(8), buf.readUInt32BE(12)];\n}\n\nfunction fromArray(out) {\n  var buf = Buffer.allocUnsafe(16);\n  buf.writeUInt32BE(out[0] >>> 0, 0);\n  buf.writeUInt32BE(out[1] >>> 0, 4);\n  buf.writeUInt32BE(out[2] >>> 0, 8);\n  buf.writeUInt32BE(out[3] >>> 0, 12);\n  return buf;\n}\n\nfunction GHASH(key) {\n  this.h = key;\n  this.state = Buffer.alloc(16, 0);\n  this.cache = Buffer.allocUnsafe(0);\n} // from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\n\n\nGHASH.prototype.ghash = function (block) {\n  var i = -1;\n\n  while (++i < block.length) {\n    this.state[i] ^= block[i];\n  }\n\n  this._multiply();\n};\n\nGHASH.prototype._multiply = function () {\n  var Vi = toArray(this.h);\n  var Zi = [0, 0, 0, 0];\n  var j, xi, lsbVi;\n  var i = -1;\n\n  while (++i < 128) {\n    xi = (this.state[~~(i / 8)] & 1 << 7 - i % 8) !== 0;\n\n    if (xi) {\n      // Z_i+1 = Z_i ^ V_i\n      Zi[0] ^= Vi[0];\n      Zi[1] ^= Vi[1];\n      Zi[2] ^= Vi[2];\n      Zi[3] ^= Vi[3];\n    } // Store the value of LSB(V_i)\n\n\n    lsbVi = (Vi[3] & 1) !== 0; // V_i+1 = V_i >> 1\n\n    for (j = 3; j > 0; j--) {\n      Vi[j] = Vi[j] >>> 1 | (Vi[j - 1] & 1) << 31;\n    }\n\n    Vi[0] = Vi[0] >>> 1; // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n\n    if (lsbVi) {\n      Vi[0] = Vi[0] ^ 0xe1 << 24;\n    }\n  }\n\n  this.state = fromArray(Zi);\n};\n\nGHASH.prototype.update = function (buf) {\n  this.cache = Buffer.concat([this.cache, buf]);\n  var chunk;\n\n  while (this.cache.length >= 16) {\n    chunk = this.cache.slice(0, 16);\n    this.cache = this.cache.slice(16);\n    this.ghash(chunk);\n  }\n};\n\nGHASH.prototype.final = function (abl, bl) {\n  if (this.cache.length) {\n    this.ghash(Buffer.concat([this.cache, ZEROES], 16));\n  }\n\n  this.ghash(fromArray([0, abl, 0, bl]));\n  return this.state;\n};\n\nmodule.exports = GHASH;\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/ghash.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/incr32.js":
/*!***********************************************!*\
  !*** ./node_modules/browserify-aes/incr32.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function incr32(iv) {\n  var len = iv.length;\n  var item;\n\n  while (len--) {\n    item = iv.readUInt8(len);\n\n    if (item === 255) {\n      iv.writeUInt8(0, len);\n    } else {\n      item++;\n      iv.writeUInt8(item, len);\n      break;\n    }\n  }\n}\n\nmodule.exports = incr32;\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/incr32.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/cbc.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/modes/cbc.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\");\n\nexports.encrypt = function (self, block) {\n  var data = xor(block, self._prev);\n  self._prev = self._cipher.encryptBlock(data);\n  return self._prev;\n};\n\nexports.decrypt = function (self, block) {\n  var pad = self._prev;\n  self._prev = block;\n\n  var out = self._cipher.decryptBlock(block);\n\n  return xor(out, pad);\n};\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/modes/cbc.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/cfb.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/modes/cfb.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\");\n\nfunction encryptStart(self, data, decrypt) {\n  var len = data.length;\n  var out = xor(data, self._cache);\n  self._cache = self._cache.slice(len);\n  self._prev = Buffer.concat([self._prev, decrypt ? data : out]);\n  return out;\n}\n\nexports.encrypt = function (self, data, decrypt) {\n  var out = Buffer.allocUnsafe(0);\n  var len;\n\n  while (data.length) {\n    if (self._cache.length === 0) {\n      self._cache = self._cipher.encryptBlock(self._prev);\n      self._prev = Buffer.allocUnsafe(0);\n    }\n\n    if (self._cache.length <= data.length) {\n      len = self._cache.length;\n      out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)]);\n      data = data.slice(len);\n    } else {\n      out = Buffer.concat([out, encryptStart(self, data, decrypt)]);\n      break;\n    }\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/modes/cfb.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/cfb1.js":
/*!***************************************************!*\
  !*** ./node_modules/browserify-aes/modes/cfb1.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nfunction encryptByte(self, byteParam, decrypt) {\n  var pad;\n  var i = -1;\n  var len = 8;\n  var out = 0;\n  var bit, value;\n\n  while (++i < len) {\n    pad = self._cipher.encryptBlock(self._prev);\n    bit = byteParam & 1 << 7 - i ? 0x80 : 0;\n    value = pad[0] ^ bit;\n    out += (value & 0x80) >> i % 8;\n    self._prev = shiftIn(self._prev, decrypt ? bit : value);\n  }\n\n  return out;\n}\n\nfunction shiftIn(buffer, value) {\n  var len = buffer.length;\n  var i = -1;\n  var out = Buffer.allocUnsafe(buffer.length);\n  buffer = Buffer.concat([buffer, Buffer.from([value])]);\n\n  while (++i < len) {\n    out[i] = buffer[i] << 1 | buffer[i + 1] >> 7;\n  }\n\n  return out;\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n  var len = chunk.length;\n  var out = Buffer.allocUnsafe(len);\n  var i = -1;\n\n  while (++i < len) {\n    out[i] = encryptByte(self, chunk[i], decrypt);\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/modes/cfb1.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/cfb8.js":
/*!***************************************************!*\
  !*** ./node_modules/browserify-aes/modes/cfb8.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nfunction encryptByte(self, byteParam, decrypt) {\n  var pad = self._cipher.encryptBlock(self._prev);\n\n  var out = pad[0] ^ byteParam;\n  self._prev = Buffer.concat([self._prev.slice(1), Buffer.from([decrypt ? byteParam : out])]);\n  return out;\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n  var len = chunk.length;\n  var out = Buffer.allocUnsafe(len);\n  var i = -1;\n\n  while (++i < len) {\n    out[i] = encryptByte(self, chunk[i], decrypt);\n  }\n\n  return out;\n};\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/modes/cfb8.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/ctr.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/modes/ctr.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar incr32 = __webpack_require__(/*! ../incr32 */ \"./node_modules/browserify-aes/incr32.js\");\n\nfunction getBlock(self) {\n  var out = self._cipher.encryptBlockRaw(self._prev);\n\n  incr32(self._prev);\n  return out;\n}\n\nvar blockSize = 16;\n\nexports.encrypt = function (self, chunk) {\n  var chunkNum = Math.ceil(chunk.length / blockSize);\n  var start = self._cache.length;\n  self._cache = Buffer.concat([self._cache, Buffer.allocUnsafe(chunkNum * blockSize)]);\n\n  for (var i = 0; i < chunkNum; i++) {\n    var out = getBlock(self);\n    var offset = start + i * blockSize;\n\n    self._cache.writeUInt32BE(out[0], offset + 0);\n\n    self._cache.writeUInt32BE(out[1], offset + 4);\n\n    self._cache.writeUInt32BE(out[2], offset + 8);\n\n    self._cache.writeUInt32BE(out[3], offset + 12);\n  }\n\n  var pad = self._cache.slice(0, chunk.length);\n\n  self._cache = self._cache.slice(chunk.length);\n  return xor(chunk, pad);\n};\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/modes/ctr.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/ecb.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/modes/ecb.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("exports.encrypt = function (self, block) {\n  return self._cipher.encryptBlock(block);\n};\n\nexports.decrypt = function (self, block) {\n  return self._cipher.decryptBlock(block);\n};\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/modes/ecb.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/index.js":
/*!****************************************************!*\
  !*** ./node_modules/browserify-aes/modes/index.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var modeModules = {\n  ECB: __webpack_require__(/*! ./ecb */ \"./node_modules/browserify-aes/modes/ecb.js\"),\n  CBC: __webpack_require__(/*! ./cbc */ \"./node_modules/browserify-aes/modes/cbc.js\"),\n  CFB: __webpack_require__(/*! ./cfb */ \"./node_modules/browserify-aes/modes/cfb.js\"),\n  CFB8: __webpack_require__(/*! ./cfb8 */ \"./node_modules/browserify-aes/modes/cfb8.js\"),\n  CFB1: __webpack_require__(/*! ./cfb1 */ \"./node_modules/browserify-aes/modes/cfb1.js\"),\n  OFB: __webpack_require__(/*! ./ofb */ \"./node_modules/browserify-aes/modes/ofb.js\"),\n  CTR: __webpack_require__(/*! ./ctr */ \"./node_modules/browserify-aes/modes/ctr.js\"),\n  GCM: __webpack_require__(/*! ./ctr */ \"./node_modules/browserify-aes/modes/ctr.js\")\n};\n\nvar modes = __webpack_require__(/*! ./list.json */ \"./node_modules/browserify-aes/modes/list.json\");\n\nfor (var key in modes) {\n  modes[key].module = modeModules[modes[key].mode];\n}\n\nmodule.exports = modes;\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/modes/index.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/list.json":
/*!*****************************************************!*\
  !*** ./node_modules/browserify-aes/modes/list.json ***!
  \*****************************************************/
/*! exports provided: aes-128-ecb, aes-192-ecb, aes-256-ecb, aes-128-cbc, aes-192-cbc, aes-256-cbc, aes128, aes192, aes256, aes-128-cfb, aes-192-cfb, aes-256-cfb, aes-128-cfb8, aes-192-cfb8, aes-256-cfb8, aes-128-cfb1, aes-192-cfb1, aes-256-cfb1, aes-128-ofb, aes-192-ofb, aes-256-ofb, aes-128-ctr, aes-192-ctr, aes-256-ctr, aes-128-gcm, aes-192-gcm, aes-256-gcm, default */
/***/ (function(module) {

eval("module.exports = JSON.parse(\"{\\\"aes-128-ecb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":0,\\\"mode\\\":\\\"ECB\\\",\\\"type\\\":\\\"block\\\"},\\\"aes-192-ecb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":0,\\\"mode\\\":\\\"ECB\\\",\\\"type\\\":\\\"block\\\"},\\\"aes-256-ecb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":0,\\\"mode\\\":\\\"ECB\\\",\\\"type\\\":\\\"block\\\"},\\\"aes-128-cbc\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"CBC\\\",\\\"type\\\":\\\"block\\\"},\\\"aes-192-cbc\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"CBC\\\",\\\"type\\\":\\\"block\\\"},\\\"aes-256-cbc\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"CBC\\\",\\\"type\\\":\\\"block\\\"},\\\"aes128\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"CBC\\\",\\\"type\\\":\\\"block\\\"},\\\"aes192\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"CBC\\\",\\\"type\\\":\\\"block\\\"},\\\"aes256\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"CBC\\\",\\\"type\\\":\\\"block\\\"},\\\"aes-128-cfb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-192-cfb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-256-cfb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-128-cfb8\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB8\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-192-cfb8\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB8\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-256-cfb8\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB8\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-128-cfb1\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB1\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-192-cfb1\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB1\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-256-cfb1\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"CFB1\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-128-ofb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"OFB\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-192-ofb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"OFB\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-256-ofb\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"OFB\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-128-ctr\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":16,\\\"mode\\\":\\\"CTR\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-192-ctr\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":16,\\\"mode\\\":\\\"CTR\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-256-ctr\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":16,\\\"mode\\\":\\\"CTR\\\",\\\"type\\\":\\\"stream\\\"},\\\"aes-128-gcm\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":128,\\\"iv\\\":12,\\\"mode\\\":\\\"GCM\\\",\\\"type\\\":\\\"auth\\\"},\\\"aes-192-gcm\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":192,\\\"iv\\\":12,\\\"mode\\\":\\\"GCM\\\",\\\"type\\\":\\\"auth\\\"},\\\"aes-256-gcm\\\":{\\\"cipher\\\":\\\"AES\\\",\\\"key\\\":256,\\\"iv\\\":12,\\\"mode\\\":\\\"GCM\\\",\\\"type\\\":\\\"auth\\\"}}\");\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/modes/list.json?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/ofb.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/modes/ofb.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\");\n\nfunction getBlock(self) {\n  self._prev = self._cipher.encryptBlock(self._prev);\n  return self._prev;\n}\n\nexports.encrypt = function (self, chunk) {\n  while (self._cache.length < chunk.length) {\n    self._cache = Buffer.concat([self._cache, getBlock(self)]);\n  }\n\n  var pad = self._cache.slice(0, chunk.length);\n\n  self._cache = self._cache.slice(chunk.length);\n  return xor(chunk, pad);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/modes/ofb.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/streamCipher.js":
/*!*****************************************************!*\
  !*** ./node_modules/browserify-aes/streamCipher.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction StreamCipher(mode, key, iv, decrypt) {\n  Transform.call(this);\n  this._cipher = new aes.AES(key);\n  this._prev = Buffer.from(iv);\n  this._cache = Buffer.allocUnsafe(0);\n  this._secCache = Buffer.allocUnsafe(0);\n  this._decrypt = decrypt;\n  this._mode = mode;\n}\n\ninherits(StreamCipher, Transform);\n\nStreamCipher.prototype._update = function (chunk) {\n  return this._mode.encrypt(this, chunk, this._decrypt);\n};\n\nStreamCipher.prototype._final = function () {\n  this._cipher.scrub();\n};\n\nmodule.exports = StreamCipher;\n\n//# sourceURL=webpack:///./node_modules/browserify-aes/streamCipher.js?");

/***/ }),

/***/ "./node_modules/browserify-cipher/browser.js":
/*!***************************************************!*\
  !*** ./node_modules/browserify-cipher/browser.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var DES = __webpack_require__(/*! browserify-des */ \"./node_modules/browserify-des/index.js\");\n\nvar aes = __webpack_require__(/*! browserify-aes/browser */ \"./node_modules/browserify-aes/browser.js\");\n\nvar aesModes = __webpack_require__(/*! browserify-aes/modes */ \"./node_modules/browserify-aes/modes/index.js\");\n\nvar desModes = __webpack_require__(/*! browserify-des/modes */ \"./node_modules/browserify-des/modes.js\");\n\nvar ebtk = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\");\n\nfunction createCipher(suite, password) {\n  suite = suite.toLowerCase();\n  var keyLen, ivLen;\n\n  if (aesModes[suite]) {\n    keyLen = aesModes[suite].key;\n    ivLen = aesModes[suite].iv;\n  } else if (desModes[suite]) {\n    keyLen = desModes[suite].key * 8;\n    ivLen = desModes[suite].iv;\n  } else {\n    throw new TypeError('invalid suite type');\n  }\n\n  var keys = ebtk(password, false, keyLen, ivLen);\n  return createCipheriv(suite, keys.key, keys.iv);\n}\n\nfunction createDecipher(suite, password) {\n  suite = suite.toLowerCase();\n  var keyLen, ivLen;\n\n  if (aesModes[suite]) {\n    keyLen = aesModes[suite].key;\n    ivLen = aesModes[suite].iv;\n  } else if (desModes[suite]) {\n    keyLen = desModes[suite].key * 8;\n    ivLen = desModes[suite].iv;\n  } else {\n    throw new TypeError('invalid suite type');\n  }\n\n  var keys = ebtk(password, false, keyLen, ivLen);\n  return createDecipheriv(suite, keys.key, keys.iv);\n}\n\nfunction createCipheriv(suite, key, iv) {\n  suite = suite.toLowerCase();\n  if (aesModes[suite]) return aes.createCipheriv(suite, key, iv);\n  if (desModes[suite]) return new DES({\n    key: key,\n    iv: iv,\n    mode: suite\n  });\n  throw new TypeError('invalid suite type');\n}\n\nfunction createDecipheriv(suite, key, iv) {\n  suite = suite.toLowerCase();\n  if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv);\n  if (desModes[suite]) return new DES({\n    key: key,\n    iv: iv,\n    mode: suite,\n    decrypt: true\n  });\n  throw new TypeError('invalid suite type');\n}\n\nfunction getCiphers() {\n  return Object.keys(desModes).concat(aes.getCiphers());\n}\n\nexports.createCipher = exports.Cipher = createCipher;\nexports.createCipheriv = exports.Cipheriv = createCipheriv;\nexports.createDecipher = exports.Decipher = createDecipher;\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv;\nexports.listCiphers = exports.getCiphers = getCiphers;\n\n//# sourceURL=webpack:///./node_modules/browserify-cipher/browser.js?");

/***/ }),

/***/ "./node_modules/browserify-des/index.js":
/*!**********************************************!*\
  !*** ./node_modules/browserify-des/index.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var CipherBase = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar des = __webpack_require__(/*! des.js */ \"./node_modules/des.js/lib/des.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar modes = {\n  'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n  'des-ede3': des.EDE,\n  'des-ede-cbc': des.CBC.instantiate(des.EDE),\n  'des-ede': des.EDE,\n  'des-cbc': des.CBC.instantiate(des.DES),\n  'des-ecb': des.DES\n};\nmodes.des = modes['des-cbc'];\nmodes.des3 = modes['des-ede3-cbc'];\nmodule.exports = DES;\ninherits(DES, CipherBase);\n\nfunction DES(opts) {\n  CipherBase.call(this);\n  var modeName = opts.mode.toLowerCase();\n  var mode = modes[modeName];\n  var type;\n\n  if (opts.decrypt) {\n    type = 'decrypt';\n  } else {\n    type = 'encrypt';\n  }\n\n  var key = opts.key;\n\n  if (!Buffer.isBuffer(key)) {\n    key = Buffer.from(key);\n  }\n\n  if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n    key = Buffer.concat([key, key.slice(0, 8)]);\n  }\n\n  var iv = opts.iv;\n\n  if (!Buffer.isBuffer(iv)) {\n    iv = Buffer.from(iv);\n  }\n\n  this._des = mode.create({\n    key: key,\n    iv: iv,\n    type: type\n  });\n}\n\nDES.prototype._update = function (data) {\n  return Buffer.from(this._des.update(data));\n};\n\nDES.prototype._final = function () {\n  return Buffer.from(this._des.final());\n};\n\n//# sourceURL=webpack:///./node_modules/browserify-des/index.js?");

/***/ }),

/***/ "./node_modules/browserify-des/modes.js":
/*!**********************************************!*\
  !*** ./node_modules/browserify-des/modes.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("exports['des-ecb'] = {\n  key: 8,\n  iv: 0\n};\nexports['des-cbc'] = exports.des = {\n  key: 8,\n  iv: 8\n};\nexports['des-ede3-cbc'] = exports.des3 = {\n  key: 24,\n  iv: 8\n};\nexports['des-ede3'] = {\n  key: 24,\n  iv: 0\n};\nexports['des-ede-cbc'] = {\n  key: 16,\n  iv: 8\n};\nexports['des-ede'] = {\n  key: 16,\n  iv: 0\n};\n\n//# sourceURL=webpack:///./node_modules/browserify-des/modes.js?");

/***/ }),

/***/ "./node_modules/browserify-rsa/index.js":
/*!**********************************************!*\
  !*** ./node_modules/browserify-rsa/index.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var BN = __webpack_require__(/*! bn.js */ \"./node_modules/bn.js/lib/bn.js\");\n\nvar randomBytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\n\nfunction blind(priv) {\n  var r = getr(priv);\n  var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();\n  return {\n    blinder: blinder,\n    unblinder: r.invm(priv.modulus)\n  };\n}\n\nfunction getr(priv) {\n  var len = priv.modulus.byteLength();\n  var r;\n\n  do {\n    r = new BN(randomBytes(len));\n  } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\n  return r;\n}\n\nfunction crt(msg, priv) {\n  var blinds = blind(priv);\n  var len = priv.modulus.byteLength();\n  var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);\n  var c1 = blinded.toRed(BN.mont(priv.prime1));\n  var c2 = blinded.toRed(BN.mont(priv.prime2));\n  var qinv = priv.coefficient;\n  var p = priv.prime1;\n  var q = priv.prime2;\n  var m1 = c1.redPow(priv.exponent1).fromRed();\n  var m2 = c2.redPow(priv.exponent2).fromRed();\n  var h = m1.isub(m2).imul(qinv).umod(p).imul(q);\n  return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);\n}\n\ncrt.getr = getr;\nmodule.exports = crt;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/browserify-rsa/index.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/algos.js":
/*!***********************************************!*\
  !*** ./node_modules/browserify-sign/algos.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = __webpack_require__(/*! ./browser/algorithms.json */ \"./node_modules/browserify-sign/browser/algorithms.json\");\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/algos.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/browser/algorithms.json":
/*!**************************************************************!*\
  !*** ./node_modules/browserify-sign/browser/algorithms.json ***!
  \**************************************************************/
/*! exports provided: sha224WithRSAEncryption, RSA-SHA224, sha256WithRSAEncryption, RSA-SHA256, sha384WithRSAEncryption, RSA-SHA384, sha512WithRSAEncryption, RSA-SHA512, RSA-SHA1, ecdsa-with-SHA1, sha256, sha224, sha384, sha512, DSA-SHA, DSA-SHA1, DSA, DSA-WITH-SHA224, DSA-SHA224, DSA-WITH-SHA256, DSA-SHA256, DSA-WITH-SHA384, DSA-SHA384, DSA-WITH-SHA512, DSA-SHA512, DSA-RIPEMD160, ripemd160WithRSA, RSA-RIPEMD160, md5WithRSAEncryption, RSA-MD5, default */
/***/ (function(module) {

eval("module.exports = JSON.parse(\"{\\\"sha224WithRSAEncryption\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"sha224\\\",\\\"id\\\":\\\"302d300d06096086480165030402040500041c\\\"},\\\"RSA-SHA224\\\":{\\\"sign\\\":\\\"ecdsa/rsa\\\",\\\"hash\\\":\\\"sha224\\\",\\\"id\\\":\\\"302d300d06096086480165030402040500041c\\\"},\\\"sha256WithRSAEncryption\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"sha256\\\",\\\"id\\\":\\\"3031300d060960864801650304020105000420\\\"},\\\"RSA-SHA256\\\":{\\\"sign\\\":\\\"ecdsa/rsa\\\",\\\"hash\\\":\\\"sha256\\\",\\\"id\\\":\\\"3031300d060960864801650304020105000420\\\"},\\\"sha384WithRSAEncryption\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"sha384\\\",\\\"id\\\":\\\"3041300d060960864801650304020205000430\\\"},\\\"RSA-SHA384\\\":{\\\"sign\\\":\\\"ecdsa/rsa\\\",\\\"hash\\\":\\\"sha384\\\",\\\"id\\\":\\\"3041300d060960864801650304020205000430\\\"},\\\"sha512WithRSAEncryption\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"sha512\\\",\\\"id\\\":\\\"3051300d060960864801650304020305000440\\\"},\\\"RSA-SHA512\\\":{\\\"sign\\\":\\\"ecdsa/rsa\\\",\\\"hash\\\":\\\"sha512\\\",\\\"id\\\":\\\"3051300d060960864801650304020305000440\\\"},\\\"RSA-SHA1\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"sha1\\\",\\\"id\\\":\\\"3021300906052b0e03021a05000414\\\"},\\\"ecdsa-with-SHA1\\\":{\\\"sign\\\":\\\"ecdsa\\\",\\\"hash\\\":\\\"sha1\\\",\\\"id\\\":\\\"\\\"},\\\"sha256\\\":{\\\"sign\\\":\\\"ecdsa\\\",\\\"hash\\\":\\\"sha256\\\",\\\"id\\\":\\\"\\\"},\\\"sha224\\\":{\\\"sign\\\":\\\"ecdsa\\\",\\\"hash\\\":\\\"sha224\\\",\\\"id\\\":\\\"\\\"},\\\"sha384\\\":{\\\"sign\\\":\\\"ecdsa\\\",\\\"hash\\\":\\\"sha384\\\",\\\"id\\\":\\\"\\\"},\\\"sha512\\\":{\\\"sign\\\":\\\"ecdsa\\\",\\\"hash\\\":\\\"sha512\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-SHA\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha1\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-SHA1\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha1\\\",\\\"id\\\":\\\"\\\"},\\\"DSA\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha1\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-WITH-SHA224\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha224\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-SHA224\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha224\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-WITH-SHA256\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha256\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-SHA256\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha256\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-WITH-SHA384\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha384\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-SHA384\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha384\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-WITH-SHA512\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha512\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-SHA512\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"sha512\\\",\\\"id\\\":\\\"\\\"},\\\"DSA-RIPEMD160\\\":{\\\"sign\\\":\\\"dsa\\\",\\\"hash\\\":\\\"rmd160\\\",\\\"id\\\":\\\"\\\"},\\\"ripemd160WithRSA\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"rmd160\\\",\\\"id\\\":\\\"3021300906052b2403020105000414\\\"},\\\"RSA-RIPEMD160\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"rmd160\\\",\\\"id\\\":\\\"3021300906052b2403020105000414\\\"},\\\"md5WithRSAEncryption\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"md5\\\",\\\"id\\\":\\\"3020300c06082a864886f70d020505000410\\\"},\\\"RSA-MD5\\\":{\\\"sign\\\":\\\"rsa\\\",\\\"hash\\\":\\\"md5\\\",\\\"id\\\":\\\"3020300c06082a864886f70d020505000410\\\"}}\");\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/browser/algorithms.json?");

/***/ }),

/***/ "./node_modules/browserify-sign/browser/curves.json":
/*!**********************************************************!*\
  !*** ./node_modules/browserify-sign/browser/curves.json ***!
  \**********************************************************/
/*! exports provided: 1.3.132.0.10, 1.3.132.0.33, 1.2.840.10045.3.1.1, 1.2.840.10045.3.1.7, 1.3.132.0.34, 1.3.132.0.35, default */
/***/ (function(module) {

eval("module.exports = JSON.parse(\"{\\\"1.3.132.0.10\\\":\\\"secp256k1\\\",\\\"1.3.132.0.33\\\":\\\"p224\\\",\\\"1.2.840.10045.3.1.1\\\":\\\"p192\\\",\\\"1.2.840.10045.3.1.7\\\":\\\"p256\\\",\\\"1.3.132.0.34\\\":\\\"p384\\\",\\\"1.3.132.0.35\\\":\\\"p521\\\"}\");\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/browser/curves.json?");

/***/ }),

/***/ "./node_modules/browserify-sign/browser/index.js":
/*!*******************************************************!*\
  !*** ./node_modules/browserify-sign/browser/index.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/browserify-sign/node_modules/safe-buffer/index.js\").Buffer;\n\nvar createHash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\");\n\nvar stream = __webpack_require__(/*! readable-stream */ \"./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar sign = __webpack_require__(/*! ./sign */ \"./node_modules/browserify-sign/browser/sign.js\");\n\nvar verify = __webpack_require__(/*! ./verify */ \"./node_modules/browserify-sign/browser/verify.js\");\n\nvar algorithms = __webpack_require__(/*! ./algorithms.json */ \"./node_modules/browserify-sign/browser/algorithms.json\");\n\nObject.keys(algorithms).forEach(function (key) {\n  algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n  algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n  stream.Writable.call(this);\n  var data = algorithms[algorithm];\n  if (!data) throw new Error('Unknown message digest');\n  this._hashType = data.hash;\n  this._hash = createHash(data.hash);\n  this._tag = data.id;\n  this._signType = data.sign;\n}\n\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n  this._hash.update(data);\n\n  done();\n};\n\nSign.prototype.update = function update(data, enc) {\n  if (typeof data === 'string') data = Buffer.from(data, enc);\n\n  this._hash.update(data);\n\n  return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n  this.end();\n\n  var hash = this._hash.digest();\n\n  var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n  return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n  stream.Writable.call(this);\n  var data = algorithms[algorithm];\n  if (!data) throw new Error('Unknown message digest');\n  this._hash = createHash(data.hash);\n  this._tag = data.id;\n  this._signType = data.sign;\n}\n\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n  this._hash.update(data);\n\n  done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n  if (typeof data === 'string') data = Buffer.from(data, enc);\n\n  this._hash.update(data);\n\n  return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n  if (typeof sig === 'string') sig = Buffer.from(sig, enc);\n  this.end();\n\n  var hash = this._hash.digest();\n\n  return verify(sig, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n  return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n  return new Verify(algorithm);\n}\n\nmodule.exports = {\n  Sign: createSign,\n  Verify: createVerify,\n  createSign: createSign,\n  createVerify: createVerify\n};\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/browser/index.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/browser/sign.js":
/*!******************************************************!*\
  !*** ./node_modules/browserify-sign/browser/sign.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/browserify-sign/node_modules/safe-buffer/index.js\").Buffer;\n\nvar createHmac = __webpack_require__(/*! create-hmac */ \"./node_modules/create-hmac/browser.js\");\n\nvar crt = __webpack_require__(/*! browserify-rsa */ \"./node_modules/browserify-rsa/index.js\");\n\nvar EC = __webpack_require__(/*! elliptic */ \"./node_modules/elliptic/lib/elliptic.js\").ec;\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/bn.js/lib/bn.js\");\n\nvar parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\");\n\nvar curves = __webpack_require__(/*! ./curves.json */ \"./node_modules/browserify-sign/browser/curves.json\");\n\nfunction sign(hash, key, hashType, signType, tag) {\n  var priv = parseKeys(key);\n\n  if (priv.curve) {\n    // rsa keys can be interpreted as ecdsa ones in openssl\n    if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type');\n    return ecSign(hash, priv);\n  } else if (priv.type === 'dsa') {\n    if (signType !== 'dsa') throw new Error('wrong private key type');\n    return dsaSign(hash, priv, hashType);\n  } else {\n    if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type');\n  }\n\n  hash = Buffer.concat([tag, hash]);\n  var len = priv.modulus.byteLength();\n  var pad = [0, 1];\n\n  while (hash.length + pad.length + 1 < len) pad.push(0xff);\n\n  pad.push(0x00);\n  var i = -1;\n\n  while (++i < hash.length) pad.push(hash[i]);\n\n  var out = crt(pad, priv);\n  return out;\n}\n\nfunction ecSign(hash, priv) {\n  var curveId = curves[priv.curve.join('.')];\n  if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'));\n  var curve = new EC(curveId);\n  var key = curve.keyFromPrivate(priv.privateKey);\n  var out = key.sign(hash);\n  return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n  var x = priv.params.priv_key;\n  var p = priv.params.p;\n  var q = priv.params.q;\n  var g = priv.params.g;\n  var r = new BN(0);\n  var k;\n  var H = bits2int(hash, q).mod(q);\n  var s = false;\n  var kv = getKey(x, q, hash, algo);\n\n  while (s === false) {\n    k = makeKey(q, kv, algo);\n    r = makeR(g, k, p, q);\n    s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n\n    if (s.cmpn(0) === 0) {\n      s = false;\n      r = new BN(0);\n    }\n  }\n\n  return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n  r = r.toArray();\n  s = s.toArray(); // Pad values\n\n  if (r[0] & 0x80) r = [0].concat(r);\n  if (s[0] & 0x80) s = [0].concat(s);\n  var total = r.length + s.length + 4;\n  var res = [0x30, total, 0x02, r.length];\n  res = res.concat(r, [0x02, s.length], s);\n  return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n  x = Buffer.from(x.toArray());\n\n  if (x.length < q.byteLength()) {\n    var zeros = Buffer.alloc(q.byteLength() - x.length);\n    x = Buffer.concat([zeros, x]);\n  }\n\n  var hlen = hash.length;\n  var hbits = bits2octets(hash, q);\n  var v = Buffer.alloc(hlen);\n  v.fill(1);\n  var k = Buffer.alloc(hlen);\n  k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n  v = createHmac(algo, k).update(v).digest();\n  k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n  v = createHmac(algo, k).update(v).digest();\n  return {\n    k: k,\n    v: v\n  };\n}\n\nfunction bits2int(obits, q) {\n  var bits = new BN(obits);\n  var shift = (obits.length << 3) - q.bitLength();\n  if (shift > 0) bits.ishrn(shift);\n  return bits;\n}\n\nfunction bits2octets(bits, q) {\n  bits = bits2int(bits, q);\n  bits = bits.mod(q);\n  var out = Buffer.from(bits.toArray());\n\n  if (out.length < q.byteLength()) {\n    var zeros = Buffer.alloc(q.byteLength() - out.length);\n    out = Buffer.concat([zeros, out]);\n  }\n\n  return out;\n}\n\nfunction makeKey(q, kv, algo) {\n  var t;\n  var k;\n\n  do {\n    t = Buffer.alloc(0);\n\n    while (t.length * 8 < q.bitLength()) {\n      kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n      t = Buffer.concat([t, kv.v]);\n    }\n\n    k = bits2int(t, q);\n    kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n    kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n  } while (k.cmp(q) !== -1);\n\n  return k;\n}\n\nfunction makeR(g, k, p, q) {\n  return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/browser/sign.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/browser/verify.js":
/*!********************************************************!*\
  !*** ./node_modules/browserify-sign/browser/verify.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/browserify-sign/node_modules/safe-buffer/index.js\").Buffer;\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/bn.js/lib/bn.js\");\n\nvar EC = __webpack_require__(/*! elliptic */ \"./node_modules/elliptic/lib/elliptic.js\").ec;\n\nvar parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\");\n\nvar curves = __webpack_require__(/*! ./curves.json */ \"./node_modules/browserify-sign/browser/curves.json\");\n\nfunction verify(sig, hash, key, signType, tag) {\n  var pub = parseKeys(key);\n\n  if (pub.type === 'ec') {\n    // rsa keys can be interpreted as ecdsa ones in openssl\n    if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type');\n    return ecVerify(sig, hash, pub);\n  } else if (pub.type === 'dsa') {\n    if (signType !== 'dsa') throw new Error('wrong public key type');\n    return dsaVerify(sig, hash, pub);\n  } else {\n    if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type');\n  }\n\n  hash = Buffer.concat([tag, hash]);\n  var len = pub.modulus.byteLength();\n  var pad = [1];\n  var padNum = 0;\n\n  while (hash.length + pad.length + 2 < len) {\n    pad.push(0xff);\n    padNum++;\n  }\n\n  pad.push(0x00);\n  var i = -1;\n\n  while (++i < hash.length) {\n    pad.push(hash[i]);\n  }\n\n  pad = Buffer.from(pad);\n  var red = BN.mont(pub.modulus);\n  sig = new BN(sig).toRed(red);\n  sig = sig.redPow(new BN(pub.publicExponent));\n  sig = Buffer.from(sig.fromRed().toArray());\n  var out = padNum < 8 ? 1 : 0;\n  len = Math.min(sig.length, pad.length);\n  if (sig.length !== pad.length) out = 1;\n  i = -1;\n\n  while (++i < len) out |= sig[i] ^ pad[i];\n\n  return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n  var curveId = curves[pub.data.algorithm.curve.join('.')];\n  if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'));\n  var curve = new EC(curveId);\n  var pubkey = pub.data.subjectPrivateKey.data;\n  return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n  var p = pub.data.p;\n  var q = pub.data.q;\n  var g = pub.data.g;\n  var y = pub.data.pub_key;\n  var unpacked = parseKeys.signature.decode(sig, 'der');\n  var s = unpacked.s;\n  var r = unpacked.r;\n  checkValue(s, q);\n  checkValue(r, q);\n  var montp = BN.mont(p);\n  var w = s.invm(q);\n  var v = g.toRed(montp).redPow(new BN(hash).mul(w).mod(q)).fromRed().mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()).mod(p).mod(q);\n  return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n  if (b.cmpn(0) <= 0) throw new Error('invalid sig');\n  if (b.cmp(q) >= q) throw new Error('invalid sig');\n}\n\nmodule.exports = verify;\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/browser/verify.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js ***!
  \*************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n  if (!Base) {\n    Base = Error;\n  }\n\n  function getMessage(arg1, arg2, arg3) {\n    if (typeof message === 'string') {\n      return message;\n    } else {\n      return message(arg1, arg2, arg3);\n    }\n  }\n\n  var NodeError = /*#__PURE__*/function (_Base) {\n    _inheritsLoose(NodeError, _Base);\n\n    function NodeError(arg1, arg2, arg3) {\n      return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n    }\n\n    return NodeError;\n  }(Base);\n\n  NodeError.prototype.name = Base.name;\n  NodeError.prototype.code = code;\n  codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n  if (Array.isArray(expected)) {\n    var len = expected.length;\n    expected = expected.map(function (i) {\n      return String(i);\n    });\n\n    if (len > 2) {\n      return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n    } else if (len === 2) {\n      return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n    } else {\n      return \"of \".concat(thing, \" \").concat(expected[0]);\n    }\n  } else {\n    return \"of \".concat(thing, \" \").concat(String(expected));\n  }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n  return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n  if (this_len === undefined || this_len > str.length) {\n    this_len = str.length;\n  }\n\n  return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n  if (typeof start !== 'number') {\n    start = 0;\n  }\n\n  if (start + search.length > str.length) {\n    return false;\n  } else {\n    return str.indexOf(search, start) !== -1;\n  }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n  return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n  // determiner: 'must be' or 'must not be'\n  var determiner;\n\n  if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n    determiner = 'must not be';\n    expected = expected.replace(/^not /, '');\n  } else {\n    determiner = 'must be';\n  }\n\n  var msg;\n\n  if (endsWith(name, ' argument')) {\n    // For cases like 'first argument'\n    msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  } else {\n    var type = includes(name, '.') ? 'property' : 'argument';\n    msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  }\n\n  msg += \". Received type \".concat(typeof actual);\n  return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n  return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n  return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n  return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js":
/*!*****************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js ***!
  \*****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(process) {// 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// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n/*<replacement>*/\n\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n\n  for (var key in obj) {\n    keys.push(key);\n  }\n\n  return keys;\n};\n/*</replacement>*/\n\n\nmodule.exports = Duplex;\n\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js\");\n\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Duplex, Readable);\n\n{\n  // Allow the keys array to be GC'ed.\n  var keys = objectKeys(Writable.prototype);\n\n  for (var v = 0; v < keys.length; v++) {\n    var method = keys[v];\n    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n  }\n}\n\nfunction Duplex(options) {\n  if (!(this instanceof Duplex)) return new Duplex(options);\n  Readable.call(this, options);\n  Writable.call(this, options);\n  this.allowHalfOpen = true;\n\n  if (options) {\n    if (options.readable === false) this.readable = false;\n    if (options.writable === false) this.writable = false;\n\n    if (options.allowHalfOpen === false) {\n      this.allowHalfOpen = false;\n      this.once('end', onend);\n    }\n  }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n}); // the no-half-open enforcer\n\nfunction onend() {\n  // If the writable side ended, then we're ok.\n  if (this._writableState.ended) return; // no more data can be written.\n  // But allow more writes to happen in this tick.\n\n  process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n  self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return false;\n    }\n\n    return this._readableState.destroyed && this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return;\n    } // backward compatibility, the user is explicitly\n    // managing destroyed\n\n\n    this._readableState.destroyed = value;\n    this._writableState.destroyed = value;\n  }\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js":
/*!**********************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js ***!
  \**********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// 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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\nmodule.exports = PassThrough;\n\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(PassThrough, Transform);\n\nfunction PassThrough(options) {\n  if (!(this instanceof PassThrough)) return new PassThrough(options);\n  Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n  cb(null, chunk);\n};\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js ***!
  \*******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nmodule.exports = Readable;\n/*<replacement>*/\n\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n/*<replacement>*/\n\nvar EE = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n  return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/*<replacement>*/\n\n\nvar debugUtil = __webpack_require__(/*! util */ 8);\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n  debug = debugUtil.debuglog('stream');\n} else {\n  debug = function debug() {};\n}\n/*</replacement>*/\n\n\nvar BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js\");\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js\"),\n    getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js\").codes,\n    ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n    ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n    ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n    ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n  // Sadly this is not cacheable as some libraries bundle their own\n  // event emitter implementation with them.\n  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n  // userland ones.  NEVER DO THIS. This is here only because this code needs\n  // to continue to work with older versions of Node.js that do not include\n  // the prependListener() method. The goal is to eventually remove this hack.\n\n  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\n  options = options || {}; // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n  // make all the buffer merging and length checks go away\n\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n  // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n  this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n  // linked list can remove elements from the beginning faster than\n  // array.shift()\n\n  this.buffer = new BufferList();\n  this.length = 0;\n  this.pipes = null;\n  this.pipesCount = 0;\n  this.flowing = null;\n  this.ended = false;\n  this.endEmitted = false;\n  this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n  // immediately, or on a later tick.  We set this to true at first, because\n  // any actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first read call.\n\n  this.sync = true; // whenever we return null, then we set a flag to say\n  // that we're awaiting a 'readable' event emission.\n\n  this.needReadable = false;\n  this.emittedReadable = false;\n  this.readableListening = false;\n  this.resumeScheduled = false;\n  this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n  this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n  this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n  this.destroyed = false; // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n\n  this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n  this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n  this.readingMore = false;\n  this.decoder = null;\n  this.encoding = null;\n\n  if (options.encoding) {\n    if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n    this.decoder = new StringDecoder(options.encoding);\n    this.encoding = options.encoding;\n  }\n}\n\nfunction Readable(options) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\n  if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the ReadableState constructor, at least with V8 6.5\n\n  var isDuplex = this instanceof Duplex;\n  this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n  this.readable = true;\n\n  if (options) {\n    if (typeof options.read === 'function') this._read = options.read;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n  }\n\n  Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined) {\n      return false;\n    }\n\n    return this._readableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._readableState) {\n      return;\n    } // backward compatibility, the user is explicitly\n    // managing destroyed\n\n\n    this._readableState.destroyed = value;\n  }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n  cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n  var state = this._readableState;\n  var skipChunkCheck;\n\n  if (!state.objectMode) {\n    if (typeof chunk === 'string') {\n      encoding = encoding || state.defaultEncoding;\n\n      if (encoding !== state.encoding) {\n        chunk = Buffer.from(chunk, encoding);\n        encoding = '';\n      }\n\n      skipChunkCheck = true;\n    }\n  } else {\n    skipChunkCheck = true;\n  }\n\n  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n  return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n  debug('readableAddChunk', chunk);\n  var state = stream._readableState;\n\n  if (chunk === null) {\n    state.reading = false;\n    onEofChunk(stream, state);\n  } else {\n    var er;\n    if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n    if (er) {\n      errorOrDestroy(stream, er);\n    } else if (state.objectMode || chunk && chunk.length > 0) {\n      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n        chunk = _uint8ArrayToBuffer(chunk);\n      }\n\n      if (addToFront) {\n        if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n      } else if (state.ended) {\n        errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n      } else if (state.destroyed) {\n        return false;\n      } else {\n        state.reading = false;\n\n        if (state.decoder && !encoding) {\n          chunk = state.decoder.write(chunk);\n          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n        } else {\n          addChunk(stream, state, chunk, false);\n        }\n      }\n    } else if (!addToFront) {\n      state.reading = false;\n      maybeReadMore(stream, state);\n    }\n  } // We can push more data if we are below the highWaterMark.\n  // Also, if we have no data yet, we can stand some more bytes.\n  // This is to work around cases where hwm=0, such as the repl.\n\n\n  return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n  if (state.flowing && state.length === 0 && !state.sync) {\n    state.awaitDrain = 0;\n    stream.emit('data', chunk);\n  } else {\n    // update the buffer info.\n    state.length += state.objectMode ? 1 : chunk.length;\n    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n    if (state.needReadable) emitReadable(stream);\n  }\n\n  maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n  var er;\n\n  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n  }\n\n  return er;\n}\n\nReadable.prototype.isPaused = function () {\n  return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n  if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n  var decoder = new StringDecoder(enc);\n  this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n  this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n  var p = this._readableState.buffer.head;\n  var content = '';\n\n  while (p !== null) {\n    content += decoder.write(p.data);\n    p = p.next;\n  }\n\n  this._readableState.buffer.clear();\n\n  if (content !== '') this._readableState.buffer.push(content);\n  this._readableState.length = content.length;\n  return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n  if (n >= MAX_HWM) {\n    // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n    n = MAX_HWM;\n  } else {\n    // Get the next highest power of 2 to prevent increasing hwm excessively in\n    // tiny amounts\n    n--;\n    n |= n >>> 1;\n    n |= n >>> 2;\n    n |= n >>> 4;\n    n |= n >>> 8;\n    n |= n >>> 16;\n    n++;\n  }\n\n  return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n  if (n <= 0 || state.length === 0 && state.ended) return 0;\n  if (state.objectMode) return 1;\n\n  if (n !== n) {\n    // Only flow one buffer at a time\n    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n  } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n  if (n <= state.length) return n; // Don't have enough\n\n  if (!state.ended) {\n    state.needReadable = true;\n    return 0;\n  }\n\n  return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n  debug('read', n);\n  n = parseInt(n, 10);\n  var state = this._readableState;\n  var nOrig = n;\n  if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n  // already have a bunch of data in the buffer, then just trigger\n  // the 'readable' event and move on.\n\n  if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n    debug('read: emitReadable', state.length, state.ended);\n    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n    return null;\n  }\n\n  n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n  if (n === 0 && state.ended) {\n    if (state.length === 0) endReadable(this);\n    return null;\n  } // All the actual chunk generation logic needs to be\n  // *below* the call to _read.  The reason is that in certain\n  // synthetic stream cases, such as passthrough streams, _read\n  // may be a completely synchronous operation which may change\n  // the state of the read buffer, providing enough data when\n  // before there was *not* enough.\n  //\n  // So, the steps are:\n  // 1. Figure out what the state of things will be after we do\n  // a read from the buffer.\n  //\n  // 2. If that resulting state will trigger a _read, then call _read.\n  // Note that this may be asynchronous, or synchronous.  Yes, it is\n  // deeply ugly to write APIs this way, but that still doesn't mean\n  // that the Readable class should behave improperly, as streams are\n  // designed to be sync/async agnostic.\n  // Take note if the _read call is sync or async (ie, if the read call\n  // has returned yet), so that we know whether or not it's safe to emit\n  // 'readable' etc.\n  //\n  // 3. Actually pull the requested chunks out of the buffer and return.\n  // if we need a readable event, then we need to do some reading.\n\n\n  var doRead = state.needReadable;\n  debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\n    doRead = true;\n    debug('length less than watermark', doRead);\n  } // however, if we've ended, then there's no point, and if we're already\n  // reading, then it's unnecessary.\n\n\n  if (state.ended || state.reading) {\n    doRead = false;\n    debug('reading or ended', doRead);\n  } else if (doRead) {\n    debug('do read');\n    state.reading = true;\n    state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n    if (state.length === 0) state.needReadable = true; // call internal read method\n\n    this._read(state.highWaterMark);\n\n    state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n    // and we need to re-evaluate how much data we can return to the user.\n\n    if (!state.reading) n = howMuchToRead(nOrig, state);\n  }\n\n  var ret;\n  if (n > 0) ret = fromList(n, state);else ret = null;\n\n  if (ret === null) {\n    state.needReadable = state.length <= state.highWaterMark;\n    n = 0;\n  } else {\n    state.length -= n;\n    state.awaitDrain = 0;\n  }\n\n  if (state.length === 0) {\n    // If we have nothing in the buffer, then we want to know\n    // as soon as we *do* get something into the buffer.\n    if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n    if (nOrig !== n && state.ended) endReadable(this);\n  }\n\n  if (ret !== null) this.emit('data', ret);\n  return ret;\n};\n\nfunction onEofChunk(stream, state) {\n  debug('onEofChunk');\n  if (state.ended) return;\n\n  if (state.decoder) {\n    var chunk = state.decoder.end();\n\n    if (chunk && chunk.length) {\n      state.buffer.push(chunk);\n      state.length += state.objectMode ? 1 : chunk.length;\n    }\n  }\n\n  state.ended = true;\n\n  if (state.sync) {\n    // if we are sync, wait until next tick to emit the data.\n    // Otherwise we risk emitting data in the flow()\n    // the readable code triggers during a read() call\n    emitReadable(stream);\n  } else {\n    // emit 'readable' now to make sure it gets picked up.\n    state.needReadable = false;\n\n    if (!state.emittedReadable) {\n      state.emittedReadable = true;\n      emitReadable_(stream);\n    }\n  }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n  var state = stream._readableState;\n  debug('emitReadable', state.needReadable, state.emittedReadable);\n  state.needReadable = false;\n\n  if (!state.emittedReadable) {\n    debug('emitReadable', state.flowing);\n    state.emittedReadable = true;\n    process.nextTick(emitReadable_, stream);\n  }\n}\n\nfunction emitReadable_(stream) {\n  var state = stream._readableState;\n  debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n  if (!state.destroyed && (state.length || state.ended)) {\n    stream.emit('readable');\n    state.emittedReadable = false;\n  } // The stream needs another readable event if\n  // 1. It is not flowing, as the flow mechanism will take\n  //    care of it.\n  // 2. It is not ended.\n  // 3. It is below the highWaterMark, so we can schedule\n  //    another readable later.\n\n\n  state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n  flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n  if (!state.readingMore) {\n    state.readingMore = true;\n    process.nextTick(maybeReadMore_, stream, state);\n  }\n}\n\nfunction maybeReadMore_(stream, state) {\n  // Attempt to read more data if we should.\n  //\n  // The conditions for reading more data are (one of):\n  // - Not enough data buffered (state.length < state.highWaterMark). The loop\n  //   is responsible for filling the buffer with enough data if such data\n  //   is available. If highWaterMark is 0 and we are not in the flowing mode\n  //   we should _not_ attempt to buffer any extra data. We'll get more data\n  //   when the stream consumer calls read() instead.\n  // - No data in the buffer, and the stream is in flowing mode. In this mode\n  //   the loop below is responsible for ensuring read() is called. Failing to\n  //   call read here would abort the flow and there's no other mechanism for\n  //   continuing the flow if the stream consumer has just subscribed to the\n  //   'data' event.\n  //\n  // In addition to the above conditions to keep reading data, the following\n  // conditions prevent the data from being read:\n  // - The stream has ended (state.ended).\n  // - There is already a pending 'read' operation (state.reading). This is a\n  //   case where the the stream has called the implementation defined _read()\n  //   method, but they are processing the call asynchronously and have _not_\n  //   called push() with new data. In this case we skip performing more\n  //   read()s. The execution ends in this method again after the _read() ends\n  //   up calling push() with more data.\n  while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n    var len = state.length;\n    debug('maybeReadMore read 0');\n    stream.read(0);\n    if (len === state.length) // didn't get any data, stop spinning.\n      break;\n  }\n\n  state.readingMore = false;\n} // abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n  errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n  var src = this;\n  var state = this._readableState;\n\n  switch (state.pipesCount) {\n    case 0:\n      state.pipes = dest;\n      break;\n\n    case 1:\n      state.pipes = [state.pipes, dest];\n      break;\n\n    default:\n      state.pipes.push(dest);\n      break;\n  }\n\n  state.pipesCount += 1;\n  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n  var endFn = doEnd ? onend : unpipe;\n  if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n  dest.on('unpipe', onunpipe);\n\n  function onunpipe(readable, unpipeInfo) {\n    debug('onunpipe');\n\n    if (readable === src) {\n      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n        unpipeInfo.hasUnpiped = true;\n        cleanup();\n      }\n    }\n  }\n\n  function onend() {\n    debug('onend');\n    dest.end();\n  } // when the dest drains, it reduces the awaitDrain counter\n  // on the source.  This would be more elegant with a .once()\n  // handler in flow(), but adding and removing repeatedly is\n  // too slow.\n\n\n  var ondrain = pipeOnDrain(src);\n  dest.on('drain', ondrain);\n  var cleanedUp = false;\n\n  function cleanup() {\n    debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n    dest.removeListener('close', onclose);\n    dest.removeListener('finish', onfinish);\n    dest.removeListener('drain', ondrain);\n    dest.removeListener('error', onerror);\n    dest.removeListener('unpipe', onunpipe);\n    src.removeListener('end', onend);\n    src.removeListener('end', unpipe);\n    src.removeListener('data', ondata);\n    cleanedUp = true; // if the reader is waiting for a drain event from this\n    // specific writer, then it would cause it to never start\n    // flowing again.\n    // So, if this is awaiting a drain, then we just call it now.\n    // If we don't know, then assume that we are waiting for one.\n\n    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n  }\n\n  src.on('data', ondata);\n\n  function ondata(chunk) {\n    debug('ondata');\n    var ret = dest.write(chunk);\n    debug('dest.write', ret);\n\n    if (ret === false) {\n      // If the user unpiped during `dest.write()`, it is possible\n      // to get stuck in a permanently paused state if that write\n      // also returned false.\n      // => Check whether `dest` is still a piping destination.\n      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n        debug('false write response, pause', state.awaitDrain);\n        state.awaitDrain++;\n      }\n\n      src.pause();\n    }\n  } // if the dest has an error, then stop piping into it.\n  // however, don't suppress the throwing behavior for this.\n\n\n  function onerror(er) {\n    debug('onerror', er);\n    unpipe();\n    dest.removeListener('error', onerror);\n    if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n  } // Make sure our error handler is attached before userland ones.\n\n\n  prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n  function onclose() {\n    dest.removeListener('finish', onfinish);\n    unpipe();\n  }\n\n  dest.once('close', onclose);\n\n  function onfinish() {\n    debug('onfinish');\n    dest.removeListener('close', onclose);\n    unpipe();\n  }\n\n  dest.once('finish', onfinish);\n\n  function unpipe() {\n    debug('unpipe');\n    src.unpipe(dest);\n  } // tell the dest that it's being piped to\n\n\n  dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n  if (!state.flowing) {\n    debug('pipe resume');\n    src.resume();\n  }\n\n  return dest;\n};\n\nfunction pipeOnDrain(src) {\n  return function pipeOnDrainFunctionResult() {\n    var state = src._readableState;\n    debug('pipeOnDrain', state.awaitDrain);\n    if (state.awaitDrain) state.awaitDrain--;\n\n    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n      state.flowing = true;\n      flow(src);\n    }\n  };\n}\n\nReadable.prototype.unpipe = function (dest) {\n  var state = this._readableState;\n  var unpipeInfo = {\n    hasUnpiped: false\n  }; // if we're not piping anywhere, then do nothing.\n\n  if (state.pipesCount === 0) return this; // just one destination.  most common case.\n\n  if (state.pipesCount === 1) {\n    // passed in one, but it's not the right one.\n    if (dest && dest !== state.pipes) return this;\n    if (!dest) dest = state.pipes; // got a match.\n\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    if (dest) dest.emit('unpipe', this, unpipeInfo);\n    return this;\n  } // slow case. multiple pipe destinations.\n\n\n  if (!dest) {\n    // remove all.\n    var dests = state.pipes;\n    var len = state.pipesCount;\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n\n    for (var i = 0; i < len; i++) {\n      dests[i].emit('unpipe', this, {\n        hasUnpiped: false\n      });\n    }\n\n    return this;\n  } // try to find the right one.\n\n\n  var index = indexOf(state.pipes, dest);\n  if (index === -1) return this;\n  state.pipes.splice(index, 1);\n  state.pipesCount -= 1;\n  if (state.pipesCount === 1) state.pipes = state.pipes[0];\n  dest.emit('unpipe', this, unpipeInfo);\n  return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n  var res = Stream.prototype.on.call(this, ev, fn);\n  var state = this._readableState;\n\n  if (ev === 'data') {\n    // update readableListening so that resume() may be a no-op\n    // a few lines down. This is needed to support once('readable').\n    state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n    if (state.flowing !== false) this.resume();\n  } else if (ev === 'readable') {\n    if (!state.endEmitted && !state.readableListening) {\n      state.readableListening = state.needReadable = true;\n      state.flowing = false;\n      state.emittedReadable = false;\n      debug('on readable', state.length, state.reading);\n\n      if (state.length) {\n        emitReadable(this);\n      } else if (!state.reading) {\n        process.nextTick(nReadingNextTick, this);\n      }\n    }\n  }\n\n  return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n  var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n  if (ev === 'readable') {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n\n  return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n  var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n  if (ev === 'readable' || ev === undefined) {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n\n  return res;\n};\n\nfunction updateReadableListening(self) {\n  var state = self._readableState;\n  state.readableListening = self.listenerCount('readable') > 0;\n\n  if (state.resumeScheduled && !state.paused) {\n    // flowing needs to be set to true now, otherwise\n    // the upcoming resume will not flow.\n    state.flowing = true; // crude way to check if we should resume\n  } else if (self.listenerCount('data') > 0) {\n    self.resume();\n  }\n}\n\nfunction nReadingNextTick(self) {\n  debug('readable nexttick read 0');\n  self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n  var state = this._readableState;\n\n  if (!state.flowing) {\n    debug('resume'); // we flow only if there is no one listening\n    // for readable, but we still have to call\n    // resume()\n\n    state.flowing = !state.readableListening;\n    resume(this, state);\n  }\n\n  state.paused = false;\n  return this;\n};\n\nfunction resume(stream, state) {\n  if (!state.resumeScheduled) {\n    state.resumeScheduled = true;\n    process.nextTick(resume_, stream, state);\n  }\n}\n\nfunction resume_(stream, state) {\n  debug('resume', state.reading);\n\n  if (!state.reading) {\n    stream.read(0);\n  }\n\n  state.resumeScheduled = false;\n  stream.emit('resume');\n  flow(stream);\n  if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n  debug('call pause flowing=%j', this._readableState.flowing);\n\n  if (this._readableState.flowing !== false) {\n    debug('pause');\n    this._readableState.flowing = false;\n    this.emit('pause');\n  }\n\n  this._readableState.paused = true;\n  return this;\n};\n\nfunction flow(stream) {\n  var state = stream._readableState;\n  debug('flow', state.flowing);\n\n  while (state.flowing && stream.read() !== null) {\n    ;\n  }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n  var _this = this;\n\n  var state = this._readableState;\n  var paused = false;\n  stream.on('end', function () {\n    debug('wrapped end');\n\n    if (state.decoder && !state.ended) {\n      var chunk = state.decoder.end();\n      if (chunk && chunk.length) _this.push(chunk);\n    }\n\n    _this.push(null);\n  });\n  stream.on('data', function (chunk) {\n    debug('wrapped data');\n    if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n    var ret = _this.push(chunk);\n\n    if (!ret) {\n      paused = true;\n      stream.pause();\n    }\n  }); // proxy all the other methods.\n  // important when wrapping filters and duplexes.\n\n  for (var i in stream) {\n    if (this[i] === undefined && typeof stream[i] === 'function') {\n      this[i] = function methodWrap(method) {\n        return function methodWrapReturnFunction() {\n          return stream[method].apply(stream, arguments);\n        };\n      }(i);\n    }\n  } // proxy certain important events.\n\n\n  for (var n = 0; n < kProxyEvents.length; n++) {\n    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n  } // when we try to consume some more bytes, simply unpause the\n  // underlying stream.\n\n\n  this._read = function (n) {\n    debug('wrapped _read', n);\n\n    if (paused) {\n      paused = false;\n      stream.resume();\n    }\n  };\n\n  return this;\n};\n\nif (typeof Symbol === 'function') {\n  Readable.prototype[Symbol.asyncIterator] = function () {\n    if (createReadableStreamAsyncIterator === undefined) {\n      createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js\");\n    }\n\n    return createReadableStreamAsyncIterator(this);\n  };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.highWaterMark;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState && this._readableState.buffer;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.flowing;\n  },\n  set: function set(state) {\n    if (this._readableState) {\n      this._readableState.flowing = state;\n    }\n  }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.length;\n  }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n  // nothing buffered\n  if (state.length === 0) return null;\n  var ret;\n  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n    // read it all, truncate the list\n    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n    state.buffer.clear();\n  } else {\n    // read part of list\n    ret = state.buffer.consume(n, state.decoder);\n  }\n  return ret;\n}\n\nfunction endReadable(stream) {\n  var state = stream._readableState;\n  debug('endReadable', state.endEmitted);\n\n  if (!state.endEmitted) {\n    state.ended = true;\n    process.nextTick(endReadableNT, state, stream);\n  }\n}\n\nfunction endReadableNT(state, stream) {\n  debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n  if (!state.endEmitted && state.length === 0) {\n    state.endEmitted = true;\n    stream.readable = false;\n    stream.emit('end');\n\n    if (state.autoDestroy) {\n      // In case of duplex streams we need a way to detect\n      // if the writable side is ready for autoDestroy as well\n      var wState = stream._writableState;\n\n      if (!wState || wState.autoDestroy && wState.finished) {\n        stream.destroy();\n      }\n    }\n  }\n}\n\nif (typeof Symbol === 'function') {\n  Readable.from = function (iterable, opts) {\n    if (from === undefined) {\n      from = __webpack_require__(/*! ./internal/streams/from */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js\");\n    }\n\n    return from(Readable, iterable, opts);\n  };\n}\n\nfunction indexOf(xs, x) {\n  for (var i = 0, l = xs.length; i < l; i++) {\n    if (xs[i] === x) return i;\n  }\n\n  return -1;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js":
/*!********************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js ***!
  \********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// 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// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nmodule.exports = Transform;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js\").codes,\n    ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n    ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n    ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n    ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n  var ts = this._transformState;\n  ts.transforming = false;\n  var cb = ts.writecb;\n\n  if (cb === null) {\n    return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n  }\n\n  ts.writechunk = null;\n  ts.writecb = null;\n  if (data != null) // single equals check for both `null` and `undefined`\n    this.push(data);\n  cb(er);\n  var rs = this._readableState;\n  rs.reading = false;\n\n  if (rs.needReadable || rs.length < rs.highWaterMark) {\n    this._read(rs.highWaterMark);\n  }\n}\n\nfunction Transform(options) {\n  if (!(this instanceof Transform)) return new Transform(options);\n  Duplex.call(this, options);\n  this._transformState = {\n    afterTransform: afterTransform.bind(this),\n    needTransform: false,\n    transforming: false,\n    writecb: null,\n    writechunk: null,\n    writeencoding: null\n  }; // start out asking for a readable event once data is transformed.\n\n  this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n  // that Readable wants before the first _read call, so unset the\n  // sync guard flag.\n\n  this._readableState.sync = false;\n\n  if (options) {\n    if (typeof options.transform === 'function') this._transform = options.transform;\n    if (typeof options.flush === 'function') this._flush = options.flush;\n  } // When the writable side finishes, then flush out anything remaining.\n\n\n  this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n  var _this = this;\n\n  if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n    this._flush(function (er, data) {\n      done(_this, er, data);\n    });\n  } else {\n    done(this, null, null);\n  }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n  this._transformState.needTransform = false;\n  return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side.  You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk.  If you pass\n// an error, then that'll put the hurt on the whole operation.  If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n  var ts = this._transformState;\n  ts.writecb = cb;\n  ts.writechunk = chunk;\n  ts.writeencoding = encoding;\n\n  if (!ts.transforming) {\n    var rs = this._readableState;\n    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n  }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n  var ts = this._transformState;\n\n  if (ts.writechunk !== null && !ts.transforming) {\n    ts.transforming = true;\n\n    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n  } else {\n    // mark that we need a transform, so that any data that comes in\n    // will get processed, now that we've asked for it.\n    ts.needTransform = true;\n  }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n  Duplex.prototype._destroy.call(this, err, function (err2) {\n    cb(err2);\n  });\n};\n\nfunction done(stream, er, data) {\n  if (er) return stream.emit('error', er);\n  if (data != null) // single equals check for both `null` and `undefined`\n    stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n  // if there's nothing in the write buffer, then that means\n  // that nothing more will ever be provided\n\n  if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n  if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n  return stream.push(null);\n}\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js ***!
  \*******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global, process) {// 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// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\nmodule.exports = Writable;\n/* <replacement> */\n\nfunction WriteReq(chunk, encoding, cb) {\n  this.chunk = chunk;\n  this.encoding = encoding;\n  this.callback = cb;\n  this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n  var _this = this;\n\n  this.next = null;\n  this.entry = null;\n\n  this.finish = function () {\n    onCorkedFinish(_this, state);\n  };\n}\n/* </replacement> */\n\n/*<replacement>*/\n\n\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n/*<replacement>*/\n\nvar internalUtil = {\n  deprecate: __webpack_require__(/*! util-deprecate */ \"./node_modules/util-deprecate/browser.js\")\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js\"),\n    getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js\").codes,\n    ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n    ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n    ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n    ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n    ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n    ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n    ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n    ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\n  options = options || {}; // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream,\n  // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n  // contains buffers or objects.\n\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n  // Note: 0 is a valid value, means that we always return false if\n  // the entire buffer is not flushed immediately on write()\n\n  this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n  this.finalCalled = false; // drain event flag.\n\n  this.needDrain = false; // at the start of calling end()\n\n  this.ending = false; // when end() has been called, and returned\n\n  this.ended = false; // when 'finish' is emitted\n\n  this.finished = false; // has it been destroyed\n\n  this.destroyed = false; // should we decode strings into buffers before passing to _write?\n  // this is here so that some node-core streams can optimize string\n  // handling at a lower level.\n\n  var noDecode = options.decodeStrings === false;\n  this.decodeStrings = !noDecode; // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n\n  this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n  // of how much we're waiting to get pushed to some underlying\n  // socket or file.\n\n  this.length = 0; // a flag to see when we're in the middle of a write.\n\n  this.writing = false; // when true all writes will be buffered until .uncork() call\n\n  this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n  // or on a later tick.  We set this to true at first, because any\n  // actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first write call.\n\n  this.sync = true; // a flag to know if we're processing previously buffered items, which\n  // may call the _write() callback in the same tick, so that we don't\n  // end up in an overlapped onwrite situation.\n\n  this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n  this.onwrite = function (er) {\n    onwrite(stream, er);\n  }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n  this.writecb = null; // the amount that is being written when _write is called.\n\n  this.writelen = 0;\n  this.bufferedRequest = null;\n  this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n  // this must be 0 before 'finish' can be emitted\n\n  this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n  // This is relevant for synchronous Transform streams\n\n  this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n  this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n  this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n  this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n  this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n  // one allocated and free to use, and we maintain at most two\n\n  this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n  var current = this.bufferedRequest;\n  var out = [];\n\n  while (current) {\n    out.push(current);\n    current = current.next;\n  }\n\n  return out;\n};\n\n(function () {\n  try {\n    Object.defineProperty(WritableState.prototype, 'buffer', {\n      get: internalUtil.deprecate(function writableStateBufferGetter() {\n        return this.getBuffer();\n      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n    });\n  } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n  realHasInstance = Function.prototype[Symbol.hasInstance];\n  Object.defineProperty(Writable, Symbol.hasInstance, {\n    value: function value(object) {\n      if (realHasInstance.call(this, object)) return true;\n      if (this !== Writable) return false;\n      return object && object._writableState instanceof WritableState;\n    }\n  });\n} else {\n  realHasInstance = function realHasInstance(object) {\n    return object instanceof this;\n  };\n}\n\nfunction Writable(options) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\"); // Writable ctor is applied to Duplexes, too.\n  // `realHasInstance` is necessary because using plain `instanceof`\n  // would return false, as no `_writableState` property is attached.\n  // Trying to use the custom `instanceof` for Writable here will also break the\n  // Node.js LazyTransform implementation, which has a non-trivial getter for\n  // `_writableState` that would lead to infinite recursion.\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the WritableState constructor, at least with V8 6.5\n\n  var isDuplex = this instanceof Duplex;\n  if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n  this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n  this.writable = true;\n\n  if (options) {\n    if (typeof options.write === 'function') this._write = options.write;\n    if (typeof options.writev === 'function') this._writev = options.writev;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n    if (typeof options.final === 'function') this._final = options.final;\n  }\n\n  Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n  errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n  var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n  errorOrDestroy(stream, er);\n  process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n  var er;\n\n  if (chunk === null) {\n    er = new ERR_STREAM_NULL_VALUES();\n  } else if (typeof chunk !== 'string' && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n  }\n\n  if (er) {\n    errorOrDestroy(stream, er);\n    process.nextTick(cb, er);\n    return false;\n  }\n\n  return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  var ret = false;\n\n  var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n  if (isBuf && !Buffer.isBuffer(chunk)) {\n    chunk = _uint8ArrayToBuffer(chunk);\n  }\n\n  if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n  if (typeof cb !== 'function') cb = nop;\n  if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n    state.pendingcb++;\n    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n  }\n  return ret;\n};\n\nWritable.prototype.cork = function () {\n  this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n  var state = this._writableState;\n\n  if (state.corked) {\n    state.corked--;\n    if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n  }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n  // node::ParseEncoding() requires lower case.\n  if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n  this._writableState.defaultEncoding = encoding;\n  return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n    chunk = Buffer.from(chunk, encoding);\n  }\n\n  return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n  if (!isBuf) {\n    var newChunk = decodeChunk(state, chunk, encoding);\n\n    if (chunk !== newChunk) {\n      isBuf = true;\n      encoding = 'buffer';\n      chunk = newChunk;\n    }\n  }\n\n  var len = state.objectMode ? 1 : chunk.length;\n  state.length += len;\n  var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n  if (!ret) state.needDrain = true;\n\n  if (state.writing || state.corked) {\n    var last = state.lastBufferedRequest;\n    state.lastBufferedRequest = {\n      chunk: chunk,\n      encoding: encoding,\n      isBuf: isBuf,\n      callback: cb,\n      next: null\n    };\n\n    if (last) {\n      last.next = state.lastBufferedRequest;\n    } else {\n      state.bufferedRequest = state.lastBufferedRequest;\n    }\n\n    state.bufferedRequestCount += 1;\n  } else {\n    doWrite(stream, state, false, len, chunk, encoding, cb);\n  }\n\n  return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n  state.writelen = len;\n  state.writecb = cb;\n  state.writing = true;\n  state.sync = true;\n  if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n  state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n  --state.pendingcb;\n\n  if (sync) {\n    // defer the callback if we are being called synchronously\n    // to avoid piling up things on the stack\n    process.nextTick(cb, er); // this can emit finish, and it will always happen\n    // after error\n\n    process.nextTick(finishMaybe, stream, state);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er);\n  } else {\n    // the caller expect this to happen before if\n    // it is async\n    cb(er);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er); // this can emit finish, but finish must\n    // always follow error\n\n    finishMaybe(stream, state);\n  }\n}\n\nfunction onwriteStateUpdate(state) {\n  state.writing = false;\n  state.writecb = null;\n  state.length -= state.writelen;\n  state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n  var state = stream._writableState;\n  var sync = state.sync;\n  var cb = state.writecb;\n  if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n  onwriteStateUpdate(state);\n  if (er) onwriteError(stream, state, sync, er, cb);else {\n    // Check if we're actually ready to finish, but don't emit yet\n    var finished = needFinish(state) || stream.destroyed;\n\n    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n      clearBuffer(stream, state);\n    }\n\n    if (sync) {\n      process.nextTick(afterWrite, stream, state, finished, cb);\n    } else {\n      afterWrite(stream, state, finished, cb);\n    }\n  }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n  if (!finished) onwriteDrain(stream, state);\n  state.pendingcb--;\n  cb();\n  finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n  if (state.length === 0 && state.needDrain) {\n    state.needDrain = false;\n    stream.emit('drain');\n  }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n  state.bufferProcessing = true;\n  var entry = state.bufferedRequest;\n\n  if (stream._writev && entry && entry.next) {\n    // Fast case, write everything using _writev()\n    var l = state.bufferedRequestCount;\n    var buffer = new Array(l);\n    var holder = state.corkedRequestsFree;\n    holder.entry = entry;\n    var count = 0;\n    var allBuffers = true;\n\n    while (entry) {\n      buffer[count] = entry;\n      if (!entry.isBuf) allBuffers = false;\n      entry = entry.next;\n      count += 1;\n    }\n\n    buffer.allBuffers = allBuffers;\n    doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n    // as the hot path ends with doWrite\n\n    state.pendingcb++;\n    state.lastBufferedRequest = null;\n\n    if (holder.next) {\n      state.corkedRequestsFree = holder.next;\n      holder.next = null;\n    } else {\n      state.corkedRequestsFree = new CorkedRequest(state);\n    }\n\n    state.bufferedRequestCount = 0;\n  } else {\n    // Slow case, write chunks one-by-one\n    while (entry) {\n      var chunk = entry.chunk;\n      var encoding = entry.encoding;\n      var cb = entry.callback;\n      var len = state.objectMode ? 1 : chunk.length;\n      doWrite(stream, state, false, len, chunk, encoding, cb);\n      entry = entry.next;\n      state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n      // it means that we need to wait until it does.\n      // also, that means that the chunk and cb are currently\n      // being processed, so move the buffer counter past them.\n\n      if (state.writing) {\n        break;\n      }\n    }\n\n    if (entry === null) state.lastBufferedRequest = null;\n  }\n\n  state.bufferedRequest = entry;\n  state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n  var state = this._writableState;\n\n  if (typeof chunk === 'function') {\n    cb = chunk;\n    chunk = null;\n    encoding = null;\n  } else if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n  if (state.corked) {\n    state.corked = 1;\n    this.uncork();\n  } // ignore unnecessary end() calls.\n\n\n  if (!state.ending) endWritable(this, state, cb);\n  return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n});\n\nfunction needFinish(state) {\n  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n  stream._final(function (err) {\n    state.pendingcb--;\n\n    if (err) {\n      errorOrDestroy(stream, err);\n    }\n\n    state.prefinished = true;\n    stream.emit('prefinish');\n    finishMaybe(stream, state);\n  });\n}\n\nfunction prefinish(stream, state) {\n  if (!state.prefinished && !state.finalCalled) {\n    if (typeof stream._final === 'function' && !state.destroyed) {\n      state.pendingcb++;\n      state.finalCalled = true;\n      process.nextTick(callFinal, stream, state);\n    } else {\n      state.prefinished = true;\n      stream.emit('prefinish');\n    }\n  }\n}\n\nfunction finishMaybe(stream, state) {\n  var need = needFinish(state);\n\n  if (need) {\n    prefinish(stream, state);\n\n    if (state.pendingcb === 0) {\n      state.finished = true;\n      stream.emit('finish');\n\n      if (state.autoDestroy) {\n        // In case of duplex streams we need a way to detect\n        // if the readable side is ready for autoDestroy as well\n        var rState = stream._readableState;\n\n        if (!rState || rState.autoDestroy && rState.endEmitted) {\n          stream.destroy();\n        }\n      }\n    }\n  }\n\n  return need;\n}\n\nfunction endWritable(stream, state, cb) {\n  state.ending = true;\n  finishMaybe(stream, state);\n\n  if (cb) {\n    if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n  }\n\n  state.ended = true;\n  stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n  var entry = corkReq.entry;\n  corkReq.entry = null;\n\n  while (entry) {\n    var cb = entry.callback;\n    state.pendingcb--;\n    cb(err);\n    entry = entry.next;\n  } // reuse the free corkReq.\n\n\n  state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._writableState === undefined) {\n      return false;\n    }\n\n    return this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._writableState) {\n      return;\n    } // backward compatibility, the user is explicitly\n    // managing destroyed\n\n\n    this._writableState.destroyed = value;\n  }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n  cb(err);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js":
/*!**********************************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***!
  \**********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nvar finished = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n  return {\n    value: value,\n    done: done\n  };\n}\n\nfunction readAndResolve(iter) {\n  var resolve = iter[kLastResolve];\n\n  if (resolve !== null) {\n    var data = iter[kStream].read(); // we defer if data is null\n    // we can be expecting either 'end' or\n    // 'error'\n\n    if (data !== null) {\n      iter[kLastPromise] = null;\n      iter[kLastResolve] = null;\n      iter[kLastReject] = null;\n      resolve(createIterResult(data, false));\n    }\n  }\n}\n\nfunction onReadable(iter) {\n  // we wait for the next tick, because it might\n  // emit an error with process.nextTick\n  process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n  return function (resolve, reject) {\n    lastPromise.then(function () {\n      if (iter[kEnded]) {\n        resolve(createIterResult(undefined, true));\n        return;\n      }\n\n      iter[kHandlePromise](resolve, reject);\n    }, reject);\n  };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n  get stream() {\n    return this[kStream];\n  },\n\n  next: function next() {\n    var _this = this; // if we have detected an error in the meanwhile\n    // reject straight away\n\n\n    var error = this[kError];\n\n    if (error !== null) {\n      return Promise.reject(error);\n    }\n\n    if (this[kEnded]) {\n      return Promise.resolve(createIterResult(undefined, true));\n    }\n\n    if (this[kStream].destroyed) {\n      // We need to defer via nextTick because if .destroy(err) is\n      // called, the error will be emitted via nextTick, and\n      // we cannot guarantee that there is no error lingering around\n      // waiting to be emitted.\n      return new Promise(function (resolve, reject) {\n        process.nextTick(function () {\n          if (_this[kError]) {\n            reject(_this[kError]);\n          } else {\n            resolve(createIterResult(undefined, true));\n          }\n        });\n      });\n    } // if we have multiple next() calls\n    // we will wait for the previous Promise to finish\n    // this logic is optimized to support for await loops,\n    // where next() is only called once at a time\n\n\n    var lastPromise = this[kLastPromise];\n    var promise;\n\n    if (lastPromise) {\n      promise = new Promise(wrapForNext(lastPromise, this));\n    } else {\n      // fast path needed to support multiple this.push()\n      // without triggering the next() queue\n      var data = this[kStream].read();\n\n      if (data !== null) {\n        return Promise.resolve(createIterResult(data, false));\n      }\n\n      promise = new Promise(this[kHandlePromise]);\n    }\n\n    this[kLastPromise] = promise;\n    return promise;\n  }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n  return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n  var _this2 = this; // destroy(err, cb) is a private API\n  // we can guarantee we have that here, because we control the\n  // Readable class this is attached to\n\n\n  return new Promise(function (resolve, reject) {\n    _this2[kStream].destroy(null, function (err) {\n      if (err) {\n        reject(err);\n        return;\n      }\n\n      resolve(createIterResult(undefined, true));\n    });\n  });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n  var _Object$create;\n\n  var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n    value: stream,\n    writable: true\n  }), _defineProperty(_Object$create, kLastResolve, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kLastReject, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kError, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kEnded, {\n    value: stream._readableState.endEmitted,\n    writable: true\n  }), _defineProperty(_Object$create, kHandlePromise, {\n    value: function value(resolve, reject) {\n      var data = iterator[kStream].read();\n\n      if (data) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        resolve(createIterResult(data, false));\n      } else {\n        iterator[kLastResolve] = resolve;\n        iterator[kLastReject] = reject;\n      }\n    },\n    writable: true\n  }), _Object$create));\n  iterator[kLastPromise] = null;\n  finished(stream, function (err) {\n    if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n      var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n      // returned by next() and store the error\n\n      if (reject !== null) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        reject(err);\n      }\n\n      iterator[kError] = err;\n      return;\n    }\n\n    var resolve = iterator[kLastResolve];\n\n    if (resolve !== null) {\n      iterator[kLastPromise] = null;\n      iterator[kLastResolve] = null;\n      iterator[kLastReject] = null;\n      resolve(createIterResult(undefined, true));\n    }\n\n    iterator[kEnded] = true;\n  });\n  stream.on('readable', onReadable.bind(null, iterator));\n  return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js":
/*!*******************************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***!
  \*******************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nvar _require = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\"),\n    Buffer = _require.Buffer;\n\nvar _require2 = __webpack_require__(/*! util */ 9),\n    inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n  Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports = /*#__PURE__*/function () {\n  function BufferList() {\n    _classCallCheck(this, BufferList);\n\n    this.head = null;\n    this.tail = null;\n    this.length = 0;\n  }\n\n  _createClass(BufferList, [{\n    key: \"push\",\n    value: function push(v) {\n      var entry = {\n        data: v,\n        next: null\n      };\n      if (this.length > 0) this.tail.next = entry;else this.head = entry;\n      this.tail = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"unshift\",\n    value: function unshift(v) {\n      var entry = {\n        data: v,\n        next: this.head\n      };\n      if (this.length === 0) this.tail = entry;\n      this.head = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"shift\",\n    value: function shift() {\n      if (this.length === 0) return;\n      var ret = this.head.data;\n      if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n      --this.length;\n      return ret;\n    }\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      this.head = this.tail = null;\n      this.length = 0;\n    }\n  }, {\n    key: \"join\",\n    value: function join(s) {\n      if (this.length === 0) return '';\n      var p = this.head;\n      var ret = '' + p.data;\n\n      while (p = p.next) {\n        ret += s + p.data;\n      }\n\n      return ret;\n    }\n  }, {\n    key: \"concat\",\n    value: function concat(n) {\n      if (this.length === 0) return Buffer.alloc(0);\n      var ret = Buffer.allocUnsafe(n >>> 0);\n      var p = this.head;\n      var i = 0;\n\n      while (p) {\n        copyBuffer(p.data, ret, i);\n        i += p.data.length;\n        p = p.next;\n      }\n\n      return ret;\n    } // Consumes a specified amount of bytes or characters from the buffered data.\n\n  }, {\n    key: \"consume\",\n    value: function consume(n, hasStrings) {\n      var ret;\n\n      if (n < this.head.data.length) {\n        // `slice` is the same for buffers and strings.\n        ret = this.head.data.slice(0, n);\n        this.head.data = this.head.data.slice(n);\n      } else if (n === this.head.data.length) {\n        // First chunk is a perfect match.\n        ret = this.shift();\n      } else {\n        // Result spans more than one buffer.\n        ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n      }\n\n      return ret;\n    }\n  }, {\n    key: \"first\",\n    value: function first() {\n      return this.head.data;\n    } // Consumes a specified amount of characters from the buffered data.\n\n  }, {\n    key: \"_getString\",\n    value: function _getString(n) {\n      var p = this.head;\n      var c = 1;\n      var ret = p.data;\n      n -= ret.length;\n\n      while (p = p.next) {\n        var str = p.data;\n        var nb = n > str.length ? str.length : n;\n        if (nb === str.length) ret += str;else ret += str.slice(0, n);\n        n -= nb;\n\n        if (n === 0) {\n          if (nb === str.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = str.slice(nb);\n          }\n\n          break;\n        }\n\n        ++c;\n      }\n\n      this.length -= c;\n      return ret;\n    } // Consumes a specified amount of bytes from the buffered data.\n\n  }, {\n    key: \"_getBuffer\",\n    value: function _getBuffer(n) {\n      var ret = Buffer.allocUnsafe(n);\n      var p = this.head;\n      var c = 1;\n      p.data.copy(ret);\n      n -= p.data.length;\n\n      while (p = p.next) {\n        var buf = p.data;\n        var nb = n > buf.length ? buf.length : n;\n        buf.copy(ret, ret.length - n, 0, nb);\n        n -= nb;\n\n        if (n === 0) {\n          if (nb === buf.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = buf.slice(nb);\n          }\n\n          break;\n        }\n\n        ++c;\n      }\n\n      this.length -= c;\n      return ret;\n    } // Make sure the linked list only shows the minimal necessary information.\n\n  }, {\n    key: custom,\n    value: function value(_, options) {\n      return inspect(this, _objectSpread({}, options, {\n        // Only inspect one level.\n        depth: 0,\n        // It should not recurse.\n        customInspect: false\n      }));\n    }\n  }]);\n\n  return BufferList;\n}();\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js":
/*!***************************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js ***!
  \***************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(process) { // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n  var _this = this;\n\n  var readableDestroyed = this._readableState && this._readableState.destroyed;\n  var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n  if (readableDestroyed || writableDestroyed) {\n    if (cb) {\n      cb(err);\n    } else if (err) {\n      if (!this._writableState) {\n        process.nextTick(emitErrorNT, this, err);\n      } else if (!this._writableState.errorEmitted) {\n        this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorNT, this, err);\n      }\n    }\n\n    return this;\n  } // we set destroyed to true before firing error callbacks in order\n  // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n  if (this._readableState) {\n    this._readableState.destroyed = true;\n  } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n  if (this._writableState) {\n    this._writableState.destroyed = true;\n  }\n\n  this._destroy(err || null, function (err) {\n    if (!cb && err) {\n      if (!_this._writableState) {\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else if (!_this._writableState.errorEmitted) {\n        _this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else {\n        process.nextTick(emitCloseNT, _this);\n      }\n    } else if (cb) {\n      process.nextTick(emitCloseNT, _this);\n      cb(err);\n    } else {\n      process.nextTick(emitCloseNT, _this);\n    }\n  });\n\n  return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n  emitErrorNT(self, err);\n  emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n  if (self._writableState && !self._writableState.emitClose) return;\n  if (self._readableState && !self._readableState.emitClose) return;\n  self.emit('close');\n}\n\nfunction undestroy() {\n  if (this._readableState) {\n    this._readableState.destroyed = false;\n    this._readableState.reading = false;\n    this._readableState.ended = false;\n    this._readableState.endEmitted = false;\n  }\n\n  if (this._writableState) {\n    this._writableState.destroyed = false;\n    this._writableState.ended = false;\n    this._writableState.ending = false;\n    this._writableState.finalCalled = false;\n    this._writableState.prefinished = false;\n    this._writableState.finished = false;\n    this._writableState.errorEmitted = false;\n  }\n}\n\nfunction emitErrorNT(self, err) {\n  self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n  // We have tests that rely on errors being emitted\n  // in the same tick, so changing this is semver major.\n  // For now when you opt-in to autoDestroy we allow\n  // the error to be emitted nextTick. In a future\n  // semver major update we should change the default to this.\n  var rState = stream._readableState;\n  var wState = stream._writableState;\n  if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n  destroy: destroy,\n  undestroy: undestroy,\n  errorOrDestroy: errorOrDestroy\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js":
/*!*********************************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***!
  \*********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\nvar ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(/*! ../../../errors */ \"./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js\").codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    callback.apply(this, args);\n  };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n  if (typeof opts === 'function') return eos(stream, null, opts);\n  if (!opts) opts = {};\n  callback = once(callback || noop);\n  var readable = opts.readable || opts.readable !== false && stream.readable;\n  var writable = opts.writable || opts.writable !== false && stream.writable;\n\n  var onlegacyfinish = function onlegacyfinish() {\n    if (!stream.writable) onfinish();\n  };\n\n  var writableEnded = stream._writableState && stream._writableState.finished;\n\n  var onfinish = function onfinish() {\n    writable = false;\n    writableEnded = true;\n    if (!readable) callback.call(stream);\n  };\n\n  var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n  var onend = function onend() {\n    readable = false;\n    readableEnded = true;\n    if (!writable) callback.call(stream);\n  };\n\n  var onerror = function onerror(err) {\n    callback.call(stream, err);\n  };\n\n  var onclose = function onclose() {\n    var err;\n\n    if (readable && !readableEnded) {\n      if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n\n    if (writable && !writableEnded) {\n      if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n  };\n\n  var onrequest = function onrequest() {\n    stream.req.on('finish', onfinish);\n  };\n\n  if (isRequest(stream)) {\n    stream.on('complete', onfinish);\n    stream.on('abort', onclose);\n    if (stream.req) onrequest();else stream.on('request', onrequest);\n  } else if (writable && !stream._writableState) {\n    // legacy streams\n    stream.on('end', onlegacyfinish);\n    stream.on('close', onlegacyfinish);\n  }\n\n  stream.on('end', onend);\n  stream.on('finish', onfinish);\n  if (opts.error !== false) stream.on('error', onerror);\n  stream.on('close', onclose);\n  return function () {\n    stream.removeListener('complete', onfinish);\n    stream.removeListener('abort', onclose);\n    stream.removeListener('request', onrequest);\n    if (stream.req) stream.req.removeListener('finish', onfinish);\n    stream.removeListener('end', onlegacyfinish);\n    stream.removeListener('close', onlegacyfinish);\n    stream.removeListener('finish', onfinish);\n    stream.removeListener('end', onend);\n    stream.removeListener('error', onerror);\n    stream.removeListener('close', onclose);\n  };\n}\n\nmodule.exports = eos;\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js":
/*!********************************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js ***!
  \********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = function () {\n  throw new Error('Readable.from is not available in the browser');\n};\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js":
/*!****************************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js ***!
  \****************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\nvar eos;\n\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    callback.apply(void 0, arguments);\n  };\n}\n\nvar _require$codes = __webpack_require__(/*! ../../../errors */ \"./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js\").codes,\n    ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n    ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n  // Rethrow the error if it exists to avoid swallowing it\n  if (err) throw err;\n}\n\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n  callback = once(callback);\n  var closed = false;\n  stream.on('close', function () {\n    closed = true;\n  });\n  if (eos === undefined) eos = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\n  eos(stream, {\n    readable: reading,\n    writable: writing\n  }, function (err) {\n    if (err) return callback(err);\n    closed = true;\n    callback();\n  });\n  var destroyed = false;\n  return function (err) {\n    if (closed) return;\n    if (destroyed) return;\n    destroyed = true; // request.destroy just do .end - .abort is what we want\n\n    if (isRequest(stream)) return stream.abort();\n    if (typeof stream.destroy === 'function') return stream.destroy();\n    callback(err || new ERR_STREAM_DESTROYED('pipe'));\n  };\n}\n\nfunction call(fn) {\n  fn();\n}\n\nfunction pipe(from, to) {\n  return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n  if (!streams.length) return noop;\n  if (typeof streams[streams.length - 1] !== 'function') return noop;\n  return streams.pop();\n}\n\nfunction pipeline() {\n  for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n    streams[_key] = arguments[_key];\n  }\n\n  var callback = popCallback(streams);\n  if (Array.isArray(streams[0])) streams = streams[0];\n\n  if (streams.length < 2) {\n    throw new ERR_MISSING_ARGS('streams');\n  }\n\n  var error;\n  var destroys = streams.map(function (stream, i) {\n    var reading = i < streams.length - 1;\n    var writing = i > 0;\n    return destroyer(stream, reading, writing, function (err) {\n      if (!error) error = err;\n      if (err) destroys.forEach(call);\n      if (reading) return;\n      destroys.forEach(call);\n      callback(error);\n    });\n  });\n  return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js":
/*!*************************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js ***!
  \*************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar ERR_INVALID_OPT_VALUE = __webpack_require__(/*! ../../../errors */ \"./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js\").codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n  return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n  var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n  if (hwm != null) {\n    if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n      var name = isDuplex ? duplexKey : 'highWaterMark';\n      throw new ERR_INVALID_OPT_VALUE(name, hwm);\n    }\n\n    return Math.floor(hwm);\n  } // Default value\n\n\n  return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n  getHighWaterMark: getHighWaterMark\n};\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js":
/*!**********************************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js ***!
  \**********************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js ***!
  \***************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js\");\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js\");\nexports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\nexports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js\");\nexports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js\");\nexports.finished = __webpack_require__(/*! ./lib/internal/streams/end-of-stream.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\nexports.pipeline = __webpack_require__(/*! ./lib/internal/streams/pipeline.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js\");\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/safe-buffer/index.js":
/*!************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/safe-buffer/index.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n\n/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\");\n\nvar Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers\n\nfunction copyProps(src, dst) {\n  for (var key in src) {\n    dst[key] = src[key];\n  }\n}\n\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n  module.exports = buffer;\n} else {\n  // Copy properties from require('buffer')\n  copyProps(buffer, exports);\n  exports.Buffer = SafeBuffer;\n}\n\nfunction SafeBuffer(arg, encodingOrOffset, length) {\n  return Buffer(arg, encodingOrOffset, length);\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype); // Copy static methods from Buffer\n\ncopyProps(Buffer, SafeBuffer);\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n  if (typeof arg === 'number') {\n    throw new TypeError('Argument must not be a number');\n  }\n\n  return Buffer(arg, encodingOrOffset, length);\n};\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number');\n  }\n\n  var buf = Buffer(size);\n\n  if (fill !== undefined) {\n    if (typeof encoding === 'string') {\n      buf.fill(fill, encoding);\n    } else {\n      buf.fill(fill);\n    }\n  } else {\n    buf.fill(0);\n  }\n\n  return buf;\n};\n\nSafeBuffer.allocUnsafe = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number');\n  }\n\n  return Buffer(size);\n};\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number');\n  }\n\n  return buffer.SlowBuffer(size);\n};\n\n//# sourceURL=webpack:///./node_modules/browserify-sign/node_modules/safe-buffer/index.js?");

/***/ }),

/***/ "./node_modules/buffer-xor/index.js":
/*!******************************************!*\
  !*** ./node_modules/buffer-xor/index.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(Buffer) {module.exports = function xor(a, b) {\n  var length = Math.min(a.length, b.length);\n  var buffer = new Buffer(length);\n\n  for (var i = 0; i < length; ++i) {\n    buffer[i] = a[i] ^ b[i];\n  }\n\n  return buffer;\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/buffer-xor/index.js?");

/***/ }),

/***/ "./node_modules/buffer/index.js":
/*!**************************************!*\
  !*** ./node_modules/buffer/index.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <http://feross.org>\n * @license  MIT\n */\n\n/* eslint-disable no-proto */\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\");\n\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\");\n\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\n\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n *     incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nexports.kMaxLength = kMaxLength();\n\nfunction typedArraySupport() {\n  try {\n    var arr = new Uint8Array(1);\n    arr.__proto__ = {\n      __proto__: Uint8Array.prototype,\n      foo: function () {\n        return 42;\n      }\n    };\n    return arr.foo() === 42 && // typed array instances can be augmented\n    typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n    arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`\n  } catch (e) {\n    return false;\n  }\n}\n\nfunction kMaxLength() {\n  return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n  if (kMaxLength() < length) {\n    throw new RangeError('Invalid typed array length');\n  }\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = new Uint8Array(length);\n    that.__proto__ = Buffer.prototype;\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    if (that === null) {\n      that = new Buffer(length);\n    }\n\n    that.length = length;\n  }\n\n  return that;\n}\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\nfunction Buffer(arg, encodingOrOffset, length) {\n  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n    return new Buffer(arg, encodingOrOffset, length);\n  } // Common case.\n\n\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new Error('If encoding is specified then the first argument must be a string');\n    }\n\n    return allocUnsafe(this, arg);\n  }\n\n  return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\nBuffer._augment = function (arr) {\n  arr.__proto__ = Buffer.prototype;\n  return arr;\n};\n\nfunction from(that, value, encodingOrOffset, length) {\n  if (typeof value === 'number') {\n    throw new TypeError('\"value\" argument must not be a number');\n  }\n\n  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n    return fromArrayBuffer(that, value, encodingOrOffset, length);\n  }\n\n  if (typeof value === 'string') {\n    return fromString(that, value, encodingOrOffset);\n  }\n\n  return fromObject(that, value);\n}\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(null, value, encodingOrOffset, length);\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n  Buffer.prototype.__proto__ = Uint8Array.prototype;\n  Buffer.__proto__ = Uint8Array;\n\n  if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n    Object.defineProperty(Buffer, Symbol.species, {\n      value: null,\n      configurable: true\n    });\n  }\n}\n\nfunction assertSize(size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be a number');\n  } else if (size < 0) {\n    throw new RangeError('\"size\" argument must not be negative');\n  }\n}\n\nfunction alloc(that, size, fill, encoding) {\n  assertSize(size);\n\n  if (size <= 0) {\n    return createBuffer(that, size);\n  }\n\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpretted as a start offset.\n    return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n  }\n\n  return createBuffer(that, size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(null, size, fill, encoding);\n};\n\nfunction allocUnsafe(that, size) {\n  assertSize(size);\n  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n  if (!Buffer.TYPED_ARRAY_SUPPORT) {\n    for (var i = 0; i < size; ++i) {\n      that[i] = 0;\n    }\n  }\n\n  return that;\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(null, size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(null, size);\n};\n\nfunction fromString(that, string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8';\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('\"encoding\" must be a valid string encoding');\n  }\n\n  var length = byteLength(string, encoding) | 0;\n  that = createBuffer(that, length);\n  var actual = that.write(string, encoding);\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    that = that.slice(0, actual);\n  }\n\n  return that;\n}\n\nfunction fromArrayLike(that, array) {\n  var length = array.length < 0 ? 0 : checked(array.length) | 0;\n  that = createBuffer(that, length);\n\n  for (var i = 0; i < length; i += 1) {\n    that[i] = array[i] & 255;\n  }\n\n  return that;\n}\n\nfunction fromArrayBuffer(that, array, byteOffset, length) {\n  array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\\'offset\\' is out of bounds');\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\\'length\\' is out of bounds');\n  }\n\n  if (byteOffset === undefined && length === undefined) {\n    array = new Uint8Array(array);\n  } else if (length === undefined) {\n    array = new Uint8Array(array, byteOffset);\n  } else {\n    array = new Uint8Array(array, byteOffset, length);\n  }\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = array;\n    that.__proto__ = Buffer.prototype;\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    that = fromArrayLike(that, array);\n  }\n\n  return that;\n}\n\nfunction fromObject(that, obj) {\n  if (Buffer.isBuffer(obj)) {\n    var len = checked(obj.length) | 0;\n    that = createBuffer(that, len);\n\n    if (that.length === 0) {\n      return that;\n    }\n\n    obj.copy(that, 0, 0, len);\n    return that;\n  }\n\n  if (obj) {\n    if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n      if (typeof obj.length !== 'number' || isnan(obj.length)) {\n        return createBuffer(that, 0);\n      }\n\n      return fromArrayLike(that, obj);\n    }\n\n    if (obj.type === 'Buffer' && isArray(obj.data)) {\n      return fromArrayLike(that, obj.data);\n    }\n  }\n\n  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n}\n\nfunction checked(length) {\n  // Note: cannot use `length < kMaxLength()` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= kMaxLength()) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n  }\n\n  return length | 0;\n}\n\nfunction SlowBuffer(length) {\n  if (+length != length) {\n    // eslint-disable-line eqeqeq\n    length = 0;\n  }\n\n  return Buffer.alloc(+length);\n}\n\nBuffer.isBuffer = function isBuffer(b) {\n  return !!(b != null && b._isBuffer);\n};\n\nBuffer.compare = function compare(a, b) {\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError('Arguments must be Buffers');\n  }\n\n  if (a === b) return 0;\n  var x = a.length;\n  var y = b.length;\n\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i];\n      y = b[i];\n      break;\n    }\n  }\n\n  if (x < y) return -1;\n  if (y < x) return 1;\n  return 0;\n};\n\nBuffer.isEncoding = function isEncoding(encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true;\n\n    default:\n      return false;\n  }\n};\n\nBuffer.concat = function concat(list, length) {\n  if (!isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers');\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0);\n  }\n\n  var i;\n\n  if (length === undefined) {\n    length = 0;\n\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length;\n    }\n  }\n\n  var buffer = Buffer.allocUnsafe(length);\n  var pos = 0;\n\n  for (i = 0; i < list.length; ++i) {\n    var buf = list[i];\n\n    if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers');\n    }\n\n    buf.copy(buffer, pos);\n    pos += buf.length;\n  }\n\n  return buffer;\n};\n\nfunction byteLength(string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length;\n  }\n\n  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n    return string.byteLength;\n  }\n\n  if (typeof string !== 'string') {\n    string = '' + string;\n  }\n\n  var len = string.length;\n  if (len === 0) return 0; // Use a for loop to avoid recursion\n\n  var loweredCase = false;\n\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len;\n\n      case 'utf8':\n      case 'utf-8':\n      case undefined:\n        return utf8ToBytes(string).length;\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2;\n\n      case 'hex':\n        return len >>> 1;\n\n      case 'base64':\n        return base64ToBytes(string).length;\n\n      default:\n        if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n        encoding = ('' + encoding).toLowerCase();\n        loweredCase = true;\n    }\n  }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n  var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n  if (start === undefined || start < 0) {\n    start = 0;\n  } // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n\n\n  if (start > this.length) {\n    return '';\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length;\n  }\n\n  if (end <= 0) {\n    return '';\n  } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n  end >>>= 0;\n  start >>>= 0;\n\n  if (end <= start) {\n    return '';\n  }\n\n  if (!encoding) encoding = 'utf8';\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end);\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end);\n\n      case 'ascii':\n        return asciiSlice(this, start, end);\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end);\n\n      case 'base64':\n        return base64Slice(this, start, end);\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end);\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n        encoding = (encoding + '').toLowerCase();\n        loweredCase = true;\n    }\n  }\n} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\n\n\nBuffer.prototype._isBuffer = true;\n\nfunction swap(b, n, m) {\n  var i = b[n];\n  b[n] = b[m];\n  b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16() {\n  var len = this.length;\n\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits');\n  }\n\n  for (var i = 0; i < len; i += 2) {\n    swap(this, i, i + 1);\n  }\n\n  return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n  var len = this.length;\n\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits');\n  }\n\n  for (var i = 0; i < len; i += 4) {\n    swap(this, i, i + 3);\n    swap(this, i + 1, i + 2);\n  }\n\n  return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n  var len = this.length;\n\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits');\n  }\n\n  for (var i = 0; i < len; i += 8) {\n    swap(this, i, i + 7);\n    swap(this, i + 1, i + 6);\n    swap(this, i + 2, i + 5);\n    swap(this, i + 3, i + 4);\n  }\n\n  return this;\n};\n\nBuffer.prototype.toString = function toString() {\n  var length = this.length | 0;\n  if (length === 0) return '';\n  if (arguments.length === 0) return utf8Slice(this, 0, length);\n  return slowToString.apply(this, arguments);\n};\n\nBuffer.prototype.equals = function equals(b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n  if (this === b) return true;\n  return Buffer.compare(this, b) === 0;\n};\n\nBuffer.prototype.inspect = function inspect() {\n  var str = '';\n  var max = exports.INSPECT_MAX_BYTES;\n\n  if (this.length > 0) {\n    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n    if (this.length > max) str += ' ... ';\n  }\n\n  return '<Buffer ' + str + '>';\n};\n\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError('Argument must be a Buffer');\n  }\n\n  if (start === undefined) {\n    start = 0;\n  }\n\n  if (end === undefined) {\n    end = target ? target.length : 0;\n  }\n\n  if (thisStart === undefined) {\n    thisStart = 0;\n  }\n\n  if (thisEnd === undefined) {\n    thisEnd = this.length;\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index');\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0;\n  }\n\n  if (thisStart >= thisEnd) {\n    return -1;\n  }\n\n  if (start >= end) {\n    return 1;\n  }\n\n  start >>>= 0;\n  end >>>= 0;\n  thisStart >>>= 0;\n  thisEnd >>>= 0;\n  if (this === target) return 0;\n  var x = thisEnd - thisStart;\n  var y = end - start;\n  var len = Math.min(x, y);\n  var thisCopy = this.slice(thisStart, thisEnd);\n  var targetCopy = target.slice(start, end);\n\n  for (var i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i];\n      y = targetCopy[i];\n      break;\n    }\n  }\n\n  if (x < y) return -1;\n  if (y < x) return 1;\n  return 0;\n}; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1; // Normalize byteOffset\n\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset;\n    byteOffset = 0;\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff;\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000;\n  }\n\n  byteOffset = +byteOffset; // Coerce to Number.\n\n  if (isNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : buffer.length - 1;\n  } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1;else byteOffset = buffer.length - 1;\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0;else return -1;\n  } // Normalize val\n\n\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding);\n  } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1;\n    }\n\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n  } else if (typeof val === 'number') {\n    val = val & 0xFF; // Search for a byte value [0-255]\n\n    if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n      }\n    }\n\n    return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n  }\n\n  throw new TypeError('val must be string, number or Buffer');\n}\n\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n  var indexSize = 1;\n  var arrLength = arr.length;\n  var valLength = val.length;\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase();\n\n    if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1;\n      }\n\n      indexSize = 2;\n      arrLength /= 2;\n      valLength /= 2;\n      byteOffset /= 2;\n    }\n  }\n\n  function read(buf, i) {\n    if (indexSize === 1) {\n      return buf[i];\n    } else {\n      return buf.readUInt16BE(i * indexSize);\n    }\n  }\n\n  var i;\n\n  if (dir) {\n    var foundIndex = -1;\n\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i;\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex;\n        foundIndex = -1;\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n    for (i = byteOffset; i >= 0; i--) {\n      var found = true;\n\n      for (var j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false;\n          break;\n        }\n      }\n\n      if (found) return i;\n    }\n  }\n\n  return -1;\n}\n\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1;\n};\n\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\n\nfunction hexWrite(buf, string, offset, length) {\n  offset = Number(offset) || 0;\n  var remaining = buf.length - offset;\n\n  if (!length) {\n    length = remaining;\n  } else {\n    length = Number(length);\n\n    if (length > remaining) {\n      length = remaining;\n    }\n  } // must be an even number of digits\n\n\n  var strLen = string.length;\n  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n\n  if (length > strLen / 2) {\n    length = strLen / 2;\n  }\n\n  for (var i = 0; i < length; ++i) {\n    var parsed = parseInt(string.substr(i * 2, 2), 16);\n    if (isNaN(parsed)) return i;\n    buf[offset + i] = parsed;\n  }\n\n  return i;\n}\n\nfunction utf8Write(buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nfunction asciiWrite(buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\n\nfunction latin1Write(buf, string, offset, length) {\n  return asciiWrite(buf, string, offset, length);\n}\n\nfunction base64Write(buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\n\nfunction ucs2Write(buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nBuffer.prototype.write = function write(string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8';\n    length = this.length;\n    offset = 0; // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset;\n    length = this.length;\n    offset = 0; // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset | 0;\n\n    if (isFinite(length)) {\n      length = length | 0;\n      if (encoding === undefined) encoding = 'utf8';\n    } else {\n      encoding = length;\n      length = undefined;\n    } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n  } else {\n    throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n  }\n\n  var remaining = this.length - offset;\n  if (length === undefined || length > remaining) length = remaining;\n\n  if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds');\n  }\n\n  if (!encoding) encoding = 'utf8';\n  var loweredCase = false;\n\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length);\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length);\n\n      case 'ascii':\n        return asciiWrite(this, string, offset, length);\n\n      case 'latin1':\n      case 'binary':\n        return latin1Write(this, string, offset, length);\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length);\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length);\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n        encoding = ('' + encoding).toLowerCase();\n        loweredCase = true;\n    }\n  }\n};\n\nBuffer.prototype.toJSON = function toJSON() {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  };\n};\n\nfunction base64Slice(buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf);\n  } else {\n    return base64.fromByteArray(buf.slice(start, end));\n  }\n}\n\nfunction utf8Slice(buf, start, end) {\n  end = Math.min(buf.length, end);\n  var res = [];\n  var i = start;\n\n  while (i < end) {\n    var firstByte = buf[i];\n    var codePoint = null;\n    var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n    if (i + bytesPerSequence <= end) {\n      var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte;\n          }\n\n          break;\n\n        case 2:\n          secondByte = buf[i + 1];\n\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint;\n            }\n          }\n\n          break;\n\n        case 3:\n          secondByte = buf[i + 1];\n          thirdByte = buf[i + 2];\n\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint;\n            }\n          }\n\n          break;\n\n        case 4:\n          secondByte = buf[i + 1];\n          thirdByte = buf[i + 2];\n          fourthByte = buf[i + 3];\n\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint;\n            }\n          }\n\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD;\n      bytesPerSequence = 1;\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000;\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n      codePoint = 0xDC00 | codePoint & 0x3FF;\n    }\n\n    res.push(codePoint);\n    i += bytesPerSequence;\n  }\n\n  return decodeCodePointsArray(res);\n} // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n  var len = codePoints.length;\n\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n  } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n  var res = '';\n  var i = 0;\n\n  while (i < len) {\n    res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n  }\n\n  return res;\n}\n\nfunction asciiSlice(buf, start, end) {\n  var ret = '';\n  end = Math.min(buf.length, end);\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F);\n  }\n\n  return ret;\n}\n\nfunction latin1Slice(buf, start, end) {\n  var ret = '';\n  end = Math.min(buf.length, end);\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i]);\n  }\n\n  return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n  var len = buf.length;\n  if (!start || start < 0) start = 0;\n  if (!end || end < 0 || end > len) end = len;\n  var out = '';\n\n  for (var i = start; i < end; ++i) {\n    out += toHex(buf[i]);\n  }\n\n  return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n  var bytes = buf.slice(start, end);\n  var res = '';\n\n  for (var i = 0; i < bytes.length; i += 2) {\n    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n  }\n\n  return res;\n}\n\nBuffer.prototype.slice = function slice(start, end) {\n  var len = this.length;\n  start = ~~start;\n  end = end === undefined ? len : ~~end;\n\n  if (start < 0) {\n    start += len;\n    if (start < 0) start = 0;\n  } else if (start > len) {\n    start = len;\n  }\n\n  if (end < 0) {\n    end += len;\n    if (end < 0) end = 0;\n  } else if (end > len) {\n    end = len;\n  }\n\n  if (end < start) end = start;\n  var newBuf;\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    newBuf = this.subarray(start, end);\n    newBuf.__proto__ = Buffer.prototype;\n  } else {\n    var sliceLen = end - start;\n    newBuf = new Buffer(sliceLen, undefined);\n\n    for (var i = 0; i < sliceLen; ++i) {\n      newBuf[i] = this[i + start];\n    }\n  }\n\n  return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\nfunction checkOffset(offset, ext, length) {\n  if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n  offset = offset | 0;\n  byteLength = byteLength | 0;\n  if (!noAssert) checkOffset(offset, byteLength, this.length);\n  var val = this[offset];\n  var mul = 1;\n  var i = 0;\n\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul;\n  }\n\n  return val;\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n  offset = offset | 0;\n  byteLength = byteLength | 0;\n\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length);\n  }\n\n  var val = this[offset + --byteLength];\n  var mul = 1;\n\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul;\n  }\n\n  return val;\n};\n\nBuffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length);\n  return this[offset];\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length);\n  return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length);\n  return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length);\n  return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length);\n  return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\n\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n  offset = offset | 0;\n  byteLength = byteLength | 0;\n  if (!noAssert) checkOffset(offset, byteLength, this.length);\n  var val = this[offset];\n  var mul = 1;\n  var i = 0;\n\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul;\n  }\n\n  mul *= 0x80;\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n  return val;\n};\n\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n  offset = offset | 0;\n  byteLength = byteLength | 0;\n  if (!noAssert) checkOffset(offset, byteLength, this.length);\n  var i = byteLength;\n  var mul = 1;\n  var val = this[offset + --i];\n\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul;\n  }\n\n  mul *= 0x80;\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n  return val;\n};\n\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length);\n  if (!(this[offset] & 0x80)) return this[offset];\n  return (0xff - this[offset] + 1) * -1;\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length);\n  var val = this[offset] | this[offset + 1] << 8;\n  return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length);\n  var val = this[offset + 1] | this[offset] << 8;\n  return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length);\n  return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length);\n  return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length);\n  return ieee754.read(this, offset, true, 23, 4);\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length);\n  return ieee754.read(this, offset, false, 23, 4);\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length);\n  return ieee754.read(this, offset, true, 52, 8);\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length);\n  return ieee754.read(this, offset, false, 52, 8);\n};\n\nfunction checkInt(buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n  if (offset + ext > buf.length) throw new RangeError('Index out of range');\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  byteLength = byteLength | 0;\n\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n    checkInt(this, value, offset, byteLength, maxBytes, 0);\n  }\n\n  var mul = 1;\n  var i = 0;\n  this[offset] = value & 0xFF;\n\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = value / mul & 0xFF;\n  }\n\n  return offset + byteLength;\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  byteLength = byteLength | 0;\n\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n    checkInt(this, value, offset, byteLength, maxBytes, 0);\n  }\n\n  var i = byteLength - 1;\n  var mul = 1;\n  this[offset + i] = value & 0xFF;\n\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = value / mul & 0xFF;\n  }\n\n  return offset + byteLength;\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n  this[offset] = value & 0xff;\n  return offset + 1;\n};\n\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffff + value + 1;\n\n  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n    buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n  }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value & 0xff;\n    this[offset + 1] = value >>> 8;\n  } else {\n    objectWriteUInt16(this, value, offset, true);\n  }\n\n  return offset + 2;\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value >>> 8;\n    this[offset + 1] = value & 0xff;\n  } else {\n    objectWriteUInt16(this, value, offset, false);\n  }\n\n  return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffffffff + value + 1;\n\n  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n    buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n  }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset + 3] = value >>> 24;\n    this[offset + 2] = value >>> 16;\n    this[offset + 1] = value >>> 8;\n    this[offset] = value & 0xff;\n  } else {\n    objectWriteUInt32(this, value, offset, true);\n  }\n\n  return offset + 4;\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value >>> 24;\n    this[offset + 1] = value >>> 16;\n    this[offset + 2] = value >>> 8;\n    this[offset + 3] = value & 0xff;\n  } else {\n    objectWriteUInt32(this, value, offset, false);\n  }\n\n  return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n  value = +value;\n  offset = offset | 0;\n\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1);\n    checkInt(this, value, offset, byteLength, limit - 1, -limit);\n  }\n\n  var i = 0;\n  var mul = 1;\n  var sub = 0;\n  this[offset] = value & 0xFF;\n\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1;\n    }\n\n    this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n  }\n\n  return offset + byteLength;\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n  value = +value;\n  offset = offset | 0;\n\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1);\n    checkInt(this, value, offset, byteLength, limit - 1, -limit);\n  }\n\n  var i = byteLength - 1;\n  var mul = 1;\n  var sub = 0;\n  this[offset + i] = value & 0xFF;\n\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1;\n    }\n\n    this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n  }\n\n  return offset + byteLength;\n};\n\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n  if (value < 0) value = 0xff + value + 1;\n  this[offset] = value & 0xff;\n  return offset + 1;\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value & 0xff;\n    this[offset + 1] = value >>> 8;\n  } else {\n    objectWriteUInt16(this, value, offset, true);\n  }\n\n  return offset + 2;\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value >>> 8;\n    this[offset + 1] = value & 0xff;\n  } else {\n    objectWriteUInt16(this, value, offset, false);\n  }\n\n  return offset + 2;\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value & 0xff;\n    this[offset + 1] = value >>> 8;\n    this[offset + 2] = value >>> 16;\n    this[offset + 3] = value >>> 24;\n  } else {\n    objectWriteUInt32(this, value, offset, true);\n  }\n\n  return offset + 4;\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n  value = +value;\n  offset = offset | 0;\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n  if (value < 0) value = 0xffffffff + value + 1;\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = value >>> 24;\n    this[offset + 1] = value >>> 16;\n    this[offset + 2] = value >>> 8;\n    this[offset + 3] = value & 0xff;\n  } else {\n    objectWriteUInt32(this, value, offset, false);\n  }\n\n  return offset + 4;\n};\n\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range');\n  if (offset < 0) throw new RangeError('Index out of range');\n}\n\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n  }\n\n  ieee754.write(buf, value, offset, littleEndian, 23, 4);\n  return offset + 4;\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert);\n};\n\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n  }\n\n  ieee754.write(buf, value, offset, littleEndian, 52, 8);\n  return offset + 8;\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert);\n}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n  if (!start) start = 0;\n  if (!end && end !== 0) end = this.length;\n  if (targetStart >= target.length) targetStart = target.length;\n  if (!targetStart) targetStart = 0;\n  if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n  if (end === start) return 0;\n  if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds');\n  }\n\n  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n  if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n  if (end > this.length) end = this.length;\n\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start;\n  }\n\n  var len = end - start;\n  var i;\n\n  if (this === target && start < targetStart && targetStart < end) {\n    // descending copy from end\n    for (i = len - 1; i >= 0; --i) {\n      target[i + targetStart] = this[i + start];\n    }\n  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n    // ascending copy from start\n    for (i = 0; i < len; ++i) {\n      target[i + targetStart] = this[i + start];\n    }\n  } else {\n    Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n  }\n\n  return len;\n}; // Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\n\n\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start;\n      start = 0;\n      end = this.length;\n    } else if (typeof end === 'string') {\n      encoding = end;\n      end = this.length;\n    }\n\n    if (val.length === 1) {\n      var code = val.charCodeAt(0);\n\n      if (code < 256) {\n        val = code;\n      }\n    }\n\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string');\n    }\n\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding);\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255;\n  } // Invalid ranges are not set to a default, so can range check early.\n\n\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index');\n  }\n\n  if (end <= start) {\n    return this;\n  }\n\n  start = start >>> 0;\n  end = end === undefined ? this.length : end >>> 0;\n  if (!val) val = 0;\n  var i;\n\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val;\n    }\n  } else {\n    var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n    var len = bytes.length;\n\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len];\n    }\n  }\n\n  return this;\n}; // HELPER FUNCTIONS\n// ================\n\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean(str) {\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n  if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n  while (str.length % 4 !== 0) {\n    str = str + '=';\n  }\n\n  return str;\n}\n\nfunction stringtrim(str) {\n  if (str.trim) return str.trim();\n  return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nfunction toHex(n) {\n  if (n < 16) return '0' + n.toString(16);\n  return n.toString(16);\n}\n\nfunction utf8ToBytes(string, units) {\n  units = units || Infinity;\n  var codePoint;\n  var length = string.length;\n  var leadSurrogate = null;\n  var bytes = [];\n\n  for (var i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i); // is surrogate component\n\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n          continue;\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n          continue;\n        } // valid lead\n\n\n        leadSurrogate = codePoint;\n        continue;\n      } // 2 leads in a row\n\n\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n        leadSurrogate = codePoint;\n        continue;\n      } // valid surrogate pair\n\n\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n    }\n\n    leadSurrogate = null; // encode utf8\n\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break;\n      bytes.push(codePoint);\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break;\n      bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break;\n      bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break;\n      bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n    } else {\n      throw new Error('Invalid code point');\n    }\n  }\n\n  return bytes;\n}\n\nfunction asciiToBytes(str) {\n  var byteArray = [];\n\n  for (var i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF);\n  }\n\n  return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n  var c, hi, lo;\n  var byteArray = [];\n\n  for (var i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break;\n    c = str.charCodeAt(i);\n    hi = c >> 8;\n    lo = c % 256;\n    byteArray.push(lo);\n    byteArray.push(hi);\n  }\n\n  return byteArray;\n}\n\nfunction base64ToBytes(str) {\n  return base64.toByteArray(base64clean(str));\n}\n\nfunction blitBuffer(src, dst, offset, length) {\n  for (var i = 0; i < length; ++i) {\n    if (i + offset >= dst.length || i >= src.length) break;\n    dst[i + offset] = src[i];\n  }\n\n  return i;\n}\n\nfunction isnan(val) {\n  return val !== val; // eslint-disable-line no-self-compare\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/buffer/index.js?");

/***/ }),

/***/ "./node_modules/cipher-base/index.js":
/*!*******************************************!*\
  !*** ./node_modules/cipher-base/index.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar Transform = __webpack_require__(/*! stream */ \"./node_modules/stream-browserify/index.js\").Transform;\n\nvar StringDecoder = __webpack_require__(/*! string_decoder */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction CipherBase(hashMode) {\n  Transform.call(this);\n  this.hashMode = typeof hashMode === 'string';\n\n  if (this.hashMode) {\n    this[hashMode] = this._finalOrDigest;\n  } else {\n    this.final = this._finalOrDigest;\n  }\n\n  if (this._final) {\n    this.__final = this._final;\n    this._final = null;\n  }\n\n  this._decoder = null;\n  this._encoding = null;\n}\n\ninherits(CipherBase, Transform);\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n  if (typeof data === 'string') {\n    data = Buffer.from(data, inputEnc);\n  }\n\n  var outData = this._update(data);\n\n  if (this.hashMode) return this;\n\n  if (outputEnc) {\n    outData = this._toString(outData, outputEnc);\n  }\n\n  return outData;\n};\n\nCipherBase.prototype.setAutoPadding = function () {};\n\nCipherBase.prototype.getAuthTag = function () {\n  throw new Error('trying to get auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAuthTag = function () {\n  throw new Error('trying to set auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAAD = function () {\n  throw new Error('trying to set aad in unsupported state');\n};\n\nCipherBase.prototype._transform = function (data, _, next) {\n  var err;\n\n  try {\n    if (this.hashMode) {\n      this._update(data);\n    } else {\n      this.push(this._update(data));\n    }\n  } catch (e) {\n    err = e;\n  } finally {\n    next(err);\n  }\n};\n\nCipherBase.prototype._flush = function (done) {\n  var err;\n\n  try {\n    this.push(this.__final());\n  } catch (e) {\n    err = e;\n  }\n\n  done(err);\n};\n\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n  var outData = this.__final() || Buffer.alloc(0);\n\n  if (outputEnc) {\n    outData = this._toString(outData, outputEnc, true);\n  }\n\n  return outData;\n};\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n  if (!this._decoder) {\n    this._decoder = new StringDecoder(enc);\n    this._encoding = enc;\n  }\n\n  if (this._encoding !== enc) throw new Error('can\\'t switch encodings');\n\n  var out = this._decoder.write(value);\n\n  if (fin) {\n    out += this._decoder.end();\n  }\n\n  return out;\n};\n\nmodule.exports = CipherBase;\n\n//# sourceURL=webpack:///./node_modules/cipher-base/index.js?");

/***/ }),

/***/ "./node_modules/core-util-is/lib/util.js":
/*!***********************************************!*\
  !*** ./node_modules/core-util-is/lib/util.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// 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// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(arg) {\n  if (Array.isArray) {\n    return Array.isArray(arg);\n  }\n\n  return objectToString(arg) === '[object Array]';\n}\n\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\n\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\n\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\n\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\n\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\n\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\n\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\n\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return objectToString(re) === '[object RegExp]';\n}\n\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\n\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return objectToString(d) === '[object Date]';\n}\n\nexports.isDate = isDate;\n\nfunction isError(e) {\n  return objectToString(e) === '[object Error]' || e instanceof Error;\n}\n\nexports.isError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\n\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' || // ES6 symbol\n  typeof arg === 'undefined';\n}\n\nexports.isPrimitive = isPrimitive;\nexports.isBuffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer.isBuffer;\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n//# sourceURL=webpack:///./node_modules/core-util-is/lib/util.js?");

/***/ }),

/***/ "./node_modules/create-ecdh/browser.js":
/*!*********************************************!*\
  !*** ./node_modules/create-ecdh/browser.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var elliptic = __webpack_require__(/*! elliptic */ \"./node_modules/elliptic/lib/elliptic.js\");\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js\");\n\nmodule.exports = function createECDH(curve) {\n  return new ECDH(curve);\n};\n\nvar aliases = {\n  secp256k1: {\n    name: 'secp256k1',\n    byteLength: 32\n  },\n  secp224r1: {\n    name: 'p224',\n    byteLength: 28\n  },\n  prime256v1: {\n    name: 'p256',\n    byteLength: 32\n  },\n  prime192v1: {\n    name: 'p192',\n    byteLength: 24\n  },\n  ed25519: {\n    name: 'ed25519',\n    byteLength: 32\n  },\n  secp384r1: {\n    name: 'p384',\n    byteLength: 48\n  },\n  secp521r1: {\n    name: 'p521',\n    byteLength: 66\n  }\n};\naliases.p224 = aliases.secp224r1;\naliases.p256 = aliases.secp256r1 = aliases.prime256v1;\naliases.p192 = aliases.secp192r1 = aliases.prime192v1;\naliases.p384 = aliases.secp384r1;\naliases.p521 = aliases.secp521r1;\n\nfunction ECDH(curve) {\n  this.curveType = aliases[curve];\n\n  if (!this.curveType) {\n    this.curveType = {\n      name: curve\n    };\n  }\n\n  this.curve = new elliptic.ec(this.curveType.name); // eslint-disable-line new-cap\n\n  this.keys = void 0;\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n  this.keys = this.curve.genKeyPair();\n  return this.getPublicKey(enc, format);\n};\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n  inenc = inenc || 'utf8';\n\n  if (!Buffer.isBuffer(other)) {\n    other = new Buffer(other, inenc);\n  }\n\n  var otherPub = this.curve.keyFromPublic(other).getPublic();\n  var out = otherPub.mul(this.keys.getPrivate()).getX();\n  return formatReturnValue(out, enc, this.curveType.byteLength);\n};\n\nECDH.prototype.getPublicKey = function (enc, format) {\n  var key = this.keys.getPublic(format === 'compressed', true);\n\n  if (format === 'hybrid') {\n    if (key[key.length - 1] % 2) {\n      key[0] = 7;\n    } else {\n      key[0] = 6;\n    }\n  }\n\n  return formatReturnValue(key, enc);\n};\n\nECDH.prototype.getPrivateKey = function (enc) {\n  return formatReturnValue(this.keys.getPrivate(), enc);\n};\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n  enc = enc || 'utf8';\n\n  if (!Buffer.isBuffer(pub)) {\n    pub = new Buffer(pub, enc);\n  }\n\n  this.keys._importPublic(pub);\n\n  return this;\n};\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n  enc = enc || 'utf8';\n\n  if (!Buffer.isBuffer(priv)) {\n    priv = new Buffer(priv, enc);\n  }\n\n  var _priv = new BN(priv);\n\n  _priv = _priv.toString(16);\n  this.keys = this.curve.genKeyPair();\n\n  this.keys._importPrivate(_priv);\n\n  return this;\n};\n\nfunction formatReturnValue(bn, enc, len) {\n  if (!Array.isArray(bn)) {\n    bn = bn.toArray();\n  }\n\n  var buf = new Buffer(bn);\n\n  if (len && buf.length < len) {\n    var zeros = new Buffer(len - buf.length);\n    zeros.fill(0);\n    buf = Buffer.concat([zeros, buf]);\n  }\n\n  if (!enc) {\n    return buf;\n  } else {\n    return buf.toString(enc);\n  }\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/create-ecdh/browser.js?");

/***/ }),

/***/ "./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js":
/*!***************************************************************!*\
  !*** ./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n  'use strict'; // Utils\n\n  function assert(val, msg) {\n    if (!val) throw new Error(msg || 'Assertion failed');\n  } // Could use `inherits` module, but don't want to move from single file\n  // architecture yet.\n\n\n  function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor;\n\n    var TempCtor = function () {};\n\n    TempCtor.prototype = superCtor.prototype;\n    ctor.prototype = new TempCtor();\n    ctor.prototype.constructor = ctor;\n  } // BN\n\n\n  function BN(number, base, endian) {\n    if (BN.isBN(number)) {\n      return number;\n    }\n\n    this.negative = 0;\n    this.words = null;\n    this.length = 0; // Reduction context\n\n    this.red = null;\n\n    if (number !== null) {\n      if (base === 'le' || base === 'be') {\n        endian = base;\n        base = 10;\n      }\n\n      this._init(number || 0, base || 10, endian || 'be');\n    }\n  }\n\n  if (typeof module === 'object') {\n    module.exports = BN;\n  } else {\n    exports.BN = BN;\n  }\n\n  BN.BN = BN;\n  BN.wordSize = 26;\n  var Buffer;\n\n  try {\n    if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n      Buffer = window.Buffer;\n    } else {\n      Buffer = __webpack_require__(/*! buffer */ 13).Buffer;\n    }\n  } catch (e) {}\n\n  BN.isBN = function isBN(num) {\n    if (num instanceof BN) {\n      return true;\n    }\n\n    return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n  };\n\n  BN.max = function max(left, right) {\n    if (left.cmp(right) > 0) return left;\n    return right;\n  };\n\n  BN.min = function min(left, right) {\n    if (left.cmp(right) < 0) return left;\n    return right;\n  };\n\n  BN.prototype._init = function init(number, base, endian) {\n    if (typeof number === 'number') {\n      return this._initNumber(number, base, endian);\n    }\n\n    if (typeof number === 'object') {\n      return this._initArray(number, base, endian);\n    }\n\n    if (base === 'hex') {\n      base = 16;\n    }\n\n    assert(base === (base | 0) && base >= 2 && base <= 36);\n    number = number.toString().replace(/\\s+/g, '');\n    var start = 0;\n\n    if (number[0] === '-') {\n      start++;\n      this.negative = 1;\n    }\n\n    if (start < number.length) {\n      if (base === 16) {\n        this._parseHex(number, start, endian);\n      } else {\n        this._parseBase(number, base, start);\n\n        if (endian === 'le') {\n          this._initArray(this.toArray(), base, endian);\n        }\n      }\n    }\n  };\n\n  BN.prototype._initNumber = function _initNumber(number, base, endian) {\n    if (number < 0) {\n      this.negative = 1;\n      number = -number;\n    }\n\n    if (number < 0x4000000) {\n      this.words = [number & 0x3ffffff];\n      this.length = 1;\n    } else if (number < 0x10000000000000) {\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n      this.length = 2;\n    } else {\n      assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n      this.length = 3;\n    }\n\n    if (endian !== 'le') return; // Reverse the bytes\n\n    this._initArray(this.toArray(), base, endian);\n  };\n\n  BN.prototype._initArray = function _initArray(number, base, endian) {\n    // Perhaps a Uint8Array\n    assert(typeof number.length === 'number');\n\n    if (number.length <= 0) {\n      this.words = [0];\n      this.length = 1;\n      return this;\n    }\n\n    this.length = Math.ceil(number.length / 3);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    }\n\n    var j, w;\n    var off = 0;\n\n    if (endian === 'be') {\n      for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n        w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    } else if (endian === 'le') {\n      for (i = 0, j = 0; i < number.length; i += 3) {\n        w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    }\n\n    return this.strip();\n  };\n\n  function parseHex4Bits(string, index) {\n    var c = string.charCodeAt(index); // 'A' - 'F'\n\n    if (c >= 65 && c <= 70) {\n      return c - 55; // 'a' - 'f'\n    } else if (c >= 97 && c <= 102) {\n      return c - 87; // '0' - '9'\n    } else {\n      return c - 48 & 0xf;\n    }\n  }\n\n  function parseHexByte(string, lowerBound, index) {\n    var r = parseHex4Bits(string, index);\n\n    if (index - 1 >= lowerBound) {\n      r |= parseHex4Bits(string, index - 1) << 4;\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseHex = function _parseHex(number, start, endian) {\n    // Create possibly bigger array to ensure that it fits the number\n    this.length = Math.ceil((number.length - start) / 6);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    } // 24-bits chunks\n\n\n    var off = 0;\n    var j = 0;\n    var w;\n\n    if (endian === 'be') {\n      for (i = number.length - 1; i >= start; i -= 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    } else {\n      var parseLength = number.length - start;\n\n      for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    }\n\n    this.strip();\n  };\n\n  function parseBase(str, start, end, mul) {\n    var r = 0;\n    var len = Math.min(str.length, end);\n\n    for (var i = start; i < len; i++) {\n      var c = str.charCodeAt(i) - 48;\n      r *= mul; // 'a'\n\n      if (c >= 49) {\n        r += c - 49 + 0xa; // 'A'\n      } else if (c >= 17) {\n        r += c - 17 + 0xa; // '0' - '9'\n      } else {\n        r += c;\n      }\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseBase = function _parseBase(number, base, start) {\n    // Initialize as zero\n    this.words = [0];\n    this.length = 1; // Find length of limb in base\n\n    for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n      limbLen++;\n    }\n\n    limbLen--;\n    limbPow = limbPow / base | 0;\n    var total = number.length - start;\n    var mod = total % limbLen;\n    var end = Math.min(total, total - mod) + start;\n    var word = 0;\n\n    for (var i = start; i < end; i += limbLen) {\n      word = parseBase(number, i, i + limbLen, base);\n      this.imuln(limbPow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    if (mod !== 0) {\n      var pow = 1;\n      word = parseBase(number, i, number.length, base);\n\n      for (i = 0; i < mod; i++) {\n        pow *= base;\n      }\n\n      this.imuln(pow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    this.strip();\n  };\n\n  BN.prototype.copy = function copy(dest) {\n    dest.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      dest.words[i] = this.words[i];\n    }\n\n    dest.length = this.length;\n    dest.negative = this.negative;\n    dest.red = this.red;\n  };\n\n  BN.prototype.clone = function clone() {\n    var r = new BN(null);\n    this.copy(r);\n    return r;\n  };\n\n  BN.prototype._expand = function _expand(size) {\n    while (this.length < size) {\n      this.words[this.length++] = 0;\n    }\n\n    return this;\n  }; // Remove leading `0` from `this`\n\n\n  BN.prototype.strip = function strip() {\n    while (this.length > 1 && this.words[this.length - 1] === 0) {\n      this.length--;\n    }\n\n    return this._normSign();\n  };\n\n  BN.prototype._normSign = function _normSign() {\n    // -0 = 0\n    if (this.length === 1 && this.words[0] === 0) {\n      this.negative = 0;\n    }\n\n    return this;\n  };\n\n  BN.prototype.inspect = function inspect() {\n    return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  };\n  /*\n   var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n   var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n   */\n\n\n  var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n  var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n  var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n  BN.prototype.toString = function toString(base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n    var out;\n\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = ((w << off | carry) & 0xffffff).toString(16);\n        carry = w >>> 24 - off & 0xffffff;\n\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n\n        off += 2;\n\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n      }\n\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n\n      while (!c.isZero()) {\n        var r = c.modn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber() {\n    var ret = this.words[0];\n\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + this.words[1] * 0x4000000;\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n\n    return this.negative !== 0 ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON() {\n    return this.toString(16);\n  };\n\n  BN.prototype.toBuffer = function toBuffer(endian, length) {\n    assert(typeof Buffer !== 'undefined');\n    return this.toArrayLike(Buffer, endian, length);\n  };\n\n  BN.prototype.toArray = function toArray(endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n    this.strip();\n    var littleEndian = endian === 'le';\n    var res = new ArrayType(reqLength);\n    var b, i;\n    var q = this.clone();\n\n    if (!littleEndian) {\n      // Assume big-endian\n      for (i = 0; i < reqLength - byteLength; i++) {\n        res[i] = 0;\n      }\n\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n        res[reqLength - i - 1] = b;\n      }\n    } else {\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n        res[i] = b;\n      }\n\n      for (; i < reqLength; i++) {\n        res[i] = 0;\n      }\n    }\n\n    return res;\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits(w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits(w) {\n      var t = w;\n      var r = 0;\n\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits(w) {\n    // Short-cut\n    if (w === 0) return 26;\n    var t = w;\n    var r = 0;\n\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n\n    return r;\n  }; // Return number of used bits in a BN\n\n\n  BN.prototype.bitLength = function bitLength() {\n    var w = this.words[this.length - 1];\n\n    var hi = this._countBits(w);\n\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray(num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = bit / 26 | 0;\n      var wbit = bit % 26;\n      w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n    }\n\n    return w;\n  } // Number of trailing zero bits\n\n\n  BN.prototype.zeroBits = function zeroBits() {\n    if (this.isZero()) return 0;\n    var r = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n\n      r += b;\n      if (b !== 26) break;\n    }\n\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength() {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos(width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos(width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg() {\n    return this.negative !== 0;\n  }; // Return negative clone of `this`\n\n\n  BN.prototype.neg = function neg() {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg() {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  }; // Or `num` with `this` in-place\n\n\n  BN.prototype.iuor = function iuor(num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ior = function ior(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  }; // Or `num` with `this`\n\n\n  BN.prototype.or = function or(num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor(num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  }; // And `num` with `this` in-place\n\n\n  BN.prototype.iuand = function iuand(num) {\n    // b = min-length(num, this)\n    var b;\n\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n    return this.strip();\n  };\n\n  BN.prototype.iand = function iand(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  }; // And `num` with `this`\n\n\n  BN.prototype.and = function and(num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand(num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  }; // Xor `num` with `this` in-place\n\n\n  BN.prototype.iuxor = function iuxor(num) {\n    // a.length > b.length\n    var a;\n    var b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n    return this.strip();\n  };\n\n  BN.prototype.ixor = function ixor(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  }; // Xor `num` with `this`\n\n\n  BN.prototype.xor = function xor(num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor(num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  }; // Not ``this`` with ``width`` bitwidth\n\n\n  BN.prototype.inotn = function inotn(width) {\n    assert(typeof width === 'number' && width >= 0);\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    } // Handle complete words\n\n\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    } // Handle the residue\n\n\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n    } // And remove leading zeroes\n\n\n    return this.strip();\n  };\n\n  BN.prototype.notn = function notn(width) {\n    return this.clone().inotn(width);\n  }; // Set `bit` of `this`\n\n\n  BN.prototype.setn = function setn(bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var off = bit / 26 | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | 1 << wbit;\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this.strip();\n  }; // Add `num` to `this` in-place\n\n\n  BN.prototype.iadd = function iadd(num) {\n    var r; // negative + positive\n\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign(); // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    } // a.length > b.length\n\n\n    var a, b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++; // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  }; // Add `num` to `this`\n\n\n  BN.prototype.add = function add(num) {\n    var res;\n\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n    return num.clone().iadd(this);\n  }; // Subtract `num` from `this` in-place\n\n\n  BN.prototype.isub = function isub(num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign(); // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    } // At this point both numbers are positive\n\n\n    var cmp = this.cmp(num); // Optimization - zeroify\n\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    } // a > b\n\n\n    var a, b;\n\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    } // Copy rest of the words\n\n\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this.strip();\n  }; // Subtract `num` from `this`\n\n\n  BN.prototype.sub = function sub(num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = self.length + num.length | 0;\n    out.length = len;\n    len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n    var lo = r & 0x3ffffff;\n    var carry = r / 0x4000000 | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += r / 0x4000000 | 0;\n        rword = r & 0x3ffffff;\n      }\n\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  } // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n\n\n  var comb10MulTo = function comb10MulTo(self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = mid + Math.imul(ah0, bl0) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = mid + Math.imul(ah1, bl0) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = lo + Math.imul(al0, bl1) | 0;\n    mid = mid + Math.imul(al0, bh1) | 0;\n    mid = mid + Math.imul(ah0, bl1) | 0;\n    hi = hi + Math.imul(ah0, bh1) | 0;\n    var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = mid + Math.imul(ah2, bl0) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = lo + Math.imul(al1, bl1) | 0;\n    mid = mid + Math.imul(al1, bh1) | 0;\n    mid = mid + Math.imul(ah1, bl1) | 0;\n    hi = hi + Math.imul(ah1, bh1) | 0;\n    lo = lo + Math.imul(al0, bl2) | 0;\n    mid = mid + Math.imul(al0, bh2) | 0;\n    mid = mid + Math.imul(ah0, bl2) | 0;\n    hi = hi + Math.imul(ah0, bh2) | 0;\n    var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = mid + Math.imul(ah3, bl0) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = lo + Math.imul(al2, bl1) | 0;\n    mid = mid + Math.imul(al2, bh1) | 0;\n    mid = mid + Math.imul(ah2, bl1) | 0;\n    hi = hi + Math.imul(ah2, bh1) | 0;\n    lo = lo + Math.imul(al1, bl2) | 0;\n    mid = mid + Math.imul(al1, bh2) | 0;\n    mid = mid + Math.imul(ah1, bl2) | 0;\n    hi = hi + Math.imul(ah1, bh2) | 0;\n    lo = lo + Math.imul(al0, bl3) | 0;\n    mid = mid + Math.imul(al0, bh3) | 0;\n    mid = mid + Math.imul(ah0, bl3) | 0;\n    hi = hi + Math.imul(ah0, bh3) | 0;\n    var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = mid + Math.imul(ah4, bl0) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = lo + Math.imul(al3, bl1) | 0;\n    mid = mid + Math.imul(al3, bh1) | 0;\n    mid = mid + Math.imul(ah3, bl1) | 0;\n    hi = hi + Math.imul(ah3, bh1) | 0;\n    lo = lo + Math.imul(al2, bl2) | 0;\n    mid = mid + Math.imul(al2, bh2) | 0;\n    mid = mid + Math.imul(ah2, bl2) | 0;\n    hi = hi + Math.imul(ah2, bh2) | 0;\n    lo = lo + Math.imul(al1, bl3) | 0;\n    mid = mid + Math.imul(al1, bh3) | 0;\n    mid = mid + Math.imul(ah1, bl3) | 0;\n    hi = hi + Math.imul(ah1, bh3) | 0;\n    lo = lo + Math.imul(al0, bl4) | 0;\n    mid = mid + Math.imul(al0, bh4) | 0;\n    mid = mid + Math.imul(ah0, bl4) | 0;\n    hi = hi + Math.imul(ah0, bh4) | 0;\n    var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = mid + Math.imul(ah5, bl0) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = lo + Math.imul(al4, bl1) | 0;\n    mid = mid + Math.imul(al4, bh1) | 0;\n    mid = mid + Math.imul(ah4, bl1) | 0;\n    hi = hi + Math.imul(ah4, bh1) | 0;\n    lo = lo + Math.imul(al3, bl2) | 0;\n    mid = mid + Math.imul(al3, bh2) | 0;\n    mid = mid + Math.imul(ah3, bl2) | 0;\n    hi = hi + Math.imul(ah3, bh2) | 0;\n    lo = lo + Math.imul(al2, bl3) | 0;\n    mid = mid + Math.imul(al2, bh3) | 0;\n    mid = mid + Math.imul(ah2, bl3) | 0;\n    hi = hi + Math.imul(ah2, bh3) | 0;\n    lo = lo + Math.imul(al1, bl4) | 0;\n    mid = mid + Math.imul(al1, bh4) | 0;\n    mid = mid + Math.imul(ah1, bl4) | 0;\n    hi = hi + Math.imul(ah1, bh4) | 0;\n    lo = lo + Math.imul(al0, bl5) | 0;\n    mid = mid + Math.imul(al0, bh5) | 0;\n    mid = mid + Math.imul(ah0, bl5) | 0;\n    hi = hi + Math.imul(ah0, bh5) | 0;\n    var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = mid + Math.imul(ah6, bl0) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = lo + Math.imul(al5, bl1) | 0;\n    mid = mid + Math.imul(al5, bh1) | 0;\n    mid = mid + Math.imul(ah5, bl1) | 0;\n    hi = hi + Math.imul(ah5, bh1) | 0;\n    lo = lo + Math.imul(al4, bl2) | 0;\n    mid = mid + Math.imul(al4, bh2) | 0;\n    mid = mid + Math.imul(ah4, bl2) | 0;\n    hi = hi + Math.imul(ah4, bh2) | 0;\n    lo = lo + Math.imul(al3, bl3) | 0;\n    mid = mid + Math.imul(al3, bh3) | 0;\n    mid = mid + Math.imul(ah3, bl3) | 0;\n    hi = hi + Math.imul(ah3, bh3) | 0;\n    lo = lo + Math.imul(al2, bl4) | 0;\n    mid = mid + Math.imul(al2, bh4) | 0;\n    mid = mid + Math.imul(ah2, bl4) | 0;\n    hi = hi + Math.imul(ah2, bh4) | 0;\n    lo = lo + Math.imul(al1, bl5) | 0;\n    mid = mid + Math.imul(al1, bh5) | 0;\n    mid = mid + Math.imul(ah1, bl5) | 0;\n    hi = hi + Math.imul(ah1, bh5) | 0;\n    lo = lo + Math.imul(al0, bl6) | 0;\n    mid = mid + Math.imul(al0, bh6) | 0;\n    mid = mid + Math.imul(ah0, bl6) | 0;\n    hi = hi + Math.imul(ah0, bh6) | 0;\n    var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = mid + Math.imul(ah7, bl0) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = lo + Math.imul(al6, bl1) | 0;\n    mid = mid + Math.imul(al6, bh1) | 0;\n    mid = mid + Math.imul(ah6, bl1) | 0;\n    hi = hi + Math.imul(ah6, bh1) | 0;\n    lo = lo + Math.imul(al5, bl2) | 0;\n    mid = mid + Math.imul(al5, bh2) | 0;\n    mid = mid + Math.imul(ah5, bl2) | 0;\n    hi = hi + Math.imul(ah5, bh2) | 0;\n    lo = lo + Math.imul(al4, bl3) | 0;\n    mid = mid + Math.imul(al4, bh3) | 0;\n    mid = mid + Math.imul(ah4, bl3) | 0;\n    hi = hi + Math.imul(ah4, bh3) | 0;\n    lo = lo + Math.imul(al3, bl4) | 0;\n    mid = mid + Math.imul(al3, bh4) | 0;\n    mid = mid + Math.imul(ah3, bl4) | 0;\n    hi = hi + Math.imul(ah3, bh4) | 0;\n    lo = lo + Math.imul(al2, bl5) | 0;\n    mid = mid + Math.imul(al2, bh5) | 0;\n    mid = mid + Math.imul(ah2, bl5) | 0;\n    hi = hi + Math.imul(ah2, bh5) | 0;\n    lo = lo + Math.imul(al1, bl6) | 0;\n    mid = mid + Math.imul(al1, bh6) | 0;\n    mid = mid + Math.imul(ah1, bl6) | 0;\n    hi = hi + Math.imul(ah1, bh6) | 0;\n    lo = lo + Math.imul(al0, bl7) | 0;\n    mid = mid + Math.imul(al0, bh7) | 0;\n    mid = mid + Math.imul(ah0, bl7) | 0;\n    hi = hi + Math.imul(ah0, bh7) | 0;\n    var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = mid + Math.imul(ah8, bl0) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = lo + Math.imul(al7, bl1) | 0;\n    mid = mid + Math.imul(al7, bh1) | 0;\n    mid = mid + Math.imul(ah7, bl1) | 0;\n    hi = hi + Math.imul(ah7, bh1) | 0;\n    lo = lo + Math.imul(al6, bl2) | 0;\n    mid = mid + Math.imul(al6, bh2) | 0;\n    mid = mid + Math.imul(ah6, bl2) | 0;\n    hi = hi + Math.imul(ah6, bh2) | 0;\n    lo = lo + Math.imul(al5, bl3) | 0;\n    mid = mid + Math.imul(al5, bh3) | 0;\n    mid = mid + Math.imul(ah5, bl3) | 0;\n    hi = hi + Math.imul(ah5, bh3) | 0;\n    lo = lo + Math.imul(al4, bl4) | 0;\n    mid = mid + Math.imul(al4, bh4) | 0;\n    mid = mid + Math.imul(ah4, bl4) | 0;\n    hi = hi + Math.imul(ah4, bh4) | 0;\n    lo = lo + Math.imul(al3, bl5) | 0;\n    mid = mid + Math.imul(al3, bh5) | 0;\n    mid = mid + Math.imul(ah3, bl5) | 0;\n    hi = hi + Math.imul(ah3, bh5) | 0;\n    lo = lo + Math.imul(al2, bl6) | 0;\n    mid = mid + Math.imul(al2, bh6) | 0;\n    mid = mid + Math.imul(ah2, bl6) | 0;\n    hi = hi + Math.imul(ah2, bh6) | 0;\n    lo = lo + Math.imul(al1, bl7) | 0;\n    mid = mid + Math.imul(al1, bh7) | 0;\n    mid = mid + Math.imul(ah1, bl7) | 0;\n    hi = hi + Math.imul(ah1, bh7) | 0;\n    lo = lo + Math.imul(al0, bl8) | 0;\n    mid = mid + Math.imul(al0, bh8) | 0;\n    mid = mid + Math.imul(ah0, bl8) | 0;\n    hi = hi + Math.imul(ah0, bh8) | 0;\n    var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = mid + Math.imul(ah9, bl0) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = lo + Math.imul(al8, bl1) | 0;\n    mid = mid + Math.imul(al8, bh1) | 0;\n    mid = mid + Math.imul(ah8, bl1) | 0;\n    hi = hi + Math.imul(ah8, bh1) | 0;\n    lo = lo + Math.imul(al7, bl2) | 0;\n    mid = mid + Math.imul(al7, bh2) | 0;\n    mid = mid + Math.imul(ah7, bl2) | 0;\n    hi = hi + Math.imul(ah7, bh2) | 0;\n    lo = lo + Math.imul(al6, bl3) | 0;\n    mid = mid + Math.imul(al6, bh3) | 0;\n    mid = mid + Math.imul(ah6, bl3) | 0;\n    hi = hi + Math.imul(ah6, bh3) | 0;\n    lo = lo + Math.imul(al5, bl4) | 0;\n    mid = mid + Math.imul(al5, bh4) | 0;\n    mid = mid + Math.imul(ah5, bl4) | 0;\n    hi = hi + Math.imul(ah5, bh4) | 0;\n    lo = lo + Math.imul(al4, bl5) | 0;\n    mid = mid + Math.imul(al4, bh5) | 0;\n    mid = mid + Math.imul(ah4, bl5) | 0;\n    hi = hi + Math.imul(ah4, bh5) | 0;\n    lo = lo + Math.imul(al3, bl6) | 0;\n    mid = mid + Math.imul(al3, bh6) | 0;\n    mid = mid + Math.imul(ah3, bl6) | 0;\n    hi = hi + Math.imul(ah3, bh6) | 0;\n    lo = lo + Math.imul(al2, bl7) | 0;\n    mid = mid + Math.imul(al2, bh7) | 0;\n    mid = mid + Math.imul(ah2, bl7) | 0;\n    hi = hi + Math.imul(ah2, bh7) | 0;\n    lo = lo + Math.imul(al1, bl8) | 0;\n    mid = mid + Math.imul(al1, bh8) | 0;\n    mid = mid + Math.imul(ah1, bl8) | 0;\n    hi = hi + Math.imul(ah1, bh8) | 0;\n    lo = lo + Math.imul(al0, bl9) | 0;\n    mid = mid + Math.imul(al0, bh9) | 0;\n    mid = mid + Math.imul(ah0, bl9) | 0;\n    hi = hi + Math.imul(ah0, bh9) | 0;\n    var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = mid + Math.imul(ah9, bl1) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = lo + Math.imul(al8, bl2) | 0;\n    mid = mid + Math.imul(al8, bh2) | 0;\n    mid = mid + Math.imul(ah8, bl2) | 0;\n    hi = hi + Math.imul(ah8, bh2) | 0;\n    lo = lo + Math.imul(al7, bl3) | 0;\n    mid = mid + Math.imul(al7, bh3) | 0;\n    mid = mid + Math.imul(ah7, bl3) | 0;\n    hi = hi + Math.imul(ah7, bh3) | 0;\n    lo = lo + Math.imul(al6, bl4) | 0;\n    mid = mid + Math.imul(al6, bh4) | 0;\n    mid = mid + Math.imul(ah6, bl4) | 0;\n    hi = hi + Math.imul(ah6, bh4) | 0;\n    lo = lo + Math.imul(al5, bl5) | 0;\n    mid = mid + Math.imul(al5, bh5) | 0;\n    mid = mid + Math.imul(ah5, bl5) | 0;\n    hi = hi + Math.imul(ah5, bh5) | 0;\n    lo = lo + Math.imul(al4, bl6) | 0;\n    mid = mid + Math.imul(al4, bh6) | 0;\n    mid = mid + Math.imul(ah4, bl6) | 0;\n    hi = hi + Math.imul(ah4, bh6) | 0;\n    lo = lo + Math.imul(al3, bl7) | 0;\n    mid = mid + Math.imul(al3, bh7) | 0;\n    mid = mid + Math.imul(ah3, bl7) | 0;\n    hi = hi + Math.imul(ah3, bh7) | 0;\n    lo = lo + Math.imul(al2, bl8) | 0;\n    mid = mid + Math.imul(al2, bh8) | 0;\n    mid = mid + Math.imul(ah2, bl8) | 0;\n    hi = hi + Math.imul(ah2, bh8) | 0;\n    lo = lo + Math.imul(al1, bl9) | 0;\n    mid = mid + Math.imul(al1, bh9) | 0;\n    mid = mid + Math.imul(ah1, bl9) | 0;\n    hi = hi + Math.imul(ah1, bh9) | 0;\n    var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = mid + Math.imul(ah9, bl2) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = lo + Math.imul(al8, bl3) | 0;\n    mid = mid + Math.imul(al8, bh3) | 0;\n    mid = mid + Math.imul(ah8, bl3) | 0;\n    hi = hi + Math.imul(ah8, bh3) | 0;\n    lo = lo + Math.imul(al7, bl4) | 0;\n    mid = mid + Math.imul(al7, bh4) | 0;\n    mid = mid + Math.imul(ah7, bl4) | 0;\n    hi = hi + Math.imul(ah7, bh4) | 0;\n    lo = lo + Math.imul(al6, bl5) | 0;\n    mid = mid + Math.imul(al6, bh5) | 0;\n    mid = mid + Math.imul(ah6, bl5) | 0;\n    hi = hi + Math.imul(ah6, bh5) | 0;\n    lo = lo + Math.imul(al5, bl6) | 0;\n    mid = mid + Math.imul(al5, bh6) | 0;\n    mid = mid + Math.imul(ah5, bl6) | 0;\n    hi = hi + Math.imul(ah5, bh6) | 0;\n    lo = lo + Math.imul(al4, bl7) | 0;\n    mid = mid + Math.imul(al4, bh7) | 0;\n    mid = mid + Math.imul(ah4, bl7) | 0;\n    hi = hi + Math.imul(ah4, bh7) | 0;\n    lo = lo + Math.imul(al3, bl8) | 0;\n    mid = mid + Math.imul(al3, bh8) | 0;\n    mid = mid + Math.imul(ah3, bl8) | 0;\n    hi = hi + Math.imul(ah3, bh8) | 0;\n    lo = lo + Math.imul(al2, bl9) | 0;\n    mid = mid + Math.imul(al2, bh9) | 0;\n    mid = mid + Math.imul(ah2, bl9) | 0;\n    hi = hi + Math.imul(ah2, bh9) | 0;\n    var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = mid + Math.imul(ah9, bl3) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = lo + Math.imul(al8, bl4) | 0;\n    mid = mid + Math.imul(al8, bh4) | 0;\n    mid = mid + Math.imul(ah8, bl4) | 0;\n    hi = hi + Math.imul(ah8, bh4) | 0;\n    lo = lo + Math.imul(al7, bl5) | 0;\n    mid = mid + Math.imul(al7, bh5) | 0;\n    mid = mid + Math.imul(ah7, bl5) | 0;\n    hi = hi + Math.imul(ah7, bh5) | 0;\n    lo = lo + Math.imul(al6, bl6) | 0;\n    mid = mid + Math.imul(al6, bh6) | 0;\n    mid = mid + Math.imul(ah6, bl6) | 0;\n    hi = hi + Math.imul(ah6, bh6) | 0;\n    lo = lo + Math.imul(al5, bl7) | 0;\n    mid = mid + Math.imul(al5, bh7) | 0;\n    mid = mid + Math.imul(ah5, bl7) | 0;\n    hi = hi + Math.imul(ah5, bh7) | 0;\n    lo = lo + Math.imul(al4, bl8) | 0;\n    mid = mid + Math.imul(al4, bh8) | 0;\n    mid = mid + Math.imul(ah4, bl8) | 0;\n    hi = hi + Math.imul(ah4, bh8) | 0;\n    lo = lo + Math.imul(al3, bl9) | 0;\n    mid = mid + Math.imul(al3, bh9) | 0;\n    mid = mid + Math.imul(ah3, bl9) | 0;\n    hi = hi + Math.imul(ah3, bh9) | 0;\n    var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = mid + Math.imul(ah9, bl4) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = lo + Math.imul(al8, bl5) | 0;\n    mid = mid + Math.imul(al8, bh5) | 0;\n    mid = mid + Math.imul(ah8, bl5) | 0;\n    hi = hi + Math.imul(ah8, bh5) | 0;\n    lo = lo + Math.imul(al7, bl6) | 0;\n    mid = mid + Math.imul(al7, bh6) | 0;\n    mid = mid + Math.imul(ah7, bl6) | 0;\n    hi = hi + Math.imul(ah7, bh6) | 0;\n    lo = lo + Math.imul(al6, bl7) | 0;\n    mid = mid + Math.imul(al6, bh7) | 0;\n    mid = mid + Math.imul(ah6, bl7) | 0;\n    hi = hi + Math.imul(ah6, bh7) | 0;\n    lo = lo + Math.imul(al5, bl8) | 0;\n    mid = mid + Math.imul(al5, bh8) | 0;\n    mid = mid + Math.imul(ah5, bl8) | 0;\n    hi = hi + Math.imul(ah5, bh8) | 0;\n    lo = lo + Math.imul(al4, bl9) | 0;\n    mid = mid + Math.imul(al4, bh9) | 0;\n    mid = mid + Math.imul(ah4, bl9) | 0;\n    hi = hi + Math.imul(ah4, bh9) | 0;\n    var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = mid + Math.imul(ah9, bl5) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = lo + Math.imul(al8, bl6) | 0;\n    mid = mid + Math.imul(al8, bh6) | 0;\n    mid = mid + Math.imul(ah8, bl6) | 0;\n    hi = hi + Math.imul(ah8, bh6) | 0;\n    lo = lo + Math.imul(al7, bl7) | 0;\n    mid = mid + Math.imul(al7, bh7) | 0;\n    mid = mid + Math.imul(ah7, bl7) | 0;\n    hi = hi + Math.imul(ah7, bh7) | 0;\n    lo = lo + Math.imul(al6, bl8) | 0;\n    mid = mid + Math.imul(al6, bh8) | 0;\n    mid = mid + Math.imul(ah6, bl8) | 0;\n    hi = hi + Math.imul(ah6, bh8) | 0;\n    lo = lo + Math.imul(al5, bl9) | 0;\n    mid = mid + Math.imul(al5, bh9) | 0;\n    mid = mid + Math.imul(ah5, bl9) | 0;\n    hi = hi + Math.imul(ah5, bh9) | 0;\n    var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = mid + Math.imul(ah9, bl6) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = lo + Math.imul(al8, bl7) | 0;\n    mid = mid + Math.imul(al8, bh7) | 0;\n    mid = mid + Math.imul(ah8, bl7) | 0;\n    hi = hi + Math.imul(ah8, bh7) | 0;\n    lo = lo + Math.imul(al7, bl8) | 0;\n    mid = mid + Math.imul(al7, bh8) | 0;\n    mid = mid + Math.imul(ah7, bl8) | 0;\n    hi = hi + Math.imul(ah7, bh8) | 0;\n    lo = lo + Math.imul(al6, bl9) | 0;\n    mid = mid + Math.imul(al6, bh9) | 0;\n    mid = mid + Math.imul(ah6, bl9) | 0;\n    hi = hi + Math.imul(ah6, bh9) | 0;\n    var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = mid + Math.imul(ah9, bl7) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = lo + Math.imul(al8, bl8) | 0;\n    mid = mid + Math.imul(al8, bh8) | 0;\n    mid = mid + Math.imul(ah8, bl8) | 0;\n    hi = hi + Math.imul(ah8, bh8) | 0;\n    lo = lo + Math.imul(al7, bl9) | 0;\n    mid = mid + Math.imul(al7, bh9) | 0;\n    mid = mid + Math.imul(ah7, bl9) | 0;\n    hi = hi + Math.imul(ah7, bh9) | 0;\n    var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = mid + Math.imul(ah9, bl8) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = lo + Math.imul(al8, bl9) | 0;\n    mid = mid + Math.imul(al8, bh9) | 0;\n    mid = mid + Math.imul(ah8, bl9) | 0;\n    hi = hi + Math.imul(ah8, bh9) | 0;\n    var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = mid + Math.imul(ah9, bl9) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n\n    return out;\n  }; // Polyfill comb\n\n\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n    var carry = 0;\n    var hncarry = 0;\n\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n        var lo = r & 0x3ffffff;\n        ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n        lo = lo + rword | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = ncarry + (lo >>> 26) | 0;\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  function jumboMulTo(self, num, out) {\n    var fftm = new FFTM();\n    return fftm.mulp(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo(num, out) {\n    var res;\n    var len = this.length + num.length;\n\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  }; // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n\n  function FFTM(x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT(N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  }; // Returns binary-reversed representation of `x`\n\n\n  FFTM.prototype.revBin = function revBin(x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n    var rb = 0;\n\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << l - i - 1;\n      x >>= 1;\n    }\n\n    return rb;\n  }; // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n\n\n  FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n          var rx = rtwdf_ * ro - itwdf_ * io;\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n          /* jshint maxdepth : false */\n\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n      t = iws[i];\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n      rws[2 * i] = carry & 0x1fff;\n      carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff;\n      carry = carry >>> 13;\n    } // Pad with zeroes\n\n\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub(N) {\n    var ph = new Array(N);\n\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp(x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n    var rmws = out.words;\n    rmws.length = N;\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out.strip();\n  }; // Multiply `this` by `num`\n\n\n  BN.prototype.mul = function mul(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  }; // Multiply employing FFT\n\n\n  BN.prototype.mulf = function mulf(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  }; // In-place Multiplication\n\n\n  BN.prototype.imul = function imul(num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000); // Carry\n\n    var carry = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.muln = function muln(num) {\n    return this.clone().imuln(num);\n  }; // `this` * `this`\n\n\n  BN.prototype.sqr = function sqr() {\n    return this.mul(this);\n  }; // `this` * `this` in-place\n\n\n  BN.prototype.isqr = function isqr() {\n    return this.imul(this.clone());\n  }; // Math.pow(`this`, `num`)\n\n\n  BN.prototype.pow = function pow(num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n    var res = this;\n\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  }; // Shift-left in-place\n\n\n  BN.prototype.iushln = function iushln(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = (this.words[i] | 0) - newCarry << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> 26 - r;\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishln = function ishln(bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  }; // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n  BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n\n    if (hint) {\n      h = (hint - hint % 26) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n    var maskedWords = extended;\n    h -= s;\n    h = Math.max(0, h); // Extended mode, copy masked part\n\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {// No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = carry << 26 - r | word >>> r;\n      carry = word & mask;\n    } // Push carried bits as a mask\n\n\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  }; // Shift-left\n\n\n  BN.prototype.shln = function shln(bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln(bits) {\n    return this.clone().iushln(bits);\n  }; // Shift-right\n\n\n  BN.prototype.shrn = function shrn(bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn(bits) {\n    return this.clone().iushrn(bits);\n  }; // Test if n bit is set\n\n\n  BN.prototype.testn = function testn(bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) return false; // Check bit and return\n\n    var w = this.words[s];\n    return !!(w & q);\n  }; // Return only lowers bits of number (in-place)\n\n\n  BN.prototype.imaskn = function imaskn(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this.strip();\n  }; // Return only lowers bits of number\n\n\n  BN.prototype.maskn = function maskn(bits) {\n    return this.clone().imaskn(bits);\n  }; // Add plain number `num` to `this`\n\n\n  BN.prototype.iaddn = function iaddn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num); // Possible sign change\n\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) < num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    } // Add without checks\n\n\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn(num) {\n    this.words[0] += num; // Carry\n\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n\n    this.length = Math.max(this.length, i + 1);\n    return this;\n  }; // Subtract plain number `num` from `this`\n\n\n  BN.prototype.isubn = function isubn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.addn = function addn(num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn(num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs() {\n    this.negative = 0;\n    return this;\n  };\n\n  BN.prototype.abs = function abs() {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - (right / 0x4000000 | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this.strip(); // Subtraction overflow\n\n    assert(carry === -1);\n    carry = 0;\n\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n\n    this.negative = 1;\n    return this.strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv(num, mode) {\n    var shift = this.length - num.length;\n    var a = this.clone();\n    var b = num; // Normalize\n\n    var bhi = b.words[b.length - 1] | 0;\n\n    var bhiBits = this._countBits(bhi);\n\n    shift = 26 - bhiBits;\n\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    } // Initialize quotient\n\n\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n    if (diff.negative === 0) {\n      a = diff;\n\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n\n      qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n\n        a._ishlnsubmul(b, 1, j);\n\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n\n    if (q) {\n      q.strip();\n    }\n\n    a.strip(); // Denormalize\n\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n\n\n  BN.prototype.divmod = function divmod(num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    } // Both numbers are positive at this point\n    // Strip both numbers to approximate shift value\n\n\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    } // Very short reduction\n\n\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  }; // Find `this` / `num`\n\n\n  BN.prototype.div = function div(num) {\n    return this.divmod(num, 'div', false).div;\n  }; // Find `this` % `num`\n\n\n  BN.prototype.mod = function mod(num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod(num) {\n    return this.divmod(num, 'mod', true).mod;\n  }; // Find Round(`this` / `num`)\n\n\n  BN.prototype.divRound = function divRound(num) {\n    var dm = this.divmod(num); // Fast case - exact division\n\n    if (dm.mod.isZero()) return dm.div;\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half); // Round down\n\n    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modn = function modn(num) {\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n    var acc = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return acc;\n  }; // In-place division by number\n\n\n  BN.prototype.idivn = function idivn(num) {\n    assert(num <= 0x3ffffff);\n    var carry = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = w / num | 0;\n      carry = w % num;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.divn = function divn(num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    } // A * x + B * y = x\n\n\n    var A = new BN(1);\n    var B = new BN(0); // C * x + D * y = y\n\n    var C = new BN(0);\n    var D = new BN(1);\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        x.iushrn(i);\n\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        y.iushrn(j);\n\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  }; // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n\n\n  BN.prototype._invmp = function _invmp(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        a.iushrn(i);\n\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        b.iushrn(j);\n\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd(num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0; // Remove common factor of two\n\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  }; // Invert number in the field F(num)\n\n\n  BN.prototype.invm = function invm(num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven() {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd() {\n    return (this.words[0] & 1) === 1;\n  }; // And first word and num\n\n\n  BN.prototype.andln = function andln(num) {\n    return this.words[0] & num;\n  }; // Increment at the bit position in-line\n\n\n  BN.prototype.bincn = function bincn(bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) {\n      this._expand(s + 1);\n\n      this.words[s] |= q;\n      return this;\n    } // Add bit and propagate, if needed\n\n\n    var carry = q;\n\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero() {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn(num) {\n    var negative = num < 0;\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n    this.strip();\n    var res;\n\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n\n\n  BN.prototype.cmp = function cmp(num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Unsigned comparison\n\n\n  BN.prototype.ucmp = function ucmp(num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n    var res = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n      if (a === b) continue;\n\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n\n      break;\n    }\n\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn(num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt(num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten(num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte(num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn(num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt(num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten(num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte(num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn(num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq(num) {\n    return this.cmp(num) === 0;\n  }; //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n\n\n  BN.red = function red(num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed() {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed(ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd(num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd(num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub(num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub(num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl(num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr() {\n    assert(this.red, 'redSqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr() {\n    assert(this.red, 'redISqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.isqr(this);\n  }; // Square root over p\n\n\n  BN.prototype.redSqrt = function redSqrt() {\n    assert(this.red, 'redSqrt works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm() {\n    assert(this.red, 'redInvm works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.invm(this);\n  }; // Return negative clone of `this` % `red modulo`\n\n\n  BN.prototype.redNeg = function redNeg() {\n    assert(this.red, 'redNeg works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow(num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n\n    this.red._verify1(this);\n\n    return this.red.pow(this, num);\n  }; // Prime numbers with efficient reduction\n\n\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  }; // Pseudo-Mersenne prime\n\n  function MPrime(name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp() {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce(num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is BN v4 instance\n        r.strip();\n      } else {\n        // r is BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split(input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK(num) {\n    return num.imul(this.k);\n  };\n\n  function K256() {\n    MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split(input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n    var outLen = Math.min(input.length, 9);\n\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    } // Shift by 9 limbs\n\n\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n      prev = next;\n    }\n\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK(num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n    var lo = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + (lo / 0x4000000 | 0);\n    } // Fast length reduction\n\n\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n\n    return num;\n  };\n\n  function P224() {\n    MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n\n  inherits(P224, MPrime);\n\n  function P192() {\n    MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n\n  inherits(P192, MPrime);\n\n  function P25519() {\n    // 2 ^ 255 - 19\n    MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK(num) {\n    // K = 0x13\n    var carry = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n      num.words[i] = lo;\n      carry = hi;\n    }\n\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n\n    return num;\n  }; // Exported mostly for testing purposes, use plain name instead\n\n\n  BN._prime = function prime(name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n    var prime;\n\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n\n    primes[name] = prime;\n    return prime;\n  }; //\n  // Base reduction engine\n  //\n\n\n  function Red(m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1(a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2(a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red, 'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod(a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n    return a.umod(this.m)._forceRed(this);\n  };\n\n  Red.prototype.neg = function neg(a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add(a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd(a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.sub = function sub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.shl = function shl(a, num) {\n    this._verify1(a);\n\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr(a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr(a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt(a) {\n    if (a.isZero()) return a.clone();\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1); // Fast case\n\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n    var q = this.m.subn(1);\n    var s = 0;\n\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n\n    assert(!q.isZero());\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg(); // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm(a) {\n    var inv = a._invmp(this.m);\n\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow(a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = word >> j & 1;\n\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo(num) {\n    var r = num.umod(this.m);\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom(num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  }; //\n  // Montgomery method engine\n  //\n\n\n  BN.mont = function mont(num) {\n    return new Mont(num);\n  };\n\n  function Mont(m) {\n    Red.call(this, m);\n    this.shift = this.m.bitLength();\n\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - this.shift % 26;\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo(num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom(num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul(a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul(a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm(a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/create-hash/browser.js":
/*!*********************************************!*\
  !*** ./node_modules/create-hash/browser.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar MD5 = __webpack_require__(/*! md5.js */ \"./node_modules/md5.js/index.js\");\n\nvar RIPEMD160 = __webpack_require__(/*! ripemd160 */ \"./node_modules/ripemd160/index.js\");\n\nvar sha = __webpack_require__(/*! sha.js */ \"./node_modules/sha.js/index.js\");\n\nvar Base = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nfunction Hash(hash) {\n  Base.call(this, 'digest');\n  this._hash = hash;\n}\n\ninherits(Hash, Base);\n\nHash.prototype._update = function (data) {\n  this._hash.update(data);\n};\n\nHash.prototype._final = function () {\n  return this._hash.digest();\n};\n\nmodule.exports = function createHash(alg) {\n  alg = alg.toLowerCase();\n  if (alg === 'md5') return new MD5();\n  if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160();\n  return new Hash(sha(alg));\n};\n\n//# sourceURL=webpack:///./node_modules/create-hash/browser.js?");

/***/ }),

/***/ "./node_modules/create-hash/md5.js":
/*!*****************************************!*\
  !*** ./node_modules/create-hash/md5.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var MD5 = __webpack_require__(/*! md5.js */ \"./node_modules/md5.js/index.js\");\n\nmodule.exports = function (buffer) {\n  return new MD5().update(buffer).digest();\n};\n\n//# sourceURL=webpack:///./node_modules/create-hash/md5.js?");

/***/ }),

/***/ "./node_modules/create-hmac/browser.js":
/*!*********************************************!*\
  !*** ./node_modules/create-hmac/browser.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Legacy = __webpack_require__(/*! ./legacy */ \"./node_modules/create-hmac/legacy.js\");\n\nvar Base = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar md5 = __webpack_require__(/*! create-hash/md5 */ \"./node_modules/create-hash/md5.js\");\n\nvar RIPEMD160 = __webpack_require__(/*! ripemd160 */ \"./node_modules/ripemd160/index.js\");\n\nvar sha = __webpack_require__(/*! sha.js */ \"./node_modules/sha.js/index.js\");\n\nvar ZEROS = Buffer.alloc(128);\n\nfunction Hmac(alg, key) {\n  Base.call(this, 'digest');\n\n  if (typeof key === 'string') {\n    key = Buffer.from(key);\n  }\n\n  var blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64;\n  this._alg = alg;\n  this._key = key;\n\n  if (key.length > blocksize) {\n    var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg);\n    key = hash.update(key).digest();\n  } else if (key.length < blocksize) {\n    key = Buffer.concat([key, ZEROS], blocksize);\n  }\n\n  var ipad = this._ipad = Buffer.allocUnsafe(blocksize);\n  var opad = this._opad = Buffer.allocUnsafe(blocksize);\n\n  for (var i = 0; i < blocksize; i++) {\n    ipad[i] = key[i] ^ 0x36;\n    opad[i] = key[i] ^ 0x5C;\n  }\n\n  this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg);\n\n  this._hash.update(ipad);\n}\n\ninherits(Hmac, Base);\n\nHmac.prototype._update = function (data) {\n  this._hash.update(data);\n};\n\nHmac.prototype._final = function () {\n  var h = this._hash.digest();\n\n  var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg);\n  return hash.update(this._opad).update(h).digest();\n};\n\nmodule.exports = function createHmac(alg, key) {\n  alg = alg.toLowerCase();\n\n  if (alg === 'rmd160' || alg === 'ripemd160') {\n    return new Hmac('rmd160', key);\n  }\n\n  if (alg === 'md5') {\n    return new Legacy(md5, key);\n  }\n\n  return new Hmac(alg, key);\n};\n\n//# sourceURL=webpack:///./node_modules/create-hmac/browser.js?");

/***/ }),

/***/ "./node_modules/create-hmac/legacy.js":
/*!********************************************!*\
  !*** ./node_modules/create-hmac/legacy.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar Base = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\");\n\nvar ZEROS = Buffer.alloc(128);\nvar blocksize = 64;\n\nfunction Hmac(alg, key) {\n  Base.call(this, 'digest');\n\n  if (typeof key === 'string') {\n    key = Buffer.from(key);\n  }\n\n  this._alg = alg;\n  this._key = key;\n\n  if (key.length > blocksize) {\n    key = alg(key);\n  } else if (key.length < blocksize) {\n    key = Buffer.concat([key, ZEROS], blocksize);\n  }\n\n  var ipad = this._ipad = Buffer.allocUnsafe(blocksize);\n  var opad = this._opad = Buffer.allocUnsafe(blocksize);\n\n  for (var i = 0; i < blocksize; i++) {\n    ipad[i] = key[i] ^ 0x36;\n    opad[i] = key[i] ^ 0x5C;\n  }\n\n  this._hash = [ipad];\n}\n\ninherits(Hmac, Base);\n\nHmac.prototype._update = function (data) {\n  this._hash.push(data);\n};\n\nHmac.prototype._final = function () {\n  var h = this._alg(Buffer.concat(this._hash));\n\n  return this._alg(Buffer.concat([this._opad, h]));\n};\n\nmodule.exports = Hmac;\n\n//# sourceURL=webpack:///./node_modules/create-hmac/legacy.js?");

/***/ }),

/***/ "./node_modules/crypto-browserify/index.js":
/*!*************************************************!*\
  !*** ./node_modules/crypto-browserify/index.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\nexports.createHash = exports.Hash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\");\nexports.createHmac = exports.Hmac = __webpack_require__(/*! create-hmac */ \"./node_modules/create-hmac/browser.js\");\n\nvar algos = __webpack_require__(/*! browserify-sign/algos */ \"./node_modules/browserify-sign/algos.js\");\n\nvar algoKeys = Object.keys(algos);\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys);\n\nexports.getHashes = function () {\n  return hashes;\n};\n\nvar p = __webpack_require__(/*! pbkdf2 */ \"./node_modules/pbkdf2/browser.js\");\n\nexports.pbkdf2 = p.pbkdf2;\nexports.pbkdf2Sync = p.pbkdf2Sync;\n\nvar aes = __webpack_require__(/*! browserify-cipher */ \"./node_modules/browserify-cipher/browser.js\");\n\nexports.Cipher = aes.Cipher;\nexports.createCipher = aes.createCipher;\nexports.Cipheriv = aes.Cipheriv;\nexports.createCipheriv = aes.createCipheriv;\nexports.Decipher = aes.Decipher;\nexports.createDecipher = aes.createDecipher;\nexports.Decipheriv = aes.Decipheriv;\nexports.createDecipheriv = aes.createDecipheriv;\nexports.getCiphers = aes.getCiphers;\nexports.listCiphers = aes.listCiphers;\n\nvar dh = __webpack_require__(/*! diffie-hellman */ \"./node_modules/diffie-hellman/browser.js\");\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup;\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;\nexports.getDiffieHellman = dh.getDiffieHellman;\nexports.createDiffieHellman = dh.createDiffieHellman;\nexports.DiffieHellman = dh.DiffieHellman;\n\nvar sign = __webpack_require__(/*! browserify-sign */ \"./node_modules/browserify-sign/browser/index.js\");\n\nexports.createSign = sign.createSign;\nexports.Sign = sign.Sign;\nexports.createVerify = sign.createVerify;\nexports.Verify = sign.Verify;\nexports.createECDH = __webpack_require__(/*! create-ecdh */ \"./node_modules/create-ecdh/browser.js\");\n\nvar publicEncrypt = __webpack_require__(/*! public-encrypt */ \"./node_modules/public-encrypt/browser.js\");\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt;\nexports.privateEncrypt = publicEncrypt.privateEncrypt;\nexports.publicDecrypt = publicEncrypt.publicDecrypt;\nexports.privateDecrypt = publicEncrypt.privateDecrypt; // the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n//   'createCredentials'\n// ].forEach(function (name) {\n//   exports[name] = function () {\n//     throw new Error([\n//       'sorry, ' + name + ' is not implemented yet',\n//       'we accept pull requests',\n//       'https://github.com/crypto-browserify/crypto-browserify'\n//     ].join('\\n'))\n//   }\n// })\n\nvar rf = __webpack_require__(/*! randomfill */ \"./node_modules/randomfill/browser.js\");\n\nexports.randomFill = rf.randomFill;\nexports.randomFillSync = rf.randomFillSync;\n\nexports.createCredentials = function () {\n  throw new Error(['sorry, createCredentials is not implemented yet', 'we accept pull requests', 'https://github.com/crypto-browserify/crypto-browserify'].join('\\n'));\n};\n\nexports.constants = {\n  'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n  'DH_CHECK_P_NOT_PRIME': 1,\n  'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n  'DH_NOT_SUITABLE_GENERATOR': 8,\n  'NPN_ENABLED': 1,\n  'ALPN_ENABLED': 1,\n  'RSA_PKCS1_PADDING': 1,\n  'RSA_SSLV23_PADDING': 2,\n  'RSA_NO_PADDING': 3,\n  'RSA_PKCS1_OAEP_PADDING': 4,\n  'RSA_X931_PADDING': 5,\n  'RSA_PKCS1_PSS_PADDING': 6,\n  'POINT_CONVERSION_COMPRESSED': 2,\n  'POINT_CONVERSION_UNCOMPRESSED': 4,\n  'POINT_CONVERSION_HYBRID': 6\n};\n\n//# sourceURL=webpack:///./node_modules/crypto-browserify/index.js?");

/***/ }),

/***/ "./node_modules/des.js/lib/des.js":
/*!****************************************!*\
  !*** ./node_modules/des.js/lib/des.js ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nexports.utils = __webpack_require__(/*! ./des/utils */ \"./node_modules/des.js/lib/des/utils.js\");\nexports.Cipher = __webpack_require__(/*! ./des/cipher */ \"./node_modules/des.js/lib/des/cipher.js\");\nexports.DES = __webpack_require__(/*! ./des/des */ \"./node_modules/des.js/lib/des/des.js\");\nexports.CBC = __webpack_require__(/*! ./des/cbc */ \"./node_modules/des.js/lib/des/cbc.js\");\nexports.EDE = __webpack_require__(/*! ./des/ede */ \"./node_modules/des.js/lib/des/ede.js\");\n\n//# sourceURL=webpack:///./node_modules/des.js/lib/des.js?");

/***/ }),

/***/ "./node_modules/des.js/lib/des/cbc.js":
/*!********************************************!*\
  !*** ./node_modules/des.js/lib/des/cbc.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar proto = {};\n\nfunction CBCState(iv) {\n  assert.equal(iv.length, 8, 'Invalid IV length');\n  this.iv = new Array(8);\n\n  for (var i = 0; i < this.iv.length; i++) this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n  function CBC(options) {\n    Base.call(this, options);\n\n    this._cbcInit();\n  }\n\n  inherits(CBC, Base);\n  var keys = Object.keys(proto);\n\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    CBC.prototype[key] = proto[key];\n  }\n\n  CBC.create = function create(options) {\n    return new CBC(options);\n  };\n\n  return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n  var state = new CBCState(this.options.iv);\n  this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n  var state = this._cbcState;\n  var superProto = this.constructor.super_.prototype;\n  var iv = state.iv;\n\n  if (this.type === 'encrypt') {\n    for (var i = 0; i < this.blockSize; i++) iv[i] ^= inp[inOff + i];\n\n    superProto._update.call(this, iv, 0, out, outOff);\n\n    for (var i = 0; i < this.blockSize; i++) iv[i] = out[outOff + i];\n  } else {\n    superProto._update.call(this, inp, inOff, out, outOff);\n\n    for (var i = 0; i < this.blockSize; i++) out[outOff + i] ^= iv[i];\n\n    for (var i = 0; i < this.blockSize; i++) iv[i] = inp[inOff + i];\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/des.js/lib/des/cbc.js?");

/***/ }),

/***/ "./node_modules/des.js/lib/des/cipher.js":
/*!***********************************************!*\
  !*** ./node_modules/des.js/lib/des/cipher.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nfunction Cipher(options) {\n  this.options = options;\n  this.type = this.options.type;\n  this.blockSize = 8;\n\n  this._init();\n\n  this.buffer = new Array(this.blockSize);\n  this.bufferOff = 0;\n}\n\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {// Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n  if (data.length === 0) return [];\n  if (this.type === 'decrypt') return this._updateDecrypt(data);else return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n  // Append data to buffer\n  var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n\n  for (var i = 0; i < min; i++) this.buffer[this.bufferOff + i] = data[off + i];\n\n  this.bufferOff += min; // Shift next\n\n  return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n  this._update(this.buffer, 0, out, off);\n\n  this.bufferOff = 0;\n  return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n  var inputOff = 0;\n  var outputOff = 0;\n  var count = (this.bufferOff + data.length) / this.blockSize | 0;\n  var out = new Array(count * this.blockSize);\n\n  if (this.bufferOff !== 0) {\n    inputOff += this._buffer(data, inputOff);\n    if (this.bufferOff === this.buffer.length) outputOff += this._flushBuffer(out, outputOff);\n  } // Write blocks\n\n\n  var max = data.length - (data.length - inputOff) % this.blockSize;\n\n  for (; inputOff < max; inputOff += this.blockSize) {\n    this._update(data, inputOff, out, outputOff);\n\n    outputOff += this.blockSize;\n  } // Queue rest\n\n\n  for (; inputOff < data.length; inputOff++, this.bufferOff++) this.buffer[this.bufferOff] = data[inputOff];\n\n  return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n  var inputOff = 0;\n  var outputOff = 0;\n  var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n  var out = new Array(count * this.blockSize); // TODO(indutny): optimize it, this is far from optimal\n\n  for (; count > 0; count--) {\n    inputOff += this._buffer(data, inputOff);\n    outputOff += this._flushBuffer(out, outputOff);\n  } // Buffer rest of the input\n\n\n  inputOff += this._buffer(data, inputOff);\n  return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n  var first;\n  if (buffer) first = this.update(buffer);\n  var last;\n  if (this.type === 'encrypt') last = this._finalEncrypt();else last = this._finalDecrypt();\n  if (first) return first.concat(last);else return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n  if (off === 0) return false;\n\n  while (off < buffer.length) buffer[off++] = 0;\n\n  return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n  if (!this._pad(this.buffer, this.bufferOff)) return [];\n  var out = new Array(this.blockSize);\n\n  this._update(this.buffer, 0, out, 0);\n\n  return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n  return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n  assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n  var out = new Array(this.blockSize);\n\n  this._flushBuffer(out, 0);\n\n  return this._unpad(out);\n};\n\n//# sourceURL=webpack:///./node_modules/des.js/lib/des/cipher.js?");

/***/ }),

/***/ "./node_modules/des.js/lib/des/des.js":
/*!********************************************!*\
  !*** ./node_modules/des.js/lib/des/des.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/des.js/lib/des/utils.js\");\n\nvar Cipher = __webpack_require__(/*! ./cipher */ \"./node_modules/des.js/lib/des/cipher.js\");\n\nfunction DESState() {\n  this.tmp = new Array(2);\n  this.keys = null;\n}\n\nfunction DES(options) {\n  Cipher.call(this, options);\n  var state = new DESState();\n  this._desState = state;\n  this.deriveKeys(state, options.key);\n}\n\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n  return new DES(options);\n};\n\nvar shiftTable = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n  state.keys = new Array(16 * 2);\n  assert.equal(key.length, this.blockSize, 'Invalid key length');\n  var kL = utils.readUInt32BE(key, 0);\n  var kR = utils.readUInt32BE(key, 4);\n  utils.pc1(kL, kR, state.tmp, 0);\n  kL = state.tmp[0];\n  kR = state.tmp[1];\n\n  for (var i = 0; i < state.keys.length; i += 2) {\n    var shift = shiftTable[i >>> 1];\n    kL = utils.r28shl(kL, shift);\n    kR = utils.r28shl(kR, shift);\n    utils.pc2(kL, kR, state.keys, i);\n  }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n  var state = this._desState;\n  var l = utils.readUInt32BE(inp, inOff);\n  var r = utils.readUInt32BE(inp, inOff + 4); // Initial Permutation\n\n  utils.ip(l, r, state.tmp, 0);\n  l = state.tmp[0];\n  r = state.tmp[1];\n  if (this.type === 'encrypt') this._encrypt(state, l, r, state.tmp, 0);else this._decrypt(state, l, r, state.tmp, 0);\n  l = state.tmp[0];\n  r = state.tmp[1];\n  utils.writeUInt32BE(out, l, outOff);\n  utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n  var value = buffer.length - off;\n\n  for (var i = off; i < buffer.length; i++) buffer[i] = value;\n\n  return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n  var pad = buffer[buffer.length - 1];\n\n  for (var i = buffer.length - pad; i < buffer.length; i++) assert.equal(buffer[i], pad);\n\n  return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n  var l = lStart;\n  var r = rStart; // Apply f() x16 times\n\n  for (var i = 0; i < state.keys.length; i += 2) {\n    var keyL = state.keys[i];\n    var keyR = state.keys[i + 1]; // f(r, k)\n\n    utils.expand(r, state.tmp, 0);\n    keyL ^= state.tmp[0];\n    keyR ^= state.tmp[1];\n    var s = utils.substitute(keyL, keyR);\n    var f = utils.permute(s);\n    var t = r;\n    r = (l ^ f) >>> 0;\n    l = t;\n  } // Reverse Initial Permutation\n\n\n  utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n  var l = rStart;\n  var r = lStart; // Apply f() x16 times\n\n  for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n    var keyL = state.keys[i];\n    var keyR = state.keys[i + 1]; // f(r, k)\n\n    utils.expand(l, state.tmp, 0);\n    keyL ^= state.tmp[0];\n    keyR ^= state.tmp[1];\n    var s = utils.substitute(keyL, keyR);\n    var f = utils.permute(s);\n    var t = l;\n    l = (r ^ f) >>> 0;\n    r = t;\n  } // Reverse Initial Permutation\n\n\n  utils.rip(l, r, out, off);\n};\n\n//# sourceURL=webpack:///./node_modules/des.js/lib/des/des.js?");

/***/ }),

/***/ "./node_modules/des.js/lib/des/ede.js":
/*!********************************************!*\
  !*** ./node_modules/des.js/lib/des/ede.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Cipher = __webpack_require__(/*! ./cipher */ \"./node_modules/des.js/lib/des/cipher.js\");\n\nvar DES = __webpack_require__(/*! ./des */ \"./node_modules/des.js/lib/des/des.js\");\n\nfunction EDEState(type, key) {\n  assert.equal(key.length, 24, 'Invalid key length');\n  var k1 = key.slice(0, 8);\n  var k2 = key.slice(8, 16);\n  var k3 = key.slice(16, 24);\n\n  if (type === 'encrypt') {\n    this.ciphers = [DES.create({\n      type: 'encrypt',\n      key: k1\n    }), DES.create({\n      type: 'decrypt',\n      key: k2\n    }), DES.create({\n      type: 'encrypt',\n      key: k3\n    })];\n  } else {\n    this.ciphers = [DES.create({\n      type: 'decrypt',\n      key: k3\n    }), DES.create({\n      type: 'encrypt',\n      key: k2\n    }), DES.create({\n      type: 'decrypt',\n      key: k1\n    })];\n  }\n}\n\nfunction EDE(options) {\n  Cipher.call(this, options);\n  var state = new EDEState(this.type, this.options.key);\n  this._edeState = state;\n}\n\ninherits(EDE, Cipher);\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n  return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n  var state = this._edeState;\n\n  state.ciphers[0]._update(inp, inOff, out, outOff);\n\n  state.ciphers[1]._update(out, outOff, out, outOff);\n\n  state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n\n//# sourceURL=webpack:///./node_modules/des.js/lib/des/ede.js?");

/***/ }),

/***/ "./node_modules/des.js/lib/des/utils.js":
/*!**********************************************!*\
  !*** ./node_modules/des.js/lib/des/utils.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n  var res = bytes[0 + off] << 24 | bytes[1 + off] << 16 | bytes[2 + off] << 8 | bytes[3 + off];\n  return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n  bytes[0 + off] = value >>> 24;\n  bytes[1 + off] = value >>> 16 & 0xff;\n  bytes[2 + off] = value >>> 8 & 0xff;\n  bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n  var outL = 0;\n  var outR = 0;\n\n  for (var i = 6; i >= 0; i -= 2) {\n    for (var j = 0; j <= 24; j += 8) {\n      outL <<= 1;\n      outL |= inR >>> j + i & 1;\n    }\n\n    for (var j = 0; j <= 24; j += 8) {\n      outL <<= 1;\n      outL |= inL >>> j + i & 1;\n    }\n  }\n\n  for (var i = 6; i >= 0; i -= 2) {\n    for (var j = 1; j <= 25; j += 8) {\n      outR <<= 1;\n      outR |= inR >>> j + i & 1;\n    }\n\n    for (var j = 1; j <= 25; j += 8) {\n      outR <<= 1;\n      outR |= inL >>> j + i & 1;\n    }\n  }\n\n  out[off + 0] = outL >>> 0;\n  out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n  var outL = 0;\n  var outR = 0;\n\n  for (var i = 0; i < 4; i++) {\n    for (var j = 24; j >= 0; j -= 8) {\n      outL <<= 1;\n      outL |= inR >>> j + i & 1;\n      outL <<= 1;\n      outL |= inL >>> j + i & 1;\n    }\n  }\n\n  for (var i = 4; i < 8; i++) {\n    for (var j = 24; j >= 0; j -= 8) {\n      outR <<= 1;\n      outR |= inR >>> j + i & 1;\n      outR <<= 1;\n      outR |= inL >>> j + i & 1;\n    }\n  }\n\n  out[off + 0] = outL >>> 0;\n  out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n  var outL = 0;\n  var outR = 0; // 7, 15, 23, 31, 39, 47, 55, 63\n  // 6, 14, 22, 30, 39, 47, 55, 63\n  // 5, 13, 21, 29, 39, 47, 55, 63\n  // 4, 12, 20, 28\n\n  for (var i = 7; i >= 5; i--) {\n    for (var j = 0; j <= 24; j += 8) {\n      outL <<= 1;\n      outL |= inR >> j + i & 1;\n    }\n\n    for (var j = 0; j <= 24; j += 8) {\n      outL <<= 1;\n      outL |= inL >> j + i & 1;\n    }\n  }\n\n  for (var j = 0; j <= 24; j += 8) {\n    outL <<= 1;\n    outL |= inR >> j + i & 1;\n  } // 1, 9, 17, 25, 33, 41, 49, 57\n  // 2, 10, 18, 26, 34, 42, 50, 58\n  // 3, 11, 19, 27, 35, 43, 51, 59\n  // 36, 44, 52, 60\n\n\n  for (var i = 1; i <= 3; i++) {\n    for (var j = 0; j <= 24; j += 8) {\n      outR <<= 1;\n      outR |= inR >> j + i & 1;\n    }\n\n    for (var j = 0; j <= 24; j += 8) {\n      outR <<= 1;\n      outR |= inL >> j + i & 1;\n    }\n  }\n\n  for (var j = 0; j <= 24; j += 8) {\n    outR <<= 1;\n    outR |= inL >> j + i & 1;\n  }\n\n  out[off + 0] = outL >>> 0;\n  out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n  return num << shift & 0xfffffff | num >>> 28 - shift;\n};\n\nvar pc2table = [// inL => outL\n14, 11, 17, 4, 27, 23, 25, 0, 13, 22, 7, 18, 5, 9, 16, 24, 2, 20, 12, 21, 1, 8, 15, 26, // inR => outR\n15, 4, 25, 19, 9, 1, 26, 16, 5, 11, 23, 8, 12, 7, 17, 0, 22, 3, 10, 14, 6, 20, 27, 24];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n  var outL = 0;\n  var outR = 0;\n  var len = pc2table.length >>> 1;\n\n  for (var i = 0; i < len; i++) {\n    outL <<= 1;\n    outL |= inL >>> pc2table[i] & 0x1;\n  }\n\n  for (var i = len; i < pc2table.length; i++) {\n    outR <<= 1;\n    outR |= inR >>> pc2table[i] & 0x1;\n  }\n\n  out[off + 0] = outL >>> 0;\n  out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n  var outL = 0;\n  var outR = 0;\n  outL = (r & 1) << 5 | r >>> 27;\n\n  for (var i = 23; i >= 15; i -= 4) {\n    outL <<= 6;\n    outL |= r >>> i & 0x3f;\n  }\n\n  for (var i = 11; i >= 3; i -= 4) {\n    outR |= r >>> i & 0x3f;\n    outR <<= 6;\n  }\n\n  outR |= (r & 0x1f) << 1 | r >>> 31;\n  out[off + 0] = outL >>> 0;\n  out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11];\n\nexports.substitute = function substitute(inL, inR) {\n  var out = 0;\n\n  for (var i = 0; i < 4; i++) {\n    var b = inL >>> 18 - i * 6 & 0x3f;\n    var sb = sTable[i * 0x40 + b];\n    out <<= 4;\n    out |= sb;\n  }\n\n  for (var i = 0; i < 4; i++) {\n    var b = inR >>> 18 - i * 6 & 0x3f;\n    var sb = sTable[4 * 0x40 + i * 0x40 + b];\n    out <<= 4;\n    out |= sb;\n  }\n\n  return out >>> 0;\n};\n\nvar permuteTable = [16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7];\n\nexports.permute = function permute(num) {\n  var out = 0;\n\n  for (var i = 0; i < permuteTable.length; i++) {\n    out <<= 1;\n    out |= num >>> permuteTable[i] & 0x1;\n  }\n\n  return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n  var str = num.toString(2);\n\n  while (str.length < size) str = '0' + str;\n\n  var out = [];\n\n  for (var i = 0; i < size; i += group) out.push(str.slice(i, i + group));\n\n  return out.join(' ');\n};\n\n//# sourceURL=webpack:///./node_modules/des.js/lib/des/utils.js?");

/***/ }),

/***/ "./node_modules/diffie-hellman/browser.js":
/*!************************************************!*\
  !*** ./node_modules/diffie-hellman/browser.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var generatePrime = __webpack_require__(/*! ./lib/generatePrime */ \"./node_modules/diffie-hellman/lib/generatePrime.js\");\n\nvar primes = __webpack_require__(/*! ./lib/primes.json */ \"./node_modules/diffie-hellman/lib/primes.json\");\n\nvar DH = __webpack_require__(/*! ./lib/dh */ \"./node_modules/diffie-hellman/lib/dh.js\");\n\nfunction getDiffieHellman(mod) {\n  var prime = new Buffer(primes[mod].prime, 'hex');\n  var gen = new Buffer(primes[mod].gen, 'hex');\n  return new DH(prime, gen);\n}\n\nvar ENCODINGS = {\n  'binary': true,\n  'hex': true,\n  'base64': true\n};\n\nfunction createDiffieHellman(prime, enc, generator, genc) {\n  if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n    return createDiffieHellman(prime, 'binary', enc, generator);\n  }\n\n  enc = enc || 'binary';\n  genc = genc || 'binary';\n  generator = generator || new Buffer([2]);\n\n  if (!Buffer.isBuffer(generator)) {\n    generator = new Buffer(generator, genc);\n  }\n\n  if (typeof prime === 'number') {\n    return new DH(generatePrime(prime, generator), generator, true);\n  }\n\n  if (!Buffer.isBuffer(prime)) {\n    prime = new Buffer(prime, enc);\n  }\n\n  return new DH(prime, generator, true);\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman;\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/diffie-hellman/browser.js?");

/***/ }),

/***/ "./node_modules/diffie-hellman/lib/dh.js":
/*!***********************************************!*\
  !*** ./node_modules/diffie-hellman/lib/dh.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var BN = __webpack_require__(/*! bn.js */ \"./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js\");\n\nvar MillerRabin = __webpack_require__(/*! miller-rabin */ \"./node_modules/miller-rabin/lib/mr.js\");\n\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\n\nvar primes = __webpack_require__(/*! ./generatePrime */ \"./node_modules/diffie-hellman/lib/generatePrime.js\");\n\nvar randomBytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\n\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n  enc = enc || 'utf8';\n\n  if (!Buffer.isBuffer(pub)) {\n    pub = new Buffer(pub, enc);\n  }\n\n  this._pub = new BN(pub);\n  return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n  enc = enc || 'utf8';\n\n  if (!Buffer.isBuffer(priv)) {\n    priv = new Buffer(priv, enc);\n  }\n\n  this._priv = new BN(priv);\n  return this;\n}\n\nvar primeCache = {};\n\nfunction checkPrime(prime, generator) {\n  var gen = generator.toString('hex');\n  var hex = [gen, prime.toString(16)].join('_');\n\n  if (hex in primeCache) {\n    return primeCache[hex];\n  }\n\n  var error = 0;\n\n  if (prime.isEven() || !primes.simpleSieve || !primes.fermatTest(prime) || !millerRabin.test(prime)) {\n    //not a prime so +1\n    error += 1;\n\n    if (gen === '02' || gen === '05') {\n      // we'd be able to check the generator\n      // it would fail so +8\n      error += 8;\n    } else {\n      //we wouldn't be able to test the generator\n      // so +4\n      error += 4;\n    }\n\n    primeCache[hex] = error;\n    return error;\n  }\n\n  if (!millerRabin.test(prime.shrn(1))) {\n    //not a safe prime\n    error += 2;\n  }\n\n  var rem;\n\n  switch (gen) {\n    case '02':\n      if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n        // unsuidable generator\n        error += 8;\n      }\n\n      break;\n\n    case '05':\n      rem = prime.mod(TEN);\n\n      if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n        // prime mod 10 needs to equal 3 or 7\n        error += 8;\n      }\n\n      break;\n\n    default:\n      error += 4;\n  }\n\n  primeCache[hex] = error;\n  return error;\n}\n\nfunction DH(prime, generator, malleable) {\n  this.setGenerator(generator);\n  this.__prime = new BN(prime);\n  this._prime = BN.mont(this.__prime);\n  this._primeLen = prime.length;\n  this._pub = undefined;\n  this._priv = undefined;\n  this._primeCode = undefined;\n\n  if (malleable) {\n    this.setPublicKey = setPublicKey;\n    this.setPrivateKey = setPrivateKey;\n  } else {\n    this._primeCode = 8;\n  }\n}\n\nObject.defineProperty(DH.prototype, 'verifyError', {\n  enumerable: true,\n  get: function () {\n    if (typeof this._primeCode !== 'number') {\n      this._primeCode = checkPrime(this.__prime, this.__gen);\n    }\n\n    return this._primeCode;\n  }\n});\n\nDH.prototype.generateKeys = function () {\n  if (!this._priv) {\n    this._priv = new BN(randomBytes(this._primeLen));\n  }\n\n  this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n  return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n  other = new BN(other);\n  other = other.toRed(this._prime);\n  var secret = other.redPow(this._priv).fromRed();\n  var out = new Buffer(secret.toArray());\n  var prime = this.getPrime();\n\n  if (out.length < prime.length) {\n    var front = new Buffer(prime.length - out.length);\n    front.fill(0);\n    out = Buffer.concat([front, out]);\n  }\n\n  return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n  return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n  return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n  return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n  return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n  enc = enc || 'utf8';\n\n  if (!Buffer.isBuffer(gen)) {\n    gen = new Buffer(gen, enc);\n  }\n\n  this.__gen = gen;\n  this._gen = new BN(gen);\n  return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n  var buf = new Buffer(bn.toArray());\n\n  if (!enc) {\n    return buf;\n  } else {\n    return buf.toString(enc);\n  }\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/diffie-hellman/lib/dh.js?");

/***/ }),

/***/ "./node_modules/diffie-hellman/lib/generatePrime.js":
/*!**********************************************************!*\
  !*** ./node_modules/diffie-hellman/lib/generatePrime.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var randomBytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\n\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js\");\n\nvar TWENTYFOUR = new BN(24);\n\nvar MillerRabin = __webpack_require__(/*! miller-rabin */ \"./node_modules/miller-rabin/lib/mr.js\");\n\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n  if (primes !== null) return primes;\n  var limit = 0x100000;\n  var res = [];\n  res[0] = 2;\n\n  for (var i = 1, k = 3; k < limit; k += 2) {\n    var sqrt = Math.ceil(Math.sqrt(k));\n\n    for (var j = 0; j < i && res[j] <= sqrt; j++) if (k % res[j] === 0) break;\n\n    if (i !== j && res[j] <= sqrt) continue;\n    res[i++] = k;\n  }\n\n  primes = res;\n  return res;\n}\n\nfunction simpleSieve(p) {\n  var primes = _getPrimes();\n\n  for (var i = 0; i < primes.length; i++) if (p.modn(primes[i]) === 0) {\n    if (p.cmpn(primes[i]) === 0) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction fermatTest(p) {\n  var red = BN.mont(p);\n  return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n  if (bits < 16) {\n    // this is what openssl does\n    if (gen === 2 || gen === 5) {\n      return new BN([0x8c, 0x7b]);\n    } else {\n      return new BN([0x8c, 0x27]);\n    }\n  }\n\n  gen = new BN(gen);\n  var num, n2;\n\n  while (true) {\n    num = new BN(randomBytes(Math.ceil(bits / 8)));\n\n    while (num.bitLength() > bits) {\n      num.ishrn(1);\n    }\n\n    if (num.isEven()) {\n      num.iadd(ONE);\n    }\n\n    if (!num.testn(1)) {\n      num.iadd(TWO);\n    }\n\n    if (!gen.cmp(TWO)) {\n      while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n        num.iadd(FOUR);\n      }\n    } else if (!gen.cmp(FIVE)) {\n      while (num.mod(TEN).cmp(THREE)) {\n        num.iadd(FOUR);\n      }\n    }\n\n    n2 = num.shrn(1);\n\n    if (simpleSieve(n2) && simpleSieve(num) && fermatTest(n2) && fermatTest(num) && millerRabin.test(n2) && millerRabin.test(num)) {\n      return num;\n    }\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/diffie-hellman/lib/generatePrime.js?");

/***/ }),

/***/ "./node_modules/diffie-hellman/lib/primes.json":
/*!*****************************************************!*\
  !*** ./node_modules/diffie-hellman/lib/primes.json ***!
  \*****************************************************/
/*! exports provided: modp1, modp2, modp5, modp14, modp15, modp16, modp17, modp18, default */
/***/ (function(module) {

eval("module.exports = JSON.parse(\"{\\\"modp1\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff\\\"},\\\"modp2\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff\\\"},\\\"modp5\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff\\\"},\\\"modp14\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff\\\"},\\\"modp15\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff\\\"},\\\"modp16\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff\\\"},\\\"modp17\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff\\\"},\\\"modp18\\\":{\\\"gen\\\":\\\"02\\\",\\\"prime\\\":\\\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff\\\"}}\");\n\n//# sourceURL=webpack:///./node_modules/diffie-hellman/lib/primes.json?");

/***/ }),

/***/ "./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js":
/*!******************************************************************!*\
  !*** ./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n  'use strict'; // Utils\n\n  function assert(val, msg) {\n    if (!val) throw new Error(msg || 'Assertion failed');\n  } // Could use `inherits` module, but don't want to move from single file\n  // architecture yet.\n\n\n  function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor;\n\n    var TempCtor = function () {};\n\n    TempCtor.prototype = superCtor.prototype;\n    ctor.prototype = new TempCtor();\n    ctor.prototype.constructor = ctor;\n  } // BN\n\n\n  function BN(number, base, endian) {\n    if (BN.isBN(number)) {\n      return number;\n    }\n\n    this.negative = 0;\n    this.words = null;\n    this.length = 0; // Reduction context\n\n    this.red = null;\n\n    if (number !== null) {\n      if (base === 'le' || base === 'be') {\n        endian = base;\n        base = 10;\n      }\n\n      this._init(number || 0, base || 10, endian || 'be');\n    }\n  }\n\n  if (typeof module === 'object') {\n    module.exports = BN;\n  } else {\n    exports.BN = BN;\n  }\n\n  BN.BN = BN;\n  BN.wordSize = 26;\n  var Buffer;\n\n  try {\n    if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n      Buffer = window.Buffer;\n    } else {\n      Buffer = __webpack_require__(/*! buffer */ 5).Buffer;\n    }\n  } catch (e) {}\n\n  BN.isBN = function isBN(num) {\n    if (num instanceof BN) {\n      return true;\n    }\n\n    return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n  };\n\n  BN.max = function max(left, right) {\n    if (left.cmp(right) > 0) return left;\n    return right;\n  };\n\n  BN.min = function min(left, right) {\n    if (left.cmp(right) < 0) return left;\n    return right;\n  };\n\n  BN.prototype._init = function init(number, base, endian) {\n    if (typeof number === 'number') {\n      return this._initNumber(number, base, endian);\n    }\n\n    if (typeof number === 'object') {\n      return this._initArray(number, base, endian);\n    }\n\n    if (base === 'hex') {\n      base = 16;\n    }\n\n    assert(base === (base | 0) && base >= 2 && base <= 36);\n    number = number.toString().replace(/\\s+/g, '');\n    var start = 0;\n\n    if (number[0] === '-') {\n      start++;\n      this.negative = 1;\n    }\n\n    if (start < number.length) {\n      if (base === 16) {\n        this._parseHex(number, start, endian);\n      } else {\n        this._parseBase(number, base, start);\n\n        if (endian === 'le') {\n          this._initArray(this.toArray(), base, endian);\n        }\n      }\n    }\n  };\n\n  BN.prototype._initNumber = function _initNumber(number, base, endian) {\n    if (number < 0) {\n      this.negative = 1;\n      number = -number;\n    }\n\n    if (number < 0x4000000) {\n      this.words = [number & 0x3ffffff];\n      this.length = 1;\n    } else if (number < 0x10000000000000) {\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n      this.length = 2;\n    } else {\n      assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n      this.length = 3;\n    }\n\n    if (endian !== 'le') return; // Reverse the bytes\n\n    this._initArray(this.toArray(), base, endian);\n  };\n\n  BN.prototype._initArray = function _initArray(number, base, endian) {\n    // Perhaps a Uint8Array\n    assert(typeof number.length === 'number');\n\n    if (number.length <= 0) {\n      this.words = [0];\n      this.length = 1;\n      return this;\n    }\n\n    this.length = Math.ceil(number.length / 3);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    }\n\n    var j, w;\n    var off = 0;\n\n    if (endian === 'be') {\n      for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n        w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    } else if (endian === 'le') {\n      for (i = 0, j = 0; i < number.length; i += 3) {\n        w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    }\n\n    return this.strip();\n  };\n\n  function parseHex4Bits(string, index) {\n    var c = string.charCodeAt(index); // 'A' - 'F'\n\n    if (c >= 65 && c <= 70) {\n      return c - 55; // 'a' - 'f'\n    } else if (c >= 97 && c <= 102) {\n      return c - 87; // '0' - '9'\n    } else {\n      return c - 48 & 0xf;\n    }\n  }\n\n  function parseHexByte(string, lowerBound, index) {\n    var r = parseHex4Bits(string, index);\n\n    if (index - 1 >= lowerBound) {\n      r |= parseHex4Bits(string, index - 1) << 4;\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseHex = function _parseHex(number, start, endian) {\n    // Create possibly bigger array to ensure that it fits the number\n    this.length = Math.ceil((number.length - start) / 6);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    } // 24-bits chunks\n\n\n    var off = 0;\n    var j = 0;\n    var w;\n\n    if (endian === 'be') {\n      for (i = number.length - 1; i >= start; i -= 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    } else {\n      var parseLength = number.length - start;\n\n      for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    }\n\n    this.strip();\n  };\n\n  function parseBase(str, start, end, mul) {\n    var r = 0;\n    var len = Math.min(str.length, end);\n\n    for (var i = start; i < len; i++) {\n      var c = str.charCodeAt(i) - 48;\n      r *= mul; // 'a'\n\n      if (c >= 49) {\n        r += c - 49 + 0xa; // 'A'\n      } else if (c >= 17) {\n        r += c - 17 + 0xa; // '0' - '9'\n      } else {\n        r += c;\n      }\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseBase = function _parseBase(number, base, start) {\n    // Initialize as zero\n    this.words = [0];\n    this.length = 1; // Find length of limb in base\n\n    for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n      limbLen++;\n    }\n\n    limbLen--;\n    limbPow = limbPow / base | 0;\n    var total = number.length - start;\n    var mod = total % limbLen;\n    var end = Math.min(total, total - mod) + start;\n    var word = 0;\n\n    for (var i = start; i < end; i += limbLen) {\n      word = parseBase(number, i, i + limbLen, base);\n      this.imuln(limbPow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    if (mod !== 0) {\n      var pow = 1;\n      word = parseBase(number, i, number.length, base);\n\n      for (i = 0; i < mod; i++) {\n        pow *= base;\n      }\n\n      this.imuln(pow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    this.strip();\n  };\n\n  BN.prototype.copy = function copy(dest) {\n    dest.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      dest.words[i] = this.words[i];\n    }\n\n    dest.length = this.length;\n    dest.negative = this.negative;\n    dest.red = this.red;\n  };\n\n  BN.prototype.clone = function clone() {\n    var r = new BN(null);\n    this.copy(r);\n    return r;\n  };\n\n  BN.prototype._expand = function _expand(size) {\n    while (this.length < size) {\n      this.words[this.length++] = 0;\n    }\n\n    return this;\n  }; // Remove leading `0` from `this`\n\n\n  BN.prototype.strip = function strip() {\n    while (this.length > 1 && this.words[this.length - 1] === 0) {\n      this.length--;\n    }\n\n    return this._normSign();\n  };\n\n  BN.prototype._normSign = function _normSign() {\n    // -0 = 0\n    if (this.length === 1 && this.words[0] === 0) {\n      this.negative = 0;\n    }\n\n    return this;\n  };\n\n  BN.prototype.inspect = function inspect() {\n    return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  };\n  /*\n   var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n   var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n   */\n\n\n  var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n  var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n  var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n  BN.prototype.toString = function toString(base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n    var out;\n\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = ((w << off | carry) & 0xffffff).toString(16);\n        carry = w >>> 24 - off & 0xffffff;\n\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n\n        off += 2;\n\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n      }\n\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n\n      while (!c.isZero()) {\n        var r = c.modn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber() {\n    var ret = this.words[0];\n\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + this.words[1] * 0x4000000;\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n\n    return this.negative !== 0 ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON() {\n    return this.toString(16);\n  };\n\n  BN.prototype.toBuffer = function toBuffer(endian, length) {\n    assert(typeof Buffer !== 'undefined');\n    return this.toArrayLike(Buffer, endian, length);\n  };\n\n  BN.prototype.toArray = function toArray(endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n    this.strip();\n    var littleEndian = endian === 'le';\n    var res = new ArrayType(reqLength);\n    var b, i;\n    var q = this.clone();\n\n    if (!littleEndian) {\n      // Assume big-endian\n      for (i = 0; i < reqLength - byteLength; i++) {\n        res[i] = 0;\n      }\n\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n        res[reqLength - i - 1] = b;\n      }\n    } else {\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n        res[i] = b;\n      }\n\n      for (; i < reqLength; i++) {\n        res[i] = 0;\n      }\n    }\n\n    return res;\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits(w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits(w) {\n      var t = w;\n      var r = 0;\n\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits(w) {\n    // Short-cut\n    if (w === 0) return 26;\n    var t = w;\n    var r = 0;\n\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n\n    return r;\n  }; // Return number of used bits in a BN\n\n\n  BN.prototype.bitLength = function bitLength() {\n    var w = this.words[this.length - 1];\n\n    var hi = this._countBits(w);\n\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray(num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = bit / 26 | 0;\n      var wbit = bit % 26;\n      w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n    }\n\n    return w;\n  } // Number of trailing zero bits\n\n\n  BN.prototype.zeroBits = function zeroBits() {\n    if (this.isZero()) return 0;\n    var r = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n\n      r += b;\n      if (b !== 26) break;\n    }\n\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength() {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos(width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos(width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg() {\n    return this.negative !== 0;\n  }; // Return negative clone of `this`\n\n\n  BN.prototype.neg = function neg() {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg() {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  }; // Or `num` with `this` in-place\n\n\n  BN.prototype.iuor = function iuor(num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ior = function ior(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  }; // Or `num` with `this`\n\n\n  BN.prototype.or = function or(num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor(num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  }; // And `num` with `this` in-place\n\n\n  BN.prototype.iuand = function iuand(num) {\n    // b = min-length(num, this)\n    var b;\n\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n    return this.strip();\n  };\n\n  BN.prototype.iand = function iand(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  }; // And `num` with `this`\n\n\n  BN.prototype.and = function and(num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand(num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  }; // Xor `num` with `this` in-place\n\n\n  BN.prototype.iuxor = function iuxor(num) {\n    // a.length > b.length\n    var a;\n    var b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n    return this.strip();\n  };\n\n  BN.prototype.ixor = function ixor(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  }; // Xor `num` with `this`\n\n\n  BN.prototype.xor = function xor(num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor(num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  }; // Not ``this`` with ``width`` bitwidth\n\n\n  BN.prototype.inotn = function inotn(width) {\n    assert(typeof width === 'number' && width >= 0);\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    } // Handle complete words\n\n\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    } // Handle the residue\n\n\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n    } // And remove leading zeroes\n\n\n    return this.strip();\n  };\n\n  BN.prototype.notn = function notn(width) {\n    return this.clone().inotn(width);\n  }; // Set `bit` of `this`\n\n\n  BN.prototype.setn = function setn(bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var off = bit / 26 | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | 1 << wbit;\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this.strip();\n  }; // Add `num` to `this` in-place\n\n\n  BN.prototype.iadd = function iadd(num) {\n    var r; // negative + positive\n\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign(); // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    } // a.length > b.length\n\n\n    var a, b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++; // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  }; // Add `num` to `this`\n\n\n  BN.prototype.add = function add(num) {\n    var res;\n\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n    return num.clone().iadd(this);\n  }; // Subtract `num` from `this` in-place\n\n\n  BN.prototype.isub = function isub(num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign(); // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    } // At this point both numbers are positive\n\n\n    var cmp = this.cmp(num); // Optimization - zeroify\n\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    } // a > b\n\n\n    var a, b;\n\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    } // Copy rest of the words\n\n\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this.strip();\n  }; // Subtract `num` from `this`\n\n\n  BN.prototype.sub = function sub(num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = self.length + num.length | 0;\n    out.length = len;\n    len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n    var lo = r & 0x3ffffff;\n    var carry = r / 0x4000000 | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += r / 0x4000000 | 0;\n        rword = r & 0x3ffffff;\n      }\n\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  } // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n\n\n  var comb10MulTo = function comb10MulTo(self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = mid + Math.imul(ah0, bl0) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = mid + Math.imul(ah1, bl0) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = lo + Math.imul(al0, bl1) | 0;\n    mid = mid + Math.imul(al0, bh1) | 0;\n    mid = mid + Math.imul(ah0, bl1) | 0;\n    hi = hi + Math.imul(ah0, bh1) | 0;\n    var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = mid + Math.imul(ah2, bl0) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = lo + Math.imul(al1, bl1) | 0;\n    mid = mid + Math.imul(al1, bh1) | 0;\n    mid = mid + Math.imul(ah1, bl1) | 0;\n    hi = hi + Math.imul(ah1, bh1) | 0;\n    lo = lo + Math.imul(al0, bl2) | 0;\n    mid = mid + Math.imul(al0, bh2) | 0;\n    mid = mid + Math.imul(ah0, bl2) | 0;\n    hi = hi + Math.imul(ah0, bh2) | 0;\n    var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = mid + Math.imul(ah3, bl0) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = lo + Math.imul(al2, bl1) | 0;\n    mid = mid + Math.imul(al2, bh1) | 0;\n    mid = mid + Math.imul(ah2, bl1) | 0;\n    hi = hi + Math.imul(ah2, bh1) | 0;\n    lo = lo + Math.imul(al1, bl2) | 0;\n    mid = mid + Math.imul(al1, bh2) | 0;\n    mid = mid + Math.imul(ah1, bl2) | 0;\n    hi = hi + Math.imul(ah1, bh2) | 0;\n    lo = lo + Math.imul(al0, bl3) | 0;\n    mid = mid + Math.imul(al0, bh3) | 0;\n    mid = mid + Math.imul(ah0, bl3) | 0;\n    hi = hi + Math.imul(ah0, bh3) | 0;\n    var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = mid + Math.imul(ah4, bl0) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = lo + Math.imul(al3, bl1) | 0;\n    mid = mid + Math.imul(al3, bh1) | 0;\n    mid = mid + Math.imul(ah3, bl1) | 0;\n    hi = hi + Math.imul(ah3, bh1) | 0;\n    lo = lo + Math.imul(al2, bl2) | 0;\n    mid = mid + Math.imul(al2, bh2) | 0;\n    mid = mid + Math.imul(ah2, bl2) | 0;\n    hi = hi + Math.imul(ah2, bh2) | 0;\n    lo = lo + Math.imul(al1, bl3) | 0;\n    mid = mid + Math.imul(al1, bh3) | 0;\n    mid = mid + Math.imul(ah1, bl3) | 0;\n    hi = hi + Math.imul(ah1, bh3) | 0;\n    lo = lo + Math.imul(al0, bl4) | 0;\n    mid = mid + Math.imul(al0, bh4) | 0;\n    mid = mid + Math.imul(ah0, bl4) | 0;\n    hi = hi + Math.imul(ah0, bh4) | 0;\n    var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = mid + Math.imul(ah5, bl0) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = lo + Math.imul(al4, bl1) | 0;\n    mid = mid + Math.imul(al4, bh1) | 0;\n    mid = mid + Math.imul(ah4, bl1) | 0;\n    hi = hi + Math.imul(ah4, bh1) | 0;\n    lo = lo + Math.imul(al3, bl2) | 0;\n    mid = mid + Math.imul(al3, bh2) | 0;\n    mid = mid + Math.imul(ah3, bl2) | 0;\n    hi = hi + Math.imul(ah3, bh2) | 0;\n    lo = lo + Math.imul(al2, bl3) | 0;\n    mid = mid + Math.imul(al2, bh3) | 0;\n    mid = mid + Math.imul(ah2, bl3) | 0;\n    hi = hi + Math.imul(ah2, bh3) | 0;\n    lo = lo + Math.imul(al1, bl4) | 0;\n    mid = mid + Math.imul(al1, bh4) | 0;\n    mid = mid + Math.imul(ah1, bl4) | 0;\n    hi = hi + Math.imul(ah1, bh4) | 0;\n    lo = lo + Math.imul(al0, bl5) | 0;\n    mid = mid + Math.imul(al0, bh5) | 0;\n    mid = mid + Math.imul(ah0, bl5) | 0;\n    hi = hi + Math.imul(ah0, bh5) | 0;\n    var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = mid + Math.imul(ah6, bl0) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = lo + Math.imul(al5, bl1) | 0;\n    mid = mid + Math.imul(al5, bh1) | 0;\n    mid = mid + Math.imul(ah5, bl1) | 0;\n    hi = hi + Math.imul(ah5, bh1) | 0;\n    lo = lo + Math.imul(al4, bl2) | 0;\n    mid = mid + Math.imul(al4, bh2) | 0;\n    mid = mid + Math.imul(ah4, bl2) | 0;\n    hi = hi + Math.imul(ah4, bh2) | 0;\n    lo = lo + Math.imul(al3, bl3) | 0;\n    mid = mid + Math.imul(al3, bh3) | 0;\n    mid = mid + Math.imul(ah3, bl3) | 0;\n    hi = hi + Math.imul(ah3, bh3) | 0;\n    lo = lo + Math.imul(al2, bl4) | 0;\n    mid = mid + Math.imul(al2, bh4) | 0;\n    mid = mid + Math.imul(ah2, bl4) | 0;\n    hi = hi + Math.imul(ah2, bh4) | 0;\n    lo = lo + Math.imul(al1, bl5) | 0;\n    mid = mid + Math.imul(al1, bh5) | 0;\n    mid = mid + Math.imul(ah1, bl5) | 0;\n    hi = hi + Math.imul(ah1, bh5) | 0;\n    lo = lo + Math.imul(al0, bl6) | 0;\n    mid = mid + Math.imul(al0, bh6) | 0;\n    mid = mid + Math.imul(ah0, bl6) | 0;\n    hi = hi + Math.imul(ah0, bh6) | 0;\n    var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = mid + Math.imul(ah7, bl0) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = lo + Math.imul(al6, bl1) | 0;\n    mid = mid + Math.imul(al6, bh1) | 0;\n    mid = mid + Math.imul(ah6, bl1) | 0;\n    hi = hi + Math.imul(ah6, bh1) | 0;\n    lo = lo + Math.imul(al5, bl2) | 0;\n    mid = mid + Math.imul(al5, bh2) | 0;\n    mid = mid + Math.imul(ah5, bl2) | 0;\n    hi = hi + Math.imul(ah5, bh2) | 0;\n    lo = lo + Math.imul(al4, bl3) | 0;\n    mid = mid + Math.imul(al4, bh3) | 0;\n    mid = mid + Math.imul(ah4, bl3) | 0;\n    hi = hi + Math.imul(ah4, bh3) | 0;\n    lo = lo + Math.imul(al3, bl4) | 0;\n    mid = mid + Math.imul(al3, bh4) | 0;\n    mid = mid + Math.imul(ah3, bl4) | 0;\n    hi = hi + Math.imul(ah3, bh4) | 0;\n    lo = lo + Math.imul(al2, bl5) | 0;\n    mid = mid + Math.imul(al2, bh5) | 0;\n    mid = mid + Math.imul(ah2, bl5) | 0;\n    hi = hi + Math.imul(ah2, bh5) | 0;\n    lo = lo + Math.imul(al1, bl6) | 0;\n    mid = mid + Math.imul(al1, bh6) | 0;\n    mid = mid + Math.imul(ah1, bl6) | 0;\n    hi = hi + Math.imul(ah1, bh6) | 0;\n    lo = lo + Math.imul(al0, bl7) | 0;\n    mid = mid + Math.imul(al0, bh7) | 0;\n    mid = mid + Math.imul(ah0, bl7) | 0;\n    hi = hi + Math.imul(ah0, bh7) | 0;\n    var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = mid + Math.imul(ah8, bl0) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = lo + Math.imul(al7, bl1) | 0;\n    mid = mid + Math.imul(al7, bh1) | 0;\n    mid = mid + Math.imul(ah7, bl1) | 0;\n    hi = hi + Math.imul(ah7, bh1) | 0;\n    lo = lo + Math.imul(al6, bl2) | 0;\n    mid = mid + Math.imul(al6, bh2) | 0;\n    mid = mid + Math.imul(ah6, bl2) | 0;\n    hi = hi + Math.imul(ah6, bh2) | 0;\n    lo = lo + Math.imul(al5, bl3) | 0;\n    mid = mid + Math.imul(al5, bh3) | 0;\n    mid = mid + Math.imul(ah5, bl3) | 0;\n    hi = hi + Math.imul(ah5, bh3) | 0;\n    lo = lo + Math.imul(al4, bl4) | 0;\n    mid = mid + Math.imul(al4, bh4) | 0;\n    mid = mid + Math.imul(ah4, bl4) | 0;\n    hi = hi + Math.imul(ah4, bh4) | 0;\n    lo = lo + Math.imul(al3, bl5) | 0;\n    mid = mid + Math.imul(al3, bh5) | 0;\n    mid = mid + Math.imul(ah3, bl5) | 0;\n    hi = hi + Math.imul(ah3, bh5) | 0;\n    lo = lo + Math.imul(al2, bl6) | 0;\n    mid = mid + Math.imul(al2, bh6) | 0;\n    mid = mid + Math.imul(ah2, bl6) | 0;\n    hi = hi + Math.imul(ah2, bh6) | 0;\n    lo = lo + Math.imul(al1, bl7) | 0;\n    mid = mid + Math.imul(al1, bh7) | 0;\n    mid = mid + Math.imul(ah1, bl7) | 0;\n    hi = hi + Math.imul(ah1, bh7) | 0;\n    lo = lo + Math.imul(al0, bl8) | 0;\n    mid = mid + Math.imul(al0, bh8) | 0;\n    mid = mid + Math.imul(ah0, bl8) | 0;\n    hi = hi + Math.imul(ah0, bh8) | 0;\n    var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = mid + Math.imul(ah9, bl0) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = lo + Math.imul(al8, bl1) | 0;\n    mid = mid + Math.imul(al8, bh1) | 0;\n    mid = mid + Math.imul(ah8, bl1) | 0;\n    hi = hi + Math.imul(ah8, bh1) | 0;\n    lo = lo + Math.imul(al7, bl2) | 0;\n    mid = mid + Math.imul(al7, bh2) | 0;\n    mid = mid + Math.imul(ah7, bl2) | 0;\n    hi = hi + Math.imul(ah7, bh2) | 0;\n    lo = lo + Math.imul(al6, bl3) | 0;\n    mid = mid + Math.imul(al6, bh3) | 0;\n    mid = mid + Math.imul(ah6, bl3) | 0;\n    hi = hi + Math.imul(ah6, bh3) | 0;\n    lo = lo + Math.imul(al5, bl4) | 0;\n    mid = mid + Math.imul(al5, bh4) | 0;\n    mid = mid + Math.imul(ah5, bl4) | 0;\n    hi = hi + Math.imul(ah5, bh4) | 0;\n    lo = lo + Math.imul(al4, bl5) | 0;\n    mid = mid + Math.imul(al4, bh5) | 0;\n    mid = mid + Math.imul(ah4, bl5) | 0;\n    hi = hi + Math.imul(ah4, bh5) | 0;\n    lo = lo + Math.imul(al3, bl6) | 0;\n    mid = mid + Math.imul(al3, bh6) | 0;\n    mid = mid + Math.imul(ah3, bl6) | 0;\n    hi = hi + Math.imul(ah3, bh6) | 0;\n    lo = lo + Math.imul(al2, bl7) | 0;\n    mid = mid + Math.imul(al2, bh7) | 0;\n    mid = mid + Math.imul(ah2, bl7) | 0;\n    hi = hi + Math.imul(ah2, bh7) | 0;\n    lo = lo + Math.imul(al1, bl8) | 0;\n    mid = mid + Math.imul(al1, bh8) | 0;\n    mid = mid + Math.imul(ah1, bl8) | 0;\n    hi = hi + Math.imul(ah1, bh8) | 0;\n    lo = lo + Math.imul(al0, bl9) | 0;\n    mid = mid + Math.imul(al0, bh9) | 0;\n    mid = mid + Math.imul(ah0, bl9) | 0;\n    hi = hi + Math.imul(ah0, bh9) | 0;\n    var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = mid + Math.imul(ah9, bl1) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = lo + Math.imul(al8, bl2) | 0;\n    mid = mid + Math.imul(al8, bh2) | 0;\n    mid = mid + Math.imul(ah8, bl2) | 0;\n    hi = hi + Math.imul(ah8, bh2) | 0;\n    lo = lo + Math.imul(al7, bl3) | 0;\n    mid = mid + Math.imul(al7, bh3) | 0;\n    mid = mid + Math.imul(ah7, bl3) | 0;\n    hi = hi + Math.imul(ah7, bh3) | 0;\n    lo = lo + Math.imul(al6, bl4) | 0;\n    mid = mid + Math.imul(al6, bh4) | 0;\n    mid = mid + Math.imul(ah6, bl4) | 0;\n    hi = hi + Math.imul(ah6, bh4) | 0;\n    lo = lo + Math.imul(al5, bl5) | 0;\n    mid = mid + Math.imul(al5, bh5) | 0;\n    mid = mid + Math.imul(ah5, bl5) | 0;\n    hi = hi + Math.imul(ah5, bh5) | 0;\n    lo = lo + Math.imul(al4, bl6) | 0;\n    mid = mid + Math.imul(al4, bh6) | 0;\n    mid = mid + Math.imul(ah4, bl6) | 0;\n    hi = hi + Math.imul(ah4, bh6) | 0;\n    lo = lo + Math.imul(al3, bl7) | 0;\n    mid = mid + Math.imul(al3, bh7) | 0;\n    mid = mid + Math.imul(ah3, bl7) | 0;\n    hi = hi + Math.imul(ah3, bh7) | 0;\n    lo = lo + Math.imul(al2, bl8) | 0;\n    mid = mid + Math.imul(al2, bh8) | 0;\n    mid = mid + Math.imul(ah2, bl8) | 0;\n    hi = hi + Math.imul(ah2, bh8) | 0;\n    lo = lo + Math.imul(al1, bl9) | 0;\n    mid = mid + Math.imul(al1, bh9) | 0;\n    mid = mid + Math.imul(ah1, bl9) | 0;\n    hi = hi + Math.imul(ah1, bh9) | 0;\n    var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = mid + Math.imul(ah9, bl2) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = lo + Math.imul(al8, bl3) | 0;\n    mid = mid + Math.imul(al8, bh3) | 0;\n    mid = mid + Math.imul(ah8, bl3) | 0;\n    hi = hi + Math.imul(ah8, bh3) | 0;\n    lo = lo + Math.imul(al7, bl4) | 0;\n    mid = mid + Math.imul(al7, bh4) | 0;\n    mid = mid + Math.imul(ah7, bl4) | 0;\n    hi = hi + Math.imul(ah7, bh4) | 0;\n    lo = lo + Math.imul(al6, bl5) | 0;\n    mid = mid + Math.imul(al6, bh5) | 0;\n    mid = mid + Math.imul(ah6, bl5) | 0;\n    hi = hi + Math.imul(ah6, bh5) | 0;\n    lo = lo + Math.imul(al5, bl6) | 0;\n    mid = mid + Math.imul(al5, bh6) | 0;\n    mid = mid + Math.imul(ah5, bl6) | 0;\n    hi = hi + Math.imul(ah5, bh6) | 0;\n    lo = lo + Math.imul(al4, bl7) | 0;\n    mid = mid + Math.imul(al4, bh7) | 0;\n    mid = mid + Math.imul(ah4, bl7) | 0;\n    hi = hi + Math.imul(ah4, bh7) | 0;\n    lo = lo + Math.imul(al3, bl8) | 0;\n    mid = mid + Math.imul(al3, bh8) | 0;\n    mid = mid + Math.imul(ah3, bl8) | 0;\n    hi = hi + Math.imul(ah3, bh8) | 0;\n    lo = lo + Math.imul(al2, bl9) | 0;\n    mid = mid + Math.imul(al2, bh9) | 0;\n    mid = mid + Math.imul(ah2, bl9) | 0;\n    hi = hi + Math.imul(ah2, bh9) | 0;\n    var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = mid + Math.imul(ah9, bl3) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = lo + Math.imul(al8, bl4) | 0;\n    mid = mid + Math.imul(al8, bh4) | 0;\n    mid = mid + Math.imul(ah8, bl4) | 0;\n    hi = hi + Math.imul(ah8, bh4) | 0;\n    lo = lo + Math.imul(al7, bl5) | 0;\n    mid = mid + Math.imul(al7, bh5) | 0;\n    mid = mid + Math.imul(ah7, bl5) | 0;\n    hi = hi + Math.imul(ah7, bh5) | 0;\n    lo = lo + Math.imul(al6, bl6) | 0;\n    mid = mid + Math.imul(al6, bh6) | 0;\n    mid = mid + Math.imul(ah6, bl6) | 0;\n    hi = hi + Math.imul(ah6, bh6) | 0;\n    lo = lo + Math.imul(al5, bl7) | 0;\n    mid = mid + Math.imul(al5, bh7) | 0;\n    mid = mid + Math.imul(ah5, bl7) | 0;\n    hi = hi + Math.imul(ah5, bh7) | 0;\n    lo = lo + Math.imul(al4, bl8) | 0;\n    mid = mid + Math.imul(al4, bh8) | 0;\n    mid = mid + Math.imul(ah4, bl8) | 0;\n    hi = hi + Math.imul(ah4, bh8) | 0;\n    lo = lo + Math.imul(al3, bl9) | 0;\n    mid = mid + Math.imul(al3, bh9) | 0;\n    mid = mid + Math.imul(ah3, bl9) | 0;\n    hi = hi + Math.imul(ah3, bh9) | 0;\n    var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = mid + Math.imul(ah9, bl4) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = lo + Math.imul(al8, bl5) | 0;\n    mid = mid + Math.imul(al8, bh5) | 0;\n    mid = mid + Math.imul(ah8, bl5) | 0;\n    hi = hi + Math.imul(ah8, bh5) | 0;\n    lo = lo + Math.imul(al7, bl6) | 0;\n    mid = mid + Math.imul(al7, bh6) | 0;\n    mid = mid + Math.imul(ah7, bl6) | 0;\n    hi = hi + Math.imul(ah7, bh6) | 0;\n    lo = lo + Math.imul(al6, bl7) | 0;\n    mid = mid + Math.imul(al6, bh7) | 0;\n    mid = mid + Math.imul(ah6, bl7) | 0;\n    hi = hi + Math.imul(ah6, bh7) | 0;\n    lo = lo + Math.imul(al5, bl8) | 0;\n    mid = mid + Math.imul(al5, bh8) | 0;\n    mid = mid + Math.imul(ah5, bl8) | 0;\n    hi = hi + Math.imul(ah5, bh8) | 0;\n    lo = lo + Math.imul(al4, bl9) | 0;\n    mid = mid + Math.imul(al4, bh9) | 0;\n    mid = mid + Math.imul(ah4, bl9) | 0;\n    hi = hi + Math.imul(ah4, bh9) | 0;\n    var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = mid + Math.imul(ah9, bl5) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = lo + Math.imul(al8, bl6) | 0;\n    mid = mid + Math.imul(al8, bh6) | 0;\n    mid = mid + Math.imul(ah8, bl6) | 0;\n    hi = hi + Math.imul(ah8, bh6) | 0;\n    lo = lo + Math.imul(al7, bl7) | 0;\n    mid = mid + Math.imul(al7, bh7) | 0;\n    mid = mid + Math.imul(ah7, bl7) | 0;\n    hi = hi + Math.imul(ah7, bh7) | 0;\n    lo = lo + Math.imul(al6, bl8) | 0;\n    mid = mid + Math.imul(al6, bh8) | 0;\n    mid = mid + Math.imul(ah6, bl8) | 0;\n    hi = hi + Math.imul(ah6, bh8) | 0;\n    lo = lo + Math.imul(al5, bl9) | 0;\n    mid = mid + Math.imul(al5, bh9) | 0;\n    mid = mid + Math.imul(ah5, bl9) | 0;\n    hi = hi + Math.imul(ah5, bh9) | 0;\n    var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = mid + Math.imul(ah9, bl6) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = lo + Math.imul(al8, bl7) | 0;\n    mid = mid + Math.imul(al8, bh7) | 0;\n    mid = mid + Math.imul(ah8, bl7) | 0;\n    hi = hi + Math.imul(ah8, bh7) | 0;\n    lo = lo + Math.imul(al7, bl8) | 0;\n    mid = mid + Math.imul(al7, bh8) | 0;\n    mid = mid + Math.imul(ah7, bl8) | 0;\n    hi = hi + Math.imul(ah7, bh8) | 0;\n    lo = lo + Math.imul(al6, bl9) | 0;\n    mid = mid + Math.imul(al6, bh9) | 0;\n    mid = mid + Math.imul(ah6, bl9) | 0;\n    hi = hi + Math.imul(ah6, bh9) | 0;\n    var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = mid + Math.imul(ah9, bl7) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = lo + Math.imul(al8, bl8) | 0;\n    mid = mid + Math.imul(al8, bh8) | 0;\n    mid = mid + Math.imul(ah8, bl8) | 0;\n    hi = hi + Math.imul(ah8, bh8) | 0;\n    lo = lo + Math.imul(al7, bl9) | 0;\n    mid = mid + Math.imul(al7, bh9) | 0;\n    mid = mid + Math.imul(ah7, bl9) | 0;\n    hi = hi + Math.imul(ah7, bh9) | 0;\n    var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = mid + Math.imul(ah9, bl8) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = lo + Math.imul(al8, bl9) | 0;\n    mid = mid + Math.imul(al8, bh9) | 0;\n    mid = mid + Math.imul(ah8, bl9) | 0;\n    hi = hi + Math.imul(ah8, bh9) | 0;\n    var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = mid + Math.imul(ah9, bl9) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n\n    return out;\n  }; // Polyfill comb\n\n\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n    var carry = 0;\n    var hncarry = 0;\n\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n        var lo = r & 0x3ffffff;\n        ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n        lo = lo + rword | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = ncarry + (lo >>> 26) | 0;\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  function jumboMulTo(self, num, out) {\n    var fftm = new FFTM();\n    return fftm.mulp(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo(num, out) {\n    var res;\n    var len = this.length + num.length;\n\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  }; // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n\n  function FFTM(x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT(N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  }; // Returns binary-reversed representation of `x`\n\n\n  FFTM.prototype.revBin = function revBin(x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n    var rb = 0;\n\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << l - i - 1;\n      x >>= 1;\n    }\n\n    return rb;\n  }; // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n\n\n  FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n          var rx = rtwdf_ * ro - itwdf_ * io;\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n          /* jshint maxdepth : false */\n\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n      t = iws[i];\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n      rws[2 * i] = carry & 0x1fff;\n      carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff;\n      carry = carry >>> 13;\n    } // Pad with zeroes\n\n\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub(N) {\n    var ph = new Array(N);\n\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp(x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n    var rmws = out.words;\n    rmws.length = N;\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out.strip();\n  }; // Multiply `this` by `num`\n\n\n  BN.prototype.mul = function mul(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  }; // Multiply employing FFT\n\n\n  BN.prototype.mulf = function mulf(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  }; // In-place Multiplication\n\n\n  BN.prototype.imul = function imul(num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000); // Carry\n\n    var carry = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.muln = function muln(num) {\n    return this.clone().imuln(num);\n  }; // `this` * `this`\n\n\n  BN.prototype.sqr = function sqr() {\n    return this.mul(this);\n  }; // `this` * `this` in-place\n\n\n  BN.prototype.isqr = function isqr() {\n    return this.imul(this.clone());\n  }; // Math.pow(`this`, `num`)\n\n\n  BN.prototype.pow = function pow(num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n    var res = this;\n\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  }; // Shift-left in-place\n\n\n  BN.prototype.iushln = function iushln(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = (this.words[i] | 0) - newCarry << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> 26 - r;\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishln = function ishln(bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  }; // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n  BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n\n    if (hint) {\n      h = (hint - hint % 26) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n    var maskedWords = extended;\n    h -= s;\n    h = Math.max(0, h); // Extended mode, copy masked part\n\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {// No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = carry << 26 - r | word >>> r;\n      carry = word & mask;\n    } // Push carried bits as a mask\n\n\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  }; // Shift-left\n\n\n  BN.prototype.shln = function shln(bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln(bits) {\n    return this.clone().iushln(bits);\n  }; // Shift-right\n\n\n  BN.prototype.shrn = function shrn(bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn(bits) {\n    return this.clone().iushrn(bits);\n  }; // Test if n bit is set\n\n\n  BN.prototype.testn = function testn(bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) return false; // Check bit and return\n\n    var w = this.words[s];\n    return !!(w & q);\n  }; // Return only lowers bits of number (in-place)\n\n\n  BN.prototype.imaskn = function imaskn(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this.strip();\n  }; // Return only lowers bits of number\n\n\n  BN.prototype.maskn = function maskn(bits) {\n    return this.clone().imaskn(bits);\n  }; // Add plain number `num` to `this`\n\n\n  BN.prototype.iaddn = function iaddn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num); // Possible sign change\n\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) < num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    } // Add without checks\n\n\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn(num) {\n    this.words[0] += num; // Carry\n\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n\n    this.length = Math.max(this.length, i + 1);\n    return this;\n  }; // Subtract plain number `num` from `this`\n\n\n  BN.prototype.isubn = function isubn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.addn = function addn(num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn(num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs() {\n    this.negative = 0;\n    return this;\n  };\n\n  BN.prototype.abs = function abs() {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - (right / 0x4000000 | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this.strip(); // Subtraction overflow\n\n    assert(carry === -1);\n    carry = 0;\n\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n\n    this.negative = 1;\n    return this.strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv(num, mode) {\n    var shift = this.length - num.length;\n    var a = this.clone();\n    var b = num; // Normalize\n\n    var bhi = b.words[b.length - 1] | 0;\n\n    var bhiBits = this._countBits(bhi);\n\n    shift = 26 - bhiBits;\n\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    } // Initialize quotient\n\n\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n    if (diff.negative === 0) {\n      a = diff;\n\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n\n      qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n\n        a._ishlnsubmul(b, 1, j);\n\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n\n    if (q) {\n      q.strip();\n    }\n\n    a.strip(); // Denormalize\n\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n\n\n  BN.prototype.divmod = function divmod(num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    } // Both numbers are positive at this point\n    // Strip both numbers to approximate shift value\n\n\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    } // Very short reduction\n\n\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  }; // Find `this` / `num`\n\n\n  BN.prototype.div = function div(num) {\n    return this.divmod(num, 'div', false).div;\n  }; // Find `this` % `num`\n\n\n  BN.prototype.mod = function mod(num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod(num) {\n    return this.divmod(num, 'mod', true).mod;\n  }; // Find Round(`this` / `num`)\n\n\n  BN.prototype.divRound = function divRound(num) {\n    var dm = this.divmod(num); // Fast case - exact division\n\n    if (dm.mod.isZero()) return dm.div;\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half); // Round down\n\n    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modn = function modn(num) {\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n    var acc = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return acc;\n  }; // In-place division by number\n\n\n  BN.prototype.idivn = function idivn(num) {\n    assert(num <= 0x3ffffff);\n    var carry = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = w / num | 0;\n      carry = w % num;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.divn = function divn(num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    } // A * x + B * y = x\n\n\n    var A = new BN(1);\n    var B = new BN(0); // C * x + D * y = y\n\n    var C = new BN(0);\n    var D = new BN(1);\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        x.iushrn(i);\n\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        y.iushrn(j);\n\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  }; // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n\n\n  BN.prototype._invmp = function _invmp(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        a.iushrn(i);\n\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        b.iushrn(j);\n\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd(num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0; // Remove common factor of two\n\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  }; // Invert number in the field F(num)\n\n\n  BN.prototype.invm = function invm(num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven() {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd() {\n    return (this.words[0] & 1) === 1;\n  }; // And first word and num\n\n\n  BN.prototype.andln = function andln(num) {\n    return this.words[0] & num;\n  }; // Increment at the bit position in-line\n\n\n  BN.prototype.bincn = function bincn(bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) {\n      this._expand(s + 1);\n\n      this.words[s] |= q;\n      return this;\n    } // Add bit and propagate, if needed\n\n\n    var carry = q;\n\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero() {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn(num) {\n    var negative = num < 0;\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n    this.strip();\n    var res;\n\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n\n\n  BN.prototype.cmp = function cmp(num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Unsigned comparison\n\n\n  BN.prototype.ucmp = function ucmp(num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n    var res = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n      if (a === b) continue;\n\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n\n      break;\n    }\n\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn(num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt(num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten(num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte(num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn(num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt(num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten(num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte(num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn(num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq(num) {\n    return this.cmp(num) === 0;\n  }; //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n\n\n  BN.red = function red(num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed() {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed(ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd(num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd(num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub(num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub(num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl(num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr() {\n    assert(this.red, 'redSqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr() {\n    assert(this.red, 'redISqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.isqr(this);\n  }; // Square root over p\n\n\n  BN.prototype.redSqrt = function redSqrt() {\n    assert(this.red, 'redSqrt works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm() {\n    assert(this.red, 'redInvm works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.invm(this);\n  }; // Return negative clone of `this` % `red modulo`\n\n\n  BN.prototype.redNeg = function redNeg() {\n    assert(this.red, 'redNeg works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow(num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n\n    this.red._verify1(this);\n\n    return this.red.pow(this, num);\n  }; // Prime numbers with efficient reduction\n\n\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  }; // Pseudo-Mersenne prime\n\n  function MPrime(name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp() {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce(num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is BN v4 instance\n        r.strip();\n      } else {\n        // r is BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split(input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK(num) {\n    return num.imul(this.k);\n  };\n\n  function K256() {\n    MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split(input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n    var outLen = Math.min(input.length, 9);\n\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    } // Shift by 9 limbs\n\n\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n      prev = next;\n    }\n\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK(num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n    var lo = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + (lo / 0x4000000 | 0);\n    } // Fast length reduction\n\n\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n\n    return num;\n  };\n\n  function P224() {\n    MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n\n  inherits(P224, MPrime);\n\n  function P192() {\n    MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n\n  inherits(P192, MPrime);\n\n  function P25519() {\n    // 2 ^ 255 - 19\n    MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK(num) {\n    // K = 0x13\n    var carry = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n      num.words[i] = lo;\n      carry = hi;\n    }\n\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n\n    return num;\n  }; // Exported mostly for testing purposes, use plain name instead\n\n\n  BN._prime = function prime(name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n    var prime;\n\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n\n    primes[name] = prime;\n    return prime;\n  }; //\n  // Base reduction engine\n  //\n\n\n  function Red(m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1(a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2(a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red, 'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod(a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n    return a.umod(this.m)._forceRed(this);\n  };\n\n  Red.prototype.neg = function neg(a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add(a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd(a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.sub = function sub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.shl = function shl(a, num) {\n    this._verify1(a);\n\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr(a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr(a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt(a) {\n    if (a.isZero()) return a.clone();\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1); // Fast case\n\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n    var q = this.m.subn(1);\n    var s = 0;\n\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n\n    assert(!q.isZero());\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg(); // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm(a) {\n    var inv = a._invmp(this.m);\n\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow(a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = word >> j & 1;\n\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo(num) {\n    var r = num.umod(this.m);\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom(num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  }; //\n  // Montgomery method engine\n  //\n\n\n  BN.mont = function mont(num) {\n    return new Mont(num);\n  };\n\n  function Mont(m) {\n    Red.call(this, m);\n    this.shift = this.m.bitLength();\n\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - this.shift % 26;\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo(num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom(num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul(a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul(a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm(a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic.js":
/*!***********************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar elliptic = exports;\nelliptic.version = __webpack_require__(/*! ../package.json */ \"./node_modules/elliptic/package.json\").version;\nelliptic.utils = __webpack_require__(/*! ./elliptic/utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\nelliptic.rand = __webpack_require__(/*! brorand */ \"./node_modules/brorand/index.js\");\nelliptic.curve = __webpack_require__(/*! ./elliptic/curve */ \"./node_modules/elliptic/lib/elliptic/curve/index.js\");\nelliptic.curves = __webpack_require__(/*! ./elliptic/curves */ \"./node_modules/elliptic/lib/elliptic/curves.js\"); // Protocols\n\nelliptic.ec = __webpack_require__(/*! ./elliptic/ec */ \"./node_modules/elliptic/lib/elliptic/ec/index.js\");\nelliptic.eddsa = __webpack_require__(/*! ./elliptic/eddsa */ \"./node_modules/elliptic/lib/elliptic/eddsa/index.js\");\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/curve/base.js":
/*!**********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/curve/base.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n  this.type = type;\n  this.p = new BN(conf.p, 16); // Use Montgomery, when there is no fast reduction for the prime\n\n  this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p); // Useful for many curves\n\n  this.zero = new BN(0).toRed(this.red);\n  this.one = new BN(1).toRed(this.red);\n  this.two = new BN(2).toRed(this.red); // Curve configuration, optional\n\n  this.n = conf.n && new BN(conf.n, 16);\n  this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); // Temporary arrays\n\n  this._wnafT1 = new Array(4);\n  this._wnafT2 = new Array(4);\n  this._wnafT3 = new Array(4);\n  this._wnafT4 = new Array(4);\n  this._bitLength = this.n ? this.n.bitLength() : 0; // Generalized Greg Maxwell's trick\n\n  var adjustCount = this.n && this.p.div(this.n);\n\n  if (!adjustCount || adjustCount.cmpn(100) > 0) {\n    this.redN = null;\n  } else {\n    this._maxwellTrick = true;\n    this.redN = this.n.toRed(this.red);\n  }\n}\n\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n  throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n  throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n  assert(p.precomputed);\n\n  var doubles = p._getDoubles();\n\n  var naf = getNAF(k, 1, this._bitLength);\n  var I = (1 << doubles.step + 1) - (doubles.step % 2 === 0 ? 2 : 1);\n  I /= 3; // Translate into more windowed form\n\n  var repr = [];\n  var j;\n  var nafW;\n\n  for (j = 0; j < naf.length; j += doubles.step) {\n    nafW = 0;\n\n    for (var l = j + doubles.step - 1; l >= j; l--) nafW = (nafW << 1) + naf[l];\n\n    repr.push(nafW);\n  }\n\n  var a = this.jpoint(null, null, null);\n  var b = this.jpoint(null, null, null);\n\n  for (var i = I; i > 0; i--) {\n    for (j = 0; j < repr.length; j++) {\n      nafW = repr[j];\n      if (nafW === i) b = b.mixedAdd(doubles.points[j]);else if (nafW === -i) b = b.mixedAdd(doubles.points[j].neg());\n    }\n\n    a = a.add(b);\n  }\n\n  return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n  var w = 4; // Precompute window\n\n  var nafPoints = p._getNAFPoints(w);\n\n  w = nafPoints.wnd;\n  var wnd = nafPoints.points; // Get NAF form\n\n  var naf = getNAF(k, w, this._bitLength); // Add `this`*(N+1) for every w-NAF index\n\n  var acc = this.jpoint(null, null, null);\n\n  for (var i = naf.length - 1; i >= 0; i--) {\n    // Count zeroes\n    for (var l = 0; i >= 0 && naf[i] === 0; i--) l++;\n\n    if (i >= 0) l++;\n    acc = acc.dblp(l);\n    if (i < 0) break;\n    var z = naf[i];\n    assert(z !== 0);\n\n    if (p.type === 'affine') {\n      // J +- P\n      if (z > 0) acc = acc.mixedAdd(wnd[z - 1 >> 1]);else acc = acc.mixedAdd(wnd[-z - 1 >> 1].neg());\n    } else {\n      // J +- J\n      if (z > 0) acc = acc.add(wnd[z - 1 >> 1]);else acc = acc.add(wnd[-z - 1 >> 1].neg());\n    }\n  }\n\n  return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, points, coeffs, len, jacobianResult) {\n  var wndWidth = this._wnafT1;\n  var wnd = this._wnafT2;\n  var naf = this._wnafT3; // Fill all arrays\n\n  var max = 0;\n  var i;\n  var j;\n  var p;\n\n  for (i = 0; i < len; i++) {\n    p = points[i];\n\n    var nafPoints = p._getNAFPoints(defW);\n\n    wndWidth[i] = nafPoints.wnd;\n    wnd[i] = nafPoints.points;\n  } // Comb small window NAFs\n\n\n  for (i = len - 1; i >= 1; i -= 2) {\n    var a = i - 1;\n    var b = i;\n\n    if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n      naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n      naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n      max = Math.max(naf[a].length, max);\n      max = Math.max(naf[b].length, max);\n      continue;\n    }\n\n    var comb = [points[a],\n    /* 1 */\n    null,\n    /* 3 */\n    null,\n    /* 5 */\n    points[b]\n    /* 7 */\n    ]; // Try to avoid Projective points, if possible\n\n    if (points[a].y.cmp(points[b].y) === 0) {\n      comb[1] = points[a].add(points[b]);\n      comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n    } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n      comb[1] = points[a].toJ().mixedAdd(points[b]);\n      comb[2] = points[a].add(points[b].neg());\n    } else {\n      comb[1] = points[a].toJ().mixedAdd(points[b]);\n      comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n    }\n\n    var index = [-3,\n    /* -1 -1 */\n    -1,\n    /* -1 0 */\n    -5,\n    /* -1 1 */\n    -7,\n    /* 0 -1 */\n    0,\n    /* 0 0 */\n    7,\n    /* 0 1 */\n    5,\n    /* 1 -1 */\n    1,\n    /* 1 0 */\n    3\n    /* 1 1 */\n    ];\n    var jsf = getJSF(coeffs[a], coeffs[b]);\n    max = Math.max(jsf[0].length, max);\n    naf[a] = new Array(max);\n    naf[b] = new Array(max);\n\n    for (j = 0; j < max; j++) {\n      var ja = jsf[0][j] | 0;\n      var jb = jsf[1][j] | 0;\n      naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n      naf[b][j] = 0;\n      wnd[a] = comb;\n    }\n  }\n\n  var acc = this.jpoint(null, null, null);\n  var tmp = this._wnafT4;\n\n  for (i = max; i >= 0; i--) {\n    var k = 0;\n\n    while (i >= 0) {\n      var zero = true;\n\n      for (j = 0; j < len; j++) {\n        tmp[j] = naf[j][i] | 0;\n        if (tmp[j] !== 0) zero = false;\n      }\n\n      if (!zero) break;\n      k++;\n      i--;\n    }\n\n    if (i >= 0) k++;\n    acc = acc.dblp(k);\n    if (i < 0) break;\n\n    for (j = 0; j < len; j++) {\n      var z = tmp[j];\n      p;\n      if (z === 0) continue;else if (z > 0) p = wnd[j][z - 1 >> 1];else if (z < 0) p = wnd[j][-z - 1 >> 1].neg();\n      if (p.type === 'affine') acc = acc.mixedAdd(p);else acc = acc.add(p);\n    }\n  } // Zeroify references\n\n\n  for (i = 0; i < len; i++) wnd[i] = null;\n\n  if (jacobianResult) return acc;else return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n  this.curve = curve;\n  this.type = type;\n  this.precomputed = null;\n}\n\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function\n  /*other*/\neq() {\n  throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n  return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n  bytes = utils.toArray(bytes, enc);\n  var len = this.p.byteLength(); // uncompressed, hybrid-odd, hybrid-even\n\n  if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) && bytes.length - 1 === 2 * len) {\n    if (bytes[0] === 0x06) assert(bytes[bytes.length - 1] % 2 === 0);else if (bytes[0] === 0x07) assert(bytes[bytes.length - 1] % 2 === 1);\n    var res = this.point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len));\n    return res;\n  } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) && bytes.length - 1 === len) {\n    return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n  }\n\n  throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n  return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n  var len = this.curve.p.byteLength();\n  var x = this.getX().toArray('be', len);\n  if (compact) return [this.getY().isEven() ? 0x02 : 0x03].concat(x);\n  return [0x04].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n  return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n  if (this.precomputed) return this;\n  var precomputed = {\n    doubles: null,\n    naf: null,\n    beta: null\n  };\n  precomputed.naf = this._getNAFPoints(8);\n  precomputed.doubles = this._getDoubles(4, power);\n  precomputed.beta = this._getBeta();\n  this.precomputed = precomputed;\n  return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n  if (!this.precomputed) return false;\n  var doubles = this.precomputed.doubles;\n  if (!doubles) return false;\n  return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n  if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles;\n  var doubles = [this];\n  var acc = this;\n\n  for (var i = 0; i < power; i += step) {\n    for (var j = 0; j < step; j++) acc = acc.dbl();\n\n    doubles.push(acc);\n  }\n\n  return {\n    step: step,\n    points: doubles\n  };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n  if (this.precomputed && this.precomputed.naf) return this.precomputed.naf;\n  var res = [this];\n  var max = (1 << wnd) - 1;\n  var dbl = max === 1 ? null : this.dbl();\n\n  for (var i = 1; i < max; i++) res[i] = res[i - 1].add(dbl);\n\n  return {\n    wnd: wnd,\n    points: res\n  };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n  return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n  var r = this;\n\n  for (var i = 0; i < k; i++) r = r.dbl();\n\n  return r;\n};\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/curve/base.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/curve/edwards.js":
/*!*************************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/curve/edwards.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Base = __webpack_require__(/*! ./base */ \"./node_modules/elliptic/lib/elliptic/curve/base.js\");\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n  // NOTE: Important as we are creating point in Base.call()\n  this.twisted = (conf.a | 0) !== 1;\n  this.mOneA = this.twisted && (conf.a | 0) === -1;\n  this.extended = this.mOneA;\n  Base.call(this, 'edwards', conf);\n  this.a = new BN(conf.a, 16).umod(this.red.m);\n  this.a = this.a.toRed(this.red);\n  this.c = new BN(conf.c, 16).toRed(this.red);\n  this.c2 = this.c.redSqr();\n  this.d = new BN(conf.d, 16).toRed(this.red);\n  this.dd = this.d.redAdd(this.d);\n  assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n  this.oneC = (conf.c | 0) === 1;\n}\n\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n  if (this.mOneA) return num.redNeg();else return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n  if (this.oneC) return num;else return this.c.redMul(num);\n}; // Just for compatibility with Short curve\n\n\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n  return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n  x = new BN(x, 16);\n  if (!x.red) x = x.toRed(this.red);\n  var x2 = x.redSqr();\n  var rhs = this.c2.redSub(this.a.redMul(x2));\n  var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n  var y2 = rhs.redMul(lhs.redInvm());\n  var y = y2.redSqrt();\n  if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point');\n  var isOdd = y.fromRed().isOdd();\n  if (odd && !isOdd || !odd && isOdd) y = y.redNeg();\n  return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n  y = new BN(y, 16);\n  if (!y.red) y = y.toRed(this.red); // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n\n  var y2 = y.redSqr();\n  var lhs = y2.redSub(this.c2);\n  var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n  var x2 = lhs.redMul(rhs.redInvm());\n\n  if (x2.cmp(this.zero) === 0) {\n    if (odd) throw new Error('invalid point');else return this.point(this.zero, y);\n  }\n\n  var x = x2.redSqrt();\n  if (x.redSqr().redSub(x2).cmp(this.zero) !== 0) throw new Error('invalid point');\n  if (x.fromRed().isOdd() !== odd) x = x.redNeg();\n  return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n  if (point.isInfinity()) return true; // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n\n  point.normalize();\n  var x2 = point.x.redSqr();\n  var y2 = point.y.redSqr();\n  var lhs = x2.redMul(this.a).redAdd(y2);\n  var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n  return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n  Base.BasePoint.call(this, curve, 'projective');\n\n  if (x === null && y === null && z === null) {\n    this.x = this.curve.zero;\n    this.y = this.curve.one;\n    this.z = this.curve.one;\n    this.t = this.curve.zero;\n    this.zOne = true;\n  } else {\n    this.x = new BN(x, 16);\n    this.y = new BN(y, 16);\n    this.z = z ? new BN(z, 16) : this.curve.one;\n    this.t = t && new BN(t, 16);\n    if (!this.x.red) this.x = this.x.toRed(this.curve.red);\n    if (!this.y.red) this.y = this.y.toRed(this.curve.red);\n    if (!this.z.red) this.z = this.z.toRed(this.curve.red);\n    if (this.t && !this.t.red) this.t = this.t.toRed(this.curve.red);\n    this.zOne = this.z === this.curve.one; // Use extended coordinates\n\n    if (this.curve.extended && !this.t) {\n      this.t = this.x.redMul(this.y);\n      if (!this.zOne) this.t = this.t.redMul(this.z.redInvm());\n    }\n  }\n}\n\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n  return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n  return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n  return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n  if (this.isInfinity()) return '<EC Point Infinity>';\n  return '<EC Point x: ' + this.x.fromRed().toString(16, 2) + ' y: ' + this.y.fromRed().toString(16, 2) + ' z: ' + this.z.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n  // XXX This code assumes that zero is always zero in red\n  return this.x.cmpn(0) === 0 && (this.y.cmp(this.z) === 0 || this.zOne && this.y.cmp(this.curve.c) === 0);\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n  // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n  //     #doubling-dbl-2008-hwcd\n  // 4M + 4S\n  // A = X1^2\n  var a = this.x.redSqr(); // B = Y1^2\n\n  var b = this.y.redSqr(); // C = 2 * Z1^2\n\n  var c = this.z.redSqr();\n  c = c.redIAdd(c); // D = a * A\n\n  var d = this.curve._mulA(a); // E = (X1 + Y1)^2 - A - B\n\n\n  var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b); // G = D + B\n\n  var g = d.redAdd(b); // F = G - C\n\n  var f = g.redSub(c); // H = D - B\n\n  var h = d.redSub(b); // X3 = E * F\n\n  var nx = e.redMul(f); // Y3 = G * H\n\n  var ny = g.redMul(h); // T3 = E * H\n\n  var nt = e.redMul(h); // Z3 = F * G\n\n  var nz = f.redMul(g);\n  return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n  // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n  //     #doubling-dbl-2008-bbjlp\n  //     #doubling-dbl-2007-bl\n  // and others\n  // Generally 3M + 4S or 2M + 4S\n  // B = (X1 + Y1)^2\n  var b = this.x.redAdd(this.y).redSqr(); // C = X1^2\n\n  var c = this.x.redSqr(); // D = Y1^2\n\n  var d = this.y.redSqr();\n  var nx;\n  var ny;\n  var nz;\n  var e;\n  var h;\n  var j;\n\n  if (this.curve.twisted) {\n    // E = a * C\n    e = this.curve._mulA(c); // F = E + D\n\n    var f = e.redAdd(d);\n\n    if (this.zOne) {\n      // X3 = (B - C - D) * (F - 2)\n      nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)); // Y3 = F * (E - D)\n\n      ny = f.redMul(e.redSub(d)); // Z3 = F^2 - 2 * F\n\n      nz = f.redSqr().redSub(f).redSub(f);\n    } else {\n      // H = Z1^2\n      h = this.z.redSqr(); // J = F - 2 * H\n\n      j = f.redSub(h).redISub(h); // X3 = (B-C-D)*J\n\n      nx = b.redSub(c).redISub(d).redMul(j); // Y3 = F * (E - D)\n\n      ny = f.redMul(e.redSub(d)); // Z3 = F * J\n\n      nz = f.redMul(j);\n    }\n  } else {\n    // E = C + D\n    e = c.redAdd(d); // H = (c * Z1)^2\n\n    h = this.curve._mulC(this.z).redSqr(); // J = E - 2 * H\n\n    j = e.redSub(h).redSub(h); // X3 = c * (B - E) * J\n\n    nx = this.curve._mulC(b.redISub(e)).redMul(j); // Y3 = c * E * (C - D)\n\n    ny = this.curve._mulC(e).redMul(c.redISub(d)); // Z3 = E * J\n\n    nz = e.redMul(j);\n  }\n\n  return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n  if (this.isInfinity()) return this; // Double in extended coordinates\n\n  if (this.curve.extended) return this._extDbl();else return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n  // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n  //     #addition-add-2008-hwcd-3\n  // 8M\n  // A = (Y1 - X1) * (Y2 - X2)\n  var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x)); // B = (Y1 + X1) * (Y2 + X2)\n\n  var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)); // C = T1 * k * T2\n\n  var c = this.t.redMul(this.curve.dd).redMul(p.t); // D = Z1 * 2 * Z2\n\n  var d = this.z.redMul(p.z.redAdd(p.z)); // E = B - A\n\n  var e = b.redSub(a); // F = D - C\n\n  var f = d.redSub(c); // G = D + C\n\n  var g = d.redAdd(c); // H = B + A\n\n  var h = b.redAdd(a); // X3 = E * F\n\n  var nx = e.redMul(f); // Y3 = G * H\n\n  var ny = g.redMul(h); // T3 = E * H\n\n  var nt = e.redMul(h); // Z3 = F * G\n\n  var nz = f.redMul(g);\n  return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n  // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n  //     #addition-add-2008-bbjlp\n  //     #addition-add-2007-bl\n  // 10M + 1S\n  // A = Z1 * Z2\n  var a = this.z.redMul(p.z); // B = A^2\n\n  var b = a.redSqr(); // C = X1 * X2\n\n  var c = this.x.redMul(p.x); // D = Y1 * Y2\n\n  var d = this.y.redMul(p.y); // E = d * C * D\n\n  var e = this.curve.d.redMul(c).redMul(d); // F = B - E\n\n  var f = b.redSub(e); // G = B + E\n\n  var g = b.redAdd(e); // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n\n  var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n  var nx = a.redMul(f).redMul(tmp);\n  var ny;\n  var nz;\n\n  if (this.curve.twisted) {\n    // Y3 = A * G * (D - a * C)\n    ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c))); // Z3 = F * G\n\n    nz = f.redMul(g);\n  } else {\n    // Y3 = A * G * (D - C)\n    ny = a.redMul(g).redMul(d.redSub(c)); // Z3 = c * F * G\n\n    nz = this.curve._mulC(f).redMul(g);\n  }\n\n  return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n  if (this.isInfinity()) return p;\n  if (p.isInfinity()) return this;\n  if (this.curve.extended) return this._extAdd(p);else return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n  if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k);else return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n  return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n  return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n  if (this.zOne) return this; // Normalize coordinates\n\n  var zi = this.z.redInvm();\n  this.x = this.x.redMul(zi);\n  this.y = this.y.redMul(zi);\n  if (this.t) this.t = this.t.redMul(zi);\n  this.z = this.curve.one;\n  this.zOne = true;\n  return this;\n};\n\nPoint.prototype.neg = function neg() {\n  return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n  this.normalize();\n  return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n  this.normalize();\n  return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n  return this === other || this.getX().cmp(other.getX()) === 0 && this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n  var rx = x.toRed(this.curve.red).redMul(this.z);\n  if (this.x.cmp(rx) === 0) return true;\n  var xc = x.clone();\n  var t = this.curve.redN.redMul(this.z);\n\n  for (;;) {\n    xc.iadd(this.curve.n);\n    if (xc.cmp(this.curve.p) >= 0) return false;\n    rx.redIAdd(t);\n    if (this.x.cmp(rx) === 0) return true;\n  }\n}; // Compatibility with BaseCurve\n\n\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/curve/edwards.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/curve/index.js":
/*!***********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/curve/index.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar curve = exports;\ncurve.base = __webpack_require__(/*! ./base */ \"./node_modules/elliptic/lib/elliptic/curve/base.js\");\ncurve.short = __webpack_require__(/*! ./short */ \"./node_modules/elliptic/lib/elliptic/curve/short.js\");\ncurve.mont = __webpack_require__(/*! ./mont */ \"./node_modules/elliptic/lib/elliptic/curve/mont.js\");\ncurve.edwards = __webpack_require__(/*! ./edwards */ \"./node_modules/elliptic/lib/elliptic/curve/edwards.js\");\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/curve/index.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/curve/mont.js":
/*!**********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/curve/mont.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Base = __webpack_require__(/*! ./base */ \"./node_modules/elliptic/lib/elliptic/curve/base.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nfunction MontCurve(conf) {\n  Base.call(this, 'mont', conf);\n  this.a = new BN(conf.a, 16).toRed(this.red);\n  this.b = new BN(conf.b, 16).toRed(this.red);\n  this.i4 = new BN(4).toRed(this.red).redInvm();\n  this.two = new BN(2).toRed(this.red);\n  this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\n\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n  var x = point.normalize().x;\n  var x2 = x.redSqr();\n  var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n  var y = rhs.redSqrt();\n  return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n  Base.BasePoint.call(this, curve, 'projective');\n\n  if (x === null && z === null) {\n    this.x = this.curve.one;\n    this.z = this.curve.zero;\n  } else {\n    this.x = new BN(x, 16);\n    this.z = new BN(z, 16);\n    if (!this.x.red) this.x = this.x.toRed(this.curve.red);\n    if (!this.z.red) this.z = this.z.toRed(this.curve.red);\n  }\n}\n\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n  return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n  return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n  return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {// No-op\n};\n\nPoint.prototype._encode = function _encode() {\n  return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n  return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n  if (this.isInfinity()) return '<EC Point Infinity>';\n  return '<EC Point x: ' + this.x.fromRed().toString(16, 2) + ' z: ' + this.z.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n  // XXX This code assumes that zero is always zero in red\n  return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n  // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n  // 2M + 2S + 4A\n  // A = X1 + Z1\n  var a = this.x.redAdd(this.z); // AA = A^2\n\n  var aa = a.redSqr(); // B = X1 - Z1\n\n  var b = this.x.redSub(this.z); // BB = B^2\n\n  var bb = b.redSqr(); // C = AA - BB\n\n  var c = aa.redSub(bb); // X3 = AA * BB\n\n  var nx = aa.redMul(bb); // Z3 = C * (BB + A24 * C)\n\n  var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n  return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n  throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n  // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n  // 4M + 2S + 6A\n  // A = X2 + Z2\n  var a = this.x.redAdd(this.z); // B = X2 - Z2\n\n  var b = this.x.redSub(this.z); // C = X3 + Z3\n\n  var c = p.x.redAdd(p.z); // D = X3 - Z3\n\n  var d = p.x.redSub(p.z); // DA = D * A\n\n  var da = d.redMul(a); // CB = C * B\n\n  var cb = c.redMul(b); // X5 = Z1 * (DA + CB)^2\n\n  var nx = diff.z.redMul(da.redAdd(cb).redSqr()); // Z5 = X1 * (DA - CB)^2\n\n  var nz = diff.x.redMul(da.redISub(cb).redSqr());\n  return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n  var t = k.clone();\n  var a = this; // (N / 2) * Q + Q\n\n  var b = this.curve.point(null, null); // (N / 2) * Q\n\n  var c = this; // Q\n\n  for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1)) bits.push(t.andln(1));\n\n  for (var i = bits.length - 1; i >= 0; i--) {\n    if (bits[i] === 0) {\n      // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n      a = a.diffAdd(b, c); // N * Q = 2 * ((N / 2) * Q + Q))\n\n      b = b.dbl();\n    } else {\n      // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n      b = a.diffAdd(b, c); // N * Q + Q = 2 * ((N / 2) * Q + Q)\n\n      a = a.dbl();\n    }\n  }\n\n  return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n  throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n  throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n  return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n  this.x = this.x.redMul(this.z.redInvm());\n  this.z = this.curve.one;\n  return this;\n};\n\nPoint.prototype.getX = function getX() {\n  // Normalize coordinates\n  this.normalize();\n  return this.x.fromRed();\n};\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/curve/mont.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/curve/short.js":
/*!***********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/curve/short.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Base = __webpack_require__(/*! ./base */ \"./node_modules/elliptic/lib/elliptic/curve/base.js\");\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n  Base.call(this, 'short', conf);\n  this.a = new BN(conf.a, 16).toRed(this.red);\n  this.b = new BN(conf.b, 16).toRed(this.red);\n  this.tinv = this.two.redInvm();\n  this.zeroA = this.a.fromRed().cmpn(0) === 0;\n  this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0; // If the curve is endomorphic, precalculate beta and lambda\n\n  this.endo = this._getEndomorphism(conf);\n  this._endoWnafT1 = new Array(4);\n  this._endoWnafT2 = new Array(4);\n}\n\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n  // No efficient endomorphism\n  if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) return; // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n\n  var beta;\n  var lambda;\n\n  if (conf.beta) {\n    beta = new BN(conf.beta, 16).toRed(this.red);\n  } else {\n    var betas = this._getEndoRoots(this.p); // Choose the smallest beta\n\n\n    beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n    beta = beta.toRed(this.red);\n  }\n\n  if (conf.lambda) {\n    lambda = new BN(conf.lambda, 16);\n  } else {\n    // Choose the lambda that is matching selected beta\n    var lambdas = this._getEndoRoots(this.n);\n\n    if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n      lambda = lambdas[0];\n    } else {\n      lambda = lambdas[1];\n      assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n    }\n  } // Get basis vectors, used for balanced length-two representation\n\n\n  var basis;\n\n  if (conf.basis) {\n    basis = conf.basis.map(function (vec) {\n      return {\n        a: new BN(vec.a, 16),\n        b: new BN(vec.b, 16)\n      };\n    });\n  } else {\n    basis = this._getEndoBasis(lambda);\n  }\n\n  return {\n    beta: beta,\n    lambda: lambda,\n    basis: basis\n  };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n  // Find roots of for x^2 + x + 1 in F\n  // Root = (-1 +- Sqrt(-3)) / 2\n  //\n  var red = num === this.p ? this.red : BN.mont(num);\n  var tinv = new BN(2).toRed(red).redInvm();\n  var ntinv = tinv.redNeg();\n  var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n  var l1 = ntinv.redAdd(s).fromRed();\n  var l2 = ntinv.redSub(s).fromRed();\n  return [l1, l2];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n  // aprxSqrt >= sqrt(this.n)\n  var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)); // 3.74\n  // Run EGCD, until r(L + 1) < aprxSqrt\n\n  var u = lambda;\n  var v = this.n.clone();\n  var x1 = new BN(1);\n  var y1 = new BN(0);\n  var x2 = new BN(0);\n  var y2 = new BN(1); // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n\n  var a0;\n  var b0; // First vector\n\n  var a1;\n  var b1; // Second vector\n\n  var a2;\n  var b2;\n  var prevR;\n  var i = 0;\n  var r;\n  var x;\n\n  while (u.cmpn(0) !== 0) {\n    var q = v.div(u);\n    r = v.sub(q.mul(u));\n    x = x2.sub(q.mul(x1));\n    var y = y2.sub(q.mul(y1));\n\n    if (!a1 && r.cmp(aprxSqrt) < 0) {\n      a0 = prevR.neg();\n      b0 = x1;\n      a1 = r.neg();\n      b1 = x;\n    } else if (a1 && ++i === 2) {\n      break;\n    }\n\n    prevR = r;\n    v = u;\n    u = r;\n    x2 = x1;\n    x1 = x;\n    y2 = y1;\n    y1 = y;\n  }\n\n  a2 = r.neg();\n  b2 = x;\n  var len1 = a1.sqr().add(b1.sqr());\n  var len2 = a2.sqr().add(b2.sqr());\n\n  if (len2.cmp(len1) >= 0) {\n    a2 = a0;\n    b2 = b0;\n  } // Normalize signs\n\n\n  if (a1.negative) {\n    a1 = a1.neg();\n    b1 = b1.neg();\n  }\n\n  if (a2.negative) {\n    a2 = a2.neg();\n    b2 = b2.neg();\n  }\n\n  return [{\n    a: a1,\n    b: b1\n  }, {\n    a: a2,\n    b: b2\n  }];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n  var basis = this.endo.basis;\n  var v1 = basis[0];\n  var v2 = basis[1];\n  var c1 = v2.b.mul(k).divRound(this.n);\n  var c2 = v1.b.neg().mul(k).divRound(this.n);\n  var p1 = c1.mul(v1.a);\n  var p2 = c2.mul(v2.a);\n  var q1 = c1.mul(v1.b);\n  var q2 = c2.mul(v2.b); // Calculate answer\n\n  var k1 = k.sub(p1).sub(p2);\n  var k2 = q1.add(q2).neg();\n  return {\n    k1: k1,\n    k2: k2\n  };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n  x = new BN(x, 16);\n  if (!x.red) x = x.toRed(this.red);\n  var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n  var y = y2.redSqrt();\n  if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point'); // XXX Is there any way to tell if the number is odd without converting it\n  // to non-red form?\n\n  var isOdd = y.fromRed().isOdd();\n  if (odd && !isOdd || !odd && isOdd) y = y.redNeg();\n  return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n  if (point.inf) return true;\n  var x = point.x;\n  var y = point.y;\n  var ax = this.a.redMul(x);\n  var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n  return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n  var npoints = this._endoWnafT1;\n  var ncoeffs = this._endoWnafT2;\n\n  for (var i = 0; i < points.length; i++) {\n    var split = this._endoSplit(coeffs[i]);\n\n    var p = points[i];\n\n    var beta = p._getBeta();\n\n    if (split.k1.negative) {\n      split.k1.ineg();\n      p = p.neg(true);\n    }\n\n    if (split.k2.negative) {\n      split.k2.ineg();\n      beta = beta.neg(true);\n    }\n\n    npoints[i * 2] = p;\n    npoints[i * 2 + 1] = beta;\n    ncoeffs[i * 2] = split.k1;\n    ncoeffs[i * 2 + 1] = split.k2;\n  }\n\n  var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult); // Clean-up references to points and coefficients\n\n\n  for (var j = 0; j < i * 2; j++) {\n    npoints[j] = null;\n    ncoeffs[j] = null;\n  }\n\n  return res;\n};\n\nfunction Point(curve, x, y, isRed) {\n  Base.BasePoint.call(this, curve, 'affine');\n\n  if (x === null && y === null) {\n    this.x = null;\n    this.y = null;\n    this.inf = true;\n  } else {\n    this.x = new BN(x, 16);\n    this.y = new BN(y, 16); // Force redgomery representation when loading from JSON\n\n    if (isRed) {\n      this.x.forceRed(this.curve.red);\n      this.y.forceRed(this.curve.red);\n    }\n\n    if (!this.x.red) this.x = this.x.toRed(this.curve.red);\n    if (!this.y.red) this.y = this.y.toRed(this.curve.red);\n    this.inf = false;\n  }\n}\n\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n  return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n  return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n  if (!this.curve.endo) return;\n  var pre = this.precomputed;\n  if (pre && pre.beta) return pre.beta;\n  var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n\n  if (pre) {\n    var curve = this.curve;\n\n    var endoMul = function (p) {\n      return curve.point(p.x.redMul(curve.endo.beta), p.y);\n    };\n\n    pre.beta = beta;\n    beta.precomputed = {\n      beta: null,\n      naf: pre.naf && {\n        wnd: pre.naf.wnd,\n        points: pre.naf.points.map(endoMul)\n      },\n      doubles: pre.doubles && {\n        step: pre.doubles.step,\n        points: pre.doubles.points.map(endoMul)\n      }\n    };\n  }\n\n  return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n  if (!this.precomputed) return [this.x, this.y];\n  return [this.x, this.y, this.precomputed && {\n    doubles: this.precomputed.doubles && {\n      step: this.precomputed.doubles.step,\n      points: this.precomputed.doubles.points.slice(1)\n    },\n    naf: this.precomputed.naf && {\n      wnd: this.precomputed.naf.wnd,\n      points: this.precomputed.naf.points.slice(1)\n    }\n  }];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n  if (typeof obj === 'string') obj = JSON.parse(obj);\n  var res = curve.point(obj[0], obj[1], red);\n  if (!obj[2]) return res;\n\n  function obj2point(obj) {\n    return curve.point(obj[0], obj[1], red);\n  }\n\n  var pre = obj[2];\n  res.precomputed = {\n    beta: null,\n    doubles: pre.doubles && {\n      step: pre.doubles.step,\n      points: [res].concat(pre.doubles.points.map(obj2point))\n    },\n    naf: pre.naf && {\n      wnd: pre.naf.wnd,\n      points: [res].concat(pre.naf.points.map(obj2point))\n    }\n  };\n  return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n  if (this.isInfinity()) return '<EC Point Infinity>';\n  return '<EC Point x: ' + this.x.fromRed().toString(16, 2) + ' y: ' + this.y.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n  return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n  // O + P = P\n  if (this.inf) return p; // P + O = P\n\n  if (p.inf) return this; // P + P = 2P\n\n  if (this.eq(p)) return this.dbl(); // P + (-P) = O\n\n  if (this.neg().eq(p)) return this.curve.point(null, null); // P + Q = O\n\n  if (this.x.cmp(p.x) === 0) return this.curve.point(null, null);\n  var c = this.y.redSub(p.y);\n  if (c.cmpn(0) !== 0) c = c.redMul(this.x.redSub(p.x).redInvm());\n  var nx = c.redSqr().redISub(this.x).redISub(p.x);\n  var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n  return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n  if (this.inf) return this; // 2P = O\n\n  var ys1 = this.y.redAdd(this.y);\n  if (ys1.cmpn(0) === 0) return this.curve.point(null, null);\n  var a = this.curve.a;\n  var x2 = this.x.redSqr();\n  var dyinv = ys1.redInvm();\n  var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n  var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n  var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n  return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n  return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n  return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n  k = new BN(k, 16);\n  if (this.isInfinity()) return this;else if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k);else if (this.curve.endo) return this.curve._endoWnafMulAdd([this], [k]);else return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n  var points = [this, p2];\n  var coeffs = [k1, k2];\n  if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs);else return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n  var points = [this, p2];\n  var coeffs = [k1, k2];\n  if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs, true);else return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n  return this === p || this.inf === p.inf && (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n  if (this.inf) return this;\n  var res = this.curve.point(this.x, this.y.redNeg());\n\n  if (_precompute && this.precomputed) {\n    var pre = this.precomputed;\n\n    var negate = function (p) {\n      return p.neg();\n    };\n\n    res.precomputed = {\n      naf: pre.naf && {\n        wnd: pre.naf.wnd,\n        points: pre.naf.points.map(negate)\n      },\n      doubles: pre.doubles && {\n        step: pre.doubles.step,\n        points: pre.doubles.points.map(negate)\n      }\n    };\n  }\n\n  return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n  if (this.inf) return this.curve.jpoint(null, null, null);\n  var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n  return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n  Base.BasePoint.call(this, curve, 'jacobian');\n\n  if (x === null && y === null && z === null) {\n    this.x = this.curve.one;\n    this.y = this.curve.one;\n    this.z = new BN(0);\n  } else {\n    this.x = new BN(x, 16);\n    this.y = new BN(y, 16);\n    this.z = new BN(z, 16);\n  }\n\n  if (!this.x.red) this.x = this.x.toRed(this.curve.red);\n  if (!this.y.red) this.y = this.y.toRed(this.curve.red);\n  if (!this.z.red) this.z = this.z.toRed(this.curve.red);\n  this.zOne = this.z === this.curve.one;\n}\n\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n  return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n  if (this.isInfinity()) return this.curve.point(null, null);\n  var zinv = this.z.redInvm();\n  var zinv2 = zinv.redSqr();\n  var ax = this.x.redMul(zinv2);\n  var ay = this.y.redMul(zinv2).redMul(zinv);\n  return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n  return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n  // O + P = P\n  if (this.isInfinity()) return p; // P + O = P\n\n  if (p.isInfinity()) return this; // 12M + 4S + 7A\n\n  var pz2 = p.z.redSqr();\n  var z2 = this.z.redSqr();\n  var u1 = this.x.redMul(pz2);\n  var u2 = p.x.redMul(z2);\n  var s1 = this.y.redMul(pz2.redMul(p.z));\n  var s2 = p.y.redMul(z2.redMul(this.z));\n  var h = u1.redSub(u2);\n  var r = s1.redSub(s2);\n\n  if (h.cmpn(0) === 0) {\n    if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null);else return this.dbl();\n  }\n\n  var h2 = h.redSqr();\n  var h3 = h2.redMul(h);\n  var v = u1.redMul(h2);\n  var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n  var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n  var nz = this.z.redMul(p.z).redMul(h);\n  return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n  // O + P = P\n  if (this.isInfinity()) return p.toJ(); // P + O = P\n\n  if (p.isInfinity()) return this; // 8M + 3S + 7A\n\n  var z2 = this.z.redSqr();\n  var u1 = this.x;\n  var u2 = p.x.redMul(z2);\n  var s1 = this.y;\n  var s2 = p.y.redMul(z2).redMul(this.z);\n  var h = u1.redSub(u2);\n  var r = s1.redSub(s2);\n\n  if (h.cmpn(0) === 0) {\n    if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null);else return this.dbl();\n  }\n\n  var h2 = h.redSqr();\n  var h3 = h2.redMul(h);\n  var v = u1.redMul(h2);\n  var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n  var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n  var nz = this.z.redMul(h);\n  return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n  if (pow === 0) return this;\n  if (this.isInfinity()) return this;\n  if (!pow) return this.dbl();\n  var i;\n\n  if (this.curve.zeroA || this.curve.threeA) {\n    var r = this;\n\n    for (i = 0; i < pow; i++) r = r.dbl();\n\n    return r;\n  } // 1M + 2S + 1A + N * (4S + 5M + 8A)\n  // N = 1 => 6M + 6S + 9A\n\n\n  var a = this.curve.a;\n  var tinv = this.curve.tinv;\n  var jx = this.x;\n  var jy = this.y;\n  var jz = this.z;\n  var jz4 = jz.redSqr().redSqr(); // Reuse results\n\n  var jyd = jy.redAdd(jy);\n\n  for (i = 0; i < pow; i++) {\n    var jx2 = jx.redSqr();\n    var jyd2 = jyd.redSqr();\n    var jyd4 = jyd2.redSqr();\n    var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n    var t1 = jx.redMul(jyd2);\n    var nx = c.redSqr().redISub(t1.redAdd(t1));\n    var t2 = t1.redISub(nx);\n    var dny = c.redMul(t2);\n    dny = dny.redIAdd(dny).redISub(jyd4);\n    var nz = jyd.redMul(jz);\n    if (i + 1 < pow) jz4 = jz4.redMul(jyd4);\n    jx = nx;\n    jz = nz;\n    jyd = dny;\n  }\n\n  return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n  if (this.isInfinity()) return this;\n  if (this.curve.zeroA) return this._zeroDbl();else if (this.curve.threeA) return this._threeDbl();else return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n  var nx;\n  var ny;\n  var nz; // Z = 1\n\n  if (this.zOne) {\n    // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n    //     #doubling-mdbl-2007-bl\n    // 1M + 5S + 14A\n    // XX = X1^2\n    var xx = this.x.redSqr(); // YY = Y1^2\n\n    var yy = this.y.redSqr(); // YYYY = YY^2\n\n    var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n\n    var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n    s = s.redIAdd(s); // M = 3 * XX + a; a = 0\n\n    var m = xx.redAdd(xx).redIAdd(xx); // T = M ^ 2 - 2*S\n\n    var t = m.redSqr().redISub(s).redISub(s); // 8 * YYYY\n\n    var yyyy8 = yyyy.redIAdd(yyyy);\n    yyyy8 = yyyy8.redIAdd(yyyy8);\n    yyyy8 = yyyy8.redIAdd(yyyy8); // X3 = T\n\n    nx = t; // Y3 = M * (S - T) - 8 * YYYY\n\n    ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2*Y1\n\n    nz = this.y.redAdd(this.y);\n  } else {\n    // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n    //     #doubling-dbl-2009-l\n    // 2M + 5S + 13A\n    // A = X1^2\n    var a = this.x.redSqr(); // B = Y1^2\n\n    var b = this.y.redSqr(); // C = B^2\n\n    var c = b.redSqr(); // D = 2 * ((X1 + B)^2 - A - C)\n\n    var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n    d = d.redIAdd(d); // E = 3 * A\n\n    var e = a.redAdd(a).redIAdd(a); // F = E^2\n\n    var f = e.redSqr(); // 8 * C\n\n    var c8 = c.redIAdd(c);\n    c8 = c8.redIAdd(c8);\n    c8 = c8.redIAdd(c8); // X3 = F - 2 * D\n\n    nx = f.redISub(d).redISub(d); // Y3 = E * (D - X3) - 8 * C\n\n    ny = e.redMul(d.redISub(nx)).redISub(c8); // Z3 = 2 * Y1 * Z1\n\n    nz = this.y.redMul(this.z);\n    nz = nz.redIAdd(nz);\n  }\n\n  return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n  var nx;\n  var ny;\n  var nz; // Z = 1\n\n  if (this.zOne) {\n    // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n    //     #doubling-mdbl-2007-bl\n    // 1M + 5S + 15A\n    // XX = X1^2\n    var xx = this.x.redSqr(); // YY = Y1^2\n\n    var yy = this.y.redSqr(); // YYYY = YY^2\n\n    var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n\n    var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n    s = s.redIAdd(s); // M = 3 * XX + a\n\n    var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a); // T = M^2 - 2 * S\n\n    var t = m.redSqr().redISub(s).redISub(s); // X3 = T\n\n    nx = t; // Y3 = M * (S - T) - 8 * YYYY\n\n    var yyyy8 = yyyy.redIAdd(yyyy);\n    yyyy8 = yyyy8.redIAdd(yyyy8);\n    yyyy8 = yyyy8.redIAdd(yyyy8);\n    ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2 * Y1\n\n    nz = this.y.redAdd(this.y);\n  } else {\n    // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n    // 3M + 5S\n    // delta = Z1^2\n    var delta = this.z.redSqr(); // gamma = Y1^2\n\n    var gamma = this.y.redSqr(); // beta = X1 * gamma\n\n    var beta = this.x.redMul(gamma); // alpha = 3 * (X1 - delta) * (X1 + delta)\n\n    var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n    alpha = alpha.redAdd(alpha).redIAdd(alpha); // X3 = alpha^2 - 8 * beta\n\n    var beta4 = beta.redIAdd(beta);\n    beta4 = beta4.redIAdd(beta4);\n    var beta8 = beta4.redAdd(beta4);\n    nx = alpha.redSqr().redISub(beta8); // Z3 = (Y1 + Z1)^2 - gamma - delta\n\n    nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta); // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n\n    var ggamma8 = gamma.redSqr();\n    ggamma8 = ggamma8.redIAdd(ggamma8);\n    ggamma8 = ggamma8.redIAdd(ggamma8);\n    ggamma8 = ggamma8.redIAdd(ggamma8);\n    ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n  }\n\n  return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n  var a = this.curve.a; // 4M + 6S + 10A\n\n  var jx = this.x;\n  var jy = this.y;\n  var jz = this.z;\n  var jz4 = jz.redSqr().redSqr();\n  var jx2 = jx.redSqr();\n  var jy2 = jy.redSqr();\n  var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n  var jxd4 = jx.redAdd(jx);\n  jxd4 = jxd4.redIAdd(jxd4);\n  var t1 = jxd4.redMul(jy2);\n  var nx = c.redSqr().redISub(t1.redAdd(t1));\n  var t2 = t1.redISub(nx);\n  var jyd8 = jy2.redSqr();\n  jyd8 = jyd8.redIAdd(jyd8);\n  jyd8 = jyd8.redIAdd(jyd8);\n  jyd8 = jyd8.redIAdd(jyd8);\n  var ny = c.redMul(t2).redISub(jyd8);\n  var nz = jy.redAdd(jy).redMul(jz);\n  return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n  if (!this.curve.zeroA) return this.dbl().add(this); // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n  // 5M + 10S + ...\n  // XX = X1^2\n\n  var xx = this.x.redSqr(); // YY = Y1^2\n\n  var yy = this.y.redSqr(); // ZZ = Z1^2\n\n  var zz = this.z.redSqr(); // YYYY = YY^2\n\n  var yyyy = yy.redSqr(); // M = 3 * XX + a * ZZ2; a = 0\n\n  var m = xx.redAdd(xx).redIAdd(xx); // MM = M^2\n\n  var mm = m.redSqr(); // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n\n  var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n  e = e.redIAdd(e);\n  e = e.redAdd(e).redIAdd(e);\n  e = e.redISub(mm); // EE = E^2\n\n  var ee = e.redSqr(); // T = 16*YYYY\n\n  var t = yyyy.redIAdd(yyyy);\n  t = t.redIAdd(t);\n  t = t.redIAdd(t);\n  t = t.redIAdd(t); // U = (M + E)^2 - MM - EE - T\n\n  var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t); // X3 = 4 * (X1 * EE - 4 * YY * U)\n\n  var yyu4 = yy.redMul(u);\n  yyu4 = yyu4.redIAdd(yyu4);\n  yyu4 = yyu4.redIAdd(yyu4);\n  var nx = this.x.redMul(ee).redISub(yyu4);\n  nx = nx.redIAdd(nx);\n  nx = nx.redIAdd(nx); // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n\n  var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n  ny = ny.redIAdd(ny);\n  ny = ny.redIAdd(ny);\n  ny = ny.redIAdd(ny); // Z3 = (Z1 + E)^2 - ZZ - EE\n\n  var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n  return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n  k = new BN(k, kbase);\n  return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n  if (p.type === 'affine') return this.eq(p.toJ());\n  if (this === p) return true; // x1 * z2^2 == x2 * z1^2\n\n  var z2 = this.z.redSqr();\n  var pz2 = p.z.redSqr();\n  if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) return false; // y1 * z2^3 == y2 * z1^3\n\n  var z3 = z2.redMul(this.z);\n  var pz3 = pz2.redMul(p.z);\n  return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n  var zs = this.z.redSqr();\n  var rx = x.toRed(this.curve.red).redMul(zs);\n  if (this.x.cmp(rx) === 0) return true;\n  var xc = x.clone();\n  var t = this.curve.redN.redMul(zs);\n\n  for (;;) {\n    xc.iadd(this.curve.n);\n    if (xc.cmp(this.curve.p) >= 0) return false;\n    rx.redIAdd(t);\n    if (this.x.cmp(rx) === 0) return true;\n  }\n};\n\nJPoint.prototype.inspect = function inspect() {\n  if (this.isInfinity()) return '<EC JPoint Infinity>';\n  return '<EC JPoint x: ' + this.x.toString(16, 2) + ' y: ' + this.y.toString(16, 2) + ' z: ' + this.z.toString(16, 2) + '>';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n  // XXX This code assumes that zero is always zero in red\n  return this.z.cmpn(0) === 0;\n};\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/curve/short.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/curves.js":
/*!******************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/curves.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar curves = exports;\n\nvar hash = __webpack_require__(/*! hash.js */ \"./node_modules/hash.js/lib/hash.js\");\n\nvar curve = __webpack_require__(/*! ./curve */ \"./node_modules/elliptic/lib/elliptic/curve/index.js\");\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n  if (options.type === 'short') this.curve = new curve.short(options);else if (options.type === 'edwards') this.curve = new curve.edwards(options);else this.curve = new curve.mont(options);\n  this.g = this.curve.g;\n  this.n = this.curve.n;\n  this.hash = options.hash;\n  assert(this.g.validate(), 'Invalid curve');\n  assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\n\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n  Object.defineProperty(curves, name, {\n    configurable: true,\n    enumerable: true,\n    get: function () {\n      var curve = new PresetCurve(options);\n      Object.defineProperty(curves, name, {\n        configurable: true,\n        enumerable: true,\n        value: curve\n      });\n      return curve;\n    }\n  });\n}\n\ndefineCurve('p192', {\n  type: 'short',\n  prime: 'p192',\n  p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n  a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n  b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n  n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n  hash: hash.sha256,\n  gRed: false,\n  g: ['188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811']\n});\ndefineCurve('p224', {\n  type: 'short',\n  prime: 'p224',\n  p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n  a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n  b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n  n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n  hash: hash.sha256,\n  gRed: false,\n  g: ['b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34']\n});\ndefineCurve('p256', {\n  type: 'short',\n  prime: null,\n  p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n  a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n  b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n  n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n  hash: hash.sha256,\n  gRed: false,\n  g: ['6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5']\n});\ndefineCurve('p384', {\n  type: 'short',\n  prime: null,\n  p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'fffffffe ffffffff 00000000 00000000 ffffffff',\n  a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'fffffffe ffffffff 00000000 00000000 fffffffc',\n  b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' + '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n  n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' + 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n  hash: hash.sha384,\n  gRed: false,\n  g: ['aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' + '5502f25d bf55296c 3a545e38 72760ab7', '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' + '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f']\n});\ndefineCurve('p521', {\n  type: 'short',\n  prime: null,\n  p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n  a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n  b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' + '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' + '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n  n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' + 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n  hash: hash.sha512,\n  gRed: false,\n  g: ['000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' + '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' + 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' + '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' + '3fad0761 353c7086 a272c240 88be9476 9fd16650']\n});\ndefineCurve('curve25519', {\n  type: 'mont',\n  prime: 'p25519',\n  p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n  a: '76d06',\n  b: '1',\n  n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n  hash: hash.sha256,\n  gRed: false,\n  g: ['9']\n});\ndefineCurve('ed25519', {\n  type: 'edwards',\n  prime: 'p25519',\n  p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n  a: '-1',\n  c: '1',\n  // -121665 * (121666^(-1)) (mod P)\n  d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n  n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n  hash: hash.sha256,\n  gRed: false,\n  g: ['216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', // 4/5\n  '6666666666666666666666666666666666666666666666666666666666666658']\n});\nvar pre;\n\ntry {\n  pre = __webpack_require__(/*! ./precomputed/secp256k1 */ \"./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js\");\n} catch (e) {\n  pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n  type: 'short',\n  prime: 'k256',\n  p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n  a: '0',\n  b: '7',\n  n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n  h: '1',\n  hash: hash.sha256,\n  // Precomputed endomorphism\n  beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n  lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n  basis: [{\n    a: '3086d221a7d46bcde86c90e49284eb15',\n    b: '-e4437ed6010e88286f547fa90abfe4c3'\n  }, {\n    a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n    b: '3086d221a7d46bcde86c90e49284eb15'\n  }],\n  gRed: false,\n  g: ['79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', pre]\n});\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/curves.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/ec/index.js":
/*!********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/ec/index.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar HmacDRBG = __webpack_require__(/*! hmac-drbg */ \"./node_modules/hmac-drbg/lib/hmac-drbg.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar curves = __webpack_require__(/*! ../curves */ \"./node_modules/elliptic/lib/elliptic/curves.js\");\n\nvar rand = __webpack_require__(/*! brorand */ \"./node_modules/brorand/index.js\");\n\nvar assert = utils.assert;\n\nvar KeyPair = __webpack_require__(/*! ./key */ \"./node_modules/elliptic/lib/elliptic/ec/key.js\");\n\nvar Signature = __webpack_require__(/*! ./signature */ \"./node_modules/elliptic/lib/elliptic/ec/signature.js\");\n\nfunction EC(options) {\n  if (!(this instanceof EC)) return new EC(options); // Shortcut `elliptic.ec(curve-name)`\n\n  if (typeof options === 'string') {\n    assert(Object.prototype.hasOwnProperty.call(curves, options), 'Unknown curve ' + options);\n    options = curves[options];\n  } // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n\n\n  if (options instanceof curves.PresetCurve) options = {\n    curve: options\n  };\n  this.curve = options.curve.curve;\n  this.n = this.curve.n;\n  this.nh = this.n.ushrn(1);\n  this.g = this.curve.g; // Point on curve\n\n  this.g = options.curve.g;\n  this.g.precompute(options.curve.n.bitLength() + 1); // Hash for function for DRBG\n\n  this.hash = options.hash || options.curve.hash;\n}\n\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n  return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n  return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n  return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n  if (!options) options = {}; // Instantiate Hmac_DRBG\n\n  var drbg = new HmacDRBG({\n    hash: this.hash,\n    pers: options.pers,\n    persEnc: options.persEnc || 'utf8',\n    entropy: options.entropy || rand(this.hash.hmacStrength),\n    entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n    nonce: this.n.toArray()\n  });\n  var bytes = this.n.byteLength();\n  var ns2 = this.n.sub(new BN(2));\n\n  for (;;) {\n    var priv = new BN(drbg.generate(bytes));\n    if (priv.cmp(ns2) > 0) continue;\n    priv.iaddn(1);\n    return this.keyFromPrivate(priv);\n  }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n  var delta = msg.byteLength() * 8 - this.n.bitLength();\n  if (delta > 0) msg = msg.ushrn(delta);\n  if (!truncOnly && msg.cmp(this.n) >= 0) return msg.sub(this.n);else return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n  if (typeof enc === 'object') {\n    options = enc;\n    enc = null;\n  }\n\n  if (!options) options = {};\n  key = this.keyFromPrivate(key, enc);\n  msg = this._truncateToN(new BN(msg, 16)); // Zero-extend key to provide enough entropy\n\n  var bytes = this.n.byteLength();\n  var bkey = key.getPrivate().toArray('be', bytes); // Zero-extend nonce to have the same byte size as N\n\n  var nonce = msg.toArray('be', bytes); // Instantiate Hmac_DRBG\n\n  var drbg = new HmacDRBG({\n    hash: this.hash,\n    entropy: bkey,\n    nonce: nonce,\n    pers: options.pers,\n    persEnc: options.persEnc || 'utf8'\n  }); // Number of bytes to generate\n\n  var ns1 = this.n.sub(new BN(1));\n\n  for (var iter = 0;; iter++) {\n    var k = options.k ? options.k(iter) : new BN(drbg.generate(this.n.byteLength()));\n    k = this._truncateToN(k, true);\n    if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) continue;\n    var kp = this.g.mul(k);\n    if (kp.isInfinity()) continue;\n    var kpX = kp.getX();\n    var r = kpX.umod(this.n);\n    if (r.cmpn(0) === 0) continue;\n    var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n    s = s.umod(this.n);\n    if (s.cmpn(0) === 0) continue;\n    var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r) !== 0 ? 2 : 0); // Use complement of `s`, if it is > `n / 2`\n\n    if (options.canonical && s.cmp(this.nh) > 0) {\n      s = this.n.sub(s);\n      recoveryParam ^= 1;\n    }\n\n    return new Signature({\n      r: r,\n      s: s,\n      recoveryParam: recoveryParam\n    });\n  }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n  msg = this._truncateToN(new BN(msg, 16));\n  key = this.keyFromPublic(key, enc);\n  signature = new Signature(signature, 'hex'); // Perform primitive values validation\n\n  var r = signature.r;\n  var s = signature.s;\n  if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0) return false;\n  if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) return false; // Validate signature\n\n  var sinv = s.invm(this.n);\n  var u1 = sinv.mul(msg).umod(this.n);\n  var u2 = sinv.mul(r).umod(this.n);\n  var p;\n\n  if (!this.curve._maxwellTrick) {\n    p = this.g.mulAdd(u1, key.getPublic(), u2);\n    if (p.isInfinity()) return false;\n    return p.getX().umod(this.n).cmp(r) === 0;\n  } // NOTE: Greg Maxwell's trick, inspired by:\n  // https://git.io/vad3K\n\n\n  p = this.g.jmulAdd(u1, key.getPublic(), u2);\n  if (p.isInfinity()) return false; // Compare `p.x` of Jacobian point with `r`,\n  // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n  // inverse of `p.z^2`\n\n  return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function (msg, signature, j, enc) {\n  assert((3 & j) === j, 'The recovery param is more than two bits');\n  signature = new Signature(signature, enc);\n  var n = this.n;\n  var e = new BN(msg);\n  var r = signature.r;\n  var s = signature.s; // A set LSB signifies that the y-coordinate is odd\n\n  var isYOdd = j & 1;\n  var isSecondKey = j >> 1;\n  if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) throw new Error('Unable to find sencond key candinate'); // 1.1. Let x = r + jn.\n\n  if (isSecondKey) r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);else r = this.curve.pointFromX(r, isYOdd);\n  var rInv = signature.r.invm(n);\n  var s1 = n.sub(e).mul(rInv).umod(n);\n  var s2 = s.mul(rInv).umod(n); // 1.6.1 Compute Q = r^-1 (sR -  eG)\n  //               Q = r^-1 (sR + -eG)\n\n  return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function (e, signature, Q, enc) {\n  signature = new Signature(signature, enc);\n  if (signature.recoveryParam !== null) return signature.recoveryParam;\n\n  for (var i = 0; i < 4; i++) {\n    var Qprime;\n\n    try {\n      Qprime = this.recoverPubKey(e, signature, i);\n    } catch (e) {\n      continue;\n    }\n\n    if (Qprime.eq(Q)) return i;\n  }\n\n  throw new Error('Unable to find valid recovery factor');\n};\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/ec/index.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/ec/key.js":
/*!******************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/ec/key.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n  this.ec = ec;\n  this.priv = null;\n  this.pub = null; // KeyPair(ec, { priv: ..., pub: ... })\n\n  if (options.priv) this._importPrivate(options.priv, options.privEnc);\n  if (options.pub) this._importPublic(options.pub, options.pubEnc);\n}\n\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n  if (pub instanceof KeyPair) return pub;\n  return new KeyPair(ec, {\n    pub: pub,\n    pubEnc: enc\n  });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n  if (priv instanceof KeyPair) return priv;\n  return new KeyPair(ec, {\n    priv: priv,\n    privEnc: enc\n  });\n};\n\nKeyPair.prototype.validate = function validate() {\n  var pub = this.getPublic();\n  if (pub.isInfinity()) return {\n    result: false,\n    reason: 'Invalid public key'\n  };\n  if (!pub.validate()) return {\n    result: false,\n    reason: 'Public key is not a point'\n  };\n  if (!pub.mul(this.ec.curve.n).isInfinity()) return {\n    result: false,\n    reason: 'Public key * N != O'\n  };\n  return {\n    result: true,\n    reason: null\n  };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n  // compact is optional argument\n  if (typeof compact === 'string') {\n    enc = compact;\n    compact = null;\n  }\n\n  if (!this.pub) this.pub = this.ec.g.mul(this.priv);\n  if (!enc) return this.pub;\n  return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n  if (enc === 'hex') return this.priv.toString(16, 2);else return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n  this.priv = new BN(key, enc || 16); // Ensure that the priv won't be bigger than n, otherwise we may fail\n  // in fixed multiplication method\n\n  this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n  if (key.x || key.y) {\n    // Montgomery points only have an `x` coordinate.\n    // Weierstrass/Edwards points on the other hand have both `x` and\n    // `y` coordinates.\n    if (this.ec.curve.type === 'mont') {\n      assert(key.x, 'Need x coordinate');\n    } else if (this.ec.curve.type === 'short' || this.ec.curve.type === 'edwards') {\n      assert(key.x && key.y, 'Need both x and y coordinate');\n    }\n\n    this.pub = this.ec.curve.point(key.x, key.y);\n    return;\n  }\n\n  this.pub = this.ec.curve.decodePoint(key, enc);\n}; // ECDH\n\n\nKeyPair.prototype.derive = function derive(pub) {\n  if (!pub.validate()) {\n    assert(pub.validate(), 'public point not validated');\n  }\n\n  return pub.mul(this.priv).getX();\n}; // ECDSA\n\n\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n  return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n  return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n  return '<Key priv: ' + (this.priv && this.priv.toString(16, 2)) + ' pub: ' + (this.pub && this.pub.inspect()) + ' >';\n};\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/ec/key.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/ec/signature.js":
/*!************************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/ec/signature.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n  if (options instanceof Signature) return options;\n  if (this._importDER(options, enc)) return;\n  assert(options.r && options.s, 'Signature without r or s');\n  this.r = new BN(options.r, 16);\n  this.s = new BN(options.s, 16);\n  if (options.recoveryParam === undefined) this.recoveryParam = null;else this.recoveryParam = options.recoveryParam;\n}\n\nmodule.exports = Signature;\n\nfunction Position() {\n  this.place = 0;\n}\n\nfunction getLength(buf, p) {\n  var initial = buf[p.place++];\n\n  if (!(initial & 0x80)) {\n    return initial;\n  }\n\n  var octetLen = initial & 0xf; // Indefinite length or overflow\n\n  if (octetLen === 0 || octetLen > 4) {\n    return false;\n  }\n\n  var val = 0;\n\n  for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n    val <<= 8;\n    val |= buf[off];\n    val >>>= 0;\n  } // Leading zeroes\n\n\n  if (val <= 0x7f) {\n    return false;\n  }\n\n  p.place = off;\n  return val;\n}\n\nfunction rmPadding(buf) {\n  var i = 0;\n  var len = buf.length - 1;\n\n  while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n    i++;\n  }\n\n  if (i === 0) {\n    return buf;\n  }\n\n  return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n  data = utils.toArray(data, enc);\n  var p = new Position();\n\n  if (data[p.place++] !== 0x30) {\n    return false;\n  }\n\n  var len = getLength(data, p);\n\n  if (len === false) {\n    return false;\n  }\n\n  if (len + p.place !== data.length) {\n    return false;\n  }\n\n  if (data[p.place++] !== 0x02) {\n    return false;\n  }\n\n  var rlen = getLength(data, p);\n\n  if (rlen === false) {\n    return false;\n  }\n\n  var r = data.slice(p.place, rlen + p.place);\n  p.place += rlen;\n\n  if (data[p.place++] !== 0x02) {\n    return false;\n  }\n\n  var slen = getLength(data, p);\n\n  if (slen === false) {\n    return false;\n  }\n\n  if (data.length !== slen + p.place) {\n    return false;\n  }\n\n  var s = data.slice(p.place, slen + p.place);\n\n  if (r[0] === 0) {\n    if (r[1] & 0x80) {\n      r = r.slice(1);\n    } else {\n      // Leading zeroes\n      return false;\n    }\n  }\n\n  if (s[0] === 0) {\n    if (s[1] & 0x80) {\n      s = s.slice(1);\n    } else {\n      // Leading zeroes\n      return false;\n    }\n  }\n\n  this.r = new BN(r);\n  this.s = new BN(s);\n  this.recoveryParam = null;\n  return true;\n};\n\nfunction constructLength(arr, len) {\n  if (len < 0x80) {\n    arr.push(len);\n    return;\n  }\n\n  var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n  arr.push(octets | 0x80);\n\n  while (--octets) {\n    arr.push(len >>> (octets << 3) & 0xff);\n  }\n\n  arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n  var r = this.r.toArray();\n  var s = this.s.toArray(); // Pad values\n\n  if (r[0] & 0x80) r = [0].concat(r); // Pad values\n\n  if (s[0] & 0x80) s = [0].concat(s);\n  r = rmPadding(r);\n  s = rmPadding(s);\n\n  while (!s[0] && !(s[1] & 0x80)) {\n    s = s.slice(1);\n  }\n\n  var arr = [0x02];\n  constructLength(arr, r.length);\n  arr = arr.concat(r);\n  arr.push(0x02);\n  constructLength(arr, s.length);\n  var backHalf = arr.concat(s);\n  var res = [0x30];\n  constructLength(res, backHalf.length);\n  res = res.concat(backHalf);\n  return utils.encode(res, enc);\n};\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/ec/signature.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/eddsa/index.js":
/*!***********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/eddsa/index.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar hash = __webpack_require__(/*! hash.js */ \"./node_modules/hash.js/lib/hash.js\");\n\nvar curves = __webpack_require__(/*! ../curves */ \"./node_modules/elliptic/lib/elliptic/curves.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\n\nvar KeyPair = __webpack_require__(/*! ./key */ \"./node_modules/elliptic/lib/elliptic/eddsa/key.js\");\n\nvar Signature = __webpack_require__(/*! ./signature */ \"./node_modules/elliptic/lib/elliptic/eddsa/signature.js\");\n\nfunction EDDSA(curve) {\n  assert(curve === 'ed25519', 'only tested with ed25519 so far');\n  if (!(this instanceof EDDSA)) return new EDDSA(curve);\n  curve = curves[curve].curve;\n  this.curve = curve;\n  this.g = curve.g;\n  this.g.precompute(curve.n.bitLength() + 1);\n  this.pointClass = curve.point().constructor;\n  this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n  this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\n\nEDDSA.prototype.sign = function sign(message, secret) {\n  message = parseBytes(message);\n  var key = this.keyFromSecret(secret);\n  var r = this.hashInt(key.messagePrefix(), message);\n  var R = this.g.mul(r);\n  var Rencoded = this.encodePoint(R);\n  var s_ = this.hashInt(Rencoded, key.pubBytes(), message).mul(key.priv());\n  var S = r.add(s_).umod(this.curve.n);\n  return this.makeSignature({\n    R: R,\n    S: S,\n    Rencoded: Rencoded\n  });\n};\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\n\n\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n  message = parseBytes(message);\n  sig = this.makeSignature(sig);\n  var key = this.keyFromPublic(pub);\n  var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n  var SG = this.g.mul(sig.S());\n  var RplusAh = sig.R().add(key.pub().mul(h));\n  return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n  var hash = this.hash();\n\n  for (var i = 0; i < arguments.length; i++) hash.update(arguments[i]);\n\n  return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n  return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n  return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n  if (sig instanceof Signature) return sig;\n  return new Signature(this, sig);\n};\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\n\n\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n  var enc = point.getY().toArray('le', this.encodingLength);\n  enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n  return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n  bytes = utils.parseBytes(bytes);\n  var lastIx = bytes.length - 1;\n  var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n  var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n  var y = utils.intFromLE(normed);\n  return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n  return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n  return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n  return val instanceof this.pointClass;\n};\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/eddsa/index.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/eddsa/key.js":
/*!*********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/eddsa/key.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array<Byte>} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array<Byte>} [params.pub] - public key point encoded as bytes\n*\n*/\n\nfunction KeyPair(eddsa, params) {\n  this.eddsa = eddsa;\n  this._secret = parseBytes(params.secret);\n  if (eddsa.isPoint(params.pub)) this._pub = params.pub;else this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n  if (pub instanceof KeyPair) return pub;\n  return new KeyPair(eddsa, {\n    pub: pub\n  });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n  if (secret instanceof KeyPair) return secret;\n  return new KeyPair(eddsa, {\n    secret: secret\n  });\n};\n\nKeyPair.prototype.secret = function secret() {\n  return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n  return this.eddsa.encodePoint(this.pub());\n});\ncachedProperty(KeyPair, 'pub', function pub() {\n  if (this._pubBytes) return this.eddsa.decodePoint(this._pubBytes);\n  return this.eddsa.g.mul(this.priv());\n});\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n  var eddsa = this.eddsa;\n  var hash = this.hash();\n  var lastIx = eddsa.encodingLength - 1;\n  var a = hash.slice(0, eddsa.encodingLength);\n  a[0] &= 248;\n  a[lastIx] &= 127;\n  a[lastIx] |= 64;\n  return a;\n});\ncachedProperty(KeyPair, 'priv', function priv() {\n  return this.eddsa.decodeInt(this.privBytes());\n});\ncachedProperty(KeyPair, 'hash', function hash() {\n  return this.eddsa.hash().update(this.secret()).digest();\n});\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n  return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n  assert(this._secret, 'KeyPair can only verify');\n  return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n  return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n  assert(this._secret, 'KeyPair is public only');\n  return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n  return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/eddsa/key.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/eddsa/signature.js":
/*!***************************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/eddsa/signature.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array<Bytes>|Object} sig -\n* @param {Array<Bytes>|Point} [sig.R] - R point as Point or bytes\n* @param {Array<Bytes>|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array<Bytes>} [sig.Rencoded] - R point encoded\n* @param {Array<Bytes>} [sig.Sencoded] - S scalar encoded\n*/\n\nfunction Signature(eddsa, sig) {\n  this.eddsa = eddsa;\n  if (typeof sig !== 'object') sig = parseBytes(sig);\n\n  if (Array.isArray(sig)) {\n    sig = {\n      R: sig.slice(0, eddsa.encodingLength),\n      S: sig.slice(eddsa.encodingLength)\n    };\n  }\n\n  assert(sig.R && sig.S, 'Signature without R or S');\n  if (eddsa.isPoint(sig.R)) this._R = sig.R;\n  if (sig.S instanceof BN) this._S = sig.S;\n  this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n  this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n  return this.eddsa.decodeInt(this.Sencoded());\n});\ncachedProperty(Signature, 'R', function R() {\n  return this.eddsa.decodePoint(this.Rencoded());\n});\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n  return this.eddsa.encodePoint(this.R());\n});\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n  return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n  return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n  return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/eddsa/signature.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js":
/*!*********************************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = {\n  doubles: {\n    step: 4,\n    points: [['e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a', 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'], ['8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508', '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'], ['175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739', 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'], ['363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640', '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'], ['8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c', '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'], ['723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda', '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'], ['eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa', '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'], ['100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0', 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'], ['e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d', '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'], ['feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d', 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'], ['da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1', '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'], ['53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0', '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'], ['8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047', '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'], ['385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862', '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'], ['6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7', '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'], ['3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd', '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'], ['85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83', '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'], ['948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a', '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'], ['6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8', 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'], ['e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d', '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'], ['e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725', '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'], ['213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754', '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'], ['4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c', '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'], ['fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6', '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'], ['76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39', 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'], ['c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891', '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'], ['d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b', 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'], ['b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03', '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'], ['e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d', 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'], ['a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070', '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'], ['90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4', 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'], ['8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da', '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'], ['e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11', '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'], ['8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e', 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'], ['e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41', '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'], ['b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef', '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'], ['d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8', 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'], ['324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d', '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'], ['4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96', '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'], ['9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd', 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'], ['6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5', '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'], ['a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266', '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'], ['7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71', '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'], ['928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac', 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'], ['85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751', '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'], ['ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e', '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'], ['827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241', 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'], ['eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3', 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'], ['e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f', '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'], ['1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19', 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'], ['146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be', 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'], ['fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9', '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'], ['da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2', '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'], ['a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13', '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'], ['174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c', 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'], ['959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba', '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'], ['d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151', 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'], ['64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073', 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'], ['8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458', '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'], ['13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b', '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'], ['bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366', 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'], ['8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa', '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'], ['8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0', '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'], ['dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787', '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'], ['f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e', 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82']]\n  },\n  naf: {\n    wnd: 7,\n    points: [['f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9', '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'], ['2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4', 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'], ['5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc', '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'], ['acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe', 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'], ['774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb', 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'], ['f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8', 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'], ['d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e', '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'], ['defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34', '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'], ['2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c', '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'], ['352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5', '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'], ['2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f', '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'], ['9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714', '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'], ['daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729', 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'], ['c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db', '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'], ['6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4', 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'], ['1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5', 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'], ['605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479', '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'], ['62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d', '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'], ['80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f', '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'], ['7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb', 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'], ['d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9', 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'], ['49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963', '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'], ['77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74', '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'], ['f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530', 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'], ['463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b', '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'], ['f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247', 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'], ['caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1', 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'], ['2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120', '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'], ['7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435', '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'], ['754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18', '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'], ['e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8', '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'], ['186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb', '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'], ['df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f', '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'], ['5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143', 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'], ['290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba', 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'], ['af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45', 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'], ['766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a', '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'], ['59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e', 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'], ['f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8', 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'], ['7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c', '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'], ['948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519', 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'], ['7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab', '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'], ['3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca', 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'], ['d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf', '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'], ['1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610', '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'], ['733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4', 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'], ['15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c', 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'], ['a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940', 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'], ['e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980', 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'], ['311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3', '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'], ['34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf', '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'], ['f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63', '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'], ['d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448', 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'], ['32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf', '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'], ['7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5', '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'], ['ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6', '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'], ['16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5', '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'], ['eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99', 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'], ['78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51', 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'], ['494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5', '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'], ['a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5', '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'], ['c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997', '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'], ['841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881', '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'], ['5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5', '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'], ['36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66', 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'], ['336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726', 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'], ['8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede', '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'], ['1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94', '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'], ['85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31', '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'], ['29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51', 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'], ['a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252', 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'], ['4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5', 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'], ['d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b', '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'], ['ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4', '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'], ['af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f', '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'], ['e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889', '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'], ['591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246', 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'], ['11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984', '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'], ['3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a', 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'], ['cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030', 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'], ['c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197', '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'], ['c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593', 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'], ['a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef', '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'], ['347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38', '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'], ['da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a', '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'], ['c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111', '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'], ['4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502', '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'], ['3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea', 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'], ['cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26', '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'], ['b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986', '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'], ['d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e', '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'], ['48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4', '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'], ['dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda', 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'], ['6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859', 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'], ['e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f', 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'], ['eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c', '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'], ['13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942', 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'], ['ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a', '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'], ['b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80', '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'], ['ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d', '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'], ['8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1', 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'], ['52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63', 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'], ['e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352', '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'], ['7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193', 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'], ['5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00', '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'], ['32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58', 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'], ['e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7', 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'], ['8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8', 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'], ['4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e', '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'], ['3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d', 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'], ['674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b', '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'], ['d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f', 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'], ['30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6', '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'], ['be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297', '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'], ['93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a', '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'], ['b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c', 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'], ['d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52', '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'], ['d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb', 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'], ['463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065', 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'], ['7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917', '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'], ['74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9', 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'], ['30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3', '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'], ['9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57', '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'], ['176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66', 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'], ['75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8', '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'], ['809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721', '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'], ['1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180', '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9']]\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/utils.js":
/*!*****************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/utils.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = exports;\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar minAssert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar minUtils = __webpack_require__(/*! minimalistic-crypto-utils */ \"./node_modules/minimalistic-crypto-utils/lib/utils.js\");\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode; // Represent num in a w-NAF form\n\nfunction getNAF(num, w, bits) {\n  var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n  naf.fill(0);\n  var ws = 1 << w + 1;\n  var k = num.clone();\n\n  for (var i = 0; i < naf.length; i++) {\n    var z;\n    var mod = k.andln(ws - 1);\n\n    if (k.isOdd()) {\n      if (mod > (ws >> 1) - 1) z = (ws >> 1) - mod;else z = mod;\n      k.isubn(z);\n    } else {\n      z = 0;\n    }\n\n    naf[i] = z;\n    k.iushrn(1);\n  }\n\n  return naf;\n}\n\nutils.getNAF = getNAF; // Represent k1, k2 in a Joint Sparse Form\n\nfunction getJSF(k1, k2) {\n  var jsf = [[], []];\n  k1 = k1.clone();\n  k2 = k2.clone();\n  var d1 = 0;\n  var d2 = 0;\n  var m8;\n\n  while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n    // First phase\n    var m14 = k1.andln(3) + d1 & 3;\n    var m24 = k2.andln(3) + d2 & 3;\n    if (m14 === 3) m14 = -1;\n    if (m24 === 3) m24 = -1;\n    var u1;\n\n    if ((m14 & 1) === 0) {\n      u1 = 0;\n    } else {\n      m8 = k1.andln(7) + d1 & 7;\n      if ((m8 === 3 || m8 === 5) && m24 === 2) u1 = -m14;else u1 = m14;\n    }\n\n    jsf[0].push(u1);\n    var u2;\n\n    if ((m24 & 1) === 0) {\n      u2 = 0;\n    } else {\n      m8 = k2.andln(7) + d2 & 7;\n      if ((m8 === 3 || m8 === 5) && m14 === 2) u2 = -m24;else u2 = m24;\n    }\n\n    jsf[1].push(u2); // Second phase\n\n    if (2 * d1 === u1 + 1) d1 = 1 - d1;\n    if (2 * d2 === u2 + 1) d2 = 1 - d2;\n    k1.iushrn(1);\n    k2.iushrn(1);\n  }\n\n  return jsf;\n}\n\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n  var key = '_' + name;\n\n  obj.prototype[name] = function cachedProperty() {\n    return this[key] !== undefined ? this[key] : this[key] = computer.call(this);\n  };\n}\n\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n  return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') : bytes;\n}\n\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n  return new BN(bytes, 'hex', 'le');\n}\n\nutils.intFromLE = intFromLE;\n\n//# sourceURL=webpack:///./node_modules/elliptic/lib/elliptic/utils.js?");

/***/ }),

/***/ "./node_modules/elliptic/node_modules/bn.js/lib/bn.js":
/*!************************************************************!*\
  !*** ./node_modules/elliptic/node_modules/bn.js/lib/bn.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n  'use strict'; // Utils\n\n  function assert(val, msg) {\n    if (!val) throw new Error(msg || 'Assertion failed');\n  } // Could use `inherits` module, but don't want to move from single file\n  // architecture yet.\n\n\n  function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor;\n\n    var TempCtor = function () {};\n\n    TempCtor.prototype = superCtor.prototype;\n    ctor.prototype = new TempCtor();\n    ctor.prototype.constructor = ctor;\n  } // BN\n\n\n  function BN(number, base, endian) {\n    if (BN.isBN(number)) {\n      return number;\n    }\n\n    this.negative = 0;\n    this.words = null;\n    this.length = 0; // Reduction context\n\n    this.red = null;\n\n    if (number !== null) {\n      if (base === 'le' || base === 'be') {\n        endian = base;\n        base = 10;\n      }\n\n      this._init(number || 0, base || 10, endian || 'be');\n    }\n  }\n\n  if (typeof module === 'object') {\n    module.exports = BN;\n  } else {\n    exports.BN = BN;\n  }\n\n  BN.BN = BN;\n  BN.wordSize = 26;\n  var Buffer;\n\n  try {\n    if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n      Buffer = window.Buffer;\n    } else {\n      Buffer = __webpack_require__(/*! buffer */ 11).Buffer;\n    }\n  } catch (e) {}\n\n  BN.isBN = function isBN(num) {\n    if (num instanceof BN) {\n      return true;\n    }\n\n    return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n  };\n\n  BN.max = function max(left, right) {\n    if (left.cmp(right) > 0) return left;\n    return right;\n  };\n\n  BN.min = function min(left, right) {\n    if (left.cmp(right) < 0) return left;\n    return right;\n  };\n\n  BN.prototype._init = function init(number, base, endian) {\n    if (typeof number === 'number') {\n      return this._initNumber(number, base, endian);\n    }\n\n    if (typeof number === 'object') {\n      return this._initArray(number, base, endian);\n    }\n\n    if (base === 'hex') {\n      base = 16;\n    }\n\n    assert(base === (base | 0) && base >= 2 && base <= 36);\n    number = number.toString().replace(/\\s+/g, '');\n    var start = 0;\n\n    if (number[0] === '-') {\n      start++;\n      this.negative = 1;\n    }\n\n    if (start < number.length) {\n      if (base === 16) {\n        this._parseHex(number, start, endian);\n      } else {\n        this._parseBase(number, base, start);\n\n        if (endian === 'le') {\n          this._initArray(this.toArray(), base, endian);\n        }\n      }\n    }\n  };\n\n  BN.prototype._initNumber = function _initNumber(number, base, endian) {\n    if (number < 0) {\n      this.negative = 1;\n      number = -number;\n    }\n\n    if (number < 0x4000000) {\n      this.words = [number & 0x3ffffff];\n      this.length = 1;\n    } else if (number < 0x10000000000000) {\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n      this.length = 2;\n    } else {\n      assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n      this.length = 3;\n    }\n\n    if (endian !== 'le') return; // Reverse the bytes\n\n    this._initArray(this.toArray(), base, endian);\n  };\n\n  BN.prototype._initArray = function _initArray(number, base, endian) {\n    // Perhaps a Uint8Array\n    assert(typeof number.length === 'number');\n\n    if (number.length <= 0) {\n      this.words = [0];\n      this.length = 1;\n      return this;\n    }\n\n    this.length = Math.ceil(number.length / 3);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    }\n\n    var j, w;\n    var off = 0;\n\n    if (endian === 'be') {\n      for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n        w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    } else if (endian === 'le') {\n      for (i = 0, j = 0; i < number.length; i += 3) {\n        w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    }\n\n    return this.strip();\n  };\n\n  function parseHex4Bits(string, index) {\n    var c = string.charCodeAt(index); // 'A' - 'F'\n\n    if (c >= 65 && c <= 70) {\n      return c - 55; // 'a' - 'f'\n    } else if (c >= 97 && c <= 102) {\n      return c - 87; // '0' - '9'\n    } else {\n      return c - 48 & 0xf;\n    }\n  }\n\n  function parseHexByte(string, lowerBound, index) {\n    var r = parseHex4Bits(string, index);\n\n    if (index - 1 >= lowerBound) {\n      r |= parseHex4Bits(string, index - 1) << 4;\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseHex = function _parseHex(number, start, endian) {\n    // Create possibly bigger array to ensure that it fits the number\n    this.length = Math.ceil((number.length - start) / 6);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    } // 24-bits chunks\n\n\n    var off = 0;\n    var j = 0;\n    var w;\n\n    if (endian === 'be') {\n      for (i = number.length - 1; i >= start; i -= 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    } else {\n      var parseLength = number.length - start;\n\n      for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    }\n\n    this.strip();\n  };\n\n  function parseBase(str, start, end, mul) {\n    var r = 0;\n    var len = Math.min(str.length, end);\n\n    for (var i = start; i < len; i++) {\n      var c = str.charCodeAt(i) - 48;\n      r *= mul; // 'a'\n\n      if (c >= 49) {\n        r += c - 49 + 0xa; // 'A'\n      } else if (c >= 17) {\n        r += c - 17 + 0xa; // '0' - '9'\n      } else {\n        r += c;\n      }\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseBase = function _parseBase(number, base, start) {\n    // Initialize as zero\n    this.words = [0];\n    this.length = 1; // Find length of limb in base\n\n    for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n      limbLen++;\n    }\n\n    limbLen--;\n    limbPow = limbPow / base | 0;\n    var total = number.length - start;\n    var mod = total % limbLen;\n    var end = Math.min(total, total - mod) + start;\n    var word = 0;\n\n    for (var i = start; i < end; i += limbLen) {\n      word = parseBase(number, i, i + limbLen, base);\n      this.imuln(limbPow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    if (mod !== 0) {\n      var pow = 1;\n      word = parseBase(number, i, number.length, base);\n\n      for (i = 0; i < mod; i++) {\n        pow *= base;\n      }\n\n      this.imuln(pow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    this.strip();\n  };\n\n  BN.prototype.copy = function copy(dest) {\n    dest.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      dest.words[i] = this.words[i];\n    }\n\n    dest.length = this.length;\n    dest.negative = this.negative;\n    dest.red = this.red;\n  };\n\n  BN.prototype.clone = function clone() {\n    var r = new BN(null);\n    this.copy(r);\n    return r;\n  };\n\n  BN.prototype._expand = function _expand(size) {\n    while (this.length < size) {\n      this.words[this.length++] = 0;\n    }\n\n    return this;\n  }; // Remove leading `0` from `this`\n\n\n  BN.prototype.strip = function strip() {\n    while (this.length > 1 && this.words[this.length - 1] === 0) {\n      this.length--;\n    }\n\n    return this._normSign();\n  };\n\n  BN.prototype._normSign = function _normSign() {\n    // -0 = 0\n    if (this.length === 1 && this.words[0] === 0) {\n      this.negative = 0;\n    }\n\n    return this;\n  };\n\n  BN.prototype.inspect = function inspect() {\n    return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  };\n  /*\n   var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n   var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n   */\n\n\n  var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n  var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n  var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n  BN.prototype.toString = function toString(base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n    var out;\n\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = ((w << off | carry) & 0xffffff).toString(16);\n        carry = w >>> 24 - off & 0xffffff;\n\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n\n        off += 2;\n\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n      }\n\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n\n      while (!c.isZero()) {\n        var r = c.modn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber() {\n    var ret = this.words[0];\n\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + this.words[1] * 0x4000000;\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n\n    return this.negative !== 0 ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON() {\n    return this.toString(16);\n  };\n\n  BN.prototype.toBuffer = function toBuffer(endian, length) {\n    assert(typeof Buffer !== 'undefined');\n    return this.toArrayLike(Buffer, endian, length);\n  };\n\n  BN.prototype.toArray = function toArray(endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n    this.strip();\n    var littleEndian = endian === 'le';\n    var res = new ArrayType(reqLength);\n    var b, i;\n    var q = this.clone();\n\n    if (!littleEndian) {\n      // Assume big-endian\n      for (i = 0; i < reqLength - byteLength; i++) {\n        res[i] = 0;\n      }\n\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n        res[reqLength - i - 1] = b;\n      }\n    } else {\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n        res[i] = b;\n      }\n\n      for (; i < reqLength; i++) {\n        res[i] = 0;\n      }\n    }\n\n    return res;\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits(w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits(w) {\n      var t = w;\n      var r = 0;\n\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits(w) {\n    // Short-cut\n    if (w === 0) return 26;\n    var t = w;\n    var r = 0;\n\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n\n    return r;\n  }; // Return number of used bits in a BN\n\n\n  BN.prototype.bitLength = function bitLength() {\n    var w = this.words[this.length - 1];\n\n    var hi = this._countBits(w);\n\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray(num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = bit / 26 | 0;\n      var wbit = bit % 26;\n      w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n    }\n\n    return w;\n  } // Number of trailing zero bits\n\n\n  BN.prototype.zeroBits = function zeroBits() {\n    if (this.isZero()) return 0;\n    var r = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n\n      r += b;\n      if (b !== 26) break;\n    }\n\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength() {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos(width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos(width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg() {\n    return this.negative !== 0;\n  }; // Return negative clone of `this`\n\n\n  BN.prototype.neg = function neg() {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg() {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  }; // Or `num` with `this` in-place\n\n\n  BN.prototype.iuor = function iuor(num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ior = function ior(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  }; // Or `num` with `this`\n\n\n  BN.prototype.or = function or(num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor(num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  }; // And `num` with `this` in-place\n\n\n  BN.prototype.iuand = function iuand(num) {\n    // b = min-length(num, this)\n    var b;\n\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n    return this.strip();\n  };\n\n  BN.prototype.iand = function iand(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  }; // And `num` with `this`\n\n\n  BN.prototype.and = function and(num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand(num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  }; // Xor `num` with `this` in-place\n\n\n  BN.prototype.iuxor = function iuxor(num) {\n    // a.length > b.length\n    var a;\n    var b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n    return this.strip();\n  };\n\n  BN.prototype.ixor = function ixor(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  }; // Xor `num` with `this`\n\n\n  BN.prototype.xor = function xor(num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor(num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  }; // Not ``this`` with ``width`` bitwidth\n\n\n  BN.prototype.inotn = function inotn(width) {\n    assert(typeof width === 'number' && width >= 0);\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    } // Handle complete words\n\n\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    } // Handle the residue\n\n\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n    } // And remove leading zeroes\n\n\n    return this.strip();\n  };\n\n  BN.prototype.notn = function notn(width) {\n    return this.clone().inotn(width);\n  }; // Set `bit` of `this`\n\n\n  BN.prototype.setn = function setn(bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var off = bit / 26 | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | 1 << wbit;\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this.strip();\n  }; // Add `num` to `this` in-place\n\n\n  BN.prototype.iadd = function iadd(num) {\n    var r; // negative + positive\n\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign(); // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    } // a.length > b.length\n\n\n    var a, b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++; // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  }; // Add `num` to `this`\n\n\n  BN.prototype.add = function add(num) {\n    var res;\n\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n    return num.clone().iadd(this);\n  }; // Subtract `num` from `this` in-place\n\n\n  BN.prototype.isub = function isub(num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign(); // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    } // At this point both numbers are positive\n\n\n    var cmp = this.cmp(num); // Optimization - zeroify\n\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    } // a > b\n\n\n    var a, b;\n\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    } // Copy rest of the words\n\n\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this.strip();\n  }; // Subtract `num` from `this`\n\n\n  BN.prototype.sub = function sub(num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = self.length + num.length | 0;\n    out.length = len;\n    len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n    var lo = r & 0x3ffffff;\n    var carry = r / 0x4000000 | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += r / 0x4000000 | 0;\n        rword = r & 0x3ffffff;\n      }\n\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  } // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n\n\n  var comb10MulTo = function comb10MulTo(self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = mid + Math.imul(ah0, bl0) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = mid + Math.imul(ah1, bl0) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = lo + Math.imul(al0, bl1) | 0;\n    mid = mid + Math.imul(al0, bh1) | 0;\n    mid = mid + Math.imul(ah0, bl1) | 0;\n    hi = hi + Math.imul(ah0, bh1) | 0;\n    var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = mid + Math.imul(ah2, bl0) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = lo + Math.imul(al1, bl1) | 0;\n    mid = mid + Math.imul(al1, bh1) | 0;\n    mid = mid + Math.imul(ah1, bl1) | 0;\n    hi = hi + Math.imul(ah1, bh1) | 0;\n    lo = lo + Math.imul(al0, bl2) | 0;\n    mid = mid + Math.imul(al0, bh2) | 0;\n    mid = mid + Math.imul(ah0, bl2) | 0;\n    hi = hi + Math.imul(ah0, bh2) | 0;\n    var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = mid + Math.imul(ah3, bl0) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = lo + Math.imul(al2, bl1) | 0;\n    mid = mid + Math.imul(al2, bh1) | 0;\n    mid = mid + Math.imul(ah2, bl1) | 0;\n    hi = hi + Math.imul(ah2, bh1) | 0;\n    lo = lo + Math.imul(al1, bl2) | 0;\n    mid = mid + Math.imul(al1, bh2) | 0;\n    mid = mid + Math.imul(ah1, bl2) | 0;\n    hi = hi + Math.imul(ah1, bh2) | 0;\n    lo = lo + Math.imul(al0, bl3) | 0;\n    mid = mid + Math.imul(al0, bh3) | 0;\n    mid = mid + Math.imul(ah0, bl3) | 0;\n    hi = hi + Math.imul(ah0, bh3) | 0;\n    var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = mid + Math.imul(ah4, bl0) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = lo + Math.imul(al3, bl1) | 0;\n    mid = mid + Math.imul(al3, bh1) | 0;\n    mid = mid + Math.imul(ah3, bl1) | 0;\n    hi = hi + Math.imul(ah3, bh1) | 0;\n    lo = lo + Math.imul(al2, bl2) | 0;\n    mid = mid + Math.imul(al2, bh2) | 0;\n    mid = mid + Math.imul(ah2, bl2) | 0;\n    hi = hi + Math.imul(ah2, bh2) | 0;\n    lo = lo + Math.imul(al1, bl3) | 0;\n    mid = mid + Math.imul(al1, bh3) | 0;\n    mid = mid + Math.imul(ah1, bl3) | 0;\n    hi = hi + Math.imul(ah1, bh3) | 0;\n    lo = lo + Math.imul(al0, bl4) | 0;\n    mid = mid + Math.imul(al0, bh4) | 0;\n    mid = mid + Math.imul(ah0, bl4) | 0;\n    hi = hi + Math.imul(ah0, bh4) | 0;\n    var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = mid + Math.imul(ah5, bl0) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = lo + Math.imul(al4, bl1) | 0;\n    mid = mid + Math.imul(al4, bh1) | 0;\n    mid = mid + Math.imul(ah4, bl1) | 0;\n    hi = hi + Math.imul(ah4, bh1) | 0;\n    lo = lo + Math.imul(al3, bl2) | 0;\n    mid = mid + Math.imul(al3, bh2) | 0;\n    mid = mid + Math.imul(ah3, bl2) | 0;\n    hi = hi + Math.imul(ah3, bh2) | 0;\n    lo = lo + Math.imul(al2, bl3) | 0;\n    mid = mid + Math.imul(al2, bh3) | 0;\n    mid = mid + Math.imul(ah2, bl3) | 0;\n    hi = hi + Math.imul(ah2, bh3) | 0;\n    lo = lo + Math.imul(al1, bl4) | 0;\n    mid = mid + Math.imul(al1, bh4) | 0;\n    mid = mid + Math.imul(ah1, bl4) | 0;\n    hi = hi + Math.imul(ah1, bh4) | 0;\n    lo = lo + Math.imul(al0, bl5) | 0;\n    mid = mid + Math.imul(al0, bh5) | 0;\n    mid = mid + Math.imul(ah0, bl5) | 0;\n    hi = hi + Math.imul(ah0, bh5) | 0;\n    var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = mid + Math.imul(ah6, bl0) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = lo + Math.imul(al5, bl1) | 0;\n    mid = mid + Math.imul(al5, bh1) | 0;\n    mid = mid + Math.imul(ah5, bl1) | 0;\n    hi = hi + Math.imul(ah5, bh1) | 0;\n    lo = lo + Math.imul(al4, bl2) | 0;\n    mid = mid + Math.imul(al4, bh2) | 0;\n    mid = mid + Math.imul(ah4, bl2) | 0;\n    hi = hi + Math.imul(ah4, bh2) | 0;\n    lo = lo + Math.imul(al3, bl3) | 0;\n    mid = mid + Math.imul(al3, bh3) | 0;\n    mid = mid + Math.imul(ah3, bl3) | 0;\n    hi = hi + Math.imul(ah3, bh3) | 0;\n    lo = lo + Math.imul(al2, bl4) | 0;\n    mid = mid + Math.imul(al2, bh4) | 0;\n    mid = mid + Math.imul(ah2, bl4) | 0;\n    hi = hi + Math.imul(ah2, bh4) | 0;\n    lo = lo + Math.imul(al1, bl5) | 0;\n    mid = mid + Math.imul(al1, bh5) | 0;\n    mid = mid + Math.imul(ah1, bl5) | 0;\n    hi = hi + Math.imul(ah1, bh5) | 0;\n    lo = lo + Math.imul(al0, bl6) | 0;\n    mid = mid + Math.imul(al0, bh6) | 0;\n    mid = mid + Math.imul(ah0, bl6) | 0;\n    hi = hi + Math.imul(ah0, bh6) | 0;\n    var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = mid + Math.imul(ah7, bl0) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = lo + Math.imul(al6, bl1) | 0;\n    mid = mid + Math.imul(al6, bh1) | 0;\n    mid = mid + Math.imul(ah6, bl1) | 0;\n    hi = hi + Math.imul(ah6, bh1) | 0;\n    lo = lo + Math.imul(al5, bl2) | 0;\n    mid = mid + Math.imul(al5, bh2) | 0;\n    mid = mid + Math.imul(ah5, bl2) | 0;\n    hi = hi + Math.imul(ah5, bh2) | 0;\n    lo = lo + Math.imul(al4, bl3) | 0;\n    mid = mid + Math.imul(al4, bh3) | 0;\n    mid = mid + Math.imul(ah4, bl3) | 0;\n    hi = hi + Math.imul(ah4, bh3) | 0;\n    lo = lo + Math.imul(al3, bl4) | 0;\n    mid = mid + Math.imul(al3, bh4) | 0;\n    mid = mid + Math.imul(ah3, bl4) | 0;\n    hi = hi + Math.imul(ah3, bh4) | 0;\n    lo = lo + Math.imul(al2, bl5) | 0;\n    mid = mid + Math.imul(al2, bh5) | 0;\n    mid = mid + Math.imul(ah2, bl5) | 0;\n    hi = hi + Math.imul(ah2, bh5) | 0;\n    lo = lo + Math.imul(al1, bl6) | 0;\n    mid = mid + Math.imul(al1, bh6) | 0;\n    mid = mid + Math.imul(ah1, bl6) | 0;\n    hi = hi + Math.imul(ah1, bh6) | 0;\n    lo = lo + Math.imul(al0, bl7) | 0;\n    mid = mid + Math.imul(al0, bh7) | 0;\n    mid = mid + Math.imul(ah0, bl7) | 0;\n    hi = hi + Math.imul(ah0, bh7) | 0;\n    var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = mid + Math.imul(ah8, bl0) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = lo + Math.imul(al7, bl1) | 0;\n    mid = mid + Math.imul(al7, bh1) | 0;\n    mid = mid + Math.imul(ah7, bl1) | 0;\n    hi = hi + Math.imul(ah7, bh1) | 0;\n    lo = lo + Math.imul(al6, bl2) | 0;\n    mid = mid + Math.imul(al6, bh2) | 0;\n    mid = mid + Math.imul(ah6, bl2) | 0;\n    hi = hi + Math.imul(ah6, bh2) | 0;\n    lo = lo + Math.imul(al5, bl3) | 0;\n    mid = mid + Math.imul(al5, bh3) | 0;\n    mid = mid + Math.imul(ah5, bl3) | 0;\n    hi = hi + Math.imul(ah5, bh3) | 0;\n    lo = lo + Math.imul(al4, bl4) | 0;\n    mid = mid + Math.imul(al4, bh4) | 0;\n    mid = mid + Math.imul(ah4, bl4) | 0;\n    hi = hi + Math.imul(ah4, bh4) | 0;\n    lo = lo + Math.imul(al3, bl5) | 0;\n    mid = mid + Math.imul(al3, bh5) | 0;\n    mid = mid + Math.imul(ah3, bl5) | 0;\n    hi = hi + Math.imul(ah3, bh5) | 0;\n    lo = lo + Math.imul(al2, bl6) | 0;\n    mid = mid + Math.imul(al2, bh6) | 0;\n    mid = mid + Math.imul(ah2, bl6) | 0;\n    hi = hi + Math.imul(ah2, bh6) | 0;\n    lo = lo + Math.imul(al1, bl7) | 0;\n    mid = mid + Math.imul(al1, bh7) | 0;\n    mid = mid + Math.imul(ah1, bl7) | 0;\n    hi = hi + Math.imul(ah1, bh7) | 0;\n    lo = lo + Math.imul(al0, bl8) | 0;\n    mid = mid + Math.imul(al0, bh8) | 0;\n    mid = mid + Math.imul(ah0, bl8) | 0;\n    hi = hi + Math.imul(ah0, bh8) | 0;\n    var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = mid + Math.imul(ah9, bl0) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = lo + Math.imul(al8, bl1) | 0;\n    mid = mid + Math.imul(al8, bh1) | 0;\n    mid = mid + Math.imul(ah8, bl1) | 0;\n    hi = hi + Math.imul(ah8, bh1) | 0;\n    lo = lo + Math.imul(al7, bl2) | 0;\n    mid = mid + Math.imul(al7, bh2) | 0;\n    mid = mid + Math.imul(ah7, bl2) | 0;\n    hi = hi + Math.imul(ah7, bh2) | 0;\n    lo = lo + Math.imul(al6, bl3) | 0;\n    mid = mid + Math.imul(al6, bh3) | 0;\n    mid = mid + Math.imul(ah6, bl3) | 0;\n    hi = hi + Math.imul(ah6, bh3) | 0;\n    lo = lo + Math.imul(al5, bl4) | 0;\n    mid = mid + Math.imul(al5, bh4) | 0;\n    mid = mid + Math.imul(ah5, bl4) | 0;\n    hi = hi + Math.imul(ah5, bh4) | 0;\n    lo = lo + Math.imul(al4, bl5) | 0;\n    mid = mid + Math.imul(al4, bh5) | 0;\n    mid = mid + Math.imul(ah4, bl5) | 0;\n    hi = hi + Math.imul(ah4, bh5) | 0;\n    lo = lo + Math.imul(al3, bl6) | 0;\n    mid = mid + Math.imul(al3, bh6) | 0;\n    mid = mid + Math.imul(ah3, bl6) | 0;\n    hi = hi + Math.imul(ah3, bh6) | 0;\n    lo = lo + Math.imul(al2, bl7) | 0;\n    mid = mid + Math.imul(al2, bh7) | 0;\n    mid = mid + Math.imul(ah2, bl7) | 0;\n    hi = hi + Math.imul(ah2, bh7) | 0;\n    lo = lo + Math.imul(al1, bl8) | 0;\n    mid = mid + Math.imul(al1, bh8) | 0;\n    mid = mid + Math.imul(ah1, bl8) | 0;\n    hi = hi + Math.imul(ah1, bh8) | 0;\n    lo = lo + Math.imul(al0, bl9) | 0;\n    mid = mid + Math.imul(al0, bh9) | 0;\n    mid = mid + Math.imul(ah0, bl9) | 0;\n    hi = hi + Math.imul(ah0, bh9) | 0;\n    var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = mid + Math.imul(ah9, bl1) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = lo + Math.imul(al8, bl2) | 0;\n    mid = mid + Math.imul(al8, bh2) | 0;\n    mid = mid + Math.imul(ah8, bl2) | 0;\n    hi = hi + Math.imul(ah8, bh2) | 0;\n    lo = lo + Math.imul(al7, bl3) | 0;\n    mid = mid + Math.imul(al7, bh3) | 0;\n    mid = mid + Math.imul(ah7, bl3) | 0;\n    hi = hi + Math.imul(ah7, bh3) | 0;\n    lo = lo + Math.imul(al6, bl4) | 0;\n    mid = mid + Math.imul(al6, bh4) | 0;\n    mid = mid + Math.imul(ah6, bl4) | 0;\n    hi = hi + Math.imul(ah6, bh4) | 0;\n    lo = lo + Math.imul(al5, bl5) | 0;\n    mid = mid + Math.imul(al5, bh5) | 0;\n    mid = mid + Math.imul(ah5, bl5) | 0;\n    hi = hi + Math.imul(ah5, bh5) | 0;\n    lo = lo + Math.imul(al4, bl6) | 0;\n    mid = mid + Math.imul(al4, bh6) | 0;\n    mid = mid + Math.imul(ah4, bl6) | 0;\n    hi = hi + Math.imul(ah4, bh6) | 0;\n    lo = lo + Math.imul(al3, bl7) | 0;\n    mid = mid + Math.imul(al3, bh7) | 0;\n    mid = mid + Math.imul(ah3, bl7) | 0;\n    hi = hi + Math.imul(ah3, bh7) | 0;\n    lo = lo + Math.imul(al2, bl8) | 0;\n    mid = mid + Math.imul(al2, bh8) | 0;\n    mid = mid + Math.imul(ah2, bl8) | 0;\n    hi = hi + Math.imul(ah2, bh8) | 0;\n    lo = lo + Math.imul(al1, bl9) | 0;\n    mid = mid + Math.imul(al1, bh9) | 0;\n    mid = mid + Math.imul(ah1, bl9) | 0;\n    hi = hi + Math.imul(ah1, bh9) | 0;\n    var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = mid + Math.imul(ah9, bl2) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = lo + Math.imul(al8, bl3) | 0;\n    mid = mid + Math.imul(al8, bh3) | 0;\n    mid = mid + Math.imul(ah8, bl3) | 0;\n    hi = hi + Math.imul(ah8, bh3) | 0;\n    lo = lo + Math.imul(al7, bl4) | 0;\n    mid = mid + Math.imul(al7, bh4) | 0;\n    mid = mid + Math.imul(ah7, bl4) | 0;\n    hi = hi + Math.imul(ah7, bh4) | 0;\n    lo = lo + Math.imul(al6, bl5) | 0;\n    mid = mid + Math.imul(al6, bh5) | 0;\n    mid = mid + Math.imul(ah6, bl5) | 0;\n    hi = hi + Math.imul(ah6, bh5) | 0;\n    lo = lo + Math.imul(al5, bl6) | 0;\n    mid = mid + Math.imul(al5, bh6) | 0;\n    mid = mid + Math.imul(ah5, bl6) | 0;\n    hi = hi + Math.imul(ah5, bh6) | 0;\n    lo = lo + Math.imul(al4, bl7) | 0;\n    mid = mid + Math.imul(al4, bh7) | 0;\n    mid = mid + Math.imul(ah4, bl7) | 0;\n    hi = hi + Math.imul(ah4, bh7) | 0;\n    lo = lo + Math.imul(al3, bl8) | 0;\n    mid = mid + Math.imul(al3, bh8) | 0;\n    mid = mid + Math.imul(ah3, bl8) | 0;\n    hi = hi + Math.imul(ah3, bh8) | 0;\n    lo = lo + Math.imul(al2, bl9) | 0;\n    mid = mid + Math.imul(al2, bh9) | 0;\n    mid = mid + Math.imul(ah2, bl9) | 0;\n    hi = hi + Math.imul(ah2, bh9) | 0;\n    var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = mid + Math.imul(ah9, bl3) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = lo + Math.imul(al8, bl4) | 0;\n    mid = mid + Math.imul(al8, bh4) | 0;\n    mid = mid + Math.imul(ah8, bl4) | 0;\n    hi = hi + Math.imul(ah8, bh4) | 0;\n    lo = lo + Math.imul(al7, bl5) | 0;\n    mid = mid + Math.imul(al7, bh5) | 0;\n    mid = mid + Math.imul(ah7, bl5) | 0;\n    hi = hi + Math.imul(ah7, bh5) | 0;\n    lo = lo + Math.imul(al6, bl6) | 0;\n    mid = mid + Math.imul(al6, bh6) | 0;\n    mid = mid + Math.imul(ah6, bl6) | 0;\n    hi = hi + Math.imul(ah6, bh6) | 0;\n    lo = lo + Math.imul(al5, bl7) | 0;\n    mid = mid + Math.imul(al5, bh7) | 0;\n    mid = mid + Math.imul(ah5, bl7) | 0;\n    hi = hi + Math.imul(ah5, bh7) | 0;\n    lo = lo + Math.imul(al4, bl8) | 0;\n    mid = mid + Math.imul(al4, bh8) | 0;\n    mid = mid + Math.imul(ah4, bl8) | 0;\n    hi = hi + Math.imul(ah4, bh8) | 0;\n    lo = lo + Math.imul(al3, bl9) | 0;\n    mid = mid + Math.imul(al3, bh9) | 0;\n    mid = mid + Math.imul(ah3, bl9) | 0;\n    hi = hi + Math.imul(ah3, bh9) | 0;\n    var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = mid + Math.imul(ah9, bl4) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = lo + Math.imul(al8, bl5) | 0;\n    mid = mid + Math.imul(al8, bh5) | 0;\n    mid = mid + Math.imul(ah8, bl5) | 0;\n    hi = hi + Math.imul(ah8, bh5) | 0;\n    lo = lo + Math.imul(al7, bl6) | 0;\n    mid = mid + Math.imul(al7, bh6) | 0;\n    mid = mid + Math.imul(ah7, bl6) | 0;\n    hi = hi + Math.imul(ah7, bh6) | 0;\n    lo = lo + Math.imul(al6, bl7) | 0;\n    mid = mid + Math.imul(al6, bh7) | 0;\n    mid = mid + Math.imul(ah6, bl7) | 0;\n    hi = hi + Math.imul(ah6, bh7) | 0;\n    lo = lo + Math.imul(al5, bl8) | 0;\n    mid = mid + Math.imul(al5, bh8) | 0;\n    mid = mid + Math.imul(ah5, bl8) | 0;\n    hi = hi + Math.imul(ah5, bh8) | 0;\n    lo = lo + Math.imul(al4, bl9) | 0;\n    mid = mid + Math.imul(al4, bh9) | 0;\n    mid = mid + Math.imul(ah4, bl9) | 0;\n    hi = hi + Math.imul(ah4, bh9) | 0;\n    var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = mid + Math.imul(ah9, bl5) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = lo + Math.imul(al8, bl6) | 0;\n    mid = mid + Math.imul(al8, bh6) | 0;\n    mid = mid + Math.imul(ah8, bl6) | 0;\n    hi = hi + Math.imul(ah8, bh6) | 0;\n    lo = lo + Math.imul(al7, bl7) | 0;\n    mid = mid + Math.imul(al7, bh7) | 0;\n    mid = mid + Math.imul(ah7, bl7) | 0;\n    hi = hi + Math.imul(ah7, bh7) | 0;\n    lo = lo + Math.imul(al6, bl8) | 0;\n    mid = mid + Math.imul(al6, bh8) | 0;\n    mid = mid + Math.imul(ah6, bl8) | 0;\n    hi = hi + Math.imul(ah6, bh8) | 0;\n    lo = lo + Math.imul(al5, bl9) | 0;\n    mid = mid + Math.imul(al5, bh9) | 0;\n    mid = mid + Math.imul(ah5, bl9) | 0;\n    hi = hi + Math.imul(ah5, bh9) | 0;\n    var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = mid + Math.imul(ah9, bl6) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = lo + Math.imul(al8, bl7) | 0;\n    mid = mid + Math.imul(al8, bh7) | 0;\n    mid = mid + Math.imul(ah8, bl7) | 0;\n    hi = hi + Math.imul(ah8, bh7) | 0;\n    lo = lo + Math.imul(al7, bl8) | 0;\n    mid = mid + Math.imul(al7, bh8) | 0;\n    mid = mid + Math.imul(ah7, bl8) | 0;\n    hi = hi + Math.imul(ah7, bh8) | 0;\n    lo = lo + Math.imul(al6, bl9) | 0;\n    mid = mid + Math.imul(al6, bh9) | 0;\n    mid = mid + Math.imul(ah6, bl9) | 0;\n    hi = hi + Math.imul(ah6, bh9) | 0;\n    var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = mid + Math.imul(ah9, bl7) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = lo + Math.imul(al8, bl8) | 0;\n    mid = mid + Math.imul(al8, bh8) | 0;\n    mid = mid + Math.imul(ah8, bl8) | 0;\n    hi = hi + Math.imul(ah8, bh8) | 0;\n    lo = lo + Math.imul(al7, bl9) | 0;\n    mid = mid + Math.imul(al7, bh9) | 0;\n    mid = mid + Math.imul(ah7, bl9) | 0;\n    hi = hi + Math.imul(ah7, bh9) | 0;\n    var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = mid + Math.imul(ah9, bl8) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = lo + Math.imul(al8, bl9) | 0;\n    mid = mid + Math.imul(al8, bh9) | 0;\n    mid = mid + Math.imul(ah8, bl9) | 0;\n    hi = hi + Math.imul(ah8, bh9) | 0;\n    var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = mid + Math.imul(ah9, bl9) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n\n    return out;\n  }; // Polyfill comb\n\n\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n    var carry = 0;\n    var hncarry = 0;\n\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n        var lo = r & 0x3ffffff;\n        ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n        lo = lo + rword | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = ncarry + (lo >>> 26) | 0;\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  function jumboMulTo(self, num, out) {\n    var fftm = new FFTM();\n    return fftm.mulp(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo(num, out) {\n    var res;\n    var len = this.length + num.length;\n\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  }; // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n\n  function FFTM(x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT(N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  }; // Returns binary-reversed representation of `x`\n\n\n  FFTM.prototype.revBin = function revBin(x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n    var rb = 0;\n\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << l - i - 1;\n      x >>= 1;\n    }\n\n    return rb;\n  }; // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n\n\n  FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n          var rx = rtwdf_ * ro - itwdf_ * io;\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n          /* jshint maxdepth : false */\n\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n      t = iws[i];\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n      rws[2 * i] = carry & 0x1fff;\n      carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff;\n      carry = carry >>> 13;\n    } // Pad with zeroes\n\n\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub(N) {\n    var ph = new Array(N);\n\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp(x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n    var rmws = out.words;\n    rmws.length = N;\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out.strip();\n  }; // Multiply `this` by `num`\n\n\n  BN.prototype.mul = function mul(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  }; // Multiply employing FFT\n\n\n  BN.prototype.mulf = function mulf(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  }; // In-place Multiplication\n\n\n  BN.prototype.imul = function imul(num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000); // Carry\n\n    var carry = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.muln = function muln(num) {\n    return this.clone().imuln(num);\n  }; // `this` * `this`\n\n\n  BN.prototype.sqr = function sqr() {\n    return this.mul(this);\n  }; // `this` * `this` in-place\n\n\n  BN.prototype.isqr = function isqr() {\n    return this.imul(this.clone());\n  }; // Math.pow(`this`, `num`)\n\n\n  BN.prototype.pow = function pow(num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n    var res = this;\n\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  }; // Shift-left in-place\n\n\n  BN.prototype.iushln = function iushln(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = (this.words[i] | 0) - newCarry << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> 26 - r;\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishln = function ishln(bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  }; // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n  BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n\n    if (hint) {\n      h = (hint - hint % 26) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n    var maskedWords = extended;\n    h -= s;\n    h = Math.max(0, h); // Extended mode, copy masked part\n\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {// No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = carry << 26 - r | word >>> r;\n      carry = word & mask;\n    } // Push carried bits as a mask\n\n\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  }; // Shift-left\n\n\n  BN.prototype.shln = function shln(bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln(bits) {\n    return this.clone().iushln(bits);\n  }; // Shift-right\n\n\n  BN.prototype.shrn = function shrn(bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn(bits) {\n    return this.clone().iushrn(bits);\n  }; // Test if n bit is set\n\n\n  BN.prototype.testn = function testn(bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) return false; // Check bit and return\n\n    var w = this.words[s];\n    return !!(w & q);\n  }; // Return only lowers bits of number (in-place)\n\n\n  BN.prototype.imaskn = function imaskn(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this.strip();\n  }; // Return only lowers bits of number\n\n\n  BN.prototype.maskn = function maskn(bits) {\n    return this.clone().imaskn(bits);\n  }; // Add plain number `num` to `this`\n\n\n  BN.prototype.iaddn = function iaddn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num); // Possible sign change\n\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) < num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    } // Add without checks\n\n\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn(num) {\n    this.words[0] += num; // Carry\n\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n\n    this.length = Math.max(this.length, i + 1);\n    return this;\n  }; // Subtract plain number `num` from `this`\n\n\n  BN.prototype.isubn = function isubn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.addn = function addn(num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn(num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs() {\n    this.negative = 0;\n    return this;\n  };\n\n  BN.prototype.abs = function abs() {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - (right / 0x4000000 | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this.strip(); // Subtraction overflow\n\n    assert(carry === -1);\n    carry = 0;\n\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n\n    this.negative = 1;\n    return this.strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv(num, mode) {\n    var shift = this.length - num.length;\n    var a = this.clone();\n    var b = num; // Normalize\n\n    var bhi = b.words[b.length - 1] | 0;\n\n    var bhiBits = this._countBits(bhi);\n\n    shift = 26 - bhiBits;\n\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    } // Initialize quotient\n\n\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n    if (diff.negative === 0) {\n      a = diff;\n\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n\n      qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n\n        a._ishlnsubmul(b, 1, j);\n\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n\n    if (q) {\n      q.strip();\n    }\n\n    a.strip(); // Denormalize\n\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n\n\n  BN.prototype.divmod = function divmod(num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    } // Both numbers are positive at this point\n    // Strip both numbers to approximate shift value\n\n\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    } // Very short reduction\n\n\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  }; // Find `this` / `num`\n\n\n  BN.prototype.div = function div(num) {\n    return this.divmod(num, 'div', false).div;\n  }; // Find `this` % `num`\n\n\n  BN.prototype.mod = function mod(num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod(num) {\n    return this.divmod(num, 'mod', true).mod;\n  }; // Find Round(`this` / `num`)\n\n\n  BN.prototype.divRound = function divRound(num) {\n    var dm = this.divmod(num); // Fast case - exact division\n\n    if (dm.mod.isZero()) return dm.div;\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half); // Round down\n\n    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modn = function modn(num) {\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n    var acc = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return acc;\n  }; // In-place division by number\n\n\n  BN.prototype.idivn = function idivn(num) {\n    assert(num <= 0x3ffffff);\n    var carry = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = w / num | 0;\n      carry = w % num;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.divn = function divn(num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    } // A * x + B * y = x\n\n\n    var A = new BN(1);\n    var B = new BN(0); // C * x + D * y = y\n\n    var C = new BN(0);\n    var D = new BN(1);\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        x.iushrn(i);\n\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        y.iushrn(j);\n\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  }; // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n\n\n  BN.prototype._invmp = function _invmp(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        a.iushrn(i);\n\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        b.iushrn(j);\n\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd(num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0; // Remove common factor of two\n\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  }; // Invert number in the field F(num)\n\n\n  BN.prototype.invm = function invm(num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven() {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd() {\n    return (this.words[0] & 1) === 1;\n  }; // And first word and num\n\n\n  BN.prototype.andln = function andln(num) {\n    return this.words[0] & num;\n  }; // Increment at the bit position in-line\n\n\n  BN.prototype.bincn = function bincn(bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) {\n      this._expand(s + 1);\n\n      this.words[s] |= q;\n      return this;\n    } // Add bit and propagate, if needed\n\n\n    var carry = q;\n\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero() {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn(num) {\n    var negative = num < 0;\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n    this.strip();\n    var res;\n\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n\n\n  BN.prototype.cmp = function cmp(num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Unsigned comparison\n\n\n  BN.prototype.ucmp = function ucmp(num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n    var res = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n      if (a === b) continue;\n\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n\n      break;\n    }\n\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn(num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt(num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten(num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte(num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn(num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt(num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten(num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte(num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn(num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq(num) {\n    return this.cmp(num) === 0;\n  }; //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n\n\n  BN.red = function red(num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed() {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed(ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd(num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd(num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub(num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub(num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl(num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr() {\n    assert(this.red, 'redSqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr() {\n    assert(this.red, 'redISqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.isqr(this);\n  }; // Square root over p\n\n\n  BN.prototype.redSqrt = function redSqrt() {\n    assert(this.red, 'redSqrt works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm() {\n    assert(this.red, 'redInvm works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.invm(this);\n  }; // Return negative clone of `this` % `red modulo`\n\n\n  BN.prototype.redNeg = function redNeg() {\n    assert(this.red, 'redNeg works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow(num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n\n    this.red._verify1(this);\n\n    return this.red.pow(this, num);\n  }; // Prime numbers with efficient reduction\n\n\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  }; // Pseudo-Mersenne prime\n\n  function MPrime(name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp() {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce(num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is BN v4 instance\n        r.strip();\n      } else {\n        // r is BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split(input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK(num) {\n    return num.imul(this.k);\n  };\n\n  function K256() {\n    MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split(input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n    var outLen = Math.min(input.length, 9);\n\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    } // Shift by 9 limbs\n\n\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n      prev = next;\n    }\n\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK(num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n    var lo = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + (lo / 0x4000000 | 0);\n    } // Fast length reduction\n\n\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n\n    return num;\n  };\n\n  function P224() {\n    MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n\n  inherits(P224, MPrime);\n\n  function P192() {\n    MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n\n  inherits(P192, MPrime);\n\n  function P25519() {\n    // 2 ^ 255 - 19\n    MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK(num) {\n    // K = 0x13\n    var carry = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n      num.words[i] = lo;\n      carry = hi;\n    }\n\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n\n    return num;\n  }; // Exported mostly for testing purposes, use plain name instead\n\n\n  BN._prime = function prime(name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n    var prime;\n\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n\n    primes[name] = prime;\n    return prime;\n  }; //\n  // Base reduction engine\n  //\n\n\n  function Red(m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1(a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2(a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red, 'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod(a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n    return a.umod(this.m)._forceRed(this);\n  };\n\n  Red.prototype.neg = function neg(a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add(a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd(a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.sub = function sub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.shl = function shl(a, num) {\n    this._verify1(a);\n\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr(a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr(a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt(a) {\n    if (a.isZero()) return a.clone();\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1); // Fast case\n\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n    var q = this.m.subn(1);\n    var s = 0;\n\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n\n    assert(!q.isZero());\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg(); // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm(a) {\n    var inv = a._invmp(this.m);\n\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow(a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = word >> j & 1;\n\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo(num) {\n    var r = num.umod(this.m);\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom(num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  }; //\n  // Montgomery method engine\n  //\n\n\n  BN.mont = function mont(num) {\n    return new Mont(num);\n  };\n\n  function Mont(m) {\n    Red.call(this, m);\n    this.shift = this.m.bitLength();\n\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - this.shift % 26;\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo(num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom(num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul(a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul(a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm(a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/elliptic/node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/elliptic/package.json":
/*!********************************************!*\
  !*** ./node_modules/elliptic/package.json ***!
  \********************************************/
/*! exports provided: _args, _development, _from, _id, _inBundle, _integrity, _location, _phantomChildren, _requested, _requiredBy, _resolved, _spec, _where, author, bugs, dependencies, description, devDependencies, files, homepage, keywords, license, main, name, repository, scripts, version, default */
/***/ (function(module) {

eval("module.exports = JSON.parse(\"{\\\"_args\\\":[[\\\"elliptic@6.5.4\\\",\\\"/Users/wedevs/Local Sites/wperp/app/public/wp-content/plugins/erp-pro\\\"]],\\\"_development\\\":true,\\\"_from\\\":\\\"elliptic@6.5.4\\\",\\\"_id\\\":\\\"elliptic@6.5.4\\\",\\\"_inBundle\\\":false,\\\"_integrity\\\":\\\"sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==\\\",\\\"_location\\\":\\\"/elliptic\\\",\\\"_phantomChildren\\\":{},\\\"_requested\\\":{\\\"type\\\":\\\"version\\\",\\\"registry\\\":true,\\\"raw\\\":\\\"elliptic@6.5.4\\\",\\\"name\\\":\\\"elliptic\\\",\\\"escapedName\\\":\\\"elliptic\\\",\\\"rawSpec\\\":\\\"6.5.4\\\",\\\"saveSpec\\\":null,\\\"fetchSpec\\\":\\\"6.5.4\\\"},\\\"_requiredBy\\\":[\\\"/browserify-sign\\\",\\\"/create-ecdh\\\"],\\\"_resolved\\\":\\\"https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz\\\",\\\"_spec\\\":\\\"6.5.4\\\",\\\"_where\\\":\\\"/Users/wedevs/Local Sites/wperp/app/public/wp-content/plugins/erp-pro\\\",\\\"author\\\":{\\\"name\\\":\\\"Fedor Indutny\\\",\\\"email\\\":\\\"fedor@indutny.com\\\"},\\\"bugs\\\":{\\\"url\\\":\\\"https://github.com/indutny/elliptic/issues\\\"},\\\"dependencies\\\":{\\\"bn.js\\\":\\\"^4.11.9\\\",\\\"brorand\\\":\\\"^1.1.0\\\",\\\"hash.js\\\":\\\"^1.0.0\\\",\\\"hmac-drbg\\\":\\\"^1.0.1\\\",\\\"inherits\\\":\\\"^2.0.4\\\",\\\"minimalistic-assert\\\":\\\"^1.0.1\\\",\\\"minimalistic-crypto-utils\\\":\\\"^1.0.1\\\"},\\\"description\\\":\\\"EC cryptography\\\",\\\"devDependencies\\\":{\\\"brfs\\\":\\\"^2.0.2\\\",\\\"coveralls\\\":\\\"^3.1.0\\\",\\\"eslint\\\":\\\"^7.6.0\\\",\\\"grunt\\\":\\\"^1.2.1\\\",\\\"grunt-browserify\\\":\\\"^5.3.0\\\",\\\"grunt-cli\\\":\\\"^1.3.2\\\",\\\"grunt-contrib-connect\\\":\\\"^3.0.0\\\",\\\"grunt-contrib-copy\\\":\\\"^1.0.0\\\",\\\"grunt-contrib-uglify\\\":\\\"^5.0.0\\\",\\\"grunt-mocha-istanbul\\\":\\\"^5.0.2\\\",\\\"grunt-saucelabs\\\":\\\"^9.0.1\\\",\\\"istanbul\\\":\\\"^0.4.5\\\",\\\"mocha\\\":\\\"^8.0.1\\\"},\\\"files\\\":[\\\"lib\\\"],\\\"homepage\\\":\\\"https://github.com/indutny/elliptic\\\",\\\"keywords\\\":[\\\"EC\\\",\\\"Elliptic\\\",\\\"curve\\\",\\\"Cryptography\\\"],\\\"license\\\":\\\"MIT\\\",\\\"main\\\":\\\"lib/elliptic.js\\\",\\\"name\\\":\\\"elliptic\\\",\\\"repository\\\":{\\\"type\\\":\\\"git\\\",\\\"url\\\":\\\"git+ssh://git@github.com/indutny/elliptic.git\\\"},\\\"scripts\\\":{\\\"lint\\\":\\\"eslint lib test\\\",\\\"lint:fix\\\":\\\"npm run lint -- --fix\\\",\\\"test\\\":\\\"npm run lint && npm run unit\\\",\\\"unit\\\":\\\"istanbul test _mocha --reporter=spec test/index.js\\\",\\\"version\\\":\\\"grunt dist && git add dist/\\\"},\\\"version\\\":\\\"6.5.4\\\"}\");\n\n//# sourceURL=webpack:///./node_modules/elliptic/package.json?");

/***/ }),

/***/ "./node_modules/emojis-list/index.js":
/*!*******************************************!*\
  !*** ./node_modules/emojis-list/index.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = [\"🀄️\", \"🃏\", \"🅰️\", \"🅱️\", \"🅾️\", \"🅿️\", \"🆎\", \"🆑\", \"🆒\", \"🆓\", \"🆔\", \"🆕\", \"🆖\", \"🆗\", \"🆘\", \"🆙\", \"🆚\", \"🇦🇨\", \"🇦🇩\", \"🇦🇪\", \"🇦🇫\", \"🇦🇬\", \"🇦🇮\", \"🇦🇱\", \"🇦🇲\", \"🇦🇴\", \"🇦🇶\", \"🇦🇷\", \"🇦🇸\", \"🇦🇹\", \"🇦🇺\", \"🇦🇼\", \"🇦🇽\", \"🇦🇿\", \"🇦\", \"🇧🇦\", \"🇧🇧\", \"🇧🇩\", \"🇧🇪\", \"🇧🇫\", \"🇧🇬\", \"🇧🇭\", \"🇧🇮\", \"🇧🇯\", \"🇧🇱\", \"🇧🇲\", \"🇧🇳\", \"🇧🇴\", \"🇧🇶\", \"🇧🇷\", \"🇧🇸\", \"🇧🇹\", \"🇧🇻\", \"🇧🇼\", \"🇧🇾\", \"🇧🇿\", \"🇧\", \"🇨🇦\", \"🇨🇨\", \"🇨🇩\", \"🇨🇫\", \"🇨🇬\", \"🇨🇭\", \"🇨🇮\", \"🇨🇰\", \"🇨🇱\", \"🇨🇲\", \"🇨🇳\", \"🇨🇴\", \"🇨🇵\", \"🇨🇷\", \"🇨🇺\", \"🇨🇻\", \"🇨🇼\", \"🇨🇽\", \"🇨🇾\", \"🇨🇿\", \"🇨\", \"🇩🇪\", \"🇩🇬\", \"🇩🇯\", \"🇩🇰\", \"🇩🇲\", \"🇩🇴\", \"🇩🇿\", \"🇩\", \"🇪🇦\", \"🇪🇨\", \"🇪🇪\", \"🇪🇬\", \"🇪🇭\", \"🇪🇷\", \"🇪🇸\", \"🇪🇹\", \"🇪🇺\", \"🇪\", \"🇫🇮\", \"🇫🇯\", \"🇫🇰\", \"🇫🇲\", \"🇫🇴\", \"🇫🇷\", \"🇫\", \"🇬🇦\", \"🇬🇧\", \"🇬🇩\", \"🇬🇪\", \"🇬🇫\", \"🇬🇬\", \"🇬🇭\", \"🇬🇮\", \"🇬🇱\", \"🇬🇲\", \"🇬🇳\", \"🇬🇵\", \"🇬🇶\", \"🇬🇷\", \"🇬🇸\", \"🇬🇹\", \"🇬🇺\", \"🇬🇼\", \"🇬🇾\", \"🇬\", \"🇭🇰\", \"🇭🇲\", \"🇭🇳\", \"🇭🇷\", \"🇭🇹\", \"🇭🇺\", \"🇭\", \"🇮🇨\", \"🇮🇩\", \"🇮🇪\", \"🇮🇱\", \"🇮🇲\", \"🇮🇳\", \"🇮🇴\", \"🇮🇶\", \"🇮🇷\", \"🇮🇸\", \"🇮🇹\", \"🇮\", \"🇯🇪\", \"🇯🇲\", \"🇯🇴\", \"🇯🇵\", \"🇯\", \"🇰🇪\", \"🇰🇬\", \"🇰🇭\", \"🇰🇮\", \"🇰🇲\", \"🇰🇳\", \"🇰🇵\", \"🇰🇷\", \"🇰🇼\", \"🇰🇾\", \"🇰🇿\", \"🇰\", \"🇱🇦\", \"🇱🇧\", \"🇱🇨\", \"🇱🇮\", \"🇱🇰\", \"🇱🇷\", \"🇱🇸\", \"🇱🇹\", \"🇱🇺\", \"🇱🇻\", \"🇱🇾\", \"🇱\", \"🇲🇦\", \"🇲🇨\", \"🇲🇩\", \"🇲🇪\", \"🇲🇫\", \"🇲🇬\", \"🇲🇭\", \"🇲🇰\", \"🇲🇱\", \"🇲🇲\", \"🇲🇳\", \"🇲🇴\", \"🇲🇵\", \"🇲🇶\", \"🇲🇷\", \"🇲🇸\", \"🇲🇹\", \"🇲🇺\", \"🇲🇻\", \"🇲🇼\", \"🇲🇽\", \"🇲🇾\", \"🇲🇿\", \"🇲\", \"🇳🇦\", \"🇳🇨\", \"🇳🇪\", \"🇳🇫\", \"🇳🇬\", \"🇳🇮\", \"🇳🇱\", \"🇳🇴\", \"🇳🇵\", \"🇳🇷\", \"🇳🇺\", \"🇳🇿\", \"🇳\", \"🇴🇲\", \"🇴\", \"🇵🇦\", \"🇵🇪\", \"🇵🇫\", \"🇵🇬\", \"🇵🇭\", \"🇵🇰\", \"🇵🇱\", \"🇵🇲\", \"🇵🇳\", \"🇵🇷\", \"🇵🇸\", \"🇵🇹\", \"🇵🇼\", \"🇵🇾\", \"🇵\", \"🇶🇦\", \"🇶\", \"🇷🇪\", \"🇷🇴\", \"🇷🇸\", \"🇷🇺\", \"🇷🇼\", \"🇷\", \"🇸🇦\", \"🇸🇧\", \"🇸🇨\", \"🇸🇩\", \"🇸🇪\", \"🇸🇬\", \"🇸🇭\", \"🇸🇮\", \"🇸🇯\", \"🇸🇰\", \"🇸🇱\", \"🇸🇲\", \"🇸🇳\", \"🇸🇴\", \"🇸🇷\", \"🇸🇸\", \"🇸🇹\", \"🇸🇻\", \"🇸🇽\", \"🇸🇾\", \"🇸🇿\", \"🇸\", \"🇹🇦\", \"🇹🇨\", \"🇹🇩\", \"🇹🇫\", \"🇹🇬\", \"🇹🇭\", \"🇹🇯\", \"🇹🇰\", \"🇹🇱\", \"🇹🇲\", \"🇹🇳\", \"🇹🇴\", \"🇹🇷\", \"🇹🇹\", \"🇹🇻\", \"🇹🇼\", \"🇹🇿\", \"🇹\", \"🇺🇦\", \"🇺🇬\", \"🇺🇲\", \"🇺🇳\", \"🇺🇸\", \"🇺🇾\", \"🇺🇿\", \"🇺\", \"🇻🇦\", \"🇻🇨\", \"🇻🇪\", \"🇻🇬\", \"🇻🇮\", \"🇻🇳\", \"🇻🇺\", \"🇻\", \"🇼🇫\", \"🇼🇸\", \"🇼\", \"🇽🇰\", \"🇽\", \"🇾🇪\", \"🇾🇹\", \"🇾\", \"🇿🇦\", \"🇿🇲\", \"🇿🇼\", \"🇿\", \"🈁\", \"🈂️\", \"🈚️\", \"🈯️\", \"🈲\", \"🈳\", \"🈴\", \"🈵\", \"🈶\", \"🈷️\", \"🈸\", \"🈹\", \"🈺\", \"🉐\", \"🉑\", \"🌀\", \"🌁\", \"🌂\", \"🌃\", \"🌄\", \"🌅\", \"🌆\", \"🌇\", \"🌈\", \"🌉\", \"🌊\", \"🌋\", \"🌌\", \"🌍\", \"🌎\", \"🌏\", \"🌐\", \"🌑\", \"🌒\", \"🌓\", \"🌔\", \"🌕\", \"🌖\", \"🌗\", \"🌘\", \"🌙\", \"🌚\", \"🌛\", \"🌜\", \"🌝\", \"🌞\", \"🌟\", \"🌠\", \"🌡️\", \"🌤️\", \"🌥️\", \"🌦️\", \"🌧️\", \"🌨️\", \"🌩️\", \"🌪️\", \"🌫️\", \"🌬️\", \"🌭\", \"🌮\", \"🌯\", \"🌰\", \"🌱\", \"🌲\", \"🌳\", \"🌴\", \"🌵\", \"🌶️\", \"🌷\", \"🌸\", \"🌹\", \"🌺\", \"🌻\", \"🌼\", \"🌽\", \"🌾\", \"🌿\", \"🍀\", \"🍁\", \"🍂\", \"🍃\", \"🍄\", \"🍅\", \"🍆\", \"🍇\", \"🍈\", \"🍉\", \"🍊\", \"🍋\", \"🍌\", \"🍍\", \"🍎\", \"🍏\", \"🍐\", \"🍑\", \"🍒\", \"🍓\", \"🍔\", \"🍕\", \"🍖\", \"🍗\", \"🍘\", \"🍙\", \"🍚\", \"🍛\", \"🍜\", \"🍝\", \"🍞\", \"🍟\", \"🍠\", \"🍡\", \"🍢\", \"🍣\", \"🍤\", \"🍥\", \"🍦\", \"🍧\", \"🍨\", \"🍩\", \"🍪\", \"🍫\", \"🍬\", \"🍭\", \"🍮\", \"🍯\", \"🍰\", \"🍱\", \"🍲\", \"🍳\", \"🍴\", \"🍵\", \"🍶\", \"🍷\", \"🍸\", \"🍹\", \"🍺\", \"🍻\", \"🍼\", \"🍽️\", \"🍾\", \"🍿\", \"🎀\", \"🎁\", \"🎂\", \"🎃\", \"🎄\", \"🎅🏻\", \"🎅🏼\", \"🎅🏽\", \"🎅🏾\", \"🎅🏿\", \"🎅\", \"🎆\", \"🎇\", \"🎈\", \"🎉\", \"🎊\", \"🎋\", \"🎌\", \"🎍\", \"🎎\", \"🎏\", \"🎐\", \"🎑\", \"🎒\", \"🎓\", \"🎖️\", \"🎗️\", \"🎙️\", \"🎚️\", \"🎛️\", \"🎞️\", \"🎟️\", \"🎠\", \"🎡\", \"🎢\", \"🎣\", \"🎤\", \"🎥\", \"🎦\", \"🎧\", \"🎨\", \"🎩\", \"🎪\", \"🎫\", \"🎬\", \"🎭\", \"🎮\", \"🎯\", \"🎰\", \"🎱\", \"🎲\", \"🎳\", \"🎴\", \"🎵\", \"🎶\", \"🎷\", \"🎸\", \"🎹\", \"🎺\", \"🎻\", \"🎼\", \"🎽\", \"🎾\", \"🎿\", \"🏀\", \"🏁\", \"🏂🏻\", \"🏂🏼\", \"🏂🏽\", \"🏂🏾\", \"🏂🏿\", \"🏂\", \"🏃🏻‍♀️\", \"🏃🏻‍♂️\", \"🏃🏻\", \"🏃🏼‍♀️\", \"🏃🏼‍♂️\", \"🏃🏼\", \"🏃🏽‍♀️\", \"🏃🏽‍♂️\", \"🏃🏽\", \"🏃🏾‍♀️\", \"🏃🏾‍♂️\", \"🏃🏾\", \"🏃🏿‍♀️\", \"🏃🏿‍♂️\", \"🏃🏿\", \"🏃‍♀️\", \"🏃‍♂️\", \"🏃\", \"🏄🏻‍♀️\", \"🏄🏻‍♂️\", \"🏄🏻\", \"🏄🏼‍♀️\", \"🏄🏼‍♂️\", \"🏄🏼\", \"🏄🏽‍♀️\", \"🏄🏽‍♂️\", \"🏄🏽\", \"🏄🏾‍♀️\", \"🏄🏾‍♂️\", \"🏄🏾\", \"🏄🏿‍♀️\", \"🏄🏿‍♂️\", \"🏄🏿\", \"🏄‍♀️\", \"🏄‍♂️\", \"🏄\", \"🏅\", \"🏆\", \"🏇🏻\", \"🏇🏼\", \"🏇🏽\", \"🏇🏾\", \"🏇🏿\", \"🏇\", \"🏈\", \"🏉\", \"🏊🏻‍♀️\", \"🏊🏻‍♂️\", \"🏊🏻\", \"🏊🏼‍♀️\", \"🏊🏼‍♂️\", \"🏊🏼\", \"🏊🏽‍♀️\", \"🏊🏽‍♂️\", \"🏊🏽\", \"🏊🏾‍♀️\", \"🏊🏾‍♂️\", \"🏊🏾\", \"🏊🏿‍♀️\", \"🏊🏿‍♂️\", \"🏊🏿\", \"🏊‍♀️\", \"🏊‍♂️\", \"🏊\", \"🏋🏻‍♀️\", \"🏋🏻‍♂️\", \"🏋🏻\", \"🏋🏼‍♀️\", \"🏋🏼‍♂️\", \"🏋🏼\", \"🏋🏽‍♀️\", \"🏋🏽‍♂️\", \"🏋🏽\", \"🏋🏾‍♀️\", \"🏋🏾‍♂️\", \"🏋🏾\", \"🏋🏿‍♀️\", \"🏋🏿‍♂️\", \"🏋🏿\", \"🏋️‍♀️\", \"🏋️‍♂️\", \"🏋️\", \"🏌🏻‍♀️\", \"🏌🏻‍♂️\", \"🏌🏻\", \"🏌🏼‍♀️\", \"🏌🏼‍♂️\", \"🏌🏼\", \"🏌🏽‍♀️\", \"🏌🏽‍♂️\", \"🏌🏽\", \"🏌🏾‍♀️\", \"🏌🏾‍♂️\", \"🏌🏾\", \"🏌🏿‍♀️\", \"🏌🏿‍♂️\", \"🏌🏿\", \"🏌️‍♀️\", \"🏌️‍♂️\", \"🏌️\", \"🏍️\", \"🏎️\", \"🏏\", \"🏐\", \"🏑\", \"🏒\", \"🏓\", \"🏔️\", \"🏕️\", \"🏖️\", \"🏗️\", \"🏘️\", \"🏙️\", \"🏚️\", \"🏛️\", \"🏜️\", \"🏝️\", \"🏞️\", \"🏟️\", \"🏠\", \"🏡\", \"🏢\", \"🏣\", \"🏤\", \"🏥\", \"🏦\", \"🏧\", \"🏨\", \"🏩\", \"🏪\", \"🏫\", \"🏬\", \"🏭\", \"🏮\", \"🏯\", \"🏰\", \"🏳️‍🌈\", \"🏳️\", \"🏴‍☠️\", \"🏴󠁧󠁢󠁥󠁮󠁧󠁿\", \"🏴󠁧󠁢󠁳󠁣󠁴󠁿\", \"🏴󠁧󠁢󠁷󠁬󠁳󠁿\", \"🏴\", \"🏵️\", \"🏷️\", \"🏸\", \"🏹\", \"🏺\", \"🏻\", \"🏼\", \"🏽\", \"🏾\", \"🏿\", \"🐀\", \"🐁\", \"🐂\", \"🐃\", \"🐄\", \"🐅\", \"🐆\", \"🐇\", \"🐈\", \"🐉\", \"🐊\", \"🐋\", \"🐌\", \"🐍\", \"🐎\", \"🐏\", \"🐐\", \"🐑\", \"🐒\", \"🐓\", \"🐔\", \"🐕‍🦺\", \"🐕\", \"🐖\", \"🐗\", \"🐘\", \"🐙\", \"🐚\", \"🐛\", \"🐜\", \"🐝\", \"🐞\", \"🐟\", \"🐠\", \"🐡\", \"🐢\", \"🐣\", \"🐤\", \"🐥\", \"🐦\", \"🐧\", \"🐨\", \"🐩\", \"🐪\", \"🐫\", \"🐬\", \"🐭\", \"🐮\", \"🐯\", \"🐰\", \"🐱\", \"🐲\", \"🐳\", \"🐴\", \"🐵\", \"🐶\", \"🐷\", \"🐸\", \"🐹\", \"🐺\", \"🐻\", \"🐼\", \"🐽\", \"🐾\", \"🐿️\", \"👀\", \"👁‍🗨\", \"👁️\", \"👂🏻\", \"👂🏼\", \"👂🏽\", \"👂🏾\", \"👂🏿\", \"👂\", \"👃🏻\", \"👃🏼\", \"👃🏽\", \"👃🏾\", \"👃🏿\", \"👃\", \"👄\", \"👅\", \"👆🏻\", \"👆🏼\", \"👆🏽\", \"👆🏾\", \"👆🏿\", \"👆\", \"👇🏻\", \"👇🏼\", \"👇🏽\", \"👇🏾\", \"👇🏿\", \"👇\", \"👈🏻\", \"👈🏼\", \"👈🏽\", \"👈🏾\", \"👈🏿\", \"👈\", \"👉🏻\", \"👉🏼\", \"👉🏽\", \"👉🏾\", \"👉🏿\", \"👉\", \"👊🏻\", \"👊🏼\", \"👊🏽\", \"👊🏾\", \"👊🏿\", \"👊\", \"👋🏻\", \"👋🏼\", \"👋🏽\", \"👋🏾\", \"👋🏿\", \"👋\", \"👌🏻\", \"👌🏼\", \"👌🏽\", \"👌🏾\", \"👌🏿\", \"👌\", \"👍🏻\", \"👍🏼\", \"👍🏽\", \"👍🏾\", \"👍🏿\", \"👍\", \"👎🏻\", \"👎🏼\", \"👎🏽\", \"👎🏾\", \"👎🏿\", \"👎\", \"👏🏻\", \"👏🏼\", \"👏🏽\", \"👏🏾\", \"👏🏿\", \"👏\", \"👐🏻\", \"👐🏼\", \"👐🏽\", \"👐🏾\", \"👐🏿\", \"👐\", \"👑\", \"👒\", \"👓\", \"👔\", \"👕\", \"👖\", \"👗\", \"👘\", \"👙\", \"👚\", \"👛\", \"👜\", \"👝\", \"👞\", \"👟\", \"👠\", \"👡\", \"👢\", \"👣\", \"👤\", \"👥\", \"👦🏻\", \"👦🏼\", \"👦🏽\", \"👦🏾\", \"👦🏿\", \"👦\", \"👧🏻\", \"👧🏼\", \"👧🏽\", \"👧🏾\", \"👧🏿\", \"👧\", \"👨🏻‍🌾\", \"👨🏻‍🍳\", \"👨🏻‍🎓\", \"👨🏻‍🎤\", \"👨🏻‍🎨\", \"👨🏻‍🏫\", \"👨🏻‍🏭\", \"👨🏻‍💻\", \"👨🏻‍💼\", \"👨🏻‍🔧\", \"👨🏻‍🔬\", \"👨🏻‍🚀\", \"👨🏻‍🚒\", \"👨🏻‍🦯\", \"👨🏻‍🦰\", \"👨🏻‍🦱\", \"👨🏻‍🦲\", \"👨🏻‍🦳\", \"👨🏻‍🦼\", \"👨🏻‍🦽\", \"👨🏻‍⚕️\", \"👨🏻‍⚖️\", \"👨🏻‍✈️\", \"👨🏻\", \"👨🏼‍🌾\", \"👨🏼‍🍳\", \"👨🏼‍🎓\", \"👨🏼‍🎤\", \"👨🏼‍🎨\", \"👨🏼‍🏫\", \"👨🏼‍🏭\", \"👨🏼‍💻\", \"👨🏼‍💼\", \"👨🏼‍🔧\", \"👨🏼‍🔬\", \"👨🏼‍🚀\", \"👨🏼‍🚒\", \"👨🏼‍🤝‍👨🏻\", \"👨🏼‍🦯\", \"👨🏼‍🦰\", \"👨🏼‍🦱\", \"👨🏼‍🦲\", \"👨🏼‍🦳\", \"👨🏼‍🦼\", \"👨🏼‍🦽\", \"👨🏼‍⚕️\", \"👨🏼‍⚖️\", \"👨🏼‍✈️\", \"👨🏼\", \"👨🏽‍🌾\", \"👨🏽‍🍳\", \"👨🏽‍🎓\", \"👨🏽‍🎤\", \"👨🏽‍🎨\", \"👨🏽‍🏫\", \"👨🏽‍🏭\", \"👨🏽‍💻\", \"👨🏽‍💼\", \"👨🏽‍🔧\", \"👨🏽‍🔬\", \"👨🏽‍🚀\", \"👨🏽‍🚒\", \"👨🏽‍🤝‍👨🏻\", \"👨🏽‍🤝‍👨🏼\", \"👨🏽‍🦯\", \"👨🏽‍🦰\", \"👨🏽‍🦱\", \"👨🏽‍🦲\", \"👨🏽‍🦳\", \"👨🏽‍🦼\", \"👨🏽‍🦽\", \"👨🏽‍⚕️\", \"👨🏽‍⚖️\", \"👨🏽‍✈️\", \"👨🏽\", \"👨🏾‍🌾\", \"👨🏾‍🍳\", \"👨🏾‍🎓\", \"👨🏾‍🎤\", \"👨🏾‍🎨\", \"👨🏾‍🏫\", \"👨🏾‍🏭\", \"👨🏾‍💻\", \"👨🏾‍💼\", \"👨🏾‍🔧\", \"👨🏾‍🔬\", \"👨🏾‍🚀\", \"👨🏾‍🚒\", \"👨🏾‍🤝‍👨🏻\", \"👨🏾‍🤝‍👨🏼\", \"👨🏾‍🤝‍👨🏽\", \"👨🏾‍🦯\", \"👨🏾‍🦰\", \"👨🏾‍🦱\", \"👨🏾‍🦲\", \"👨🏾‍🦳\", \"👨🏾‍🦼\", \"👨🏾‍🦽\", \"👨🏾‍⚕️\", \"👨🏾‍⚖️\", \"👨🏾‍✈️\", \"👨🏾\", \"👨🏿‍🌾\", \"👨🏿‍🍳\", \"👨🏿‍🎓\", \"👨🏿‍🎤\", \"👨🏿‍🎨\", \"👨🏿‍🏫\", \"👨🏿‍🏭\", \"👨🏿‍💻\", \"👨🏿‍💼\", \"👨🏿‍🔧\", \"👨🏿‍🔬\", \"👨🏿‍🚀\", \"👨🏿‍🚒\", \"👨🏿‍🤝‍👨🏻\", \"👨🏿‍🤝‍👨🏼\", \"👨🏿‍🤝‍👨🏽\", \"👨🏿‍🤝‍👨🏾\", \"👨🏿‍🦯\", \"👨🏿‍🦰\", \"👨🏿‍🦱\", \"👨🏿‍🦲\", \"👨🏿‍🦳\", \"👨🏿‍🦼\", \"👨🏿‍🦽\", \"👨🏿‍⚕️\", \"👨🏿‍⚖️\", \"👨🏿‍✈️\", \"👨🏿\", \"👨‍🌾\", \"👨‍🍳\", \"👨‍🎓\", \"👨‍🎤\", \"👨‍🎨\", \"👨‍🏫\", \"👨‍🏭\", \"👨‍👦‍👦\", \"👨‍👦\", \"👨‍👧‍👦\", \"👨‍👧‍👧\", \"👨‍👧\", \"👨‍👨‍👦‍👦\", \"👨‍👨‍👦\", \"👨‍👨‍👧‍👦\", \"👨‍👨‍👧‍👧\", \"👨‍👨‍👧\", \"👨‍👩‍👦‍👦\", \"👨‍👩‍👦\", \"👨‍👩‍👧‍👦\", \"👨‍👩‍👧‍👧\", \"👨‍👩‍👧\", \"👨‍💻\", \"👨‍💼\", \"👨‍🔧\", \"👨‍🔬\", \"👨‍🚀\", \"👨‍🚒\", \"👨‍🦯\", \"👨‍🦰\", \"👨‍🦱\", \"👨‍🦲\", \"👨‍🦳\", \"👨‍🦼\", \"👨‍🦽\", \"👨‍⚕️\", \"👨‍⚖️\", \"👨‍✈️\", \"👨‍❤️‍👨\", \"👨‍❤️‍💋‍👨\", \"👨\", \"👩🏻‍🌾\", \"👩🏻‍🍳\", \"👩🏻‍🎓\", \"👩🏻‍🎤\", \"👩🏻‍🎨\", \"👩🏻‍🏫\", \"👩🏻‍🏭\", \"👩🏻‍💻\", \"👩🏻‍💼\", \"👩🏻‍🔧\", \"👩🏻‍🔬\", \"👩🏻‍🚀\", \"👩🏻‍🚒\", \"👩🏻‍🤝‍👨🏼\", \"👩🏻‍🤝‍👨🏽\", \"👩🏻‍🤝‍👨🏾\", \"👩🏻‍🤝‍👨🏿\", \"👩🏻‍🦯\", \"👩🏻‍🦰\", \"👩🏻‍🦱\", \"👩🏻‍🦲\", \"👩🏻‍🦳\", \"👩🏻‍🦼\", \"👩🏻‍🦽\", \"👩🏻‍⚕️\", \"👩🏻‍⚖️\", \"👩🏻‍✈️\", \"👩🏻\", \"👩🏼‍🌾\", \"👩🏼‍🍳\", \"👩🏼‍🎓\", \"👩🏼‍🎤\", \"👩🏼‍🎨\", \"👩🏼‍🏫\", \"👩🏼‍🏭\", \"👩🏼‍💻\", \"👩🏼‍💼\", \"👩🏼‍🔧\", \"👩🏼‍🔬\", \"👩🏼‍🚀\", \"👩🏼‍🚒\", \"👩🏼‍🤝‍👨🏻\", \"👩🏼‍🤝‍👨🏽\", \"👩🏼‍🤝‍👨🏾\", \"👩🏼‍🤝‍👨🏿\", \"👩🏼‍🤝‍👩🏻\", \"👩🏼‍🦯\", \"👩🏼‍🦰\", \"👩🏼‍🦱\", \"👩🏼‍🦲\", \"👩🏼‍🦳\", \"👩🏼‍🦼\", \"👩🏼‍🦽\", \"👩🏼‍⚕️\", \"👩🏼‍⚖️\", \"👩🏼‍✈️\", \"👩🏼\", \"👩🏽‍🌾\", \"👩🏽‍🍳\", \"👩🏽‍🎓\", \"👩🏽‍🎤\", \"👩🏽‍🎨\", \"👩🏽‍🏫\", \"👩🏽‍🏭\", \"👩🏽‍💻\", \"👩🏽‍💼\", \"👩🏽‍🔧\", \"👩🏽‍🔬\", \"👩🏽‍🚀\", \"👩🏽‍🚒\", \"👩🏽‍🤝‍👨🏻\", \"👩🏽‍🤝‍👨🏼\", \"👩🏽‍🤝‍👨🏾\", \"👩🏽‍🤝‍👨🏿\", \"👩🏽‍🤝‍👩🏻\", \"👩🏽‍🤝‍👩🏼\", \"👩🏽‍🦯\", \"👩🏽‍🦰\", \"👩🏽‍🦱\", \"👩🏽‍🦲\", \"👩🏽‍🦳\", \"👩🏽‍🦼\", \"👩🏽‍🦽\", \"👩🏽‍⚕️\", \"👩🏽‍⚖️\", \"👩🏽‍✈️\", \"👩🏽\", \"👩🏾‍🌾\", \"👩🏾‍🍳\", \"👩🏾‍🎓\", \"👩🏾‍🎤\", \"👩🏾‍🎨\", \"👩🏾‍🏫\", \"👩🏾‍🏭\", \"👩🏾‍💻\", \"👩🏾‍💼\", \"👩🏾‍🔧\", \"👩🏾‍🔬\", \"👩🏾‍🚀\", \"👩🏾‍🚒\", \"👩🏾‍🤝‍👨🏻\", \"👩🏾‍🤝‍👨🏼\", \"👩🏾‍🤝‍👨🏽\", \"👩🏾‍🤝‍👨🏿\", \"👩🏾‍🤝‍👩🏻\", \"👩🏾‍🤝‍👩🏼\", \"👩🏾‍🤝‍👩🏽\", \"👩🏾‍🦯\", \"👩🏾‍🦰\", \"👩🏾‍🦱\", \"👩🏾‍🦲\", \"👩🏾‍🦳\", \"👩🏾‍🦼\", \"👩🏾‍🦽\", \"👩🏾‍⚕️\", \"👩🏾‍⚖️\", \"👩🏾‍✈️\", \"👩🏾\", \"👩🏿‍🌾\", \"👩🏿‍🍳\", \"👩🏿‍🎓\", \"👩🏿‍🎤\", \"👩🏿‍🎨\", \"👩🏿‍🏫\", \"👩🏿‍🏭\", \"👩🏿‍💻\", \"👩🏿‍💼\", \"👩🏿‍🔧\", \"👩🏿‍🔬\", \"👩🏿‍🚀\", \"👩🏿‍🚒\", \"👩🏿‍🤝‍👨🏻\", \"👩🏿‍🤝‍👨🏼\", \"👩🏿‍🤝‍👨🏽\", \"👩🏿‍🤝‍👨🏾\", \"👩🏿‍🤝‍👩🏻\", \"👩🏿‍🤝‍👩🏼\", \"👩🏿‍🤝‍👩🏽\", \"👩🏿‍🤝‍👩🏾\", \"👩🏿‍🦯\", \"👩🏿‍🦰\", \"👩🏿‍🦱\", \"👩🏿‍🦲\", \"👩🏿‍🦳\", \"👩🏿‍🦼\", \"👩🏿‍🦽\", \"👩🏿‍⚕️\", \"👩🏿‍⚖️\", \"👩🏿‍✈️\", \"👩🏿\", \"👩‍🌾\", \"👩‍🍳\", \"👩‍🎓\", \"👩‍🎤\", \"👩‍🎨\", \"👩‍🏫\", \"👩‍🏭\", \"👩‍👦‍👦\", \"👩‍👦\", \"👩‍👧‍👦\", \"👩‍👧‍👧\", \"👩‍👧\", \"👩‍👩‍👦‍👦\", \"👩‍👩‍👦\", \"👩‍👩‍👧‍👦\", \"👩‍👩‍👧‍👧\", \"👩‍👩‍👧\", \"👩‍💻\", \"👩‍💼\", \"👩‍🔧\", \"👩‍🔬\", \"👩‍🚀\", \"👩‍🚒\", \"👩‍🦯\", \"👩‍🦰\", \"👩‍🦱\", \"👩‍🦲\", \"👩‍🦳\", \"👩‍🦼\", \"👩‍🦽\", \"👩‍⚕️\", \"👩‍⚖️\", \"👩‍✈️\", \"👩‍❤️‍👨\", \"👩‍❤️‍👩\", \"👩‍❤️‍💋‍👨\", \"👩‍❤️‍💋‍👩\", \"👩\", \"👪\", \"👫🏻\", \"👫🏼\", \"👫🏽\", \"👫🏾\", \"👫🏿\", \"👫\", \"👬🏻\", \"👬🏼\", \"👬🏽\", \"👬🏾\", \"👬🏿\", \"👬\", \"👭🏻\", \"👭🏼\", \"👭🏽\", \"👭🏾\", \"👭🏿\", \"👭\", \"👮🏻‍♀️\", \"👮🏻‍♂️\", \"👮🏻\", \"👮🏼‍♀️\", \"👮🏼‍♂️\", \"👮🏼\", \"👮🏽‍♀️\", \"👮🏽‍♂️\", \"👮🏽\", \"👮🏾‍♀️\", \"👮🏾‍♂️\", \"👮🏾\", \"👮🏿‍♀️\", \"👮🏿‍♂️\", \"👮🏿\", \"👮‍♀️\", \"👮‍♂️\", \"👮\", \"👯‍♀️\", \"👯‍♂️\", \"👯\", \"👰🏻\", \"👰🏼\", \"👰🏽\", \"👰🏾\", \"👰🏿\", \"👰\", \"👱🏻‍♀️\", \"👱🏻‍♂️\", \"👱🏻\", \"👱🏼‍♀️\", \"👱🏼‍♂️\", \"👱🏼\", \"👱🏽‍♀️\", \"👱🏽‍♂️\", \"👱🏽\", \"👱🏾‍♀️\", \"👱🏾‍♂️\", \"👱🏾\", \"👱🏿‍♀️\", \"👱🏿‍♂️\", \"👱🏿\", \"👱‍♀️\", \"👱‍♂️\", \"👱\", \"👲🏻\", \"👲🏼\", \"👲🏽\", \"👲🏾\", \"👲🏿\", \"👲\", \"👳🏻‍♀️\", \"👳🏻‍♂️\", \"👳🏻\", \"👳🏼‍♀️\", \"👳🏼‍♂️\", \"👳🏼\", \"👳🏽‍♀️\", \"👳🏽‍♂️\", \"👳🏽\", \"👳🏾‍♀️\", \"👳🏾‍♂️\", \"👳🏾\", \"👳🏿‍♀️\", \"👳🏿‍♂️\", \"👳🏿\", \"👳‍♀️\", \"👳‍♂️\", \"👳\", \"👴🏻\", \"👴🏼\", \"👴🏽\", \"👴🏾\", \"👴🏿\", \"👴\", \"👵🏻\", \"👵🏼\", \"👵🏽\", \"👵🏾\", \"👵🏿\", \"👵\", \"👶🏻\", \"👶🏼\", \"👶🏽\", \"👶🏾\", \"👶🏿\", \"👶\", \"👷🏻‍♀️\", \"👷🏻‍♂️\", \"👷🏻\", \"👷🏼‍♀️\", \"👷🏼‍♂️\", \"👷🏼\", \"👷🏽‍♀️\", \"👷🏽‍♂️\", \"👷🏽\", \"👷🏾‍♀️\", \"👷🏾‍♂️\", \"👷🏾\", \"👷🏿‍♀️\", \"👷🏿‍♂️\", \"👷🏿\", \"👷‍♀️\", \"👷‍♂️\", \"👷\", \"👸🏻\", \"👸🏼\", \"👸🏽\", \"👸🏾\", \"👸🏿\", \"👸\", \"👹\", \"👺\", \"👻\", \"👼🏻\", \"👼🏼\", \"👼🏽\", \"👼🏾\", \"👼🏿\", \"👼\", \"👽\", \"👾\", \"👿\", \"💀\", \"💁🏻‍♀️\", \"💁🏻‍♂️\", \"💁🏻\", \"💁🏼‍♀️\", \"💁🏼‍♂️\", \"💁🏼\", \"💁🏽‍♀️\", \"💁🏽‍♂️\", \"💁🏽\", \"💁🏾‍♀️\", \"💁🏾‍♂️\", \"💁🏾\", \"💁🏿‍♀️\", \"💁🏿‍♂️\", \"💁🏿\", \"💁‍♀️\", \"💁‍♂️\", \"💁\", \"💂🏻‍♀️\", \"💂🏻‍♂️\", \"💂🏻\", \"💂🏼‍♀️\", \"💂🏼‍♂️\", \"💂🏼\", \"💂🏽‍♀️\", \"💂🏽‍♂️\", \"💂🏽\", \"💂🏾‍♀️\", \"💂🏾‍♂️\", \"💂🏾\", \"💂🏿‍♀️\", \"💂🏿‍♂️\", \"💂🏿\", \"💂‍♀️\", \"💂‍♂️\", \"💂\", \"💃🏻\", \"💃🏼\", \"💃🏽\", \"💃🏾\", \"💃🏿\", \"💃\", \"💄\", \"💅🏻\", \"💅🏼\", \"💅🏽\", \"💅🏾\", \"💅🏿\", \"💅\", \"💆🏻‍♀️\", \"💆🏻‍♂️\", \"💆🏻\", \"💆🏼‍♀️\", \"💆🏼‍♂️\", \"💆🏼\", \"💆🏽‍♀️\", \"💆🏽‍♂️\", \"💆🏽\", \"💆🏾‍♀️\", \"💆🏾‍♂️\", \"💆🏾\", \"💆🏿‍♀️\", \"💆🏿‍♂️\", \"💆🏿\", \"💆‍♀️\", \"💆‍♂️\", \"💆\", \"💇🏻‍♀️\", \"💇🏻‍♂️\", \"💇🏻\", \"💇🏼‍♀️\", \"💇🏼‍♂️\", \"💇🏼\", \"💇🏽‍♀️\", \"💇🏽‍♂️\", \"💇🏽\", \"💇🏾‍♀️\", \"💇🏾‍♂️\", \"💇🏾\", \"💇🏿‍♀️\", \"💇🏿‍♂️\", \"💇🏿\", \"💇‍♀️\", \"💇‍♂️\", \"💇\", \"💈\", \"💉\", \"💊\", \"💋\", \"💌\", \"💍\", \"💎\", \"💏\", \"💐\", \"💑\", \"💒\", \"💓\", \"💔\", \"💕\", \"💖\", \"💗\", \"💘\", \"💙\", \"💚\", \"💛\", \"💜\", \"💝\", \"💞\", \"💟\", \"💠\", \"💡\", \"💢\", \"💣\", \"💤\", \"💥\", \"💦\", \"💧\", \"💨\", \"💩\", \"💪🏻\", \"💪🏼\", \"💪🏽\", \"💪🏾\", \"💪🏿\", \"💪\", \"💫\", \"💬\", \"💭\", \"💮\", \"💯\", \"💰\", \"💱\", \"💲\", \"💳\", \"💴\", \"💵\", \"💶\", \"💷\", \"💸\", \"💹\", \"💺\", \"💻\", \"💼\", \"💽\", \"💾\", \"💿\", \"📀\", \"📁\", \"📂\", \"📃\", \"📄\", \"📅\", \"📆\", \"📇\", \"📈\", \"📉\", \"📊\", \"📋\", \"📌\", \"📍\", \"📎\", \"📏\", \"📐\", \"📑\", \"📒\", \"📓\", \"📔\", \"📕\", \"📖\", \"📗\", \"📘\", \"📙\", \"📚\", \"📛\", \"📜\", \"📝\", \"📞\", \"📟\", \"📠\", \"📡\", \"📢\", \"📣\", \"📤\", \"📥\", \"📦\", \"📧\", \"📨\", \"📩\", \"📪\", \"📫\", \"📬\", \"📭\", \"📮\", \"📯\", \"📰\", \"📱\", \"📲\", \"📳\", \"📴\", \"📵\", \"📶\", \"📷\", \"📸\", \"📹\", \"📺\", \"📻\", \"📼\", \"📽️\", \"📿\", \"🔀\", \"🔁\", \"🔂\", \"🔃\", \"🔄\", \"🔅\", \"🔆\", \"🔇\", \"🔈\", \"🔉\", \"🔊\", \"🔋\", \"🔌\", \"🔍\", \"🔎\", \"🔏\", \"🔐\", \"🔑\", \"🔒\", \"🔓\", \"🔔\", \"🔕\", \"🔖\", \"🔗\", \"🔘\", \"🔙\", \"🔚\", \"🔛\", \"🔜\", \"🔝\", \"🔞\", \"🔟\", \"🔠\", \"🔡\", \"🔢\", \"🔣\", \"🔤\", \"🔥\", \"🔦\", \"🔧\", \"🔨\", \"🔩\", \"🔪\", \"🔫\", \"🔬\", \"🔭\", \"🔮\", \"🔯\", \"🔰\", \"🔱\", \"🔲\", \"🔳\", \"🔴\", \"🔵\", \"🔶\", \"🔷\", \"🔸\", \"🔹\", \"🔺\", \"🔻\", \"🔼\", \"🔽\", \"🕉️\", \"🕊️\", \"🕋\", \"🕌\", \"🕍\", \"🕎\", \"🕐\", \"🕑\", \"🕒\", \"🕓\", \"🕔\", \"🕕\", \"🕖\", \"🕗\", \"🕘\", \"🕙\", \"🕚\", \"🕛\", \"🕜\", \"🕝\", \"🕞\", \"🕟\", \"🕠\", \"🕡\", \"🕢\", \"🕣\", \"🕤\", \"🕥\", \"🕦\", \"🕧\", \"🕯️\", \"🕰️\", \"🕳️\", \"🕴🏻‍♀️\", \"🕴🏻‍♂️\", \"🕴🏻\", \"🕴🏼‍♀️\", \"🕴🏼‍♂️\", \"🕴🏼\", \"🕴🏽‍♀️\", \"🕴🏽‍♂️\", \"🕴🏽\", \"🕴🏾‍♀️\", \"🕴🏾‍♂️\", \"🕴🏾\", \"🕴🏿‍♀️\", \"🕴🏿‍♂️\", \"🕴🏿\", \"🕴️‍♀️\", \"🕴️‍♂️\", \"🕴️\", \"🕵🏻‍♀️\", \"🕵🏻‍♂️\", \"🕵🏻\", \"🕵🏼‍♀️\", \"🕵🏼‍♂️\", \"🕵🏼\", \"🕵🏽‍♀️\", \"🕵🏽‍♂️\", \"🕵🏽\", \"🕵🏾‍♀️\", \"🕵🏾‍♂️\", \"🕵🏾\", \"🕵🏿‍♀️\", \"🕵🏿‍♂️\", \"🕵🏿\", \"🕵️‍♀️\", \"🕵️‍♂️\", \"🕵️\", \"🕶️\", \"🕷️\", \"🕸️\", \"🕹️\", \"🕺🏻\", \"🕺🏼\", \"🕺🏽\", \"🕺🏾\", \"🕺🏿\", \"🕺\", \"🖇️\", \"🖊️\", \"🖋️\", \"🖌️\", \"🖍️\", \"🖐🏻\", \"🖐🏼\", \"🖐🏽\", \"🖐🏾\", \"🖐🏿\", \"🖐️\", \"🖕🏻\", \"🖕🏼\", \"🖕🏽\", \"🖕🏾\", \"🖕🏿\", \"🖕\", \"🖖🏻\", \"🖖🏼\", \"🖖🏽\", \"🖖🏾\", \"🖖🏿\", \"🖖\", \"🖤\", \"🖥️\", \"🖨️\", \"🖱️\", \"🖲️\", \"🖼️\", \"🗂️\", \"🗃️\", \"🗄️\", \"🗑️\", \"🗒️\", \"🗓️\", \"🗜️\", \"🗝️\", \"🗞️\", \"🗡️\", \"🗣️\", \"🗨️\", \"🗯️\", \"🗳️\", \"🗺️\", \"🗻\", \"🗼\", \"🗽\", \"🗾\", \"🗿\", \"😀\", \"😁\", \"😂\", \"😃\", \"😄\", \"😅\", \"😆\", \"😇\", \"😈\", \"😉\", \"😊\", \"😋\", \"😌\", \"😍\", \"😎\", \"😏\", \"😐\", \"😑\", \"😒\", \"😓\", \"😔\", \"😕\", \"😖\", \"😗\", \"😘\", \"😙\", \"😚\", \"😛\", \"😜\", \"😝\", \"😞\", \"😟\", \"😠\", \"😡\", \"😢\", \"😣\", \"😤\", \"😥\", \"😦\", \"😧\", \"😨\", \"😩\", \"😪\", \"😫\", \"😬\", \"😭\", \"😮\", \"😯\", \"😰\", \"😱\", \"😲\", \"😳\", \"😴\", \"😵\", \"😶\", \"😷\", \"😸\", \"😹\", \"😺\", \"😻\", \"😼\", \"😽\", \"😾\", \"😿\", \"🙀\", \"🙁\", \"🙂\", \"🙃\", \"🙄\", \"🙅🏻‍♀️\", \"🙅🏻‍♂️\", \"🙅🏻\", \"🙅🏼‍♀️\", \"🙅🏼‍♂️\", \"🙅🏼\", \"🙅🏽‍♀️\", \"🙅🏽‍♂️\", \"🙅🏽\", \"🙅🏾‍♀️\", \"🙅🏾‍♂️\", \"🙅🏾\", \"🙅🏿‍♀️\", \"🙅🏿‍♂️\", \"🙅🏿\", \"🙅‍♀️\", \"🙅‍♂️\", \"🙅\", \"🙆🏻‍♀️\", \"🙆🏻‍♂️\", \"🙆🏻\", \"🙆🏼‍♀️\", \"🙆🏼‍♂️\", \"🙆🏼\", \"🙆🏽‍♀️\", \"🙆🏽‍♂️\", \"🙆🏽\", \"🙆🏾‍♀️\", \"🙆🏾‍♂️\", \"🙆🏾\", \"🙆🏿‍♀️\", \"🙆🏿‍♂️\", \"🙆🏿\", \"🙆‍♀️\", \"🙆‍♂️\", \"🙆\", \"🙇🏻‍♀️\", \"🙇🏻‍♂️\", \"🙇🏻\", \"🙇🏼‍♀️\", \"🙇🏼‍♂️\", \"🙇🏼\", \"🙇🏽‍♀️\", \"🙇🏽‍♂️\", \"🙇🏽\", \"🙇🏾‍♀️\", \"🙇🏾‍♂️\", \"🙇🏾\", \"🙇🏿‍♀️\", \"🙇🏿‍♂️\", \"🙇🏿\", \"🙇‍♀️\", \"🙇‍♂️\", \"🙇\", \"🙈\", \"🙉\", \"🙊\", \"🙋🏻‍♀️\", \"🙋🏻‍♂️\", \"🙋🏻\", \"🙋🏼‍♀️\", \"🙋🏼‍♂️\", \"🙋🏼\", \"🙋🏽‍♀️\", \"🙋🏽‍♂️\", \"🙋🏽\", \"🙋🏾‍♀️\", \"🙋🏾‍♂️\", \"🙋🏾\", \"🙋🏿‍♀️\", \"🙋🏿‍♂️\", \"🙋🏿\", \"🙋‍♀️\", \"🙋‍♂️\", \"🙋\", \"🙌🏻\", \"🙌🏼\", \"🙌🏽\", \"🙌🏾\", \"🙌🏿\", \"🙌\", \"🙍🏻‍♀️\", \"🙍🏻‍♂️\", \"🙍🏻\", \"🙍🏼‍♀️\", \"🙍🏼‍♂️\", \"🙍🏼\", \"🙍🏽‍♀️\", \"🙍🏽‍♂️\", \"🙍🏽\", \"🙍🏾‍♀️\", \"🙍🏾‍♂️\", \"🙍🏾\", \"🙍🏿‍♀️\", \"🙍🏿‍♂️\", \"🙍🏿\", \"🙍‍♀️\", \"🙍‍♂️\", \"🙍\", \"🙎🏻‍♀️\", \"🙎🏻‍♂️\", \"🙎🏻\", \"🙎🏼‍♀️\", \"🙎🏼‍♂️\", \"🙎🏼\", \"🙎🏽‍♀️\", \"🙎🏽‍♂️\", \"🙎🏽\", \"🙎🏾‍♀️\", \"🙎🏾‍♂️\", \"🙎🏾\", \"🙎🏿‍♀️\", \"🙎🏿‍♂️\", \"🙎🏿\", \"🙎‍♀️\", \"🙎‍♂️\", \"🙎\", \"🙏🏻\", \"🙏🏼\", \"🙏🏽\", \"🙏🏾\", \"🙏🏿\", \"🙏\", \"🚀\", \"🚁\", \"🚂\", \"🚃\", \"🚄\", \"🚅\", \"🚆\", \"🚇\", \"🚈\", \"🚉\", \"🚊\", \"🚋\", \"🚌\", \"🚍\", \"🚎\", \"🚏\", \"🚐\", \"🚑\", \"🚒\", \"🚓\", \"🚔\", \"🚕\", \"🚖\", \"🚗\", \"🚘\", \"🚙\", \"🚚\", \"🚛\", \"🚜\", \"🚝\", \"🚞\", \"🚟\", \"🚠\", \"🚡\", \"🚢\", \"🚣🏻‍♀️\", \"🚣🏻‍♂️\", \"🚣🏻\", \"🚣🏼‍♀️\", \"🚣🏼‍♂️\", \"🚣🏼\", \"🚣🏽‍♀️\", \"🚣🏽‍♂️\", \"🚣🏽\", \"🚣🏾‍♀️\", \"🚣🏾‍♂️\", \"🚣🏾\", \"🚣🏿‍♀️\", \"🚣🏿‍♂️\", \"🚣🏿\", \"🚣‍♀️\", \"🚣‍♂️\", \"🚣\", \"🚤\", \"🚥\", \"🚦\", \"🚧\", \"🚨\", \"🚩\", \"🚪\", \"🚫\", \"🚬\", \"🚭\", \"🚮\", \"🚯\", \"🚰\", \"🚱\", \"🚲\", \"🚳\", \"🚴🏻‍♀️\", \"🚴🏻‍♂️\", \"🚴🏻\", \"🚴🏼‍♀️\", \"🚴🏼‍♂️\", \"🚴🏼\", \"🚴🏽‍♀️\", \"🚴🏽‍♂️\", \"🚴🏽\", \"🚴🏾‍♀️\", \"🚴🏾‍♂️\", \"🚴🏾\", \"🚴🏿‍♀️\", \"🚴🏿‍♂️\", \"🚴🏿\", \"🚴‍♀️\", \"🚴‍♂️\", \"🚴\", \"🚵🏻‍♀️\", \"🚵🏻‍♂️\", \"🚵🏻\", \"🚵🏼‍♀️\", \"🚵🏼‍♂️\", \"🚵🏼\", \"🚵🏽‍♀️\", \"🚵🏽‍♂️\", \"🚵🏽\", \"🚵🏾‍♀️\", \"🚵🏾‍♂️\", \"🚵🏾\", \"🚵🏿‍♀️\", \"🚵🏿‍♂️\", \"🚵🏿\", \"🚵‍♀️\", \"🚵‍♂️\", \"🚵\", \"🚶🏻‍♀️\", \"🚶🏻‍♂️\", \"🚶🏻\", \"🚶🏼‍♀️\", \"🚶🏼‍♂️\", \"🚶🏼\", \"🚶🏽‍♀️\", \"🚶🏽‍♂️\", \"🚶🏽\", \"🚶🏾‍♀️\", \"🚶🏾‍♂️\", \"🚶🏾\", \"🚶🏿‍♀️\", \"🚶🏿‍♂️\", \"🚶🏿\", \"🚶‍♀️\", \"🚶‍♂️\", \"🚶\", \"🚷\", \"🚸\", \"🚹\", \"🚺\", \"🚻\", \"🚼\", \"🚽\", \"🚾\", \"🚿\", \"🛀🏻\", \"🛀🏼\", \"🛀🏽\", \"🛀🏾\", \"🛀🏿\", \"🛀\", \"🛁\", \"🛂\", \"🛃\", \"🛄\", \"🛅\", \"🛋️\", \"🛌🏻\", \"🛌🏼\", \"🛌🏽\", \"🛌🏾\", \"🛌🏿\", \"🛌\", \"🛍️\", \"🛎️\", \"🛏️\", \"🛐\", \"🛑\", \"🛒\", \"🛕\", \"🛠️\", \"🛡️\", \"🛢️\", \"🛣️\", \"🛤️\", \"🛥️\", \"🛩️\", \"🛫\", \"🛬\", \"🛰️\", \"🛳️\", \"🛴\", \"🛵\", \"🛶\", \"🛷\", \"🛸\", \"🛹\", \"🛺\", \"🟠\", \"🟡\", \"🟢\", \"🟣\", \"🟤\", \"🟥\", \"🟦\", \"🟧\", \"🟨\", \"🟩\", \"🟪\", \"🟫\", \"🤍\", \"🤎\", \"🤏🏻\", \"🤏🏼\", \"🤏🏽\", \"🤏🏾\", \"🤏🏿\", \"🤏\", \"🤐\", \"🤑\", \"🤒\", \"🤓\", \"🤔\", \"🤕\", \"🤖\", \"🤗\", \"🤘🏻\", \"🤘🏼\", \"🤘🏽\", \"🤘🏾\", \"🤘🏿\", \"🤘\", \"🤙🏻\", \"🤙🏼\", \"🤙🏽\", \"🤙🏾\", \"🤙🏿\", \"🤙\", \"🤚🏻\", \"🤚🏼\", \"🤚🏽\", \"🤚🏾\", \"🤚🏿\", \"🤚\", \"🤛🏻\", \"🤛🏼\", \"🤛🏽\", \"🤛🏾\", \"🤛🏿\", \"🤛\", \"🤜🏻\", \"🤜🏼\", \"🤜🏽\", \"🤜🏾\", \"🤜🏿\", \"🤜\", \"🤝\", \"🤞🏻\", \"🤞🏼\", \"🤞🏽\", \"🤞🏾\", \"🤞🏿\", \"🤞\", \"🤟🏻\", \"🤟🏼\", \"🤟🏽\", \"🤟🏾\", \"🤟🏿\", \"🤟\", \"🤠\", \"🤡\", \"🤢\", \"🤣\", \"🤤\", \"🤥\", \"🤦🏻‍♀️\", \"🤦🏻‍♂️\", \"🤦🏻\", \"🤦🏼‍♀️\", \"🤦🏼‍♂️\", \"🤦🏼\", \"🤦🏽‍♀️\", \"🤦🏽‍♂️\", \"🤦🏽\", \"🤦🏾‍♀️\", \"🤦🏾‍♂️\", \"🤦🏾\", \"🤦🏿‍♀️\", \"🤦🏿‍♂️\", \"🤦🏿\", \"🤦‍♀️\", \"🤦‍♂️\", \"🤦\", \"🤧\", \"🤨\", \"🤩\", \"🤪\", \"🤫\", \"🤬\", \"🤭\", \"🤮\", \"🤯\", \"🤰🏻\", \"🤰🏼\", \"🤰🏽\", \"🤰🏾\", \"🤰🏿\", \"🤰\", \"🤱🏻\", \"🤱🏼\", \"🤱🏽\", \"🤱🏾\", \"🤱🏿\", \"🤱\", \"🤲🏻\", \"🤲🏼\", \"🤲🏽\", \"🤲🏾\", \"🤲🏿\", \"🤲\", \"🤳🏻\", \"🤳🏼\", \"🤳🏽\", \"🤳🏾\", \"🤳🏿\", \"🤳\", \"🤴🏻\", \"🤴🏼\", \"🤴🏽\", \"🤴🏾\", \"🤴🏿\", \"🤴\", \"🤵🏻‍♀️\", \"🤵🏻‍♂️\", \"🤵🏻\", \"🤵🏼‍♀️\", \"🤵🏼‍♂️\", \"🤵🏼\", \"🤵🏽‍♀️\", \"🤵🏽‍♂️\", \"🤵🏽\", \"🤵🏾‍♀️\", \"🤵🏾‍♂️\", \"🤵🏾\", \"🤵🏿‍♀️\", \"🤵🏿‍♂️\", \"🤵🏿\", \"🤵‍♀️\", \"🤵‍♂️\", \"🤵\", \"🤶🏻\", \"🤶🏼\", \"🤶🏽\", \"🤶🏾\", \"🤶🏿\", \"🤶\", \"🤷🏻‍♀️\", \"🤷🏻‍♂️\", \"🤷🏻\", \"🤷🏼‍♀️\", \"🤷🏼‍♂️\", \"🤷🏼\", \"🤷🏽‍♀️\", \"🤷🏽‍♂️\", \"🤷🏽\", \"🤷🏾‍♀️\", \"🤷🏾‍♂️\", \"🤷🏾\", \"🤷🏿‍♀️\", \"🤷🏿‍♂️\", \"🤷🏿\", \"🤷‍♀️\", \"🤷‍♂️\", \"🤷\", \"🤸🏻‍♀️\", \"🤸🏻‍♂️\", \"🤸🏻\", \"🤸🏼‍♀️\", \"🤸🏼‍♂️\", \"🤸🏼\", \"🤸🏽‍♀️\", \"🤸🏽‍♂️\", \"🤸🏽\", \"🤸🏾‍♀️\", \"🤸🏾‍♂️\", \"🤸🏾\", \"🤸🏿‍♀️\", \"🤸🏿‍♂️\", \"🤸🏿\", \"🤸‍♀️\", \"🤸‍♂️\", \"🤸\", \"🤹🏻‍♀️\", \"🤹🏻‍♂️\", \"🤹🏻\", \"🤹🏼‍♀️\", \"🤹🏼‍♂️\", \"🤹🏼\", \"🤹🏽‍♀️\", \"🤹🏽‍♂️\", \"🤹🏽\", \"🤹🏾‍♀️\", \"🤹🏾‍♂️\", \"🤹🏾\", \"🤹🏿‍♀️\", \"🤹🏿‍♂️\", \"🤹🏿\", \"🤹‍♀️\", \"🤹‍♂️\", \"🤹\", \"🤺\", \"🤼‍♀️\", \"🤼‍♂️\", \"🤼\", \"🤽🏻‍♀️\", \"🤽🏻‍♂️\", \"🤽🏻\", \"🤽🏼‍♀️\", \"🤽🏼‍♂️\", \"🤽🏼\", \"🤽🏽‍♀️\", \"🤽🏽‍♂️\", \"🤽🏽\", \"🤽🏾‍♀️\", \"🤽🏾‍♂️\", \"🤽🏾\", \"🤽🏿‍♀️\", \"🤽🏿‍♂️\", \"🤽🏿\", \"🤽‍♀️\", \"🤽‍♂️\", \"🤽\", \"🤾🏻‍♀️\", \"🤾🏻‍♂️\", \"🤾🏻\", \"🤾🏼‍♀️\", \"🤾🏼‍♂️\", \"🤾🏼\", \"🤾🏽‍♀️\", \"🤾🏽‍♂️\", \"🤾🏽\", \"🤾🏾‍♀️\", \"🤾🏾‍♂️\", \"🤾🏾\", \"🤾🏿‍♀️\", \"🤾🏿‍♂️\", \"🤾🏿\", \"🤾‍♀️\", \"🤾‍♂️\", \"🤾\", \"🤿\", \"🥀\", \"🥁\", \"🥂\", \"🥃\", \"🥄\", \"🥅\", \"🥇\", \"🥈\", \"🥉\", \"🥊\", \"🥋\", \"🥌\", \"🥍\", \"🥎\", \"🥏\", \"🥐\", \"🥑\", \"🥒\", \"🥓\", \"🥔\", \"🥕\", \"🥖\", \"🥗\", \"🥘\", \"🥙\", \"🥚\", \"🥛\", \"🥜\", \"🥝\", \"🥞\", \"🥟\", \"🥠\", \"🥡\", \"🥢\", \"🥣\", \"🥤\", \"🥥\", \"🥦\", \"🥧\", \"🥨\", \"🥩\", \"🥪\", \"🥫\", \"🥬\", \"🥭\", \"🥮\", \"🥯\", \"🥰\", \"🥱\", \"🥳\", \"🥴\", \"🥵\", \"🥶\", \"🥺\", \"🥻\", \"🥼\", \"🥽\", \"🥾\", \"🥿\", \"🦀\", \"🦁\", \"🦂\", \"🦃\", \"🦄\", \"🦅\", \"🦆\", \"🦇\", \"🦈\", \"🦉\", \"🦊\", \"🦋\", \"🦌\", \"🦍\", \"🦎\", \"🦏\", \"🦐\", \"🦑\", \"🦒\", \"🦓\", \"🦔\", \"🦕\", \"🦖\", \"🦗\", \"🦘\", \"🦙\", \"🦚\", \"🦛\", \"🦜\", \"🦝\", \"🦞\", \"🦟\", \"🦠\", \"🦡\", \"🦢\", \"🦥\", \"🦦\", \"🦧\", \"🦨\", \"🦩\", \"🦪\", \"🦮\", \"🦯\", \"🦰\", \"🦱\", \"🦲\", \"🦳\", \"🦴\", \"🦵🏻\", \"🦵🏼\", \"🦵🏽\", \"🦵🏾\", \"🦵🏿\", \"🦵\", \"🦶🏻\", \"🦶🏼\", \"🦶🏽\", \"🦶🏾\", \"🦶🏿\", \"🦶\", \"🦷\", \"🦸🏻‍♀️\", \"🦸🏻‍♂️\", \"🦸🏻\", \"🦸🏼‍♀️\", \"🦸🏼‍♂️\", \"🦸🏼\", \"🦸🏽‍♀️\", \"🦸🏽‍♂️\", \"🦸🏽\", \"🦸🏾‍♀️\", \"🦸🏾‍♂️\", \"🦸🏾\", \"🦸🏿‍♀️\", \"🦸🏿‍♂️\", \"🦸🏿\", \"🦸‍♀️\", \"🦸‍♂️\", \"🦸\", \"🦹🏻‍♀️\", \"🦹🏻‍♂️\", \"🦹🏻\", \"🦹🏼‍♀️\", \"🦹🏼‍♂️\", \"🦹🏼\", \"🦹🏽‍♀️\", \"🦹🏽‍♂️\", \"🦹🏽\", \"🦹🏾‍♀️\", \"🦹🏾‍♂️\", \"🦹🏾\", \"🦹🏿‍♀️\", \"🦹🏿‍♂️\", \"🦹🏿\", \"🦹‍♀️\", \"🦹‍♂️\", \"🦹\", \"🦺\", \"🦻🏻\", \"🦻🏼\", \"🦻🏽\", \"🦻🏾\", \"🦻🏿\", \"🦻\", \"🦼\", \"🦽\", \"🦾\", \"🦿\", \"🧀\", \"🧁\", \"🧂\", \"🧃\", \"🧄\", \"🧅\", \"🧆\", \"🧇\", \"🧈\", \"🧉\", \"🧊\", \"🧍🏻‍♀️\", \"🧍🏻‍♂️\", \"🧍🏻\", \"🧍🏼‍♀️\", \"🧍🏼‍♂️\", \"🧍🏼\", \"🧍🏽‍♀️\", \"🧍🏽‍♂️\", \"🧍🏽\", \"🧍🏾‍♀️\", \"🧍🏾‍♂️\", \"🧍🏾\", \"🧍🏿‍♀️\", \"🧍🏿‍♂️\", \"🧍🏿\", \"🧍‍♀️\", \"🧍‍♂️\", \"🧍\", \"🧎🏻‍♀️\", \"🧎🏻‍♂️\", \"🧎🏻\", \"🧎🏼‍♀️\", \"🧎🏼‍♂️\", \"🧎🏼\", \"🧎🏽‍♀️\", \"🧎🏽‍♂️\", \"🧎🏽\", \"🧎🏾‍♀️\", \"🧎🏾‍♂️\", \"🧎🏾\", \"🧎🏿‍♀️\", \"🧎🏿‍♂️\", \"🧎🏿\", \"🧎‍♀️\", \"🧎‍♂️\", \"🧎\", \"🧏🏻‍♀️\", \"🧏🏻‍♂️\", \"🧏🏻\", \"🧏🏼‍♀️\", \"🧏🏼‍♂️\", \"🧏🏼\", \"🧏🏽‍♀️\", \"🧏🏽‍♂️\", \"🧏🏽\", \"🧏🏾‍♀️\", \"🧏🏾‍♂️\", \"🧏🏾\", \"🧏🏿‍♀️\", \"🧏🏿‍♂️\", \"🧏🏿\", \"🧏‍♀️\", \"🧏‍♂️\", \"🧏\", \"🧐\", \"🧑🏻‍🤝‍🧑🏻\", \"🧑🏻\", \"🧑🏼‍🤝‍🧑🏻\", \"🧑🏼‍🤝‍🧑🏼\", \"🧑🏼\", \"🧑🏽‍🤝‍🧑🏻\", \"🧑🏽‍🤝‍🧑🏼\", \"🧑🏽‍🤝‍🧑🏽\", \"🧑🏽\", \"🧑🏾‍🤝‍🧑🏻\", \"🧑🏾‍🤝‍🧑🏼\", \"🧑🏾‍🤝‍🧑🏽\", \"🧑🏾‍🤝‍🧑🏾\", \"🧑🏾\", \"🧑🏿‍🤝‍🧑🏻\", \"🧑🏿‍🤝‍🧑🏼\", \"🧑🏿‍🤝‍🧑🏽\", \"🧑🏿‍🤝‍🧑🏾\", \"🧑🏿‍🤝‍🧑🏿\", \"🧑🏿\", \"🧑‍🤝‍🧑\", \"🧑\", \"🧒🏻\", \"🧒🏼\", \"🧒🏽\", \"🧒🏾\", \"🧒🏿\", \"🧒\", \"🧓🏻\", \"🧓🏼\", \"🧓🏽\", \"🧓🏾\", \"🧓🏿\", \"🧓\", \"🧔🏻\", \"🧔🏼\", \"🧔🏽\", \"🧔🏾\", \"🧔🏿\", \"🧔\", \"🧕🏻\", \"🧕🏼\", \"🧕🏽\", \"🧕🏾\", \"🧕🏿\", \"🧕\", \"🧖🏻‍♀️\", \"🧖🏻‍♂️\", \"🧖🏻\", \"🧖🏼‍♀️\", \"🧖🏼‍♂️\", \"🧖🏼\", \"🧖🏽‍♀️\", \"🧖🏽‍♂️\", \"🧖🏽\", \"🧖🏾‍♀️\", \"🧖🏾‍♂️\", \"🧖🏾\", \"🧖🏿‍♀️\", \"🧖🏿‍♂️\", \"🧖🏿\", \"🧖‍♀️\", \"🧖‍♂️\", \"🧖\", \"🧗🏻‍♀️\", \"🧗🏻‍♂️\", \"🧗🏻\", \"🧗🏼‍♀️\", \"🧗🏼‍♂️\", \"🧗🏼\", \"🧗🏽‍♀️\", \"🧗🏽‍♂️\", \"🧗🏽\", \"🧗🏾‍♀️\", \"🧗🏾‍♂️\", \"🧗🏾\", \"🧗🏿‍♀️\", \"🧗🏿‍♂️\", \"🧗🏿\", \"🧗‍♀️\", \"🧗‍♂️\", \"🧗\", \"🧘🏻‍♀️\", \"🧘🏻‍♂️\", \"🧘🏻\", \"🧘🏼‍♀️\", \"🧘🏼‍♂️\", \"🧘🏼\", \"🧘🏽‍♀️\", \"🧘🏽‍♂️\", \"🧘🏽\", \"🧘🏾‍♀️\", \"🧘🏾‍♂️\", \"🧘🏾\", \"🧘🏿‍♀️\", \"🧘🏿‍♂️\", \"🧘🏿\", \"🧘‍♀️\", \"🧘‍♂️\", \"🧘\", \"🧙🏻‍♀️\", \"🧙🏻‍♂️\", \"🧙🏻\", \"🧙🏼‍♀️\", \"🧙🏼‍♂️\", \"🧙🏼\", \"🧙🏽‍♀️\", \"🧙🏽‍♂️\", \"🧙🏽\", \"🧙🏾‍♀️\", \"🧙🏾‍♂️\", \"🧙🏾\", \"🧙🏿‍♀️\", \"🧙🏿‍♂️\", \"🧙🏿\", \"🧙‍♀️\", \"🧙‍♂️\", \"🧙\", \"🧚🏻‍♀️\", \"🧚🏻‍♂️\", \"🧚🏻\", \"🧚🏼‍♀️\", \"🧚🏼‍♂️\", \"🧚🏼\", \"🧚🏽‍♀️\", \"🧚🏽‍♂️\", \"🧚🏽\", \"🧚🏾‍♀️\", \"🧚🏾‍♂️\", \"🧚🏾\", \"🧚🏿‍♀️\", \"🧚🏿‍♂️\", \"🧚🏿\", \"🧚‍♀️\", \"🧚‍♂️\", \"🧚\", \"🧛🏻‍♀️\", \"🧛🏻‍♂️\", \"🧛🏻\", \"🧛🏼‍♀️\", \"🧛🏼‍♂️\", \"🧛🏼\", \"🧛🏽‍♀️\", \"🧛🏽‍♂️\", \"🧛🏽\", \"🧛🏾‍♀️\", \"🧛🏾‍♂️\", \"🧛🏾\", \"🧛🏿‍♀️\", \"🧛🏿‍♂️\", \"🧛🏿\", \"🧛‍♀️\", \"🧛‍♂️\", \"🧛\", \"🧜🏻‍♀️\", \"🧜🏻‍♂️\", \"🧜🏻\", \"🧜🏼‍♀️\", \"🧜🏼‍♂️\", \"🧜🏼\", \"🧜🏽‍♀️\", \"🧜🏽‍♂️\", \"🧜🏽\", \"🧜🏾‍♀️\", \"🧜🏾‍♂️\", \"🧜🏾\", \"🧜🏿‍♀️\", \"🧜🏿‍♂️\", \"🧜🏿\", \"🧜‍♀️\", \"🧜‍♂️\", \"🧜\", \"🧝🏻‍♀️\", \"🧝🏻‍♂️\", \"🧝🏻\", \"🧝🏼‍♀️\", \"🧝🏼‍♂️\", \"🧝🏼\", \"🧝🏽‍♀️\", \"🧝🏽‍♂️\", \"🧝🏽\", \"🧝🏾‍♀️\", \"🧝🏾‍♂️\", \"🧝🏾\", \"🧝🏿‍♀️\", \"🧝🏿‍♂️\", \"🧝🏿\", \"🧝‍♀️\", \"🧝‍♂️\", \"🧝\", \"🧞‍♀️\", \"🧞‍♂️\", \"🧞\", \"🧟‍♀️\", \"🧟‍♂️\", \"🧟\", \"🧠\", \"🧡\", \"🧢\", \"🧣\", \"🧤\", \"🧥\", \"🧦\", \"🧧\", \"🧨\", \"🧩\", \"🧪\", \"🧫\", \"🧬\", \"🧭\", \"🧮\", \"🧯\", \"🧰\", \"🧱\", \"🧲\", \"🧳\", \"🧴\", \"🧵\", \"🧶\", \"🧷\", \"🧸\", \"🧹\", \"🧺\", \"🧻\", \"🧼\", \"🧽\", \"🧾\", \"🧿\", \"🩰\", \"🩱\", \"🩲\", \"🩳\", \"🩸\", \"🩹\", \"🩺\", \"🪀\", \"🪁\", \"🪂\", \"🪐\", \"🪑\", \"🪒\", \"🪓\", \"🪔\", \"🪕\", \"‼️\", \"⁉️\", \"™️\", \"ℹ️\", \"↔️\", \"↕️\", \"↖️\", \"↗️\", \"↘️\", \"↙️\", \"↩️\", \"↪️\", \"#⃣\", \"⌚️\", \"⌛️\", \"⌨️\", \"⏏️\", \"⏩\", \"⏪\", \"⏫\", \"⏬\", \"⏭️\", \"⏮️\", \"⏯️\", \"⏰\", \"⏱️\", \"⏲️\", \"⏳\", \"⏸️\", \"⏹️\", \"⏺️\", \"Ⓜ️\", \"▪️\", \"▫️\", \"▶️\", \"◀️\", \"◻️\", \"◼️\", \"◽️\", \"◾️\", \"☀️\", \"☁️\", \"☂️\", \"☃️\", \"☄️\", \"☎️\", \"☑️\", \"☔️\", \"☕️\", \"☘️\", \"☝🏻\", \"☝🏼\", \"☝🏽\", \"☝🏾\", \"☝🏿\", \"☝️\", \"☠️\", \"☢️\", \"☣️\", \"☦️\", \"☪️\", \"☮️\", \"☯️\", \"☸️\", \"☹️\", \"☺️\", \"♀️\", \"♂️\", \"♈️\", \"♉️\", \"♊️\", \"♋️\", \"♌️\", \"♍️\", \"♎️\", \"♏️\", \"♐️\", \"♑️\", \"♒️\", \"♓️\", \"♟️\", \"♠️\", \"♣️\", \"♥️\", \"♦️\", \"♨️\", \"♻️\", \"♾\", \"♿️\", \"⚒️\", \"⚓️\", \"⚔️\", \"⚕️\", \"⚖️\", \"⚗️\", \"⚙️\", \"⚛️\", \"⚜️\", \"⚠️\", \"⚡️\", \"⚪️\", \"⚫️\", \"⚰️\", \"⚱️\", \"⚽️\", \"⚾️\", \"⛄️\", \"⛅️\", \"⛈️\", \"⛎\", \"⛏️\", \"⛑️\", \"⛓️\", \"⛔️\", \"⛩️\", \"⛪️\", \"⛰️\", \"⛱️\", \"⛲️\", \"⛳️\", \"⛴️\", \"⛵️\", \"⛷🏻\", \"⛷🏼\", \"⛷🏽\", \"⛷🏾\", \"⛷🏿\", \"⛷️\", \"⛸️\", \"⛹🏻‍♀️\", \"⛹🏻‍♂️\", \"⛹🏻\", \"⛹🏼‍♀️\", \"⛹🏼‍♂️\", \"⛹🏼\", \"⛹🏽‍♀️\", \"⛹🏽‍♂️\", \"⛹🏽\", \"⛹🏾‍♀️\", \"⛹🏾‍♂️\", \"⛹🏾\", \"⛹🏿‍♀️\", \"⛹🏿‍♂️\", \"⛹🏿\", \"⛹️‍♀️\", \"⛹️‍♂️\", \"⛹️\", \"⛺️\", \"⛽️\", \"✂️\", \"✅\", \"✈️\", \"✉️\", \"✊🏻\", \"✊🏼\", \"✊🏽\", \"✊🏾\", \"✊🏿\", \"✊\", \"✋🏻\", \"✋🏼\", \"✋🏽\", \"✋🏾\", \"✋🏿\", \"✋\", \"✌🏻\", \"✌🏼\", \"✌🏽\", \"✌🏾\", \"✌🏿\", \"✌️\", \"✍🏻\", \"✍🏼\", \"✍🏽\", \"✍🏾\", \"✍🏿\", \"✍️\", \"✏️\", \"✒️\", \"✔️\", \"✖️\", \"✝️\", \"✡️\", \"✨\", \"✳️\", \"✴️\", \"❄️\", \"❇️\", \"❌\", \"❎\", \"❓\", \"❔\", \"❕\", \"❗️\", \"❣️\", \"❤️\", \"➕\", \"➖\", \"➗\", \"➡️\", \"➰\", \"➿\", \"⤴️\", \"⤵️\", \"*⃣\", \"⬅️\", \"⬆️\", \"⬇️\", \"⬛️\", \"⬜️\", \"⭐️\", \"⭕️\", \"0⃣\", \"〰️\", \"〽️\", \"1⃣\", \"2⃣\", \"㊗️\", \"㊙️\", \"3⃣\", \"4⃣\", \"5⃣\", \"6⃣\", \"7⃣\", \"8⃣\", \"9⃣\", \"©️\", \"®️\", \"\"];\n\n//# sourceURL=webpack:///./node_modules/emojis-list/index.js?");

/***/ }),

/***/ "./node_modules/events/events.js":
/*!***************************************!*\
  !*** ./node_modules/events/events.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n  return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\nif (R && typeof R.ownKeys === 'function') {\n  ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n  };\n} else {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target);\n  };\n}\n\nfunction ProcessEmitWarning(warning) {\n  if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n  return value !== value;\n};\n\nfunction EventEmitter() {\n  EventEmitter.init.call(this);\n}\n\nmodule.exports = EventEmitter;\nmodule.exports.once = once; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\n\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n  if (typeof listener !== 'function') {\n    throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n  }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n  enumerable: true,\n  get: function () {\n    return defaultMaxListeners;\n  },\n  set: function (arg) {\n    if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n      throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n    }\n\n    defaultMaxListeners = arg;\n  }\n});\n\nEventEmitter.init = function () {\n  if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n    this._events = Object.create(null);\n    this._eventsCount = 0;\n  }\n\n  this._maxListeners = this._maxListeners || undefined;\n}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n  if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n    throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n  }\n\n  this._maxListeners = n;\n  return this;\n};\n\nfunction _getMaxListeners(that) {\n  if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n  return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n  return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n  var args = [];\n\n  for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n\n  var doError = type === 'error';\n  var events = this._events;\n  if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n  if (doError) {\n    var er;\n    if (args.length > 0) er = args[0];\n\n    if (er instanceof Error) {\n      // Note: The comments on the `throw` lines are intentional, they show\n      // up in Node's output if this results in an unhandled exception.\n      throw er; // Unhandled 'error' event\n    } // At least give some kind of context to the user\n\n\n    var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n    err.context = er;\n    throw err; // Unhandled 'error' event\n  }\n\n  var handler = events[type];\n  if (handler === undefined) return false;\n\n  if (typeof handler === 'function') {\n    ReflectApply(handler, this, args);\n  } else {\n    var len = handler.length;\n    var listeners = arrayClone(handler, len);\n\n    for (var i = 0; i < len; ++i) ReflectApply(listeners[i], this, args);\n  }\n\n  return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n  var m;\n  var events;\n  var existing;\n  checkListener(listener);\n  events = target._events;\n\n  if (events === undefined) {\n    events = target._events = Object.create(null);\n    target._eventsCount = 0;\n  } else {\n    // To avoid recursion in the case that type === \"newListener\"! Before\n    // adding it to the listeners, first emit \"newListener\".\n    if (events.newListener !== undefined) {\n      target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n      // this._events to be assigned to a new object\n\n      events = target._events;\n    }\n\n    existing = events[type];\n  }\n\n  if (existing === undefined) {\n    // Optimize the case of one listener. Don't need the extra array object.\n    existing = events[type] = listener;\n    ++target._eventsCount;\n  } else {\n    if (typeof existing === 'function') {\n      // Adding the second element, need to change to array.\n      existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.\n    } else if (prepend) {\n      existing.unshift(listener);\n    } else {\n      existing.push(listener);\n    } // Check for listener leak\n\n\n    m = _getMaxListeners(target);\n\n    if (m > 0 && existing.length > m && !existing.warned) {\n      existing.warned = true; // No error code for this since it is a Warning\n      // eslint-disable-next-line no-restricted-syntax\n\n      var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n      w.name = 'MaxListenersExceededWarning';\n      w.emitter = target;\n      w.type = type;\n      w.count = existing.length;\n      ProcessEmitWarning(w);\n    }\n  }\n\n  return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n  return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener = function prependListener(type, listener) {\n  return _addListener(this, type, listener, true);\n};\n\nfunction onceWrapper() {\n  if (!this.fired) {\n    this.target.removeListener(this.type, this.wrapFn);\n    this.fired = true;\n    if (arguments.length === 0) return this.listener.call(this.target);\n    return this.listener.apply(this.target, arguments);\n  }\n}\n\nfunction _onceWrap(target, type, listener) {\n  var state = {\n    fired: false,\n    wrapFn: undefined,\n    target: target,\n    type: type,\n    listener: listener\n  };\n  var wrapped = onceWrapper.bind(state);\n  wrapped.listener = listener;\n  state.wrapFn = wrapped;\n  return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n  checkListener(listener);\n  this.on(type, _onceWrap(this, type, listener));\n  return this;\n};\n\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n  checkListener(listener);\n  this.prependListener(type, _onceWrap(this, type, listener));\n  return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n  var list, events, position, i, originalListener;\n  checkListener(listener);\n  events = this._events;\n  if (events === undefined) return this;\n  list = events[type];\n  if (list === undefined) return this;\n\n  if (list === listener || list.listener === listener) {\n    if (--this._eventsCount === 0) this._events = Object.create(null);else {\n      delete events[type];\n      if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n    }\n  } else if (typeof list !== 'function') {\n    position = -1;\n\n    for (i = list.length - 1; i >= 0; i--) {\n      if (list[i] === listener || list[i].listener === listener) {\n        originalListener = list[i].listener;\n        position = i;\n        break;\n      }\n    }\n\n    if (position < 0) return this;\n    if (position === 0) list.shift();else {\n      spliceOne(list, position);\n    }\n    if (list.length === 1) events[type] = list[0];\n    if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n  }\n\n  return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n  var listeners, events, i;\n  events = this._events;\n  if (events === undefined) return this; // not listening for removeListener, no need to emit\n\n  if (events.removeListener === undefined) {\n    if (arguments.length === 0) {\n      this._events = Object.create(null);\n      this._eventsCount = 0;\n    } else if (events[type] !== undefined) {\n      if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n    }\n\n    return this;\n  } // emit removeListener for all listeners on all events\n\n\n  if (arguments.length === 0) {\n    var keys = Object.keys(events);\n    var key;\n\n    for (i = 0; i < keys.length; ++i) {\n      key = keys[i];\n      if (key === 'removeListener') continue;\n      this.removeAllListeners(key);\n    }\n\n    this.removeAllListeners('removeListener');\n    this._events = Object.create(null);\n    this._eventsCount = 0;\n    return this;\n  }\n\n  listeners = events[type];\n\n  if (typeof listeners === 'function') {\n    this.removeListener(type, listeners);\n  } else if (listeners !== undefined) {\n    // LIFO order\n    for (i = listeners.length - 1; i >= 0; i--) {\n      this.removeListener(type, listeners[i]);\n    }\n  }\n\n  return this;\n};\n\nfunction _listeners(target, type, unwrap) {\n  var events = target._events;\n  if (events === undefined) return [];\n  var evlistener = events[type];\n  if (evlistener === undefined) return [];\n  if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n  return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n  return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n  return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function (emitter, type) {\n  if (typeof emitter.listenerCount === 'function') {\n    return emitter.listenerCount(type);\n  } else {\n    return listenerCount.call(emitter, type);\n  }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\n\nfunction listenerCount(type) {\n  var events = this._events;\n\n  if (events !== undefined) {\n    var evlistener = events[type];\n\n    if (typeof evlistener === 'function') {\n      return 1;\n    } else if (evlistener !== undefined) {\n      return evlistener.length;\n    }\n  }\n\n  return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n  return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n  var copy = new Array(n);\n\n  for (var i = 0; i < n; ++i) copy[i] = arr[i];\n\n  return copy;\n}\n\nfunction spliceOne(list, index) {\n  for (; index + 1 < list.length; index++) list[index] = list[index + 1];\n\n  list.pop();\n}\n\nfunction unwrapListeners(arr) {\n  var ret = new Array(arr.length);\n\n  for (var i = 0; i < ret.length; ++i) {\n    ret[i] = arr[i].listener || arr[i];\n  }\n\n  return ret;\n}\n\nfunction once(emitter, name) {\n  return new Promise(function (resolve, reject) {\n    function errorListener(err) {\n      emitter.removeListener(name, resolver);\n      reject(err);\n    }\n\n    function resolver() {\n      if (typeof emitter.removeListener === 'function') {\n        emitter.removeListener('error', errorListener);\n      }\n\n      resolve([].slice.call(arguments));\n    }\n\n    ;\n    eventTargetAgnosticAddListener(emitter, name, resolver, {\n      once: true\n    });\n\n    if (name !== 'error') {\n      addErrorHandlerIfEventEmitter(emitter, errorListener, {\n        once: true\n      });\n    }\n  });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n  if (typeof emitter.on === 'function') {\n    eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n  }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n  if (typeof emitter.on === 'function') {\n    if (flags.once) {\n      emitter.once(name, listener);\n    } else {\n      emitter.on(name, listener);\n    }\n  } else if (typeof emitter.addEventListener === 'function') {\n    // EventTarget does not have `error` event semantics like Node\n    // EventEmitters, we do not listen for `error` events here.\n    emitter.addEventListener(name, function wrapListener(arg) {\n      // IE does not have builtin `{ once: true }` support so we\n      // have to do it manually.\n      if (flags.once) {\n        emitter.removeEventListener(name, wrapListener);\n      }\n\n      listener(arg);\n    });\n  } else {\n    throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n  }\n}\n\n//# sourceURL=webpack:///./node_modules/events/events.js?");

/***/ }),

/***/ "./node_modules/evp_bytestokey/index.js":
/*!**********************************************!*\
  !*** ./node_modules/evp_bytestokey/index.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar MD5 = __webpack_require__(/*! md5.js */ \"./node_modules/md5.js/index.js\");\n/* eslint-disable camelcase */\n\n\nfunction EVP_BytesToKey(password, salt, keyBits, ivLen) {\n  if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary');\n\n  if (salt) {\n    if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary');\n    if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length');\n  }\n\n  var keyLen = keyBits / 8;\n  var key = Buffer.alloc(keyLen);\n  var iv = Buffer.alloc(ivLen || 0);\n  var tmp = Buffer.alloc(0);\n\n  while (keyLen > 0 || ivLen > 0) {\n    var hash = new MD5();\n    hash.update(tmp);\n    hash.update(password);\n    if (salt) hash.update(salt);\n    tmp = hash.digest();\n    var used = 0;\n\n    if (keyLen > 0) {\n      var keyStart = key.length - keyLen;\n      used = Math.min(keyLen, tmp.length);\n      tmp.copy(key, keyStart, 0, used);\n      keyLen -= used;\n    }\n\n    if (used < tmp.length && ivLen > 0) {\n      var ivStart = iv.length - ivLen;\n      var length = Math.min(ivLen, tmp.length - used);\n      tmp.copy(iv, ivStart, used, used + length);\n      ivLen -= length;\n    }\n  }\n\n  tmp.fill(0);\n  return {\n    key: key,\n    iv: iv\n  };\n}\n\nmodule.exports = EVP_BytesToKey;\n\n//# sourceURL=webpack:///./node_modules/evp_bytestokey/index.js?");

/***/ }),

/***/ "./node_modules/fast-deep-equal/index.js":
/*!***********************************************!*\
  !*** ./node_modules/fast-deep-equal/index.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval(" // do not edit .js files directly - edit src/index.jst\n\nmodule.exports = function equal(a, b) {\n  if (a === b) return true;\n\n  if (a && b && typeof a == 'object' && typeof b == 'object') {\n    if (a.constructor !== b.constructor) return false;\n    var length, i, keys;\n\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length != b.length) return false;\n\n      for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n\n      return true;\n    }\n\n    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) return false;\n\n    for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n    for (i = length; i-- !== 0;) {\n      var key = keys[i];\n      if (!equal(a[key], b[key])) return false;\n    }\n\n    return true;\n  } // true if both NaN, false otherwise\n\n\n  return a !== a && b !== b;\n};\n\n//# sourceURL=webpack:///./node_modules/fast-deep-equal/index.js?");

/***/ }),

/***/ "./node_modules/fast-json-stable-stringify/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/fast-json-stable-stringify/index.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function (data, opts) {\n  if (!opts) opts = {};\n  if (typeof opts === 'function') opts = {\n    cmp: opts\n  };\n  var cycles = typeof opts.cycles === 'boolean' ? opts.cycles : false;\n\n  var cmp = opts.cmp && function (f) {\n    return function (node) {\n      return function (a, b) {\n        var aobj = {\n          key: a,\n          value: node[a]\n        };\n        var bobj = {\n          key: b,\n          value: node[b]\n        };\n        return f(aobj, bobj);\n      };\n    };\n  }(opts.cmp);\n\n  var seen = [];\n  return function stringify(node) {\n    if (node && node.toJSON && typeof node.toJSON === 'function') {\n      node = node.toJSON();\n    }\n\n    if (node === undefined) return;\n    if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n    if (typeof node !== 'object') return JSON.stringify(node);\n    var i, out;\n\n    if (Array.isArray(node)) {\n      out = '[';\n\n      for (i = 0; i < node.length; i++) {\n        if (i) out += ',';\n        out += stringify(node[i]) || 'null';\n      }\n\n      return out + ']';\n    }\n\n    if (node === null) return 'null';\n\n    if (seen.indexOf(node) !== -1) {\n      if (cycles) return JSON.stringify('__cycle__');\n      throw new TypeError('Converting circular structure to JSON');\n    }\n\n    var seenIndex = seen.push(node) - 1;\n    var keys = Object.keys(node).sort(cmp && cmp(node));\n    out = '';\n\n    for (i = 0; i < keys.length; i++) {\n      var key = keys[i];\n      var value = stringify(node[key]);\n      if (!value) continue;\n      if (out) out += ',';\n      out += JSON.stringify(key) + ':' + value;\n    }\n\n    seen.splice(seenIndex, 1);\n    return '{' + out + '}';\n  }(data);\n};\n\n//# sourceURL=webpack:///./node_modules/fast-json-stable-stringify/index.js?");

/***/ }),

/***/ "./node_modules/hash-base/index.js":
/*!*****************************************!*\
  !*** ./node_modules/hash-base/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/hash-base/node_modules/safe-buffer/index.js\").Buffer;\n\nvar Transform = __webpack_require__(/*! readable-stream */ \"./node_modules/hash-base/node_modules/readable-stream/readable-browser.js\").Transform;\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction throwIfNotStringOrBuffer(val, prefix) {\n  if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n    throw new TypeError(prefix + ' must be a string or a buffer');\n  }\n}\n\nfunction HashBase(blockSize) {\n  Transform.call(this);\n  this._block = Buffer.allocUnsafe(blockSize);\n  this._blockSize = blockSize;\n  this._blockOffset = 0;\n  this._length = [0, 0, 0, 0];\n  this._finalized = false;\n}\n\ninherits(HashBase, Transform);\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n  var error = null;\n\n  try {\n    this.update(chunk, encoding);\n  } catch (err) {\n    error = err;\n  }\n\n  callback(error);\n};\n\nHashBase.prototype._flush = function (callback) {\n  var error = null;\n\n  try {\n    this.push(this.digest());\n  } catch (err) {\n    error = err;\n  }\n\n  callback(error);\n};\n\nHashBase.prototype.update = function (data, encoding) {\n  throwIfNotStringOrBuffer(data, 'Data');\n  if (this._finalized) throw new Error('Digest already called');\n  if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding); // consume data\n\n  var block = this._block;\n  var offset = 0;\n\n  while (this._blockOffset + data.length - offset >= this._blockSize) {\n    for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++];\n\n    this._update();\n\n    this._blockOffset = 0;\n  }\n\n  while (offset < data.length) block[this._blockOffset++] = data[offset++]; // update length\n\n\n  for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n    this._length[j] += carry;\n    carry = this._length[j] / 0x0100000000 | 0;\n    if (carry > 0) this._length[j] -= 0x0100000000 * carry;\n  }\n\n  return this;\n};\n\nHashBase.prototype._update = function () {\n  throw new Error('_update is not implemented');\n};\n\nHashBase.prototype.digest = function (encoding) {\n  if (this._finalized) throw new Error('Digest already called');\n  this._finalized = true;\n\n  var digest = this._digest();\n\n  if (encoding !== undefined) digest = digest.toString(encoding); // reset state\n\n  this._block.fill(0);\n\n  this._blockOffset = 0;\n\n  for (var i = 0; i < 4; ++i) this._length[i] = 0;\n\n  return digest;\n};\n\nHashBase.prototype._digest = function () {\n  throw new Error('_digest is not implemented');\n};\n\nmodule.exports = HashBase;\n\n//# sourceURL=webpack:///./node_modules/hash-base/index.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/errors-browser.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/errors-browser.js ***!
  \*******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n  if (!Base) {\n    Base = Error;\n  }\n\n  function getMessage(arg1, arg2, arg3) {\n    if (typeof message === 'string') {\n      return message;\n    } else {\n      return message(arg1, arg2, arg3);\n    }\n  }\n\n  var NodeError = /*#__PURE__*/function (_Base) {\n    _inheritsLoose(NodeError, _Base);\n\n    function NodeError(arg1, arg2, arg3) {\n      return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n    }\n\n    return NodeError;\n  }(Base);\n\n  NodeError.prototype.name = Base.name;\n  NodeError.prototype.code = code;\n  codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n  if (Array.isArray(expected)) {\n    var len = expected.length;\n    expected = expected.map(function (i) {\n      return String(i);\n    });\n\n    if (len > 2) {\n      return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n    } else if (len === 2) {\n      return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n    } else {\n      return \"of \".concat(thing, \" \").concat(expected[0]);\n    }\n  } else {\n    return \"of \".concat(thing, \" \").concat(String(expected));\n  }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n  return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n  if (this_len === undefined || this_len > str.length) {\n    this_len = str.length;\n  }\n\n  return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n  if (typeof start !== 'number') {\n    start = 0;\n  }\n\n  if (start + search.length > str.length) {\n    return false;\n  } else {\n    return str.indexOf(search, start) !== -1;\n  }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n  return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n  // determiner: 'must be' or 'must not be'\n  var determiner;\n\n  if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n    determiner = 'must not be';\n    expected = expected.replace(/^not /, '');\n  } else {\n    determiner = 'must be';\n  }\n\n  var msg;\n\n  if (endsWith(name, ' argument')) {\n    // For cases like 'first argument'\n    msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  } else {\n    var type = includes(name, '.') ? 'property' : 'argument';\n    msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  }\n\n  msg += \". Received type \".concat(typeof actual);\n  return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n  return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n  return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n  return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/errors-browser.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js":
/*!***********************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js ***!
  \***********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(process) {// 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// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n/*<replacement>*/\n\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n\n  for (var key in obj) {\n    keys.push(key);\n  }\n\n  return keys;\n};\n/*</replacement>*/\n\n\nmodule.exports = Duplex;\n\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js\");\n\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Duplex, Readable);\n\n{\n  // Allow the keys array to be GC'ed.\n  var keys = objectKeys(Writable.prototype);\n\n  for (var v = 0; v < keys.length; v++) {\n    var method = keys[v];\n    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n  }\n}\n\nfunction Duplex(options) {\n  if (!(this instanceof Duplex)) return new Duplex(options);\n  Readable.call(this, options);\n  Writable.call(this, options);\n  this.allowHalfOpen = true;\n\n  if (options) {\n    if (options.readable === false) this.readable = false;\n    if (options.writable === false) this.writable = false;\n\n    if (options.allowHalfOpen === false) {\n      this.allowHalfOpen = false;\n      this.once('end', onend);\n    }\n  }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n}); // the no-half-open enforcer\n\nfunction onend() {\n  // If the writable side ended, then we're ok.\n  if (this._writableState.ended) return; // no more data can be written.\n  // But allow more writes to happen in this tick.\n\n  process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n  self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return false;\n    }\n\n    return this._readableState.destroyed && this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return;\n    } // backward compatibility, the user is explicitly\n    // managing destroyed\n\n\n    this._readableState.destroyed = value;\n    this._writableState.destroyed = value;\n  }\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js ***!
  \****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// 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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\nmodule.exports = PassThrough;\n\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(PassThrough, Transform);\n\nfunction PassThrough(options) {\n  if (!(this instanceof PassThrough)) return new PassThrough(options);\n  Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n  cb(null, chunk);\n};\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js ***!
  \*************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nmodule.exports = Readable;\n/*<replacement>*/\n\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n/*<replacement>*/\n\nvar EE = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n  return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/*<replacement>*/\n\n\nvar debugUtil = __webpack_require__(/*! util */ 1);\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n  debug = debugUtil.debuglog('stream');\n} else {\n  debug = function debug() {};\n}\n/*</replacement>*/\n\n\nvar BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js\");\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js\"),\n    getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/hash-base/node_modules/readable-stream/errors-browser.js\").codes,\n    ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n    ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n    ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n    ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n  // Sadly this is not cacheable as some libraries bundle their own\n  // event emitter implementation with them.\n  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n  // userland ones.  NEVER DO THIS. This is here only because this code needs\n  // to continue to work with older versions of Node.js that do not include\n  // the prependListener() method. The goal is to eventually remove this hack.\n\n  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js\");\n  options = options || {}; // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n  // make all the buffer merging and length checks go away\n\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n  // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n  this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n  // linked list can remove elements from the beginning faster than\n  // array.shift()\n\n  this.buffer = new BufferList();\n  this.length = 0;\n  this.pipes = null;\n  this.pipesCount = 0;\n  this.flowing = null;\n  this.ended = false;\n  this.endEmitted = false;\n  this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n  // immediately, or on a later tick.  We set this to true at first, because\n  // any actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first read call.\n\n  this.sync = true; // whenever we return null, then we set a flag to say\n  // that we're awaiting a 'readable' event emission.\n\n  this.needReadable = false;\n  this.emittedReadable = false;\n  this.readableListening = false;\n  this.resumeScheduled = false;\n  this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n  this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n  this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n  this.destroyed = false; // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n\n  this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n  this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n  this.readingMore = false;\n  this.decoder = null;\n  this.encoding = null;\n\n  if (options.encoding) {\n    if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n    this.decoder = new StringDecoder(options.encoding);\n    this.encoding = options.encoding;\n  }\n}\n\nfunction Readable(options) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js\");\n  if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the ReadableState constructor, at least with V8 6.5\n\n  var isDuplex = this instanceof Duplex;\n  this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n  this.readable = true;\n\n  if (options) {\n    if (typeof options.read === 'function') this._read = options.read;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n  }\n\n  Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined) {\n      return false;\n    }\n\n    return this._readableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._readableState) {\n      return;\n    } // backward compatibility, the user is explicitly\n    // managing destroyed\n\n\n    this._readableState.destroyed = value;\n  }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n  cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n  var state = this._readableState;\n  var skipChunkCheck;\n\n  if (!state.objectMode) {\n    if (typeof chunk === 'string') {\n      encoding = encoding || state.defaultEncoding;\n\n      if (encoding !== state.encoding) {\n        chunk = Buffer.from(chunk, encoding);\n        encoding = '';\n      }\n\n      skipChunkCheck = true;\n    }\n  } else {\n    skipChunkCheck = true;\n  }\n\n  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n  return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n  debug('readableAddChunk', chunk);\n  var state = stream._readableState;\n\n  if (chunk === null) {\n    state.reading = false;\n    onEofChunk(stream, state);\n  } else {\n    var er;\n    if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n    if (er) {\n      errorOrDestroy(stream, er);\n    } else if (state.objectMode || chunk && chunk.length > 0) {\n      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n        chunk = _uint8ArrayToBuffer(chunk);\n      }\n\n      if (addToFront) {\n        if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n      } else if (state.ended) {\n        errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n      } else if (state.destroyed) {\n        return false;\n      } else {\n        state.reading = false;\n\n        if (state.decoder && !encoding) {\n          chunk = state.decoder.write(chunk);\n          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n        } else {\n          addChunk(stream, state, chunk, false);\n        }\n      }\n    } else if (!addToFront) {\n      state.reading = false;\n      maybeReadMore(stream, state);\n    }\n  } // We can push more data if we are below the highWaterMark.\n  // Also, if we have no data yet, we can stand some more bytes.\n  // This is to work around cases where hwm=0, such as the repl.\n\n\n  return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n  if (state.flowing && state.length === 0 && !state.sync) {\n    state.awaitDrain = 0;\n    stream.emit('data', chunk);\n  } else {\n    // update the buffer info.\n    state.length += state.objectMode ? 1 : chunk.length;\n    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n    if (state.needReadable) emitReadable(stream);\n  }\n\n  maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n  var er;\n\n  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n  }\n\n  return er;\n}\n\nReadable.prototype.isPaused = function () {\n  return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n  if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n  var decoder = new StringDecoder(enc);\n  this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n  this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n  var p = this._readableState.buffer.head;\n  var content = '';\n\n  while (p !== null) {\n    content += decoder.write(p.data);\n    p = p.next;\n  }\n\n  this._readableState.buffer.clear();\n\n  if (content !== '') this._readableState.buffer.push(content);\n  this._readableState.length = content.length;\n  return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n  if (n >= MAX_HWM) {\n    // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n    n = MAX_HWM;\n  } else {\n    // Get the next highest power of 2 to prevent increasing hwm excessively in\n    // tiny amounts\n    n--;\n    n |= n >>> 1;\n    n |= n >>> 2;\n    n |= n >>> 4;\n    n |= n >>> 8;\n    n |= n >>> 16;\n    n++;\n  }\n\n  return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n  if (n <= 0 || state.length === 0 && state.ended) return 0;\n  if (state.objectMode) return 1;\n\n  if (n !== n) {\n    // Only flow one buffer at a time\n    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n  } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n  if (n <= state.length) return n; // Don't have enough\n\n  if (!state.ended) {\n    state.needReadable = true;\n    return 0;\n  }\n\n  return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n  debug('read', n);\n  n = parseInt(n, 10);\n  var state = this._readableState;\n  var nOrig = n;\n  if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n  // already have a bunch of data in the buffer, then just trigger\n  // the 'readable' event and move on.\n\n  if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n    debug('read: emitReadable', state.length, state.ended);\n    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n    return null;\n  }\n\n  n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n  if (n === 0 && state.ended) {\n    if (state.length === 0) endReadable(this);\n    return null;\n  } // All the actual chunk generation logic needs to be\n  // *below* the call to _read.  The reason is that in certain\n  // synthetic stream cases, such as passthrough streams, _read\n  // may be a completely synchronous operation which may change\n  // the state of the read buffer, providing enough data when\n  // before there was *not* enough.\n  //\n  // So, the steps are:\n  // 1. Figure out what the state of things will be after we do\n  // a read from the buffer.\n  //\n  // 2. If that resulting state will trigger a _read, then call _read.\n  // Note that this may be asynchronous, or synchronous.  Yes, it is\n  // deeply ugly to write APIs this way, but that still doesn't mean\n  // that the Readable class should behave improperly, as streams are\n  // designed to be sync/async agnostic.\n  // Take note if the _read call is sync or async (ie, if the read call\n  // has returned yet), so that we know whether or not it's safe to emit\n  // 'readable' etc.\n  //\n  // 3. Actually pull the requested chunks out of the buffer and return.\n  // if we need a readable event, then we need to do some reading.\n\n\n  var doRead = state.needReadable;\n  debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\n    doRead = true;\n    debug('length less than watermark', doRead);\n  } // however, if we've ended, then there's no point, and if we're already\n  // reading, then it's unnecessary.\n\n\n  if (state.ended || state.reading) {\n    doRead = false;\n    debug('reading or ended', doRead);\n  } else if (doRead) {\n    debug('do read');\n    state.reading = true;\n    state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n    if (state.length === 0) state.needReadable = true; // call internal read method\n\n    this._read(state.highWaterMark);\n\n    state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n    // and we need to re-evaluate how much data we can return to the user.\n\n    if (!state.reading) n = howMuchToRead(nOrig, state);\n  }\n\n  var ret;\n  if (n > 0) ret = fromList(n, state);else ret = null;\n\n  if (ret === null) {\n    state.needReadable = state.length <= state.highWaterMark;\n    n = 0;\n  } else {\n    state.length -= n;\n    state.awaitDrain = 0;\n  }\n\n  if (state.length === 0) {\n    // If we have nothing in the buffer, then we want to know\n    // as soon as we *do* get something into the buffer.\n    if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n    if (nOrig !== n && state.ended) endReadable(this);\n  }\n\n  if (ret !== null) this.emit('data', ret);\n  return ret;\n};\n\nfunction onEofChunk(stream, state) {\n  debug('onEofChunk');\n  if (state.ended) return;\n\n  if (state.decoder) {\n    var chunk = state.decoder.end();\n\n    if (chunk && chunk.length) {\n      state.buffer.push(chunk);\n      state.length += state.objectMode ? 1 : chunk.length;\n    }\n  }\n\n  state.ended = true;\n\n  if (state.sync) {\n    // if we are sync, wait until next tick to emit the data.\n    // Otherwise we risk emitting data in the flow()\n    // the readable code triggers during a read() call\n    emitReadable(stream);\n  } else {\n    // emit 'readable' now to make sure it gets picked up.\n    state.needReadable = false;\n\n    if (!state.emittedReadable) {\n      state.emittedReadable = true;\n      emitReadable_(stream);\n    }\n  }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n  var state = stream._readableState;\n  debug('emitReadable', state.needReadable, state.emittedReadable);\n  state.needReadable = false;\n\n  if (!state.emittedReadable) {\n    debug('emitReadable', state.flowing);\n    state.emittedReadable = true;\n    process.nextTick(emitReadable_, stream);\n  }\n}\n\nfunction emitReadable_(stream) {\n  var state = stream._readableState;\n  debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n  if (!state.destroyed && (state.length || state.ended)) {\n    stream.emit('readable');\n    state.emittedReadable = false;\n  } // The stream needs another readable event if\n  // 1. It is not flowing, as the flow mechanism will take\n  //    care of it.\n  // 2. It is not ended.\n  // 3. It is below the highWaterMark, so we can schedule\n  //    another readable later.\n\n\n  state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n  flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n  if (!state.readingMore) {\n    state.readingMore = true;\n    process.nextTick(maybeReadMore_, stream, state);\n  }\n}\n\nfunction maybeReadMore_(stream, state) {\n  // Attempt to read more data if we should.\n  //\n  // The conditions for reading more data are (one of):\n  // - Not enough data buffered (state.length < state.highWaterMark). The loop\n  //   is responsible for filling the buffer with enough data if such data\n  //   is available. If highWaterMark is 0 and we are not in the flowing mode\n  //   we should _not_ attempt to buffer any extra data. We'll get more data\n  //   when the stream consumer calls read() instead.\n  // - No data in the buffer, and the stream is in flowing mode. In this mode\n  //   the loop below is responsible for ensuring read() is called. Failing to\n  //   call read here would abort the flow and there's no other mechanism for\n  //   continuing the flow if the stream consumer has just subscribed to the\n  //   'data' event.\n  //\n  // In addition to the above conditions to keep reading data, the following\n  // conditions prevent the data from being read:\n  // - The stream has ended (state.ended).\n  // - There is already a pending 'read' operation (state.reading). This is a\n  //   case where the the stream has called the implementation defined _read()\n  //   method, but they are processing the call asynchronously and have _not_\n  //   called push() with new data. In this case we skip performing more\n  //   read()s. The execution ends in this method again after the _read() ends\n  //   up calling push() with more data.\n  while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n    var len = state.length;\n    debug('maybeReadMore read 0');\n    stream.read(0);\n    if (len === state.length) // didn't get any data, stop spinning.\n      break;\n  }\n\n  state.readingMore = false;\n} // abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n  errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n  var src = this;\n  var state = this._readableState;\n\n  switch (state.pipesCount) {\n    case 0:\n      state.pipes = dest;\n      break;\n\n    case 1:\n      state.pipes = [state.pipes, dest];\n      break;\n\n    default:\n      state.pipes.push(dest);\n      break;\n  }\n\n  state.pipesCount += 1;\n  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n  var endFn = doEnd ? onend : unpipe;\n  if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n  dest.on('unpipe', onunpipe);\n\n  function onunpipe(readable, unpipeInfo) {\n    debug('onunpipe');\n\n    if (readable === src) {\n      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n        unpipeInfo.hasUnpiped = true;\n        cleanup();\n      }\n    }\n  }\n\n  function onend() {\n    debug('onend');\n    dest.end();\n  } // when the dest drains, it reduces the awaitDrain counter\n  // on the source.  This would be more elegant with a .once()\n  // handler in flow(), but adding and removing repeatedly is\n  // too slow.\n\n\n  var ondrain = pipeOnDrain(src);\n  dest.on('drain', ondrain);\n  var cleanedUp = false;\n\n  function cleanup() {\n    debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n    dest.removeListener('close', onclose);\n    dest.removeListener('finish', onfinish);\n    dest.removeListener('drain', ondrain);\n    dest.removeListener('error', onerror);\n    dest.removeListener('unpipe', onunpipe);\n    src.removeListener('end', onend);\n    src.removeListener('end', unpipe);\n    src.removeListener('data', ondata);\n    cleanedUp = true; // if the reader is waiting for a drain event from this\n    // specific writer, then it would cause it to never start\n    // flowing again.\n    // So, if this is awaiting a drain, then we just call it now.\n    // If we don't know, then assume that we are waiting for one.\n\n    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n  }\n\n  src.on('data', ondata);\n\n  function ondata(chunk) {\n    debug('ondata');\n    var ret = dest.write(chunk);\n    debug('dest.write', ret);\n\n    if (ret === false) {\n      // If the user unpiped during `dest.write()`, it is possible\n      // to get stuck in a permanently paused state if that write\n      // also returned false.\n      // => Check whether `dest` is still a piping destination.\n      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n        debug('false write response, pause', state.awaitDrain);\n        state.awaitDrain++;\n      }\n\n      src.pause();\n    }\n  } // if the dest has an error, then stop piping into it.\n  // however, don't suppress the throwing behavior for this.\n\n\n  function onerror(er) {\n    debug('onerror', er);\n    unpipe();\n    dest.removeListener('error', onerror);\n    if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n  } // Make sure our error handler is attached before userland ones.\n\n\n  prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n  function onclose() {\n    dest.removeListener('finish', onfinish);\n    unpipe();\n  }\n\n  dest.once('close', onclose);\n\n  function onfinish() {\n    debug('onfinish');\n    dest.removeListener('close', onclose);\n    unpipe();\n  }\n\n  dest.once('finish', onfinish);\n\n  function unpipe() {\n    debug('unpipe');\n    src.unpipe(dest);\n  } // tell the dest that it's being piped to\n\n\n  dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n  if (!state.flowing) {\n    debug('pipe resume');\n    src.resume();\n  }\n\n  return dest;\n};\n\nfunction pipeOnDrain(src) {\n  return function pipeOnDrainFunctionResult() {\n    var state = src._readableState;\n    debug('pipeOnDrain', state.awaitDrain);\n    if (state.awaitDrain) state.awaitDrain--;\n\n    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n      state.flowing = true;\n      flow(src);\n    }\n  };\n}\n\nReadable.prototype.unpipe = function (dest) {\n  var state = this._readableState;\n  var unpipeInfo = {\n    hasUnpiped: false\n  }; // if we're not piping anywhere, then do nothing.\n\n  if (state.pipesCount === 0) return this; // just one destination.  most common case.\n\n  if (state.pipesCount === 1) {\n    // passed in one, but it's not the right one.\n    if (dest && dest !== state.pipes) return this;\n    if (!dest) dest = state.pipes; // got a match.\n\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    if (dest) dest.emit('unpipe', this, unpipeInfo);\n    return this;\n  } // slow case. multiple pipe destinations.\n\n\n  if (!dest) {\n    // remove all.\n    var dests = state.pipes;\n    var len = state.pipesCount;\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n\n    for (var i = 0; i < len; i++) {\n      dests[i].emit('unpipe', this, {\n        hasUnpiped: false\n      });\n    }\n\n    return this;\n  } // try to find the right one.\n\n\n  var index = indexOf(state.pipes, dest);\n  if (index === -1) return this;\n  state.pipes.splice(index, 1);\n  state.pipesCount -= 1;\n  if (state.pipesCount === 1) state.pipes = state.pipes[0];\n  dest.emit('unpipe', this, unpipeInfo);\n  return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n  var res = Stream.prototype.on.call(this, ev, fn);\n  var state = this._readableState;\n\n  if (ev === 'data') {\n    // update readableListening so that resume() may be a no-op\n    // a few lines down. This is needed to support once('readable').\n    state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n    if (state.flowing !== false) this.resume();\n  } else if (ev === 'readable') {\n    if (!state.endEmitted && !state.readableListening) {\n      state.readableListening = state.needReadable = true;\n      state.flowing = false;\n      state.emittedReadable = false;\n      debug('on readable', state.length, state.reading);\n\n      if (state.length) {\n        emitReadable(this);\n      } else if (!state.reading) {\n        process.nextTick(nReadingNextTick, this);\n      }\n    }\n  }\n\n  return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n  var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n  if (ev === 'readable') {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n\n  return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n  var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n  if (ev === 'readable' || ev === undefined) {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n\n  return res;\n};\n\nfunction updateReadableListening(self) {\n  var state = self._readableState;\n  state.readableListening = self.listenerCount('readable') > 0;\n\n  if (state.resumeScheduled && !state.paused) {\n    // flowing needs to be set to true now, otherwise\n    // the upcoming resume will not flow.\n    state.flowing = true; // crude way to check if we should resume\n  } else if (self.listenerCount('data') > 0) {\n    self.resume();\n  }\n}\n\nfunction nReadingNextTick(self) {\n  debug('readable nexttick read 0');\n  self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n  var state = this._readableState;\n\n  if (!state.flowing) {\n    debug('resume'); // we flow only if there is no one listening\n    // for readable, but we still have to call\n    // resume()\n\n    state.flowing = !state.readableListening;\n    resume(this, state);\n  }\n\n  state.paused = false;\n  return this;\n};\n\nfunction resume(stream, state) {\n  if (!state.resumeScheduled) {\n    state.resumeScheduled = true;\n    process.nextTick(resume_, stream, state);\n  }\n}\n\nfunction resume_(stream, state) {\n  debug('resume', state.reading);\n\n  if (!state.reading) {\n    stream.read(0);\n  }\n\n  state.resumeScheduled = false;\n  stream.emit('resume');\n  flow(stream);\n  if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n  debug('call pause flowing=%j', this._readableState.flowing);\n\n  if (this._readableState.flowing !== false) {\n    debug('pause');\n    this._readableState.flowing = false;\n    this.emit('pause');\n  }\n\n  this._readableState.paused = true;\n  return this;\n};\n\nfunction flow(stream) {\n  var state = stream._readableState;\n  debug('flow', state.flowing);\n\n  while (state.flowing && stream.read() !== null) {\n    ;\n  }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n  var _this = this;\n\n  var state = this._readableState;\n  var paused = false;\n  stream.on('end', function () {\n    debug('wrapped end');\n\n    if (state.decoder && !state.ended) {\n      var chunk = state.decoder.end();\n      if (chunk && chunk.length) _this.push(chunk);\n    }\n\n    _this.push(null);\n  });\n  stream.on('data', function (chunk) {\n    debug('wrapped data');\n    if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n    var ret = _this.push(chunk);\n\n    if (!ret) {\n      paused = true;\n      stream.pause();\n    }\n  }); // proxy all the other methods.\n  // important when wrapping filters and duplexes.\n\n  for (var i in stream) {\n    if (this[i] === undefined && typeof stream[i] === 'function') {\n      this[i] = function methodWrap(method) {\n        return function methodWrapReturnFunction() {\n          return stream[method].apply(stream, arguments);\n        };\n      }(i);\n    }\n  } // proxy certain important events.\n\n\n  for (var n = 0; n < kProxyEvents.length; n++) {\n    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n  } // when we try to consume some more bytes, simply unpause the\n  // underlying stream.\n\n\n  this._read = function (n) {\n    debug('wrapped _read', n);\n\n    if (paused) {\n      paused = false;\n      stream.resume();\n    }\n  };\n\n  return this;\n};\n\nif (typeof Symbol === 'function') {\n  Readable.prototype[Symbol.asyncIterator] = function () {\n    if (createReadableStreamAsyncIterator === undefined) {\n      createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js\");\n    }\n\n    return createReadableStreamAsyncIterator(this);\n  };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.highWaterMark;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState && this._readableState.buffer;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.flowing;\n  },\n  set: function set(state) {\n    if (this._readableState) {\n      this._readableState.flowing = state;\n    }\n  }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.length;\n  }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n  // nothing buffered\n  if (state.length === 0) return null;\n  var ret;\n  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n    // read it all, truncate the list\n    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n    state.buffer.clear();\n  } else {\n    // read part of list\n    ret = state.buffer.consume(n, state.decoder);\n  }\n  return ret;\n}\n\nfunction endReadable(stream) {\n  var state = stream._readableState;\n  debug('endReadable', state.endEmitted);\n\n  if (!state.endEmitted) {\n    state.ended = true;\n    process.nextTick(endReadableNT, state, stream);\n  }\n}\n\nfunction endReadableNT(state, stream) {\n  debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n  if (!state.endEmitted && state.length === 0) {\n    state.endEmitted = true;\n    stream.readable = false;\n    stream.emit('end');\n\n    if (state.autoDestroy) {\n      // In case of duplex streams we need a way to detect\n      // if the writable side is ready for autoDestroy as well\n      var wState = stream._writableState;\n\n      if (!wState || wState.autoDestroy && wState.finished) {\n        stream.destroy();\n      }\n    }\n  }\n}\n\nif (typeof Symbol === 'function') {\n  Readable.from = function (iterable, opts) {\n    if (from === undefined) {\n      from = __webpack_require__(/*! ./internal/streams/from */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js\");\n    }\n\n    return from(Readable, iterable, opts);\n  };\n}\n\nfunction indexOf(xs, x) {\n  for (var i = 0, l = xs.length; i < l; i++) {\n    if (xs[i] === x) return i;\n  }\n\n  return -1;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js":
/*!**************************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js ***!
  \**************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// 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// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nmodule.exports = Transform;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/hash-base/node_modules/readable-stream/errors-browser.js\").codes,\n    ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n    ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n    ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n    ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n  var ts = this._transformState;\n  ts.transforming = false;\n  var cb = ts.writecb;\n\n  if (cb === null) {\n    return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n  }\n\n  ts.writechunk = null;\n  ts.writecb = null;\n  if (data != null) // single equals check for both `null` and `undefined`\n    this.push(data);\n  cb(er);\n  var rs = this._readableState;\n  rs.reading = false;\n\n  if (rs.needReadable || rs.length < rs.highWaterMark) {\n    this._read(rs.highWaterMark);\n  }\n}\n\nfunction Transform(options) {\n  if (!(this instanceof Transform)) return new Transform(options);\n  Duplex.call(this, options);\n  this._transformState = {\n    afterTransform: afterTransform.bind(this),\n    needTransform: false,\n    transforming: false,\n    writecb: null,\n    writechunk: null,\n    writeencoding: null\n  }; // start out asking for a readable event once data is transformed.\n\n  this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n  // that Readable wants before the first _read call, so unset the\n  // sync guard flag.\n\n  this._readableState.sync = false;\n\n  if (options) {\n    if (typeof options.transform === 'function') this._transform = options.transform;\n    if (typeof options.flush === 'function') this._flush = options.flush;\n  } // When the writable side finishes, then flush out anything remaining.\n\n\n  this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n  var _this = this;\n\n  if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n    this._flush(function (er, data) {\n      done(_this, er, data);\n    });\n  } else {\n    done(this, null, null);\n  }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n  this._transformState.needTransform = false;\n  return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side.  You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk.  If you pass\n// an error, then that'll put the hurt on the whole operation.  If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n  var ts = this._transformState;\n  ts.writecb = cb;\n  ts.writechunk = chunk;\n  ts.writeencoding = encoding;\n\n  if (!ts.transforming) {\n    var rs = this._readableState;\n    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n  }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n  var ts = this._transformState;\n\n  if (ts.writechunk !== null && !ts.transforming) {\n    ts.transforming = true;\n\n    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n  } else {\n    // mark that we need a transform, so that any data that comes in\n    // will get processed, now that we've asked for it.\n    ts.needTransform = true;\n  }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n  Duplex.prototype._destroy.call(this, err, function (err2) {\n    cb(err2);\n  });\n};\n\nfunction done(stream, er, data) {\n  if (er) return stream.emit('error', er);\n  if (data != null) // single equals check for both `null` and `undefined`\n    stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n  // if there's nothing in the write buffer, then that means\n  // that nothing more will ever be provided\n\n  if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n  if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n  return stream.push(null);\n}\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js ***!
  \*************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global, process) {// 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// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\nmodule.exports = Writable;\n/* <replacement> */\n\nfunction WriteReq(chunk, encoding, cb) {\n  this.chunk = chunk;\n  this.encoding = encoding;\n  this.callback = cb;\n  this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n  var _this = this;\n\n  this.next = null;\n  this.entry = null;\n\n  this.finish = function () {\n    onCorkedFinish(_this, state);\n  };\n}\n/* </replacement> */\n\n/*<replacement>*/\n\n\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n/*<replacement>*/\n\nvar internalUtil = {\n  deprecate: __webpack_require__(/*! util-deprecate */ \"./node_modules/util-deprecate/browser.js\")\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js\"),\n    getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/hash-base/node_modules/readable-stream/errors-browser.js\").codes,\n    ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n    ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n    ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n    ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n    ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n    ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n    ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n    ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js\");\n  options = options || {}; // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream,\n  // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n  // contains buffers or objects.\n\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n  // Note: 0 is a valid value, means that we always return false if\n  // the entire buffer is not flushed immediately on write()\n\n  this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n  this.finalCalled = false; // drain event flag.\n\n  this.needDrain = false; // at the start of calling end()\n\n  this.ending = false; // when end() has been called, and returned\n\n  this.ended = false; // when 'finish' is emitted\n\n  this.finished = false; // has it been destroyed\n\n  this.destroyed = false; // should we decode strings into buffers before passing to _write?\n  // this is here so that some node-core streams can optimize string\n  // handling at a lower level.\n\n  var noDecode = options.decodeStrings === false;\n  this.decodeStrings = !noDecode; // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n\n  this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n  // of how much we're waiting to get pushed to some underlying\n  // socket or file.\n\n  this.length = 0; // a flag to see when we're in the middle of a write.\n\n  this.writing = false; // when true all writes will be buffered until .uncork() call\n\n  this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n  // or on a later tick.  We set this to true at first, because any\n  // actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first write call.\n\n  this.sync = true; // a flag to know if we're processing previously buffered items, which\n  // may call the _write() callback in the same tick, so that we don't\n  // end up in an overlapped onwrite situation.\n\n  this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n  this.onwrite = function (er) {\n    onwrite(stream, er);\n  }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n  this.writecb = null; // the amount that is being written when _write is called.\n\n  this.writelen = 0;\n  this.bufferedRequest = null;\n  this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n  // this must be 0 before 'finish' can be emitted\n\n  this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n  // This is relevant for synchronous Transform streams\n\n  this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n  this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n  this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n  this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n  this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n  // one allocated and free to use, and we maintain at most two\n\n  this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n  var current = this.bufferedRequest;\n  var out = [];\n\n  while (current) {\n    out.push(current);\n    current = current.next;\n  }\n\n  return out;\n};\n\n(function () {\n  try {\n    Object.defineProperty(WritableState.prototype, 'buffer', {\n      get: internalUtil.deprecate(function writableStateBufferGetter() {\n        return this.getBuffer();\n      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n    });\n  } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n  realHasInstance = Function.prototype[Symbol.hasInstance];\n  Object.defineProperty(Writable, Symbol.hasInstance, {\n    value: function value(object) {\n      if (realHasInstance.call(this, object)) return true;\n      if (this !== Writable) return false;\n      return object && object._writableState instanceof WritableState;\n    }\n  });\n} else {\n  realHasInstance = function realHasInstance(object) {\n    return object instanceof this;\n  };\n}\n\nfunction Writable(options) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js\"); // Writable ctor is applied to Duplexes, too.\n  // `realHasInstance` is necessary because using plain `instanceof`\n  // would return false, as no `_writableState` property is attached.\n  // Trying to use the custom `instanceof` for Writable here will also break the\n  // Node.js LazyTransform implementation, which has a non-trivial getter for\n  // `_writableState` that would lead to infinite recursion.\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the WritableState constructor, at least with V8 6.5\n\n  var isDuplex = this instanceof Duplex;\n  if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n  this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n  this.writable = true;\n\n  if (options) {\n    if (typeof options.write === 'function') this._write = options.write;\n    if (typeof options.writev === 'function') this._writev = options.writev;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n    if (typeof options.final === 'function') this._final = options.final;\n  }\n\n  Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n  errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n  var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n  errorOrDestroy(stream, er);\n  process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n  var er;\n\n  if (chunk === null) {\n    er = new ERR_STREAM_NULL_VALUES();\n  } else if (typeof chunk !== 'string' && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n  }\n\n  if (er) {\n    errorOrDestroy(stream, er);\n    process.nextTick(cb, er);\n    return false;\n  }\n\n  return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  var ret = false;\n\n  var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n  if (isBuf && !Buffer.isBuffer(chunk)) {\n    chunk = _uint8ArrayToBuffer(chunk);\n  }\n\n  if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n  if (typeof cb !== 'function') cb = nop;\n  if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n    state.pendingcb++;\n    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n  }\n  return ret;\n};\n\nWritable.prototype.cork = function () {\n  this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n  var state = this._writableState;\n\n  if (state.corked) {\n    state.corked--;\n    if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n  }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n  // node::ParseEncoding() requires lower case.\n  if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n  this._writableState.defaultEncoding = encoding;\n  return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n    chunk = Buffer.from(chunk, encoding);\n  }\n\n  return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n  if (!isBuf) {\n    var newChunk = decodeChunk(state, chunk, encoding);\n\n    if (chunk !== newChunk) {\n      isBuf = true;\n      encoding = 'buffer';\n      chunk = newChunk;\n    }\n  }\n\n  var len = state.objectMode ? 1 : chunk.length;\n  state.length += len;\n  var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n  if (!ret) state.needDrain = true;\n\n  if (state.writing || state.corked) {\n    var last = state.lastBufferedRequest;\n    state.lastBufferedRequest = {\n      chunk: chunk,\n      encoding: encoding,\n      isBuf: isBuf,\n      callback: cb,\n      next: null\n    };\n\n    if (last) {\n      last.next = state.lastBufferedRequest;\n    } else {\n      state.bufferedRequest = state.lastBufferedRequest;\n    }\n\n    state.bufferedRequestCount += 1;\n  } else {\n    doWrite(stream, state, false, len, chunk, encoding, cb);\n  }\n\n  return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n  state.writelen = len;\n  state.writecb = cb;\n  state.writing = true;\n  state.sync = true;\n  if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n  state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n  --state.pendingcb;\n\n  if (sync) {\n    // defer the callback if we are being called synchronously\n    // to avoid piling up things on the stack\n    process.nextTick(cb, er); // this can emit finish, and it will always happen\n    // after error\n\n    process.nextTick(finishMaybe, stream, state);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er);\n  } else {\n    // the caller expect this to happen before if\n    // it is async\n    cb(er);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er); // this can emit finish, but finish must\n    // always follow error\n\n    finishMaybe(stream, state);\n  }\n}\n\nfunction onwriteStateUpdate(state) {\n  state.writing = false;\n  state.writecb = null;\n  state.length -= state.writelen;\n  state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n  var state = stream._writableState;\n  var sync = state.sync;\n  var cb = state.writecb;\n  if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n  onwriteStateUpdate(state);\n  if (er) onwriteError(stream, state, sync, er, cb);else {\n    // Check if we're actually ready to finish, but don't emit yet\n    var finished = needFinish(state) || stream.destroyed;\n\n    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n      clearBuffer(stream, state);\n    }\n\n    if (sync) {\n      process.nextTick(afterWrite, stream, state, finished, cb);\n    } else {\n      afterWrite(stream, state, finished, cb);\n    }\n  }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n  if (!finished) onwriteDrain(stream, state);\n  state.pendingcb--;\n  cb();\n  finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n  if (state.length === 0 && state.needDrain) {\n    state.needDrain = false;\n    stream.emit('drain');\n  }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n  state.bufferProcessing = true;\n  var entry = state.bufferedRequest;\n\n  if (stream._writev && entry && entry.next) {\n    // Fast case, write everything using _writev()\n    var l = state.bufferedRequestCount;\n    var buffer = new Array(l);\n    var holder = state.corkedRequestsFree;\n    holder.entry = entry;\n    var count = 0;\n    var allBuffers = true;\n\n    while (entry) {\n      buffer[count] = entry;\n      if (!entry.isBuf) allBuffers = false;\n      entry = entry.next;\n      count += 1;\n    }\n\n    buffer.allBuffers = allBuffers;\n    doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n    // as the hot path ends with doWrite\n\n    state.pendingcb++;\n    state.lastBufferedRequest = null;\n\n    if (holder.next) {\n      state.corkedRequestsFree = holder.next;\n      holder.next = null;\n    } else {\n      state.corkedRequestsFree = new CorkedRequest(state);\n    }\n\n    state.bufferedRequestCount = 0;\n  } else {\n    // Slow case, write chunks one-by-one\n    while (entry) {\n      var chunk = entry.chunk;\n      var encoding = entry.encoding;\n      var cb = entry.callback;\n      var len = state.objectMode ? 1 : chunk.length;\n      doWrite(stream, state, false, len, chunk, encoding, cb);\n      entry = entry.next;\n      state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n      // it means that we need to wait until it does.\n      // also, that means that the chunk and cb are currently\n      // being processed, so move the buffer counter past them.\n\n      if (state.writing) {\n        break;\n      }\n    }\n\n    if (entry === null) state.lastBufferedRequest = null;\n  }\n\n  state.bufferedRequest = entry;\n  state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n  var state = this._writableState;\n\n  if (typeof chunk === 'function') {\n    cb = chunk;\n    chunk = null;\n    encoding = null;\n  } else if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n  if (state.corked) {\n    state.corked = 1;\n    this.uncork();\n  } // ignore unnecessary end() calls.\n\n\n  if (!state.ending) endWritable(this, state, cb);\n  return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n});\n\nfunction needFinish(state) {\n  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n  stream._final(function (err) {\n    state.pendingcb--;\n\n    if (err) {\n      errorOrDestroy(stream, err);\n    }\n\n    state.prefinished = true;\n    stream.emit('prefinish');\n    finishMaybe(stream, state);\n  });\n}\n\nfunction prefinish(stream, state) {\n  if (!state.prefinished && !state.finalCalled) {\n    if (typeof stream._final === 'function' && !state.destroyed) {\n      state.pendingcb++;\n      state.finalCalled = true;\n      process.nextTick(callFinal, stream, state);\n    } else {\n      state.prefinished = true;\n      stream.emit('prefinish');\n    }\n  }\n}\n\nfunction finishMaybe(stream, state) {\n  var need = needFinish(state);\n\n  if (need) {\n    prefinish(stream, state);\n\n    if (state.pendingcb === 0) {\n      state.finished = true;\n      stream.emit('finish');\n\n      if (state.autoDestroy) {\n        // In case of duplex streams we need a way to detect\n        // if the readable side is ready for autoDestroy as well\n        var rState = stream._readableState;\n\n        if (!rState || rState.autoDestroy && rState.endEmitted) {\n          stream.destroy();\n        }\n      }\n    }\n  }\n\n  return need;\n}\n\nfunction endWritable(stream, state, cb) {\n  state.ending = true;\n  finishMaybe(stream, state);\n\n  if (cb) {\n    if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n  }\n\n  state.ended = true;\n  stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n  var entry = corkReq.entry;\n  corkReq.entry = null;\n\n  while (entry) {\n    var cb = entry.callback;\n    state.pendingcb--;\n    cb(err);\n    entry = entry.next;\n  } // reuse the free corkReq.\n\n\n  state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._writableState === undefined) {\n      return false;\n    }\n\n    return this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._writableState) {\n      return;\n    } // backward compatibility, the user is explicitly\n    // managing destroyed\n\n\n    this._writableState.destroyed = value;\n  }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n  cb(err);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js":
/*!****************************************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***!
  \****************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nvar finished = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n  return {\n    value: value,\n    done: done\n  };\n}\n\nfunction readAndResolve(iter) {\n  var resolve = iter[kLastResolve];\n\n  if (resolve !== null) {\n    var data = iter[kStream].read(); // we defer if data is null\n    // we can be expecting either 'end' or\n    // 'error'\n\n    if (data !== null) {\n      iter[kLastPromise] = null;\n      iter[kLastResolve] = null;\n      iter[kLastReject] = null;\n      resolve(createIterResult(data, false));\n    }\n  }\n}\n\nfunction onReadable(iter) {\n  // we wait for the next tick, because it might\n  // emit an error with process.nextTick\n  process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n  return function (resolve, reject) {\n    lastPromise.then(function () {\n      if (iter[kEnded]) {\n        resolve(createIterResult(undefined, true));\n        return;\n      }\n\n      iter[kHandlePromise](resolve, reject);\n    }, reject);\n  };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n  get stream() {\n    return this[kStream];\n  },\n\n  next: function next() {\n    var _this = this; // if we have detected an error in the meanwhile\n    // reject straight away\n\n\n    var error = this[kError];\n\n    if (error !== null) {\n      return Promise.reject(error);\n    }\n\n    if (this[kEnded]) {\n      return Promise.resolve(createIterResult(undefined, true));\n    }\n\n    if (this[kStream].destroyed) {\n      // We need to defer via nextTick because if .destroy(err) is\n      // called, the error will be emitted via nextTick, and\n      // we cannot guarantee that there is no error lingering around\n      // waiting to be emitted.\n      return new Promise(function (resolve, reject) {\n        process.nextTick(function () {\n          if (_this[kError]) {\n            reject(_this[kError]);\n          } else {\n            resolve(createIterResult(undefined, true));\n          }\n        });\n      });\n    } // if we have multiple next() calls\n    // we will wait for the previous Promise to finish\n    // this logic is optimized to support for await loops,\n    // where next() is only called once at a time\n\n\n    var lastPromise = this[kLastPromise];\n    var promise;\n\n    if (lastPromise) {\n      promise = new Promise(wrapForNext(lastPromise, this));\n    } else {\n      // fast path needed to support multiple this.push()\n      // without triggering the next() queue\n      var data = this[kStream].read();\n\n      if (data !== null) {\n        return Promise.resolve(createIterResult(data, false));\n      }\n\n      promise = new Promise(this[kHandlePromise]);\n    }\n\n    this[kLastPromise] = promise;\n    return promise;\n  }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n  return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n  var _this2 = this; // destroy(err, cb) is a private API\n  // we can guarantee we have that here, because we control the\n  // Readable class this is attached to\n\n\n  return new Promise(function (resolve, reject) {\n    _this2[kStream].destroy(null, function (err) {\n      if (err) {\n        reject(err);\n        return;\n      }\n\n      resolve(createIterResult(undefined, true));\n    });\n  });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n  var _Object$create;\n\n  var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n    value: stream,\n    writable: true\n  }), _defineProperty(_Object$create, kLastResolve, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kLastReject, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kError, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kEnded, {\n    value: stream._readableState.endEmitted,\n    writable: true\n  }), _defineProperty(_Object$create, kHandlePromise, {\n    value: function value(resolve, reject) {\n      var data = iterator[kStream].read();\n\n      if (data) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        resolve(createIterResult(data, false));\n      } else {\n        iterator[kLastResolve] = resolve;\n        iterator[kLastReject] = reject;\n      }\n    },\n    writable: true\n  }), _Object$create));\n  iterator[kLastPromise] = null;\n  finished(stream, function (err) {\n    if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n      var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n      // returned by next() and store the error\n\n      if (reject !== null) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        reject(err);\n      }\n\n      iterator[kError] = err;\n      return;\n    }\n\n    var resolve = iterator[kLastResolve];\n\n    if (resolve !== null) {\n      iterator[kLastPromise] = null;\n      iterator[kLastResolve] = null;\n      iterator[kLastReject] = null;\n      resolve(createIterResult(undefined, true));\n    }\n\n    iterator[kEnded] = true;\n  });\n  stream.on('readable', onReadable.bind(null, iterator));\n  return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js":
/*!*************************************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***!
  \*************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nvar _require = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\"),\n    Buffer = _require.Buffer;\n\nvar _require2 = __webpack_require__(/*! util */ 2),\n    inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n  Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports = /*#__PURE__*/function () {\n  function BufferList() {\n    _classCallCheck(this, BufferList);\n\n    this.head = null;\n    this.tail = null;\n    this.length = 0;\n  }\n\n  _createClass(BufferList, [{\n    key: \"push\",\n    value: function push(v) {\n      var entry = {\n        data: v,\n        next: null\n      };\n      if (this.length > 0) this.tail.next = entry;else this.head = entry;\n      this.tail = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"unshift\",\n    value: function unshift(v) {\n      var entry = {\n        data: v,\n        next: this.head\n      };\n      if (this.length === 0) this.tail = entry;\n      this.head = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"shift\",\n    value: function shift() {\n      if (this.length === 0) return;\n      var ret = this.head.data;\n      if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n      --this.length;\n      return ret;\n    }\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      this.head = this.tail = null;\n      this.length = 0;\n    }\n  }, {\n    key: \"join\",\n    value: function join(s) {\n      if (this.length === 0) return '';\n      var p = this.head;\n      var ret = '' + p.data;\n\n      while (p = p.next) {\n        ret += s + p.data;\n      }\n\n      return ret;\n    }\n  }, {\n    key: \"concat\",\n    value: function concat(n) {\n      if (this.length === 0) return Buffer.alloc(0);\n      var ret = Buffer.allocUnsafe(n >>> 0);\n      var p = this.head;\n      var i = 0;\n\n      while (p) {\n        copyBuffer(p.data, ret, i);\n        i += p.data.length;\n        p = p.next;\n      }\n\n      return ret;\n    } // Consumes a specified amount of bytes or characters from the buffered data.\n\n  }, {\n    key: \"consume\",\n    value: function consume(n, hasStrings) {\n      var ret;\n\n      if (n < this.head.data.length) {\n        // `slice` is the same for buffers and strings.\n        ret = this.head.data.slice(0, n);\n        this.head.data = this.head.data.slice(n);\n      } else if (n === this.head.data.length) {\n        // First chunk is a perfect match.\n        ret = this.shift();\n      } else {\n        // Result spans more than one buffer.\n        ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n      }\n\n      return ret;\n    }\n  }, {\n    key: \"first\",\n    value: function first() {\n      return this.head.data;\n    } // Consumes a specified amount of characters from the buffered data.\n\n  }, {\n    key: \"_getString\",\n    value: function _getString(n) {\n      var p = this.head;\n      var c = 1;\n      var ret = p.data;\n      n -= ret.length;\n\n      while (p = p.next) {\n        var str = p.data;\n        var nb = n > str.length ? str.length : n;\n        if (nb === str.length) ret += str;else ret += str.slice(0, n);\n        n -= nb;\n\n        if (n === 0) {\n          if (nb === str.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = str.slice(nb);\n          }\n\n          break;\n        }\n\n        ++c;\n      }\n\n      this.length -= c;\n      return ret;\n    } // Consumes a specified amount of bytes from the buffered data.\n\n  }, {\n    key: \"_getBuffer\",\n    value: function _getBuffer(n) {\n      var ret = Buffer.allocUnsafe(n);\n      var p = this.head;\n      var c = 1;\n      p.data.copy(ret);\n      n -= p.data.length;\n\n      while (p = p.next) {\n        var buf = p.data;\n        var nb = n > buf.length ? buf.length : n;\n        buf.copy(ret, ret.length - n, 0, nb);\n        n -= nb;\n\n        if (n === 0) {\n          if (nb === buf.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = buf.slice(nb);\n          }\n\n          break;\n        }\n\n        ++c;\n      }\n\n      this.length -= c;\n      return ret;\n    } // Make sure the linked list only shows the minimal necessary information.\n\n  }, {\n    key: custom,\n    value: function value(_, options) {\n      return inspect(this, _objectSpread({}, options, {\n        // Only inspect one level.\n        depth: 0,\n        // It should not recurse.\n        customInspect: false\n      }));\n    }\n  }]);\n\n  return BufferList;\n}();\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js":
/*!*********************************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js ***!
  \*********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(process) { // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n  var _this = this;\n\n  var readableDestroyed = this._readableState && this._readableState.destroyed;\n  var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n  if (readableDestroyed || writableDestroyed) {\n    if (cb) {\n      cb(err);\n    } else if (err) {\n      if (!this._writableState) {\n        process.nextTick(emitErrorNT, this, err);\n      } else if (!this._writableState.errorEmitted) {\n        this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorNT, this, err);\n      }\n    }\n\n    return this;\n  } // we set destroyed to true before firing error callbacks in order\n  // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n  if (this._readableState) {\n    this._readableState.destroyed = true;\n  } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n  if (this._writableState) {\n    this._writableState.destroyed = true;\n  }\n\n  this._destroy(err || null, function (err) {\n    if (!cb && err) {\n      if (!_this._writableState) {\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else if (!_this._writableState.errorEmitted) {\n        _this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else {\n        process.nextTick(emitCloseNT, _this);\n      }\n    } else if (cb) {\n      process.nextTick(emitCloseNT, _this);\n      cb(err);\n    } else {\n      process.nextTick(emitCloseNT, _this);\n    }\n  });\n\n  return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n  emitErrorNT(self, err);\n  emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n  if (self._writableState && !self._writableState.emitClose) return;\n  if (self._readableState && !self._readableState.emitClose) return;\n  self.emit('close');\n}\n\nfunction undestroy() {\n  if (this._readableState) {\n    this._readableState.destroyed = false;\n    this._readableState.reading = false;\n    this._readableState.ended = false;\n    this._readableState.endEmitted = false;\n  }\n\n  if (this._writableState) {\n    this._writableState.destroyed = false;\n    this._writableState.ended = false;\n    this._writableState.ending = false;\n    this._writableState.finalCalled = false;\n    this._writableState.prefinished = false;\n    this._writableState.finished = false;\n    this._writableState.errorEmitted = false;\n  }\n}\n\nfunction emitErrorNT(self, err) {\n  self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n  // We have tests that rely on errors being emitted\n  // in the same tick, so changing this is semver major.\n  // For now when you opt-in to autoDestroy we allow\n  // the error to be emitted nextTick. In a future\n  // semver major update we should change the default to this.\n  var rState = stream._readableState;\n  var wState = stream._writableState;\n  if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n  destroy: destroy,\n  undestroy: undestroy,\n  errorOrDestroy: errorOrDestroy\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js":
/*!***************************************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***!
  \***************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\nvar ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(/*! ../../../errors */ \"./node_modules/hash-base/node_modules/readable-stream/errors-browser.js\").codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    callback.apply(this, args);\n  };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n  if (typeof opts === 'function') return eos(stream, null, opts);\n  if (!opts) opts = {};\n  callback = once(callback || noop);\n  var readable = opts.readable || opts.readable !== false && stream.readable;\n  var writable = opts.writable || opts.writable !== false && stream.writable;\n\n  var onlegacyfinish = function onlegacyfinish() {\n    if (!stream.writable) onfinish();\n  };\n\n  var writableEnded = stream._writableState && stream._writableState.finished;\n\n  var onfinish = function onfinish() {\n    writable = false;\n    writableEnded = true;\n    if (!readable) callback.call(stream);\n  };\n\n  var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n  var onend = function onend() {\n    readable = false;\n    readableEnded = true;\n    if (!writable) callback.call(stream);\n  };\n\n  var onerror = function onerror(err) {\n    callback.call(stream, err);\n  };\n\n  var onclose = function onclose() {\n    var err;\n\n    if (readable && !readableEnded) {\n      if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n\n    if (writable && !writableEnded) {\n      if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n  };\n\n  var onrequest = function onrequest() {\n    stream.req.on('finish', onfinish);\n  };\n\n  if (isRequest(stream)) {\n    stream.on('complete', onfinish);\n    stream.on('abort', onclose);\n    if (stream.req) onrequest();else stream.on('request', onrequest);\n  } else if (writable && !stream._writableState) {\n    // legacy streams\n    stream.on('end', onlegacyfinish);\n    stream.on('close', onlegacyfinish);\n  }\n\n  stream.on('end', onend);\n  stream.on('finish', onfinish);\n  if (opts.error !== false) stream.on('error', onerror);\n  stream.on('close', onclose);\n  return function () {\n    stream.removeListener('complete', onfinish);\n    stream.removeListener('abort', onclose);\n    stream.removeListener('request', onrequest);\n    if (stream.req) stream.req.removeListener('finish', onfinish);\n    stream.removeListener('end', onlegacyfinish);\n    stream.removeListener('close', onlegacyfinish);\n    stream.removeListener('finish', onfinish);\n    stream.removeListener('end', onend);\n    stream.removeListener('error', onerror);\n    stream.removeListener('close', onclose);\n  };\n}\n\nmodule.exports = eos;\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js":
/*!**************************************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js ***!
  \**************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = function () {\n  throw new Error('Readable.from is not available in the browser');\n};\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js":
/*!**********************************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js ***!
  \**********************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\nvar eos;\n\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    callback.apply(void 0, arguments);\n  };\n}\n\nvar _require$codes = __webpack_require__(/*! ../../../errors */ \"./node_modules/hash-base/node_modules/readable-stream/errors-browser.js\").codes,\n    ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n    ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n  // Rethrow the error if it exists to avoid swallowing it\n  if (err) throw err;\n}\n\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n  callback = once(callback);\n  var closed = false;\n  stream.on('close', function () {\n    closed = true;\n  });\n  if (eos === undefined) eos = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\n  eos(stream, {\n    readable: reading,\n    writable: writing\n  }, function (err) {\n    if (err) return callback(err);\n    closed = true;\n    callback();\n  });\n  var destroyed = false;\n  return function (err) {\n    if (closed) return;\n    if (destroyed) return;\n    destroyed = true; // request.destroy just do .end - .abort is what we want\n\n    if (isRequest(stream)) return stream.abort();\n    if (typeof stream.destroy === 'function') return stream.destroy();\n    callback(err || new ERR_STREAM_DESTROYED('pipe'));\n  };\n}\n\nfunction call(fn) {\n  fn();\n}\n\nfunction pipe(from, to) {\n  return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n  if (!streams.length) return noop;\n  if (typeof streams[streams.length - 1] !== 'function') return noop;\n  return streams.pop();\n}\n\nfunction pipeline() {\n  for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n    streams[_key] = arguments[_key];\n  }\n\n  var callback = popCallback(streams);\n  if (Array.isArray(streams[0])) streams = streams[0];\n\n  if (streams.length < 2) {\n    throw new ERR_MISSING_ARGS('streams');\n  }\n\n  var error;\n  var destroys = streams.map(function (stream, i) {\n    var reading = i < streams.length - 1;\n    var writing = i > 0;\n    return destroyer(stream, reading, writing, function (err) {\n      if (!error) error = err;\n      if (err) destroys.forEach(call);\n      if (reading) return;\n      destroys.forEach(call);\n      callback(error);\n    });\n  });\n  return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js ***!
  \*******************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar ERR_INVALID_OPT_VALUE = __webpack_require__(/*! ../../../errors */ \"./node_modules/hash-base/node_modules/readable-stream/errors-browser.js\").codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n  return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n  var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n  if (hwm != null) {\n    if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n      var name = isDuplex ? duplexKey : 'highWaterMark';\n      throw new ERR_INVALID_OPT_VALUE(name, hwm);\n    }\n\n    return Math.floor(hwm);\n  } // Default value\n\n\n  return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n  getHighWaterMark: getHighWaterMark\n};\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js":
/*!****************************************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js ***!
  \****************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/readable-stream/readable-browser.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/readable-stream/readable-browser.js ***!
  \*********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js\");\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js\");\nexports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js\");\nexports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js\");\nexports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js\");\nexports.finished = __webpack_require__(/*! ./lib/internal/streams/end-of-stream.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\nexports.pipeline = __webpack_require__(/*! ./lib/internal/streams/pipeline.js */ \"./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js\");\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/readable-stream/readable-browser.js?");

/***/ }),

/***/ "./node_modules/hash-base/node_modules/safe-buffer/index.js":
/*!******************************************************************!*\
  !*** ./node_modules/hash-base/node_modules/safe-buffer/index.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n\n/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\");\n\nvar Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers\n\nfunction copyProps(src, dst) {\n  for (var key in src) {\n    dst[key] = src[key];\n  }\n}\n\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n  module.exports = buffer;\n} else {\n  // Copy properties from require('buffer')\n  copyProps(buffer, exports);\n  exports.Buffer = SafeBuffer;\n}\n\nfunction SafeBuffer(arg, encodingOrOffset, length) {\n  return Buffer(arg, encodingOrOffset, length);\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype); // Copy static methods from Buffer\n\ncopyProps(Buffer, SafeBuffer);\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n  if (typeof arg === 'number') {\n    throw new TypeError('Argument must not be a number');\n  }\n\n  return Buffer(arg, encodingOrOffset, length);\n};\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number');\n  }\n\n  var buf = Buffer(size);\n\n  if (fill !== undefined) {\n    if (typeof encoding === 'string') {\n      buf.fill(fill, encoding);\n    } else {\n      buf.fill(fill);\n    }\n  } else {\n    buf.fill(0);\n  }\n\n  return buf;\n};\n\nSafeBuffer.allocUnsafe = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number');\n  }\n\n  return Buffer(size);\n};\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number');\n  }\n\n  return buffer.SlowBuffer(size);\n};\n\n//# sourceURL=webpack:///./node_modules/hash-base/node_modules/safe-buffer/index.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash.js":
/*!******************************************!*\
  !*** ./node_modules/hash.js/lib/hash.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var hash = exports;\nhash.utils = __webpack_require__(/*! ./hash/utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\nhash.common = __webpack_require__(/*! ./hash/common */ \"./node_modules/hash.js/lib/hash/common.js\");\nhash.sha = __webpack_require__(/*! ./hash/sha */ \"./node_modules/hash.js/lib/hash/sha.js\");\nhash.ripemd = __webpack_require__(/*! ./hash/ripemd */ \"./node_modules/hash.js/lib/hash/ripemd.js\");\nhash.hmac = __webpack_require__(/*! ./hash/hmac */ \"./node_modules/hash.js/lib/hash/hmac.js\"); // Proxy hash functions to the main object\n\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n\n//# sourceURL=webpack:///./node_modules/hash.js/lib/hash.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/common.js":
/*!*************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/common.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nfunction BlockHash() {\n  this.pending = null;\n  this.pendingTotal = 0;\n  this.blockSize = this.constructor.blockSize;\n  this.outSize = this.constructor.outSize;\n  this.hmacStrength = this.constructor.hmacStrength;\n  this.padLength = this.constructor.padLength / 8;\n  this.endian = 'big';\n  this._delta8 = this.blockSize / 8;\n  this._delta32 = this.blockSize / 32;\n}\n\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n  // Convert message to array, pad it, and join into 32bit blocks\n  msg = utils.toArray(msg, enc);\n  if (!this.pending) this.pending = msg;else this.pending = this.pending.concat(msg);\n  this.pendingTotal += msg.length; // Enough data, try updating\n\n  if (this.pending.length >= this._delta8) {\n    msg = this.pending; // Process pending data in blocks\n\n    var r = msg.length % this._delta8;\n    this.pending = msg.slice(msg.length - r, msg.length);\n    if (this.pending.length === 0) this.pending = null;\n    msg = utils.join32(msg, 0, msg.length - r, this.endian);\n\n    for (var i = 0; i < msg.length; i += this._delta32) this._update(msg, i, i + this._delta32);\n  }\n\n  return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n  this.update(this._pad());\n  assert(this.pending === null);\n  return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n  var len = this.pendingTotal;\n  var bytes = this._delta8;\n  var k = bytes - (len + this.padLength) % bytes;\n  var res = new Array(k + this.padLength);\n  res[0] = 0x80;\n\n  for (var i = 1; i < k; i++) res[i] = 0; // Append length\n\n\n  len <<= 3;\n\n  if (this.endian === 'big') {\n    for (var t = 8; t < this.padLength; t++) res[i++] = 0;\n\n    res[i++] = 0;\n    res[i++] = 0;\n    res[i++] = 0;\n    res[i++] = 0;\n    res[i++] = len >>> 24 & 0xff;\n    res[i++] = len >>> 16 & 0xff;\n    res[i++] = len >>> 8 & 0xff;\n    res[i++] = len & 0xff;\n  } else {\n    res[i++] = len & 0xff;\n    res[i++] = len >>> 8 & 0xff;\n    res[i++] = len >>> 16 & 0xff;\n    res[i++] = len >>> 24 & 0xff;\n    res[i++] = 0;\n    res[i++] = 0;\n    res[i++] = 0;\n    res[i++] = 0;\n\n    for (t = 8; t < this.padLength; t++) res[i++] = 0;\n  }\n\n  return res;\n};\n\n//# sourceURL=webpack:///./node_modules/hash.js/lib/hash/common.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/hmac.js":
/*!***********************************************!*\
  !*** ./node_modules/hash.js/lib/hash/hmac.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nfunction Hmac(hash, key, enc) {\n  if (!(this instanceof Hmac)) return new Hmac(hash, key, enc);\n  this.Hash = hash;\n  this.blockSize = hash.blockSize / 8;\n  this.outSize = hash.outSize / 8;\n  this.inner = null;\n  this.outer = null;\n\n  this._init(utils.toArray(key, enc));\n}\n\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n  // Shorten key, if needed\n  if (key.length > this.blockSize) key = new this.Hash().update(key).digest();\n  assert(key.length <= this.blockSize); // Add padding to key\n\n  for (var i = key.length; i < this.blockSize; i++) key.push(0);\n\n  for (i = 0; i < key.length; i++) key[i] ^= 0x36;\n\n  this.inner = new this.Hash().update(key); // 0x36 ^ 0x5c = 0x6a\n\n  for (i = 0; i < key.length; i++) key[i] ^= 0x6a;\n\n  this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n  this.inner.update(msg, enc);\n  return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n  this.outer.update(this.inner.digest());\n  return this.outer.digest(enc);\n};\n\n//# sourceURL=webpack:///./node_modules/hash.js/lib/hash/hmac.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/ripemd.js":
/*!*************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/ripemd.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar common = __webpack_require__(/*! ./common */ \"./node_modules/hash.js/lib/hash/common.js\");\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n  if (!(this instanceof RIPEMD160)) return new RIPEMD160();\n  BlockHash.call(this);\n  this.h = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n  this.endian = 'little';\n}\n\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n  var A = this.h[0];\n  var B = this.h[1];\n  var C = this.h[2];\n  var D = this.h[3];\n  var E = this.h[4];\n  var Ah = A;\n  var Bh = B;\n  var Ch = C;\n  var Dh = D;\n  var Eh = E;\n\n  for (var j = 0; j < 80; j++) {\n    var T = sum32(rotl32(sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)), s[j]), E);\n    A = E;\n    E = D;\n    D = rotl32(C, 10);\n    C = B;\n    B = T;\n    T = sum32(rotl32(sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)), sh[j]), Eh);\n    Ah = Eh;\n    Eh = Dh;\n    Dh = rotl32(Ch, 10);\n    Ch = Bh;\n    Bh = T;\n  }\n\n  T = sum32_3(this.h[1], C, Dh);\n  this.h[1] = sum32_3(this.h[2], D, Eh);\n  this.h[2] = sum32_3(this.h[3], E, Ah);\n  this.h[3] = sum32_3(this.h[4], A, Bh);\n  this.h[4] = sum32_3(this.h[0], B, Ch);\n  this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n  if (enc === 'hex') return utils.toHex32(this.h, 'little');else return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n  if (j <= 15) return x ^ y ^ z;else if (j <= 31) return x & y | ~x & z;else if (j <= 47) return (x | ~y) ^ z;else if (j <= 63) return x & z | y & ~z;else return x ^ (y | ~z);\n}\n\nfunction K(j) {\n  if (j <= 15) return 0x00000000;else if (j <= 31) return 0x5a827999;else if (j <= 47) return 0x6ed9eba1;else if (j <= 63) return 0x8f1bbcdc;else return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n  if (j <= 15) return 0x50a28be6;else if (j <= 31) return 0x5c4dd124;else if (j <= 47) return 0x6d703ef3;else if (j <= 63) return 0x7a6d76e9;else return 0x00000000;\n}\n\nvar r = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13];\nvar rh = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11];\nvar s = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6];\nvar sh = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11];\n\n//# sourceURL=webpack:///./node_modules/hash.js/lib/hash/ripemd.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha.js":
/*!**********************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nexports.sha1 = __webpack_require__(/*! ./sha/1 */ \"./node_modules/hash.js/lib/hash/sha/1.js\");\nexports.sha224 = __webpack_require__(/*! ./sha/224 */ \"./node_modules/hash.js/lib/hash/sha/224.js\");\nexports.sha256 = __webpack_require__(/*! ./sha/256 */ \"./node_modules/hash.js/lib/hash/sha/256.js\");\nexports.sha384 = __webpack_require__(/*! ./sha/384 */ \"./node_modules/hash.js/lib/hash/sha/384.js\");\nexports.sha512 = __webpack_require__(/*! ./sha/512 */ \"./node_modules/hash.js/lib/hash/sha/512.js\");\n\n//# sourceURL=webpack:///./node_modules/hash.js/lib/hash/sha.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha/1.js":
/*!************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha/1.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar common = __webpack_require__(/*! ../common */ \"./node_modules/hash.js/lib/hash/common.js\");\n\nvar shaCommon = __webpack_require__(/*! ./common */ \"./node_modules/hash.js/lib/hash/sha/common.js\");\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\nvar sha1_K = [0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xCA62C1D6];\n\nfunction SHA1() {\n  if (!(this instanceof SHA1)) return new SHA1();\n  BlockHash.call(this);\n  this.h = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n  this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n  var W = this.W;\n\n  for (var i = 0; i < 16; i++) W[i] = msg[start + i];\n\n  for (; i < W.length; i++) W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n  var a = this.h[0];\n  var b = this.h[1];\n  var c = this.h[2];\n  var d = this.h[3];\n  var e = this.h[4];\n\n  for (i = 0; i < W.length; i++) {\n    var s = ~~(i / 20);\n    var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n    e = d;\n    d = c;\n    c = rotl32(b, 30);\n    b = a;\n    a = t;\n  }\n\n  this.h[0] = sum32(this.h[0], a);\n  this.h[1] = sum32(this.h[1], b);\n  this.h[2] = sum32(this.h[2], c);\n  this.h[3] = sum32(this.h[3], d);\n  this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n  if (enc === 'hex') return utils.toHex32(this.h, 'big');else return utils.split32(this.h, 'big');\n};\n\n//# sourceURL=webpack:///./node_modules/hash.js/lib/hash/sha/1.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha/224.js":
/*!**************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha/224.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar SHA256 = __webpack_require__(/*! ./256 */ \"./node_modules/hash.js/lib/hash/sha/256.js\");\n\nfunction SHA224() {\n  if (!(this instanceof SHA224)) return new SHA224();\n  SHA256.call(this);\n  this.h = [0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4];\n}\n\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n  // Just truncate output\n  if (enc === 'hex') return utils.toHex32(this.h.slice(0, 7), 'big');else return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n//# sourceURL=webpack:///./node_modules/hash.js/lib/hash/sha/224.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha/256.js":
/*!**************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha/256.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar common = __webpack_require__(/*! ../common */ \"./node_modules/hash.js/lib/hash/common.js\");\n\nvar shaCommon = __webpack_require__(/*! ./common */ \"./node_modules/hash.js/lib/hash/sha/common.js\");\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\nvar BlockHash = common.BlockHash;\nvar sha256_K = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\nfunction SHA256() {\n  if (!(this instanceof SHA256)) return new SHA256();\n  BlockHash.call(this);\n  this.h = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\n  this.k = sha256_K;\n  this.W = new Array(64);\n}\n\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n  var W = this.W;\n\n  for (var i = 0; i < 16; i++) W[i] = msg[start + i];\n\n  for (; i < W.length; i++) W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n  var a = this.h[0];\n  var b = this.h[1];\n  var c = this.h[2];\n  var d = this.h[3];\n  var e = this.h[4];\n  var f = this.h[5];\n  var g = this.h[6];\n  var h = this.h[7];\n  assert(this.k.length === W.length);\n\n  for (i = 0; i < W.length; i++) {\n    var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n    var T2 = sum32(s0_256(a), maj32(a, b, c));\n    h = g;\n    g = f;\n    f = e;\n    e = sum32(d, T1);\n    d = c;\n    c = b;\n    b = a;\n    a = sum32(T1, T2);\n  }\n\n  this.h[0] = sum32(this.h[0], a);\n  this.h[1] = sum32(this.h[1], b);\n  this.h[2] = sum32(this.h[2], c);\n  this.h[3] = sum32(this.h[3], d);\n  this.h[4] = sum32(this.h[4], e);\n  this.h[5] = sum32(this.h[5], f);\n  this.h[6] = sum32(this.h[6], g);\n  this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n  if (enc === 'hex') return utils.toHex32(this.h, 'big');else return utils.split32(this.h, 'big');\n};\n\n//# sourceURL=webpack:///./node_modules/hash.js/lib/hash/sha/256.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha/384.js":
/*!**************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha/384.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar SHA512 = __webpack_require__(/*! ./512 */ \"./node_modules/hash.js/lib/hash/sha/512.js\");\n\nfunction SHA384() {\n  if (!(this instanceof SHA384)) return new SHA384();\n  SHA512.call(this);\n  this.h = [0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939, 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4];\n}\n\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n  if (enc === 'hex') return utils.toHex32(this.h.slice(0, 12), 'big');else return utils.split32(this.h.slice(0, 12), 'big');\n};\n\n//# sourceURL=webpack:///./node_modules/hash.js/lib/hash/sha/384.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha/512.js":
/*!**************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha/512.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar common = __webpack_require__(/*! ../common */ \"./node_modules/hash.js/lib/hash/common.js\");\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\nvar BlockHash = common.BlockHash;\nvar sha512_K = [0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817];\n\nfunction SHA512() {\n  if (!(this instanceof SHA512)) return new SHA512();\n  BlockHash.call(this);\n  this.h = [0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1, 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179];\n  this.k = sha512_K;\n  this.W = new Array(160);\n}\n\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n  var W = this.W; // 32 x 32bit words\n\n  for (var i = 0; i < 32; i++) W[i] = msg[start + i];\n\n  for (; i < W.length; i += 2) {\n    var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n\n    var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n    var c1_hi = W[i - 14]; // i - 7\n\n    var c1_lo = W[i - 13];\n    var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n\n    var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n    var c3_hi = W[i - 32]; // i - 16\n\n    var c3_lo = W[i - 31];\n    W[i] = sum64_4_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo);\n    W[i + 1] = sum64_4_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo);\n  }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n  this._prepareBlock(msg, start);\n\n  var W = this.W;\n  var ah = this.h[0];\n  var al = this.h[1];\n  var bh = this.h[2];\n  var bl = this.h[3];\n  var ch = this.h[4];\n  var cl = this.h[5];\n  var dh = this.h[6];\n  var dl = this.h[7];\n  var eh = this.h[8];\n  var el = this.h[9];\n  var fh = this.h[10];\n  var fl = this.h[11];\n  var gh = this.h[12];\n  var gl = this.h[13];\n  var hh = this.h[14];\n  var hl = this.h[15];\n  assert(this.k.length === W.length);\n\n  for (var i = 0; i < W.length; i += 2) {\n    var c0_hi = hh;\n    var c0_lo = hl;\n    var c1_hi = s1_512_hi(eh, el);\n    var c1_lo = s1_512_lo(eh, el);\n    var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n    var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n    var c3_hi = this.k[i];\n    var c3_lo = this.k[i + 1];\n    var c4_hi = W[i];\n    var c4_lo = W[i + 1];\n    var T1_hi = sum64_5_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo);\n    var T1_lo = sum64_5_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo);\n    c0_hi = s0_512_hi(ah, al);\n    c0_lo = s0_512_lo(ah, al);\n    c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n    c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n    var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n    var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n    hh = gh;\n    hl = gl;\n    gh = fh;\n    gl = fl;\n    fh = eh;\n    fl = el;\n    eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n    el = sum64_lo(dl, dl, T1_hi, T1_lo);\n    dh = ch;\n    dl = cl;\n    ch = bh;\n    cl = bl;\n    bh = ah;\n    bl = al;\n    ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n    al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n  }\n\n  sum64(this.h, 0, ah, al);\n  sum64(this.h, 2, bh, bl);\n  sum64(this.h, 4, ch, cl);\n  sum64(this.h, 6, dh, dl);\n  sum64(this.h, 8, eh, el);\n  sum64(this.h, 10, fh, fl);\n  sum64(this.h, 12, gh, gl);\n  sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n  if (enc === 'hex') return utils.toHex32(this.h, 'big');else return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n  var r = xh & yh ^ ~xh & zh;\n  if (r < 0) r += 0x100000000;\n  return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n  var r = xl & yl ^ ~xl & zl;\n  if (r < 0) r += 0x100000000;\n  return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n  var r = xh & yh ^ xh & zh ^ yh & zh;\n  if (r < 0) r += 0x100000000;\n  return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n  var r = xl & yl ^ xl & zl ^ yl & zl;\n  if (r < 0) r += 0x100000000;\n  return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n  var c0_hi = rotr64_hi(xh, xl, 28);\n  var c1_hi = rotr64_hi(xl, xh, 2); // 34\n\n  var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n  var r = c0_hi ^ c1_hi ^ c2_hi;\n  if (r < 0) r += 0x100000000;\n  return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n  var c0_lo = rotr64_lo(xh, xl, 28);\n  var c1_lo = rotr64_lo(xl, xh, 2); // 34\n\n  var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n  var r = c0_lo ^ c1_lo ^ c2_lo;\n  if (r < 0) r += 0x100000000;\n  return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n  var c0_hi = rotr64_hi(xh, xl, 14);\n  var c1_hi = rotr64_hi(xh, xl, 18);\n  var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n  var r = c0_hi ^ c1_hi ^ c2_hi;\n  if (r < 0) r += 0x100000000;\n  return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n  var c0_lo = rotr64_lo(xh, xl, 14);\n  var c1_lo = rotr64_lo(xh, xl, 18);\n  var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n  var r = c0_lo ^ c1_lo ^ c2_lo;\n  if (r < 0) r += 0x100000000;\n  return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n  var c0_hi = rotr64_hi(xh, xl, 1);\n  var c1_hi = rotr64_hi(xh, xl, 8);\n  var c2_hi = shr64_hi(xh, xl, 7);\n  var r = c0_hi ^ c1_hi ^ c2_hi;\n  if (r < 0) r += 0x100000000;\n  return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n  var c0_lo = rotr64_lo(xh, xl, 1);\n  var c1_lo = rotr64_lo(xh, xl, 8);\n  var c2_lo = shr64_lo(xh, xl, 7);\n  var r = c0_lo ^ c1_lo ^ c2_lo;\n  if (r < 0) r += 0x100000000;\n  return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n  var c0_hi = rotr64_hi(xh, xl, 19);\n  var c1_hi = rotr64_hi(xl, xh, 29); // 61\n\n  var c2_hi = shr64_hi(xh, xl, 6);\n  var r = c0_hi ^ c1_hi ^ c2_hi;\n  if (r < 0) r += 0x100000000;\n  return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n  var c0_lo = rotr64_lo(xh, xl, 19);\n  var c1_lo = rotr64_lo(xl, xh, 29); // 61\n\n  var c2_lo = shr64_lo(xh, xl, 6);\n  var r = c0_lo ^ c1_lo ^ c2_lo;\n  if (r < 0) r += 0x100000000;\n  return r;\n}\n\n//# sourceURL=webpack:///./node_modules/hash.js/lib/hash/sha/512.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha/common.js":
/*!*****************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha/common.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n  if (s === 0) return ch32(x, y, z);\n  if (s === 1 || s === 3) return p32(x, y, z);\n  if (s === 2) return maj32(x, y, z);\n}\n\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n  return x & y ^ ~x & z;\n}\n\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n  return x & y ^ x & z ^ y & z;\n}\n\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n  return x ^ y ^ z;\n}\n\nexports.p32 = p32;\n\nfunction s0_256(x) {\n  return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\n\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n  return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\n\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n  return rotr32(x, 7) ^ rotr32(x, 18) ^ x >>> 3;\n}\n\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n  return rotr32(x, 17) ^ rotr32(x, 19) ^ x >>> 10;\n}\n\nexports.g1_256 = g1_256;\n\n//# sourceURL=webpack:///./node_modules/hash.js/lib/hash/sha/common.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/utils.js":
/*!************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/utils.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n  if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n    return false;\n  }\n\n  if (i < 0 || i + 1 >= msg.length) {\n    return false;\n  }\n\n  return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n  if (Array.isArray(msg)) return msg.slice();\n  if (!msg) return [];\n  var res = [];\n\n  if (typeof msg === 'string') {\n    if (!enc) {\n      // Inspired by stringToUtf8ByteArray() in closure-library by Google\n      // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n      // Apache License 2.0\n      // https://github.com/google/closure-library/blob/master/LICENSE\n      var p = 0;\n\n      for (var i = 0; i < msg.length; i++) {\n        var c = msg.charCodeAt(i);\n\n        if (c < 128) {\n          res[p++] = c;\n        } else if (c < 2048) {\n          res[p++] = c >> 6 | 192;\n          res[p++] = c & 63 | 128;\n        } else if (isSurrogatePair(msg, i)) {\n          c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n          res[p++] = c >> 18 | 240;\n          res[p++] = c >> 12 & 63 | 128;\n          res[p++] = c >> 6 & 63 | 128;\n          res[p++] = c & 63 | 128;\n        } else {\n          res[p++] = c >> 12 | 224;\n          res[p++] = c >> 6 & 63 | 128;\n          res[p++] = c & 63 | 128;\n        }\n      }\n    } else if (enc === 'hex') {\n      msg = msg.replace(/[^a-z0-9]+/ig, '');\n      if (msg.length % 2 !== 0) msg = '0' + msg;\n\n      for (i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16));\n    }\n  } else {\n    for (i = 0; i < msg.length; i++) res[i] = msg[i] | 0;\n  }\n\n  return res;\n}\n\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n  var res = '';\n\n  for (var i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16));\n\n  return res;\n}\n\nexports.toHex = toHex;\n\nfunction htonl(w) {\n  var res = w >>> 24 | w >>> 8 & 0xff00 | w << 8 & 0xff0000 | (w & 0xff) << 24;\n  return res >>> 0;\n}\n\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n  var res = '';\n\n  for (var i = 0; i < msg.length; i++) {\n    var w = msg[i];\n    if (endian === 'little') w = htonl(w);\n    res += zero8(w.toString(16));\n  }\n\n  return res;\n}\n\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n  if (word.length === 1) return '0' + word;else return word;\n}\n\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n  if (word.length === 7) return '0' + word;else if (word.length === 6) return '00' + word;else if (word.length === 5) return '000' + word;else if (word.length === 4) return '0000' + word;else if (word.length === 3) return '00000' + word;else if (word.length === 2) return '000000' + word;else if (word.length === 1) return '0000000' + word;else return word;\n}\n\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n  var len = end - start;\n  assert(len % 4 === 0);\n  var res = new Array(len / 4);\n\n  for (var i = 0, k = start; i < res.length; i++, k += 4) {\n    var w;\n    if (endian === 'big') w = msg[k] << 24 | msg[k + 1] << 16 | msg[k + 2] << 8 | msg[k + 3];else w = msg[k + 3] << 24 | msg[k + 2] << 16 | msg[k + 1] << 8 | msg[k];\n    res[i] = w >>> 0;\n  }\n\n  return res;\n}\n\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n  var res = new Array(msg.length * 4);\n\n  for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n    var m = msg[i];\n\n    if (endian === 'big') {\n      res[k] = m >>> 24;\n      res[k + 1] = m >>> 16 & 0xff;\n      res[k + 2] = m >>> 8 & 0xff;\n      res[k + 3] = m & 0xff;\n    } else {\n      res[k + 3] = m >>> 24;\n      res[k + 2] = m >>> 16 & 0xff;\n      res[k + 1] = m >>> 8 & 0xff;\n      res[k] = m & 0xff;\n    }\n  }\n\n  return res;\n}\n\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n  return w >>> b | w << 32 - b;\n}\n\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n  return w << b | w >>> 32 - b;\n}\n\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n  return a + b >>> 0;\n}\n\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n  return a + b + c >>> 0;\n}\n\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n  return a + b + c + d >>> 0;\n}\n\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n  return a + b + c + d + e >>> 0;\n}\n\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n  var bh = buf[pos];\n  var bl = buf[pos + 1];\n  var lo = al + bl >>> 0;\n  var hi = (lo < al ? 1 : 0) + ah + bh;\n  buf[pos] = hi >>> 0;\n  buf[pos + 1] = lo;\n}\n\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n  var lo = al + bl >>> 0;\n  var hi = (lo < al ? 1 : 0) + ah + bh;\n  return hi >>> 0;\n}\n\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n  var lo = al + bl;\n  return lo >>> 0;\n}\n\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n  var carry = 0;\n  var lo = al;\n  lo = lo + bl >>> 0;\n  carry += lo < al ? 1 : 0;\n  lo = lo + cl >>> 0;\n  carry += lo < cl ? 1 : 0;\n  lo = lo + dl >>> 0;\n  carry += lo < dl ? 1 : 0;\n  var hi = ah + bh + ch + dh + carry;\n  return hi >>> 0;\n}\n\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n  var lo = al + bl + cl + dl;\n  return lo >>> 0;\n}\n\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n  var carry = 0;\n  var lo = al;\n  lo = lo + bl >>> 0;\n  carry += lo < al ? 1 : 0;\n  lo = lo + cl >>> 0;\n  carry += lo < cl ? 1 : 0;\n  lo = lo + dl >>> 0;\n  carry += lo < dl ? 1 : 0;\n  lo = lo + el >>> 0;\n  carry += lo < el ? 1 : 0;\n  var hi = ah + bh + ch + dh + eh + carry;\n  return hi >>> 0;\n}\n\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n  var lo = al + bl + cl + dl + el;\n  return lo >>> 0;\n}\n\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n  var r = al << 32 - num | ah >>> num;\n  return r >>> 0;\n}\n\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n  var r = ah << 32 - num | al >>> num;\n  return r >>> 0;\n}\n\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n  return ah >>> num;\n}\n\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n  var r = ah << 32 - num | al >>> num;\n  return r >>> 0;\n}\n\nexports.shr64_lo = shr64_lo;\n\n//# sourceURL=webpack:///./node_modules/hash.js/lib/hash/utils.js?");

/***/ }),

/***/ "./node_modules/hmac-drbg/lib/hmac-drbg.js":
/*!*************************************************!*\
  !*** ./node_modules/hmac-drbg/lib/hmac-drbg.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar hash = __webpack_require__(/*! hash.js */ \"./node_modules/hash.js/lib/hash.js\");\n\nvar utils = __webpack_require__(/*! minimalistic-crypto-utils */ \"./node_modules/minimalistic-crypto-utils/lib/utils.js\");\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nfunction HmacDRBG(options) {\n  if (!(this instanceof HmacDRBG)) return new HmacDRBG(options);\n  this.hash = options.hash;\n  this.predResist = !!options.predResist;\n  this.outLen = this.hash.outSize;\n  this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n  this._reseed = null;\n  this.reseedInterval = null;\n  this.K = null;\n  this.V = null;\n  var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n  var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n  var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n  assert(entropy.length >= this.minEntropy / 8, 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n  this._init(entropy, nonce, pers);\n}\n\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n  var seed = entropy.concat(nonce).concat(pers);\n  this.K = new Array(this.outLen / 8);\n  this.V = new Array(this.outLen / 8);\n\n  for (var i = 0; i < this.V.length; i++) {\n    this.K[i] = 0x00;\n    this.V[i] = 0x01;\n  }\n\n  this._update(seed);\n\n  this._reseed = 1;\n  this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n  return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n  var kmac = this._hmac().update(this.V).update([0x00]);\n\n  if (seed) kmac = kmac.update(seed);\n  this.K = kmac.digest();\n  this.V = this._hmac().update(this.V).digest();\n  if (!seed) return;\n  this.K = this._hmac().update(this.V).update([0x01]).update(seed).digest();\n  this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n  // Optional entropy enc\n  if (typeof entropyEnc !== 'string') {\n    addEnc = add;\n    add = entropyEnc;\n    entropyEnc = null;\n  }\n\n  entropy = utils.toArray(entropy, entropyEnc);\n  add = utils.toArray(add, addEnc);\n  assert(entropy.length >= this.minEntropy / 8, 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n  this._update(entropy.concat(add || []));\n\n  this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n  if (this._reseed > this.reseedInterval) throw new Error('Reseed is required'); // Optional encoding\n\n  if (typeof enc !== 'string') {\n    addEnc = add;\n    add = enc;\n    enc = null;\n  } // Optional additional data\n\n\n  if (add) {\n    add = utils.toArray(add, addEnc || 'hex');\n\n    this._update(add);\n  }\n\n  var temp = [];\n\n  while (temp.length < len) {\n    this.V = this._hmac().update(this.V).digest();\n    temp = temp.concat(this.V);\n  }\n\n  var res = temp.slice(0, len);\n\n  this._update(add);\n\n  this._reseed++;\n  return utils.encode(res, enc);\n};\n\n//# sourceURL=webpack:///./node_modules/hmac-drbg/lib/hmac-drbg.js?");

/***/ }),

/***/ "./node_modules/ieee754/index.js":
/*!***************************************!*\
  !*** ./node_modules/ieee754/index.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m;\n  var eLen = nBytes * 8 - mLen - 1;\n  var eMax = (1 << eLen) - 1;\n  var eBias = eMax >> 1;\n  var nBits = -7;\n  var i = isLE ? nBytes - 1 : 0;\n  var d = isLE ? -1 : 1;\n  var s = buffer[offset + i];\n  i += d;\n  e = s & (1 << -nBits) - 1;\n  s >>= -nBits;\n  nBits += eLen;\n\n  for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & (1 << -nBits) - 1;\n  e >>= -nBits;\n  nBits += mLen;\n\n  for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias;\n  } else if (e === eMax) {\n    return m ? NaN : (s ? -1 : 1) * Infinity;\n  } else {\n    m = m + Math.pow(2, mLen);\n    e = e - eBias;\n  }\n\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n};\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c;\n  var eLen = nBytes * 8 - mLen - 1;\n  var eMax = (1 << eLen) - 1;\n  var eBias = eMax >> 1;\n  var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n  var i = isLE ? 0 : nBytes - 1;\n  var d = isLE ? 1 : -1;\n  var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n  value = Math.abs(value);\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0;\n    e = eMax;\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2);\n\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--;\n      c *= 2;\n    }\n\n    if (e + eBias >= 1) {\n      value += rt / c;\n    } else {\n      value += rt * Math.pow(2, 1 - eBias);\n    }\n\n    if (value * c >= 2) {\n      e++;\n      c /= 2;\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0;\n      e = eMax;\n    } else if (e + eBias >= 1) {\n      m = (value * c - 1) * Math.pow(2, mLen);\n      e = e + eBias;\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n      e = 0;\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = e << mLen | m;\n  eLen += mLen;\n\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128;\n};\n\n//# sourceURL=webpack:///./node_modules/ieee754/index.js?");

/***/ }),

/***/ "./node_modules/inherits/inherits_browser.js":
/*!***************************************************!*\
  !*** ./node_modules/inherits/inherits_browser.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("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 () {};\n\n      TempCtor.prototype = superCtor.prototype;\n      ctor.prototype = new TempCtor();\n      ctor.prototype.constructor = ctor;\n    }\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/inherits/inherits_browser.js?");

/***/ }),

/***/ "./node_modules/isarray/index.js":
/*!***************************************!*\
  !*** ./node_modules/isarray/index.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n//# sourceURL=webpack:///./node_modules/isarray/index.js?");

/***/ }),

/***/ "./node_modules/json-schema-traverse/index.js":
/*!****************************************************!*\
  !*** ./node_modules/json-schema-traverse/index.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar traverse = module.exports = function (schema, opts, cb) {\n  // Legacy support for v0.3.1 and earlier.\n  if (typeof opts == 'function') {\n    cb = opts;\n    opts = {};\n  }\n\n  cb = opts.cb || cb;\n  var pre = typeof cb == 'function' ? cb : cb.pre || function () {};\n\n  var post = cb.post || function () {};\n\n  _traverse(opts, pre, post, schema, '', schema);\n};\n\ntraverse.keywords = {\n  additionalItems: true,\n  items: true,\n  contains: true,\n  additionalProperties: true,\n  propertyNames: true,\n  not: true\n};\ntraverse.arrayKeywords = {\n  items: true,\n  allOf: true,\n  anyOf: true,\n  oneOf: true\n};\ntraverse.propsKeywords = {\n  definitions: true,\n  properties: true,\n  patternProperties: true,\n  dependencies: true\n};\ntraverse.skipKeywords = {\n  default: true,\n  enum: true,\n  const: true,\n  required: true,\n  maximum: true,\n  minimum: true,\n  exclusiveMaximum: true,\n  exclusiveMinimum: true,\n  multipleOf: true,\n  maxLength: true,\n  minLength: true,\n  pattern: true,\n  format: true,\n  maxItems: true,\n  minItems: true,\n  uniqueItems: true,\n  maxProperties: true,\n  minProperties: true\n};\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n  if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n    pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n\n    for (var key in schema) {\n      var sch = schema[key];\n\n      if (Array.isArray(sch)) {\n        if (key in traverse.arrayKeywords) {\n          for (var i = 0; i < sch.length; i++) _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n        }\n      } else if (key in traverse.propsKeywords) {\n        if (sch && typeof sch == 'object') {\n          for (var prop in sch) _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n        }\n      } else if (key in traverse.keywords || opts.allKeys && !(key in traverse.skipKeywords)) {\n        _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n      }\n    }\n\n    post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n  }\n}\n\nfunction escapeJsonPtr(str) {\n  return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n//# sourceURL=webpack:///./node_modules/json-schema-traverse/index.js?");

/***/ }),

/***/ "./node_modules/md5.js/index.js":
/*!**************************************!*\
  !*** ./node_modules/md5.js/index.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar HashBase = __webpack_require__(/*! hash-base */ \"./node_modules/hash-base/index.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar ARRAY16 = new Array(16);\n\nfunction MD5() {\n  HashBase.call(this, 64); // state\n\n  this._a = 0x67452301;\n  this._b = 0xefcdab89;\n  this._c = 0x98badcfe;\n  this._d = 0x10325476;\n}\n\ninherits(MD5, HashBase);\n\nMD5.prototype._update = function () {\n  var M = ARRAY16;\n\n  for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4);\n\n  var a = this._a;\n  var b = this._b;\n  var c = this._c;\n  var d = this._d;\n  a = fnF(a, b, c, d, M[0], 0xd76aa478, 7);\n  d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12);\n  c = fnF(c, d, a, b, M[2], 0x242070db, 17);\n  b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22);\n  a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7);\n  d = fnF(d, a, b, c, M[5], 0x4787c62a, 12);\n  c = fnF(c, d, a, b, M[6], 0xa8304613, 17);\n  b = fnF(b, c, d, a, M[7], 0xfd469501, 22);\n  a = fnF(a, b, c, d, M[8], 0x698098d8, 7);\n  d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12);\n  c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17);\n  b = fnF(b, c, d, a, M[11], 0x895cd7be, 22);\n  a = fnF(a, b, c, d, M[12], 0x6b901122, 7);\n  d = fnF(d, a, b, c, M[13], 0xfd987193, 12);\n  c = fnF(c, d, a, b, M[14], 0xa679438e, 17);\n  b = fnF(b, c, d, a, M[15], 0x49b40821, 22);\n  a = fnG(a, b, c, d, M[1], 0xf61e2562, 5);\n  d = fnG(d, a, b, c, M[6], 0xc040b340, 9);\n  c = fnG(c, d, a, b, M[11], 0x265e5a51, 14);\n  b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20);\n  a = fnG(a, b, c, d, M[5], 0xd62f105d, 5);\n  d = fnG(d, a, b, c, M[10], 0x02441453, 9);\n  c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14);\n  b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20);\n  a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5);\n  d = fnG(d, a, b, c, M[14], 0xc33707d6, 9);\n  c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14);\n  b = fnG(b, c, d, a, M[8], 0x455a14ed, 20);\n  a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5);\n  d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9);\n  c = fnG(c, d, a, b, M[7], 0x676f02d9, 14);\n  b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20);\n  a = fnH(a, b, c, d, M[5], 0xfffa3942, 4);\n  d = fnH(d, a, b, c, M[8], 0x8771f681, 11);\n  c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16);\n  b = fnH(b, c, d, a, M[14], 0xfde5380c, 23);\n  a = fnH(a, b, c, d, M[1], 0xa4beea44, 4);\n  d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11);\n  c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16);\n  b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23);\n  a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4);\n  d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11);\n  c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16);\n  b = fnH(b, c, d, a, M[6], 0x04881d05, 23);\n  a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4);\n  d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11);\n  c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16);\n  b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23);\n  a = fnI(a, b, c, d, M[0], 0xf4292244, 6);\n  d = fnI(d, a, b, c, M[7], 0x432aff97, 10);\n  c = fnI(c, d, a, b, M[14], 0xab9423a7, 15);\n  b = fnI(b, c, d, a, M[5], 0xfc93a039, 21);\n  a = fnI(a, b, c, d, M[12], 0x655b59c3, 6);\n  d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10);\n  c = fnI(c, d, a, b, M[10], 0xffeff47d, 15);\n  b = fnI(b, c, d, a, M[1], 0x85845dd1, 21);\n  a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6);\n  d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10);\n  c = fnI(c, d, a, b, M[6], 0xa3014314, 15);\n  b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21);\n  a = fnI(a, b, c, d, M[4], 0xf7537e82, 6);\n  d = fnI(d, a, b, c, M[11], 0xbd3af235, 10);\n  c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15);\n  b = fnI(b, c, d, a, M[9], 0xeb86d391, 21);\n  this._a = this._a + a | 0;\n  this._b = this._b + b | 0;\n  this._c = this._c + c | 0;\n  this._d = this._d + d | 0;\n};\n\nMD5.prototype._digest = function () {\n  // create padding and handle blocks\n  this._block[this._blockOffset++] = 0x80;\n\n  if (this._blockOffset > 56) {\n    this._block.fill(0, this._blockOffset, 64);\n\n    this._update();\n\n    this._blockOffset = 0;\n  }\n\n  this._block.fill(0, this._blockOffset, 56);\n\n  this._block.writeUInt32LE(this._length[0], 56);\n\n  this._block.writeUInt32LE(this._length[1], 60);\n\n  this._update(); // produce result\n\n\n  var buffer = Buffer.allocUnsafe(16);\n  buffer.writeInt32LE(this._a, 0);\n  buffer.writeInt32LE(this._b, 4);\n  buffer.writeInt32LE(this._c, 8);\n  buffer.writeInt32LE(this._d, 12);\n  return buffer;\n};\n\nfunction rotl(x, n) {\n  return x << n | x >>> 32 - n;\n}\n\nfunction fnF(a, b, c, d, m, k, s) {\n  return rotl(a + (b & c | ~b & d) + m + k | 0, s) + b | 0;\n}\n\nfunction fnG(a, b, c, d, m, k, s) {\n  return rotl(a + (b & d | c & ~d) + m + k | 0, s) + b | 0;\n}\n\nfunction fnH(a, b, c, d, m, k, s) {\n  return rotl(a + (b ^ c ^ d) + m + k | 0, s) + b | 0;\n}\n\nfunction fnI(a, b, c, d, m, k, s) {\n  return rotl(a + (c ^ (b | ~d)) + m + k | 0, s) + b | 0;\n}\n\nmodule.exports = MD5;\n\n//# sourceURL=webpack:///./node_modules/md5.js/index.js?");

/***/ }),

/***/ "./node_modules/miller-rabin/lib/mr.js":
/*!*********************************************!*\
  !*** ./node_modules/miller-rabin/lib/mr.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var bn = __webpack_require__(/*! bn.js */ \"./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js\");\n\nvar brorand = __webpack_require__(/*! brorand */ \"./node_modules/brorand/index.js\");\n\nfunction MillerRabin(rand) {\n  this.rand = rand || new brorand.Rand();\n}\n\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n  return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n  var len = n.bitLength();\n  var min_bytes = Math.ceil(len / 8); // Generage random bytes until a number less than n is found.\n  // This ensures that 0..n-1 have an equal probability of being selected.\n\n  do var a = new bn(this.rand.generate(min_bytes)); while (a.cmp(n) >= 0);\n\n  return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n  // Generate a random number greater than or equal to start and less than stop.\n  var size = stop.sub(start);\n  return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n  var len = n.bitLength();\n  var red = bn.mont(n);\n  var rone = new bn(1).toRed(red);\n  if (!k) k = Math.max(1, len / 48 | 0); // Find d and s, (n - 1) = (2 ^ s) * d;\n\n  var n1 = n.subn(1);\n\n  for (var s = 0; !n1.testn(s); s++) {}\n\n  var d = n.shrn(s);\n  var rn1 = n1.toRed(red);\n  var prime = true;\n\n  for (; k > 0; k--) {\n    var a = this._randrange(new bn(2), n1);\n\n    if (cb) cb(a);\n    var x = a.toRed(red).redPow(d);\n    if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue;\n\n    for (var i = 1; i < s; i++) {\n      x = x.redSqr();\n      if (x.cmp(rone) === 0) return false;\n      if (x.cmp(rn1) === 0) break;\n    }\n\n    if (i === s) return false;\n  }\n\n  return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n  var len = n.bitLength();\n  var red = bn.mont(n);\n  var rone = new bn(1).toRed(red);\n  if (!k) k = Math.max(1, len / 48 | 0); // Find d and s, (n - 1) = (2 ^ s) * d;\n\n  var n1 = n.subn(1);\n\n  for (var s = 0; !n1.testn(s); s++) {}\n\n  var d = n.shrn(s);\n  var rn1 = n1.toRed(red);\n\n  for (; k > 0; k--) {\n    var a = this._randrange(new bn(2), n1);\n\n    var g = n.gcd(a);\n    if (g.cmpn(1) !== 0) return g;\n    var x = a.toRed(red).redPow(d);\n    if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue;\n\n    for (var i = 1; i < s; i++) {\n      x = x.redSqr();\n      if (x.cmp(rone) === 0) return x.fromRed().subn(1).gcd(n);\n      if (x.cmp(rn1) === 0) break;\n    }\n\n    if (i === s) {\n      x = x.redSqr();\n      return x.fromRed().subn(1).gcd(n);\n    }\n  }\n\n  return false;\n};\n\n//# sourceURL=webpack:///./node_modules/miller-rabin/lib/mr.js?");

/***/ }),

/***/ "./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js":
/*!****************************************************************!*\
  !*** ./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js ***!
  \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n  'use strict'; // Utils\n\n  function assert(val, msg) {\n    if (!val) throw new Error(msg || 'Assertion failed');\n  } // Could use `inherits` module, but don't want to move from single file\n  // architecture yet.\n\n\n  function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor;\n\n    var TempCtor = function () {};\n\n    TempCtor.prototype = superCtor.prototype;\n    ctor.prototype = new TempCtor();\n    ctor.prototype.constructor = ctor;\n  } // BN\n\n\n  function BN(number, base, endian) {\n    if (BN.isBN(number)) {\n      return number;\n    }\n\n    this.negative = 0;\n    this.words = null;\n    this.length = 0; // Reduction context\n\n    this.red = null;\n\n    if (number !== null) {\n      if (base === 'le' || base === 'be') {\n        endian = base;\n        base = 10;\n      }\n\n      this._init(number || 0, base || 10, endian || 'be');\n    }\n  }\n\n  if (typeof module === 'object') {\n    module.exports = BN;\n  } else {\n    exports.BN = BN;\n  }\n\n  BN.BN = BN;\n  BN.wordSize = 26;\n  var Buffer;\n\n  try {\n    if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n      Buffer = window.Buffer;\n    } else {\n      Buffer = __webpack_require__(/*! buffer */ 6).Buffer;\n    }\n  } catch (e) {}\n\n  BN.isBN = function isBN(num) {\n    if (num instanceof BN) {\n      return true;\n    }\n\n    return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n  };\n\n  BN.max = function max(left, right) {\n    if (left.cmp(right) > 0) return left;\n    return right;\n  };\n\n  BN.min = function min(left, right) {\n    if (left.cmp(right) < 0) return left;\n    return right;\n  };\n\n  BN.prototype._init = function init(number, base, endian) {\n    if (typeof number === 'number') {\n      return this._initNumber(number, base, endian);\n    }\n\n    if (typeof number === 'object') {\n      return this._initArray(number, base, endian);\n    }\n\n    if (base === 'hex') {\n      base = 16;\n    }\n\n    assert(base === (base | 0) && base >= 2 && base <= 36);\n    number = number.toString().replace(/\\s+/g, '');\n    var start = 0;\n\n    if (number[0] === '-') {\n      start++;\n      this.negative = 1;\n    }\n\n    if (start < number.length) {\n      if (base === 16) {\n        this._parseHex(number, start, endian);\n      } else {\n        this._parseBase(number, base, start);\n\n        if (endian === 'le') {\n          this._initArray(this.toArray(), base, endian);\n        }\n      }\n    }\n  };\n\n  BN.prototype._initNumber = function _initNumber(number, base, endian) {\n    if (number < 0) {\n      this.negative = 1;\n      number = -number;\n    }\n\n    if (number < 0x4000000) {\n      this.words = [number & 0x3ffffff];\n      this.length = 1;\n    } else if (number < 0x10000000000000) {\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n      this.length = 2;\n    } else {\n      assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n      this.length = 3;\n    }\n\n    if (endian !== 'le') return; // Reverse the bytes\n\n    this._initArray(this.toArray(), base, endian);\n  };\n\n  BN.prototype._initArray = function _initArray(number, base, endian) {\n    // Perhaps a Uint8Array\n    assert(typeof number.length === 'number');\n\n    if (number.length <= 0) {\n      this.words = [0];\n      this.length = 1;\n      return this;\n    }\n\n    this.length = Math.ceil(number.length / 3);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    }\n\n    var j, w;\n    var off = 0;\n\n    if (endian === 'be') {\n      for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n        w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    } else if (endian === 'le') {\n      for (i = 0, j = 0; i < number.length; i += 3) {\n        w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    }\n\n    return this.strip();\n  };\n\n  function parseHex4Bits(string, index) {\n    var c = string.charCodeAt(index); // 'A' - 'F'\n\n    if (c >= 65 && c <= 70) {\n      return c - 55; // 'a' - 'f'\n    } else if (c >= 97 && c <= 102) {\n      return c - 87; // '0' - '9'\n    } else {\n      return c - 48 & 0xf;\n    }\n  }\n\n  function parseHexByte(string, lowerBound, index) {\n    var r = parseHex4Bits(string, index);\n\n    if (index - 1 >= lowerBound) {\n      r |= parseHex4Bits(string, index - 1) << 4;\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseHex = function _parseHex(number, start, endian) {\n    // Create possibly bigger array to ensure that it fits the number\n    this.length = Math.ceil((number.length - start) / 6);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    } // 24-bits chunks\n\n\n    var off = 0;\n    var j = 0;\n    var w;\n\n    if (endian === 'be') {\n      for (i = number.length - 1; i >= start; i -= 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    } else {\n      var parseLength = number.length - start;\n\n      for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    }\n\n    this.strip();\n  };\n\n  function parseBase(str, start, end, mul) {\n    var r = 0;\n    var len = Math.min(str.length, end);\n\n    for (var i = start; i < len; i++) {\n      var c = str.charCodeAt(i) - 48;\n      r *= mul; // 'a'\n\n      if (c >= 49) {\n        r += c - 49 + 0xa; // 'A'\n      } else if (c >= 17) {\n        r += c - 17 + 0xa; // '0' - '9'\n      } else {\n        r += c;\n      }\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseBase = function _parseBase(number, base, start) {\n    // Initialize as zero\n    this.words = [0];\n    this.length = 1; // Find length of limb in base\n\n    for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n      limbLen++;\n    }\n\n    limbLen--;\n    limbPow = limbPow / base | 0;\n    var total = number.length - start;\n    var mod = total % limbLen;\n    var end = Math.min(total, total - mod) + start;\n    var word = 0;\n\n    for (var i = start; i < end; i += limbLen) {\n      word = parseBase(number, i, i + limbLen, base);\n      this.imuln(limbPow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    if (mod !== 0) {\n      var pow = 1;\n      word = parseBase(number, i, number.length, base);\n\n      for (i = 0; i < mod; i++) {\n        pow *= base;\n      }\n\n      this.imuln(pow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    this.strip();\n  };\n\n  BN.prototype.copy = function copy(dest) {\n    dest.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      dest.words[i] = this.words[i];\n    }\n\n    dest.length = this.length;\n    dest.negative = this.negative;\n    dest.red = this.red;\n  };\n\n  BN.prototype.clone = function clone() {\n    var r = new BN(null);\n    this.copy(r);\n    return r;\n  };\n\n  BN.prototype._expand = function _expand(size) {\n    while (this.length < size) {\n      this.words[this.length++] = 0;\n    }\n\n    return this;\n  }; // Remove leading `0` from `this`\n\n\n  BN.prototype.strip = function strip() {\n    while (this.length > 1 && this.words[this.length - 1] === 0) {\n      this.length--;\n    }\n\n    return this._normSign();\n  };\n\n  BN.prototype._normSign = function _normSign() {\n    // -0 = 0\n    if (this.length === 1 && this.words[0] === 0) {\n      this.negative = 0;\n    }\n\n    return this;\n  };\n\n  BN.prototype.inspect = function inspect() {\n    return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  };\n  /*\n   var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n   var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n   */\n\n\n  var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n  var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n  var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n  BN.prototype.toString = function toString(base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n    var out;\n\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = ((w << off | carry) & 0xffffff).toString(16);\n        carry = w >>> 24 - off & 0xffffff;\n\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n\n        off += 2;\n\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n      }\n\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n\n      while (!c.isZero()) {\n        var r = c.modn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber() {\n    var ret = this.words[0];\n\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + this.words[1] * 0x4000000;\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n\n    return this.negative !== 0 ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON() {\n    return this.toString(16);\n  };\n\n  BN.prototype.toBuffer = function toBuffer(endian, length) {\n    assert(typeof Buffer !== 'undefined');\n    return this.toArrayLike(Buffer, endian, length);\n  };\n\n  BN.prototype.toArray = function toArray(endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n    this.strip();\n    var littleEndian = endian === 'le';\n    var res = new ArrayType(reqLength);\n    var b, i;\n    var q = this.clone();\n\n    if (!littleEndian) {\n      // Assume big-endian\n      for (i = 0; i < reqLength - byteLength; i++) {\n        res[i] = 0;\n      }\n\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n        res[reqLength - i - 1] = b;\n      }\n    } else {\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n        res[i] = b;\n      }\n\n      for (; i < reqLength; i++) {\n        res[i] = 0;\n      }\n    }\n\n    return res;\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits(w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits(w) {\n      var t = w;\n      var r = 0;\n\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits(w) {\n    // Short-cut\n    if (w === 0) return 26;\n    var t = w;\n    var r = 0;\n\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n\n    return r;\n  }; // Return number of used bits in a BN\n\n\n  BN.prototype.bitLength = function bitLength() {\n    var w = this.words[this.length - 1];\n\n    var hi = this._countBits(w);\n\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray(num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = bit / 26 | 0;\n      var wbit = bit % 26;\n      w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n    }\n\n    return w;\n  } // Number of trailing zero bits\n\n\n  BN.prototype.zeroBits = function zeroBits() {\n    if (this.isZero()) return 0;\n    var r = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n\n      r += b;\n      if (b !== 26) break;\n    }\n\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength() {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos(width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos(width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg() {\n    return this.negative !== 0;\n  }; // Return negative clone of `this`\n\n\n  BN.prototype.neg = function neg() {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg() {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  }; // Or `num` with `this` in-place\n\n\n  BN.prototype.iuor = function iuor(num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ior = function ior(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  }; // Or `num` with `this`\n\n\n  BN.prototype.or = function or(num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor(num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  }; // And `num` with `this` in-place\n\n\n  BN.prototype.iuand = function iuand(num) {\n    // b = min-length(num, this)\n    var b;\n\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n    return this.strip();\n  };\n\n  BN.prototype.iand = function iand(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  }; // And `num` with `this`\n\n\n  BN.prototype.and = function and(num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand(num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  }; // Xor `num` with `this` in-place\n\n\n  BN.prototype.iuxor = function iuxor(num) {\n    // a.length > b.length\n    var a;\n    var b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n    return this.strip();\n  };\n\n  BN.prototype.ixor = function ixor(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  }; // Xor `num` with `this`\n\n\n  BN.prototype.xor = function xor(num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor(num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  }; // Not ``this`` with ``width`` bitwidth\n\n\n  BN.prototype.inotn = function inotn(width) {\n    assert(typeof width === 'number' && width >= 0);\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    } // Handle complete words\n\n\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    } // Handle the residue\n\n\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n    } // And remove leading zeroes\n\n\n    return this.strip();\n  };\n\n  BN.prototype.notn = function notn(width) {\n    return this.clone().inotn(width);\n  }; // Set `bit` of `this`\n\n\n  BN.prototype.setn = function setn(bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var off = bit / 26 | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | 1 << wbit;\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this.strip();\n  }; // Add `num` to `this` in-place\n\n\n  BN.prototype.iadd = function iadd(num) {\n    var r; // negative + positive\n\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign(); // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    } // a.length > b.length\n\n\n    var a, b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++; // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  }; // Add `num` to `this`\n\n\n  BN.prototype.add = function add(num) {\n    var res;\n\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n    return num.clone().iadd(this);\n  }; // Subtract `num` from `this` in-place\n\n\n  BN.prototype.isub = function isub(num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign(); // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    } // At this point both numbers are positive\n\n\n    var cmp = this.cmp(num); // Optimization - zeroify\n\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    } // a > b\n\n\n    var a, b;\n\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    } // Copy rest of the words\n\n\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this.strip();\n  }; // Subtract `num` from `this`\n\n\n  BN.prototype.sub = function sub(num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = self.length + num.length | 0;\n    out.length = len;\n    len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n    var lo = r & 0x3ffffff;\n    var carry = r / 0x4000000 | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += r / 0x4000000 | 0;\n        rword = r & 0x3ffffff;\n      }\n\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  } // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n\n\n  var comb10MulTo = function comb10MulTo(self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = mid + Math.imul(ah0, bl0) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = mid + Math.imul(ah1, bl0) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = lo + Math.imul(al0, bl1) | 0;\n    mid = mid + Math.imul(al0, bh1) | 0;\n    mid = mid + Math.imul(ah0, bl1) | 0;\n    hi = hi + Math.imul(ah0, bh1) | 0;\n    var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = mid + Math.imul(ah2, bl0) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = lo + Math.imul(al1, bl1) | 0;\n    mid = mid + Math.imul(al1, bh1) | 0;\n    mid = mid + Math.imul(ah1, bl1) | 0;\n    hi = hi + Math.imul(ah1, bh1) | 0;\n    lo = lo + Math.imul(al0, bl2) | 0;\n    mid = mid + Math.imul(al0, bh2) | 0;\n    mid = mid + Math.imul(ah0, bl2) | 0;\n    hi = hi + Math.imul(ah0, bh2) | 0;\n    var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = mid + Math.imul(ah3, bl0) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = lo + Math.imul(al2, bl1) | 0;\n    mid = mid + Math.imul(al2, bh1) | 0;\n    mid = mid + Math.imul(ah2, bl1) | 0;\n    hi = hi + Math.imul(ah2, bh1) | 0;\n    lo = lo + Math.imul(al1, bl2) | 0;\n    mid = mid + Math.imul(al1, bh2) | 0;\n    mid = mid + Math.imul(ah1, bl2) | 0;\n    hi = hi + Math.imul(ah1, bh2) | 0;\n    lo = lo + Math.imul(al0, bl3) | 0;\n    mid = mid + Math.imul(al0, bh3) | 0;\n    mid = mid + Math.imul(ah0, bl3) | 0;\n    hi = hi + Math.imul(ah0, bh3) | 0;\n    var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = mid + Math.imul(ah4, bl0) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = lo + Math.imul(al3, bl1) | 0;\n    mid = mid + Math.imul(al3, bh1) | 0;\n    mid = mid + Math.imul(ah3, bl1) | 0;\n    hi = hi + Math.imul(ah3, bh1) | 0;\n    lo = lo + Math.imul(al2, bl2) | 0;\n    mid = mid + Math.imul(al2, bh2) | 0;\n    mid = mid + Math.imul(ah2, bl2) | 0;\n    hi = hi + Math.imul(ah2, bh2) | 0;\n    lo = lo + Math.imul(al1, bl3) | 0;\n    mid = mid + Math.imul(al1, bh3) | 0;\n    mid = mid + Math.imul(ah1, bl3) | 0;\n    hi = hi + Math.imul(ah1, bh3) | 0;\n    lo = lo + Math.imul(al0, bl4) | 0;\n    mid = mid + Math.imul(al0, bh4) | 0;\n    mid = mid + Math.imul(ah0, bl4) | 0;\n    hi = hi + Math.imul(ah0, bh4) | 0;\n    var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = mid + Math.imul(ah5, bl0) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = lo + Math.imul(al4, bl1) | 0;\n    mid = mid + Math.imul(al4, bh1) | 0;\n    mid = mid + Math.imul(ah4, bl1) | 0;\n    hi = hi + Math.imul(ah4, bh1) | 0;\n    lo = lo + Math.imul(al3, bl2) | 0;\n    mid = mid + Math.imul(al3, bh2) | 0;\n    mid = mid + Math.imul(ah3, bl2) | 0;\n    hi = hi + Math.imul(ah3, bh2) | 0;\n    lo = lo + Math.imul(al2, bl3) | 0;\n    mid = mid + Math.imul(al2, bh3) | 0;\n    mid = mid + Math.imul(ah2, bl3) | 0;\n    hi = hi + Math.imul(ah2, bh3) | 0;\n    lo = lo + Math.imul(al1, bl4) | 0;\n    mid = mid + Math.imul(al1, bh4) | 0;\n    mid = mid + Math.imul(ah1, bl4) | 0;\n    hi = hi + Math.imul(ah1, bh4) | 0;\n    lo = lo + Math.imul(al0, bl5) | 0;\n    mid = mid + Math.imul(al0, bh5) | 0;\n    mid = mid + Math.imul(ah0, bl5) | 0;\n    hi = hi + Math.imul(ah0, bh5) | 0;\n    var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = mid + Math.imul(ah6, bl0) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = lo + Math.imul(al5, bl1) | 0;\n    mid = mid + Math.imul(al5, bh1) | 0;\n    mid = mid + Math.imul(ah5, bl1) | 0;\n    hi = hi + Math.imul(ah5, bh1) | 0;\n    lo = lo + Math.imul(al4, bl2) | 0;\n    mid = mid + Math.imul(al4, bh2) | 0;\n    mid = mid + Math.imul(ah4, bl2) | 0;\n    hi = hi + Math.imul(ah4, bh2) | 0;\n    lo = lo + Math.imul(al3, bl3) | 0;\n    mid = mid + Math.imul(al3, bh3) | 0;\n    mid = mid + Math.imul(ah3, bl3) | 0;\n    hi = hi + Math.imul(ah3, bh3) | 0;\n    lo = lo + Math.imul(al2, bl4) | 0;\n    mid = mid + Math.imul(al2, bh4) | 0;\n    mid = mid + Math.imul(ah2, bl4) | 0;\n    hi = hi + Math.imul(ah2, bh4) | 0;\n    lo = lo + Math.imul(al1, bl5) | 0;\n    mid = mid + Math.imul(al1, bh5) | 0;\n    mid = mid + Math.imul(ah1, bl5) | 0;\n    hi = hi + Math.imul(ah1, bh5) | 0;\n    lo = lo + Math.imul(al0, bl6) | 0;\n    mid = mid + Math.imul(al0, bh6) | 0;\n    mid = mid + Math.imul(ah0, bl6) | 0;\n    hi = hi + Math.imul(ah0, bh6) | 0;\n    var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = mid + Math.imul(ah7, bl0) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = lo + Math.imul(al6, bl1) | 0;\n    mid = mid + Math.imul(al6, bh1) | 0;\n    mid = mid + Math.imul(ah6, bl1) | 0;\n    hi = hi + Math.imul(ah6, bh1) | 0;\n    lo = lo + Math.imul(al5, bl2) | 0;\n    mid = mid + Math.imul(al5, bh2) | 0;\n    mid = mid + Math.imul(ah5, bl2) | 0;\n    hi = hi + Math.imul(ah5, bh2) | 0;\n    lo = lo + Math.imul(al4, bl3) | 0;\n    mid = mid + Math.imul(al4, bh3) | 0;\n    mid = mid + Math.imul(ah4, bl3) | 0;\n    hi = hi + Math.imul(ah4, bh3) | 0;\n    lo = lo + Math.imul(al3, bl4) | 0;\n    mid = mid + Math.imul(al3, bh4) | 0;\n    mid = mid + Math.imul(ah3, bl4) | 0;\n    hi = hi + Math.imul(ah3, bh4) | 0;\n    lo = lo + Math.imul(al2, bl5) | 0;\n    mid = mid + Math.imul(al2, bh5) | 0;\n    mid = mid + Math.imul(ah2, bl5) | 0;\n    hi = hi + Math.imul(ah2, bh5) | 0;\n    lo = lo + Math.imul(al1, bl6) | 0;\n    mid = mid + Math.imul(al1, bh6) | 0;\n    mid = mid + Math.imul(ah1, bl6) | 0;\n    hi = hi + Math.imul(ah1, bh6) | 0;\n    lo = lo + Math.imul(al0, bl7) | 0;\n    mid = mid + Math.imul(al0, bh7) | 0;\n    mid = mid + Math.imul(ah0, bl7) | 0;\n    hi = hi + Math.imul(ah0, bh7) | 0;\n    var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = mid + Math.imul(ah8, bl0) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = lo + Math.imul(al7, bl1) | 0;\n    mid = mid + Math.imul(al7, bh1) | 0;\n    mid = mid + Math.imul(ah7, bl1) | 0;\n    hi = hi + Math.imul(ah7, bh1) | 0;\n    lo = lo + Math.imul(al6, bl2) | 0;\n    mid = mid + Math.imul(al6, bh2) | 0;\n    mid = mid + Math.imul(ah6, bl2) | 0;\n    hi = hi + Math.imul(ah6, bh2) | 0;\n    lo = lo + Math.imul(al5, bl3) | 0;\n    mid = mid + Math.imul(al5, bh3) | 0;\n    mid = mid + Math.imul(ah5, bl3) | 0;\n    hi = hi + Math.imul(ah5, bh3) | 0;\n    lo = lo + Math.imul(al4, bl4) | 0;\n    mid = mid + Math.imul(al4, bh4) | 0;\n    mid = mid + Math.imul(ah4, bl4) | 0;\n    hi = hi + Math.imul(ah4, bh4) | 0;\n    lo = lo + Math.imul(al3, bl5) | 0;\n    mid = mid + Math.imul(al3, bh5) | 0;\n    mid = mid + Math.imul(ah3, bl5) | 0;\n    hi = hi + Math.imul(ah3, bh5) | 0;\n    lo = lo + Math.imul(al2, bl6) | 0;\n    mid = mid + Math.imul(al2, bh6) | 0;\n    mid = mid + Math.imul(ah2, bl6) | 0;\n    hi = hi + Math.imul(ah2, bh6) | 0;\n    lo = lo + Math.imul(al1, bl7) | 0;\n    mid = mid + Math.imul(al1, bh7) | 0;\n    mid = mid + Math.imul(ah1, bl7) | 0;\n    hi = hi + Math.imul(ah1, bh7) | 0;\n    lo = lo + Math.imul(al0, bl8) | 0;\n    mid = mid + Math.imul(al0, bh8) | 0;\n    mid = mid + Math.imul(ah0, bl8) | 0;\n    hi = hi + Math.imul(ah0, bh8) | 0;\n    var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = mid + Math.imul(ah9, bl0) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = lo + Math.imul(al8, bl1) | 0;\n    mid = mid + Math.imul(al8, bh1) | 0;\n    mid = mid + Math.imul(ah8, bl1) | 0;\n    hi = hi + Math.imul(ah8, bh1) | 0;\n    lo = lo + Math.imul(al7, bl2) | 0;\n    mid = mid + Math.imul(al7, bh2) | 0;\n    mid = mid + Math.imul(ah7, bl2) | 0;\n    hi = hi + Math.imul(ah7, bh2) | 0;\n    lo = lo + Math.imul(al6, bl3) | 0;\n    mid = mid + Math.imul(al6, bh3) | 0;\n    mid = mid + Math.imul(ah6, bl3) | 0;\n    hi = hi + Math.imul(ah6, bh3) | 0;\n    lo = lo + Math.imul(al5, bl4) | 0;\n    mid = mid + Math.imul(al5, bh4) | 0;\n    mid = mid + Math.imul(ah5, bl4) | 0;\n    hi = hi + Math.imul(ah5, bh4) | 0;\n    lo = lo + Math.imul(al4, bl5) | 0;\n    mid = mid + Math.imul(al4, bh5) | 0;\n    mid = mid + Math.imul(ah4, bl5) | 0;\n    hi = hi + Math.imul(ah4, bh5) | 0;\n    lo = lo + Math.imul(al3, bl6) | 0;\n    mid = mid + Math.imul(al3, bh6) | 0;\n    mid = mid + Math.imul(ah3, bl6) | 0;\n    hi = hi + Math.imul(ah3, bh6) | 0;\n    lo = lo + Math.imul(al2, bl7) | 0;\n    mid = mid + Math.imul(al2, bh7) | 0;\n    mid = mid + Math.imul(ah2, bl7) | 0;\n    hi = hi + Math.imul(ah2, bh7) | 0;\n    lo = lo + Math.imul(al1, bl8) | 0;\n    mid = mid + Math.imul(al1, bh8) | 0;\n    mid = mid + Math.imul(ah1, bl8) | 0;\n    hi = hi + Math.imul(ah1, bh8) | 0;\n    lo = lo + Math.imul(al0, bl9) | 0;\n    mid = mid + Math.imul(al0, bh9) | 0;\n    mid = mid + Math.imul(ah0, bl9) | 0;\n    hi = hi + Math.imul(ah0, bh9) | 0;\n    var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = mid + Math.imul(ah9, bl1) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = lo + Math.imul(al8, bl2) | 0;\n    mid = mid + Math.imul(al8, bh2) | 0;\n    mid = mid + Math.imul(ah8, bl2) | 0;\n    hi = hi + Math.imul(ah8, bh2) | 0;\n    lo = lo + Math.imul(al7, bl3) | 0;\n    mid = mid + Math.imul(al7, bh3) | 0;\n    mid = mid + Math.imul(ah7, bl3) | 0;\n    hi = hi + Math.imul(ah7, bh3) | 0;\n    lo = lo + Math.imul(al6, bl4) | 0;\n    mid = mid + Math.imul(al6, bh4) | 0;\n    mid = mid + Math.imul(ah6, bl4) | 0;\n    hi = hi + Math.imul(ah6, bh4) | 0;\n    lo = lo + Math.imul(al5, bl5) | 0;\n    mid = mid + Math.imul(al5, bh5) | 0;\n    mid = mid + Math.imul(ah5, bl5) | 0;\n    hi = hi + Math.imul(ah5, bh5) | 0;\n    lo = lo + Math.imul(al4, bl6) | 0;\n    mid = mid + Math.imul(al4, bh6) | 0;\n    mid = mid + Math.imul(ah4, bl6) | 0;\n    hi = hi + Math.imul(ah4, bh6) | 0;\n    lo = lo + Math.imul(al3, bl7) | 0;\n    mid = mid + Math.imul(al3, bh7) | 0;\n    mid = mid + Math.imul(ah3, bl7) | 0;\n    hi = hi + Math.imul(ah3, bh7) | 0;\n    lo = lo + Math.imul(al2, bl8) | 0;\n    mid = mid + Math.imul(al2, bh8) | 0;\n    mid = mid + Math.imul(ah2, bl8) | 0;\n    hi = hi + Math.imul(ah2, bh8) | 0;\n    lo = lo + Math.imul(al1, bl9) | 0;\n    mid = mid + Math.imul(al1, bh9) | 0;\n    mid = mid + Math.imul(ah1, bl9) | 0;\n    hi = hi + Math.imul(ah1, bh9) | 0;\n    var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = mid + Math.imul(ah9, bl2) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = lo + Math.imul(al8, bl3) | 0;\n    mid = mid + Math.imul(al8, bh3) | 0;\n    mid = mid + Math.imul(ah8, bl3) | 0;\n    hi = hi + Math.imul(ah8, bh3) | 0;\n    lo = lo + Math.imul(al7, bl4) | 0;\n    mid = mid + Math.imul(al7, bh4) | 0;\n    mid = mid + Math.imul(ah7, bl4) | 0;\n    hi = hi + Math.imul(ah7, bh4) | 0;\n    lo = lo + Math.imul(al6, bl5) | 0;\n    mid = mid + Math.imul(al6, bh5) | 0;\n    mid = mid + Math.imul(ah6, bl5) | 0;\n    hi = hi + Math.imul(ah6, bh5) | 0;\n    lo = lo + Math.imul(al5, bl6) | 0;\n    mid = mid + Math.imul(al5, bh6) | 0;\n    mid = mid + Math.imul(ah5, bl6) | 0;\n    hi = hi + Math.imul(ah5, bh6) | 0;\n    lo = lo + Math.imul(al4, bl7) | 0;\n    mid = mid + Math.imul(al4, bh7) | 0;\n    mid = mid + Math.imul(ah4, bl7) | 0;\n    hi = hi + Math.imul(ah4, bh7) | 0;\n    lo = lo + Math.imul(al3, bl8) | 0;\n    mid = mid + Math.imul(al3, bh8) | 0;\n    mid = mid + Math.imul(ah3, bl8) | 0;\n    hi = hi + Math.imul(ah3, bh8) | 0;\n    lo = lo + Math.imul(al2, bl9) | 0;\n    mid = mid + Math.imul(al2, bh9) | 0;\n    mid = mid + Math.imul(ah2, bl9) | 0;\n    hi = hi + Math.imul(ah2, bh9) | 0;\n    var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = mid + Math.imul(ah9, bl3) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = lo + Math.imul(al8, bl4) | 0;\n    mid = mid + Math.imul(al8, bh4) | 0;\n    mid = mid + Math.imul(ah8, bl4) | 0;\n    hi = hi + Math.imul(ah8, bh4) | 0;\n    lo = lo + Math.imul(al7, bl5) | 0;\n    mid = mid + Math.imul(al7, bh5) | 0;\n    mid = mid + Math.imul(ah7, bl5) | 0;\n    hi = hi + Math.imul(ah7, bh5) | 0;\n    lo = lo + Math.imul(al6, bl6) | 0;\n    mid = mid + Math.imul(al6, bh6) | 0;\n    mid = mid + Math.imul(ah6, bl6) | 0;\n    hi = hi + Math.imul(ah6, bh6) | 0;\n    lo = lo + Math.imul(al5, bl7) | 0;\n    mid = mid + Math.imul(al5, bh7) | 0;\n    mid = mid + Math.imul(ah5, bl7) | 0;\n    hi = hi + Math.imul(ah5, bh7) | 0;\n    lo = lo + Math.imul(al4, bl8) | 0;\n    mid = mid + Math.imul(al4, bh8) | 0;\n    mid = mid + Math.imul(ah4, bl8) | 0;\n    hi = hi + Math.imul(ah4, bh8) | 0;\n    lo = lo + Math.imul(al3, bl9) | 0;\n    mid = mid + Math.imul(al3, bh9) | 0;\n    mid = mid + Math.imul(ah3, bl9) | 0;\n    hi = hi + Math.imul(ah3, bh9) | 0;\n    var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = mid + Math.imul(ah9, bl4) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = lo + Math.imul(al8, bl5) | 0;\n    mid = mid + Math.imul(al8, bh5) | 0;\n    mid = mid + Math.imul(ah8, bl5) | 0;\n    hi = hi + Math.imul(ah8, bh5) | 0;\n    lo = lo + Math.imul(al7, bl6) | 0;\n    mid = mid + Math.imul(al7, bh6) | 0;\n    mid = mid + Math.imul(ah7, bl6) | 0;\n    hi = hi + Math.imul(ah7, bh6) | 0;\n    lo = lo + Math.imul(al6, bl7) | 0;\n    mid = mid + Math.imul(al6, bh7) | 0;\n    mid = mid + Math.imul(ah6, bl7) | 0;\n    hi = hi + Math.imul(ah6, bh7) | 0;\n    lo = lo + Math.imul(al5, bl8) | 0;\n    mid = mid + Math.imul(al5, bh8) | 0;\n    mid = mid + Math.imul(ah5, bl8) | 0;\n    hi = hi + Math.imul(ah5, bh8) | 0;\n    lo = lo + Math.imul(al4, bl9) | 0;\n    mid = mid + Math.imul(al4, bh9) | 0;\n    mid = mid + Math.imul(ah4, bl9) | 0;\n    hi = hi + Math.imul(ah4, bh9) | 0;\n    var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = mid + Math.imul(ah9, bl5) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = lo + Math.imul(al8, bl6) | 0;\n    mid = mid + Math.imul(al8, bh6) | 0;\n    mid = mid + Math.imul(ah8, bl6) | 0;\n    hi = hi + Math.imul(ah8, bh6) | 0;\n    lo = lo + Math.imul(al7, bl7) | 0;\n    mid = mid + Math.imul(al7, bh7) | 0;\n    mid = mid + Math.imul(ah7, bl7) | 0;\n    hi = hi + Math.imul(ah7, bh7) | 0;\n    lo = lo + Math.imul(al6, bl8) | 0;\n    mid = mid + Math.imul(al6, bh8) | 0;\n    mid = mid + Math.imul(ah6, bl8) | 0;\n    hi = hi + Math.imul(ah6, bh8) | 0;\n    lo = lo + Math.imul(al5, bl9) | 0;\n    mid = mid + Math.imul(al5, bh9) | 0;\n    mid = mid + Math.imul(ah5, bl9) | 0;\n    hi = hi + Math.imul(ah5, bh9) | 0;\n    var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = mid + Math.imul(ah9, bl6) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = lo + Math.imul(al8, bl7) | 0;\n    mid = mid + Math.imul(al8, bh7) | 0;\n    mid = mid + Math.imul(ah8, bl7) | 0;\n    hi = hi + Math.imul(ah8, bh7) | 0;\n    lo = lo + Math.imul(al7, bl8) | 0;\n    mid = mid + Math.imul(al7, bh8) | 0;\n    mid = mid + Math.imul(ah7, bl8) | 0;\n    hi = hi + Math.imul(ah7, bh8) | 0;\n    lo = lo + Math.imul(al6, bl9) | 0;\n    mid = mid + Math.imul(al6, bh9) | 0;\n    mid = mid + Math.imul(ah6, bl9) | 0;\n    hi = hi + Math.imul(ah6, bh9) | 0;\n    var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = mid + Math.imul(ah9, bl7) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = lo + Math.imul(al8, bl8) | 0;\n    mid = mid + Math.imul(al8, bh8) | 0;\n    mid = mid + Math.imul(ah8, bl8) | 0;\n    hi = hi + Math.imul(ah8, bh8) | 0;\n    lo = lo + Math.imul(al7, bl9) | 0;\n    mid = mid + Math.imul(al7, bh9) | 0;\n    mid = mid + Math.imul(ah7, bl9) | 0;\n    hi = hi + Math.imul(ah7, bh9) | 0;\n    var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = mid + Math.imul(ah9, bl8) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = lo + Math.imul(al8, bl9) | 0;\n    mid = mid + Math.imul(al8, bh9) | 0;\n    mid = mid + Math.imul(ah8, bl9) | 0;\n    hi = hi + Math.imul(ah8, bh9) | 0;\n    var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = mid + Math.imul(ah9, bl9) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n\n    return out;\n  }; // Polyfill comb\n\n\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n    var carry = 0;\n    var hncarry = 0;\n\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n        var lo = r & 0x3ffffff;\n        ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n        lo = lo + rword | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = ncarry + (lo >>> 26) | 0;\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  function jumboMulTo(self, num, out) {\n    var fftm = new FFTM();\n    return fftm.mulp(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo(num, out) {\n    var res;\n    var len = this.length + num.length;\n\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  }; // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n\n  function FFTM(x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT(N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  }; // Returns binary-reversed representation of `x`\n\n\n  FFTM.prototype.revBin = function revBin(x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n    var rb = 0;\n\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << l - i - 1;\n      x >>= 1;\n    }\n\n    return rb;\n  }; // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n\n\n  FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n          var rx = rtwdf_ * ro - itwdf_ * io;\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n          /* jshint maxdepth : false */\n\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n      t = iws[i];\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n      rws[2 * i] = carry & 0x1fff;\n      carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff;\n      carry = carry >>> 13;\n    } // Pad with zeroes\n\n\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub(N) {\n    var ph = new Array(N);\n\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp(x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n    var rmws = out.words;\n    rmws.length = N;\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out.strip();\n  }; // Multiply `this` by `num`\n\n\n  BN.prototype.mul = function mul(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  }; // Multiply employing FFT\n\n\n  BN.prototype.mulf = function mulf(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  }; // In-place Multiplication\n\n\n  BN.prototype.imul = function imul(num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000); // Carry\n\n    var carry = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.muln = function muln(num) {\n    return this.clone().imuln(num);\n  }; // `this` * `this`\n\n\n  BN.prototype.sqr = function sqr() {\n    return this.mul(this);\n  }; // `this` * `this` in-place\n\n\n  BN.prototype.isqr = function isqr() {\n    return this.imul(this.clone());\n  }; // Math.pow(`this`, `num`)\n\n\n  BN.prototype.pow = function pow(num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n    var res = this;\n\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  }; // Shift-left in-place\n\n\n  BN.prototype.iushln = function iushln(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = (this.words[i] | 0) - newCarry << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> 26 - r;\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishln = function ishln(bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  }; // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n  BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n\n    if (hint) {\n      h = (hint - hint % 26) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n    var maskedWords = extended;\n    h -= s;\n    h = Math.max(0, h); // Extended mode, copy masked part\n\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {// No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = carry << 26 - r | word >>> r;\n      carry = word & mask;\n    } // Push carried bits as a mask\n\n\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  }; // Shift-left\n\n\n  BN.prototype.shln = function shln(bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln(bits) {\n    return this.clone().iushln(bits);\n  }; // Shift-right\n\n\n  BN.prototype.shrn = function shrn(bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn(bits) {\n    return this.clone().iushrn(bits);\n  }; // Test if n bit is set\n\n\n  BN.prototype.testn = function testn(bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) return false; // Check bit and return\n\n    var w = this.words[s];\n    return !!(w & q);\n  }; // Return only lowers bits of number (in-place)\n\n\n  BN.prototype.imaskn = function imaskn(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this.strip();\n  }; // Return only lowers bits of number\n\n\n  BN.prototype.maskn = function maskn(bits) {\n    return this.clone().imaskn(bits);\n  }; // Add plain number `num` to `this`\n\n\n  BN.prototype.iaddn = function iaddn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num); // Possible sign change\n\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) < num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    } // Add without checks\n\n\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn(num) {\n    this.words[0] += num; // Carry\n\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n\n    this.length = Math.max(this.length, i + 1);\n    return this;\n  }; // Subtract plain number `num` from `this`\n\n\n  BN.prototype.isubn = function isubn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.addn = function addn(num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn(num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs() {\n    this.negative = 0;\n    return this;\n  };\n\n  BN.prototype.abs = function abs() {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - (right / 0x4000000 | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this.strip(); // Subtraction overflow\n\n    assert(carry === -1);\n    carry = 0;\n\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n\n    this.negative = 1;\n    return this.strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv(num, mode) {\n    var shift = this.length - num.length;\n    var a = this.clone();\n    var b = num; // Normalize\n\n    var bhi = b.words[b.length - 1] | 0;\n\n    var bhiBits = this._countBits(bhi);\n\n    shift = 26 - bhiBits;\n\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    } // Initialize quotient\n\n\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n    if (diff.negative === 0) {\n      a = diff;\n\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n\n      qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n\n        a._ishlnsubmul(b, 1, j);\n\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n\n    if (q) {\n      q.strip();\n    }\n\n    a.strip(); // Denormalize\n\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n\n\n  BN.prototype.divmod = function divmod(num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    } // Both numbers are positive at this point\n    // Strip both numbers to approximate shift value\n\n\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    } // Very short reduction\n\n\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  }; // Find `this` / `num`\n\n\n  BN.prototype.div = function div(num) {\n    return this.divmod(num, 'div', false).div;\n  }; // Find `this` % `num`\n\n\n  BN.prototype.mod = function mod(num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod(num) {\n    return this.divmod(num, 'mod', true).mod;\n  }; // Find Round(`this` / `num`)\n\n\n  BN.prototype.divRound = function divRound(num) {\n    var dm = this.divmod(num); // Fast case - exact division\n\n    if (dm.mod.isZero()) return dm.div;\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half); // Round down\n\n    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modn = function modn(num) {\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n    var acc = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return acc;\n  }; // In-place division by number\n\n\n  BN.prototype.idivn = function idivn(num) {\n    assert(num <= 0x3ffffff);\n    var carry = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = w / num | 0;\n      carry = w % num;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.divn = function divn(num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    } // A * x + B * y = x\n\n\n    var A = new BN(1);\n    var B = new BN(0); // C * x + D * y = y\n\n    var C = new BN(0);\n    var D = new BN(1);\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        x.iushrn(i);\n\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        y.iushrn(j);\n\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  }; // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n\n\n  BN.prototype._invmp = function _invmp(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        a.iushrn(i);\n\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        b.iushrn(j);\n\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd(num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0; // Remove common factor of two\n\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  }; // Invert number in the field F(num)\n\n\n  BN.prototype.invm = function invm(num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven() {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd() {\n    return (this.words[0] & 1) === 1;\n  }; // And first word and num\n\n\n  BN.prototype.andln = function andln(num) {\n    return this.words[0] & num;\n  }; // Increment at the bit position in-line\n\n\n  BN.prototype.bincn = function bincn(bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) {\n      this._expand(s + 1);\n\n      this.words[s] |= q;\n      return this;\n    } // Add bit and propagate, if needed\n\n\n    var carry = q;\n\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero() {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn(num) {\n    var negative = num < 0;\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n    this.strip();\n    var res;\n\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n\n\n  BN.prototype.cmp = function cmp(num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Unsigned comparison\n\n\n  BN.prototype.ucmp = function ucmp(num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n    var res = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n      if (a === b) continue;\n\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n\n      break;\n    }\n\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn(num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt(num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten(num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte(num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn(num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt(num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten(num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte(num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn(num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq(num) {\n    return this.cmp(num) === 0;\n  }; //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n\n\n  BN.red = function red(num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed() {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed(ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd(num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd(num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub(num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub(num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl(num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr() {\n    assert(this.red, 'redSqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr() {\n    assert(this.red, 'redISqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.isqr(this);\n  }; // Square root over p\n\n\n  BN.prototype.redSqrt = function redSqrt() {\n    assert(this.red, 'redSqrt works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm() {\n    assert(this.red, 'redInvm works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.invm(this);\n  }; // Return negative clone of `this` % `red modulo`\n\n\n  BN.prototype.redNeg = function redNeg() {\n    assert(this.red, 'redNeg works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow(num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n\n    this.red._verify1(this);\n\n    return this.red.pow(this, num);\n  }; // Prime numbers with efficient reduction\n\n\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  }; // Pseudo-Mersenne prime\n\n  function MPrime(name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp() {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce(num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is BN v4 instance\n        r.strip();\n      } else {\n        // r is BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split(input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK(num) {\n    return num.imul(this.k);\n  };\n\n  function K256() {\n    MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split(input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n    var outLen = Math.min(input.length, 9);\n\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    } // Shift by 9 limbs\n\n\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n      prev = next;\n    }\n\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK(num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n    var lo = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + (lo / 0x4000000 | 0);\n    } // Fast length reduction\n\n\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n\n    return num;\n  };\n\n  function P224() {\n    MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n\n  inherits(P224, MPrime);\n\n  function P192() {\n    MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n\n  inherits(P192, MPrime);\n\n  function P25519() {\n    // 2 ^ 255 - 19\n    MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK(num) {\n    // K = 0x13\n    var carry = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n      num.words[i] = lo;\n      carry = hi;\n    }\n\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n\n    return num;\n  }; // Exported mostly for testing purposes, use plain name instead\n\n\n  BN._prime = function prime(name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n    var prime;\n\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n\n    primes[name] = prime;\n    return prime;\n  }; //\n  // Base reduction engine\n  //\n\n\n  function Red(m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1(a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2(a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red, 'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod(a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n    return a.umod(this.m)._forceRed(this);\n  };\n\n  Red.prototype.neg = function neg(a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add(a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd(a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.sub = function sub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.shl = function shl(a, num) {\n    this._verify1(a);\n\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr(a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr(a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt(a) {\n    if (a.isZero()) return a.clone();\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1); // Fast case\n\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n    var q = this.m.subn(1);\n    var s = 0;\n\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n\n    assert(!q.isZero());\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg(); // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm(a) {\n    var inv = a._invmp(this.m);\n\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow(a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = word >> j & 1;\n\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo(num) {\n    var r = num.umod(this.m);\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom(num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  }; //\n  // Montgomery method engine\n  //\n\n\n  BN.mont = function mont(num) {\n    return new Mont(num);\n  };\n\n  function Mont(m) {\n    Red.call(this, m);\n    this.shift = this.m.bitLength();\n\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - this.shift % 26;\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo(num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom(num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul(a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul(a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm(a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/minimalistic-assert/index.js":
/*!***************************************************!*\
  !*** ./node_modules/minimalistic-assert/index.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = assert;\n\nfunction assert(val, msg) {\n  if (!val) throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n  if (l != r) throw new Error(msg || 'Assertion failed: ' + l + ' != ' + r);\n};\n\n//# sourceURL=webpack:///./node_modules/minimalistic-assert/index.js?");

/***/ }),

/***/ "./node_modules/minimalistic-crypto-utils/lib/utils.js":
/*!*************************************************************!*\
  !*** ./node_modules/minimalistic-crypto-utils/lib/utils.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n  if (Array.isArray(msg)) return msg.slice();\n  if (!msg) return [];\n  var res = [];\n\n  if (typeof msg !== 'string') {\n    for (var i = 0; i < msg.length; i++) res[i] = msg[i] | 0;\n\n    return res;\n  }\n\n  if (enc === 'hex') {\n    msg = msg.replace(/[^a-z0-9]+/ig, '');\n    if (msg.length % 2 !== 0) msg = '0' + msg;\n\n    for (var i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16));\n  } else {\n    for (var i = 0; i < msg.length; i++) {\n      var c = msg.charCodeAt(i);\n      var hi = c >> 8;\n      var lo = c & 0xff;\n      if (hi) res.push(hi, lo);else res.push(lo);\n    }\n  }\n\n  return res;\n}\n\nutils.toArray = toArray;\n\nfunction zero2(word) {\n  if (word.length === 1) return '0' + word;else return word;\n}\n\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n  var res = '';\n\n  for (var i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16));\n\n  return res;\n}\n\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n  if (enc === 'hex') return toHex(arr);else return arr;\n};\n\n//# sourceURL=webpack:///./node_modules/minimalistic-crypto-utils/lib/utils.js?");

/***/ }),

/***/ "./node_modules/moment/locale sync recursive ^\\.\\/.*$":
/*!**************************************************!*\
  !*** ./node_modules/moment/locale sync ^\.\/.*$ ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";\n\n//# sourceURL=webpack:///./node_modules/moment/locale_sync_^\\.\\/.*$?");

/***/ }),

/***/ "./node_modules/moment/locale/af.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/af.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var af = moment.defineLocale('af', {\n    months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),\n    monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n    weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),\n    weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n    weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n    meridiemParse: /vm|nm/i,\n    isPM: function (input) {\n      return /^nm$/i.test(input);\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 12) {\n        return isLower ? 'vm' : 'VM';\n      } else {\n        return isLower ? 'nm' : 'NM';\n      }\n    },\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Vandag om] LT',\n      nextDay: '[Môre om] LT',\n      nextWeek: 'dddd [om] LT',\n      lastDay: '[Gister om] LT',\n      lastWeek: '[Laas] dddd [om] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'oor %s',\n      past: '%s gelede',\n      s: \"'n paar sekondes\",\n      ss: '%d sekondes',\n      m: \"'n minuut\",\n      mm: '%d minute',\n      h: \"'n uur\",\n      hh: '%d ure',\n      d: \"'n dag\",\n      dd: '%d dae',\n      M: \"'n maand\",\n      MM: '%d maande',\n      y: \"'n jaar\",\n      yy: '%d jaar'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n    ordinal: function (number) {\n      return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter\n    },\n    week: {\n      dow: 1,\n      // Maandag is die eerste dag van die week.\n      doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n\n    }\n  });\n  return af;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/af.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar-dz.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ar-dz.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var pluralForm = function (n) {\n    return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n  },\n      plurals = {\n    s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n    m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n    h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n    d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n    M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n    y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n  },\n      pluralize = function (u) {\n    return function (number, withoutSuffix, string, isFuture) {\n      var f = pluralForm(number),\n          str = plurals[u][pluralForm(number)];\n\n      if (f === 2) {\n        str = str[withoutSuffix ? 0 : 1];\n      }\n\n      return str.replace(/%d/i, number);\n    };\n  },\n      months = ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];\n\n  var arDz = moment.defineLocale('ar-dz', {\n    months: months,\n    monthsShort: months,\n    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'D/\\u200FM/\\u200FYYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ص|م/,\n    isPM: function (input) {\n      return 'م' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ص';\n      } else {\n        return 'م';\n      }\n    },\n    calendar: {\n      sameDay: '[اليوم عند الساعة] LT',\n      nextDay: '[غدًا عند الساعة] LT',\n      nextWeek: 'dddd [عند الساعة] LT',\n      lastDay: '[أمس عند الساعة] LT',\n      lastWeek: 'dddd [عند الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'بعد %s',\n      past: 'منذ %s',\n      s: pluralize('s'),\n      ss: pluralize('s'),\n      m: pluralize('m'),\n      mm: pluralize('m'),\n      h: pluralize('h'),\n      hh: pluralize('h'),\n      d: pluralize('d'),\n      dd: pluralize('d'),\n      M: pluralize('M'),\n      MM: pluralize('M'),\n      y: pluralize('y'),\n      yy: pluralize('y')\n    },\n    postformat: function (string) {\n      return string.replace(/,/g, '،');\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return arDz;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar-dz.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar-kw.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ar-kw.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var arKw = moment.defineLocale('ar-kw', {\n    months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n    monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n    weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[اليوم على الساعة] LT',\n      nextDay: '[غدا على الساعة] LT',\n      nextWeek: 'dddd [على الساعة] LT',\n      lastDay: '[أمس على الساعة] LT',\n      lastWeek: 'dddd [على الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'في %s',\n      past: 'منذ %s',\n      s: 'ثوان',\n      ss: '%d ثانية',\n      m: 'دقيقة',\n      mm: '%d دقائق',\n      h: 'ساعة',\n      hh: '%d ساعات',\n      d: 'يوم',\n      dd: '%d أيام',\n      M: 'شهر',\n      MM: '%d أشهر',\n      y: 'سنة',\n      yy: '%d سنوات'\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n    }\n  });\n  return arKw;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar-kw.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar-ly.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ar-ly.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '1',\n    2: '2',\n    3: '3',\n    4: '4',\n    5: '5',\n    6: '6',\n    7: '7',\n    8: '8',\n    9: '9',\n    0: '0'\n  },\n      pluralForm = function (n) {\n    return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n  },\n      plurals = {\n    s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n    m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n    h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n    d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n    M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n    y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n  },\n      pluralize = function (u) {\n    return function (number, withoutSuffix, string, isFuture) {\n      var f = pluralForm(number),\n          str = plurals[u][pluralForm(number)];\n\n      if (f === 2) {\n        str = str[withoutSuffix ? 0 : 1];\n      }\n\n      return str.replace(/%d/i, number);\n    };\n  },\n      months = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];\n\n  var arLy = moment.defineLocale('ar-ly', {\n    months: months,\n    monthsShort: months,\n    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'D/\\u200FM/\\u200FYYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ص|م/,\n    isPM: function (input) {\n      return 'م' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ص';\n      } else {\n        return 'م';\n      }\n    },\n    calendar: {\n      sameDay: '[اليوم عند الساعة] LT',\n      nextDay: '[غدًا عند الساعة] LT',\n      nextWeek: 'dddd [عند الساعة] LT',\n      lastDay: '[أمس عند الساعة] LT',\n      lastWeek: 'dddd [عند الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'بعد %s',\n      past: 'منذ %s',\n      s: pluralize('s'),\n      ss: pluralize('s'),\n      m: pluralize('m'),\n      mm: pluralize('m'),\n      h: pluralize('h'),\n      hh: pluralize('h'),\n      d: pluralize('d'),\n      dd: pluralize('d'),\n      M: pluralize('M'),\n      MM: pluralize('M'),\n      y: pluralize('y'),\n      yy: pluralize('y')\n    },\n    preparse: function (string) {\n      return string.replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      }).replace(/,/g, '،');\n    },\n    week: {\n      dow: 6,\n      // Saturday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n    }\n  });\n  return arLy;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar-ly.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar-ma.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ar-ma.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var arMa = moment.defineLocale('ar-ma', {\n    months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n    monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[اليوم على الساعة] LT',\n      nextDay: '[غدا على الساعة] LT',\n      nextWeek: 'dddd [على الساعة] LT',\n      lastDay: '[أمس على الساعة] LT',\n      lastWeek: 'dddd [على الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'في %s',\n      past: 'منذ %s',\n      s: 'ثوان',\n      ss: '%d ثانية',\n      m: 'دقيقة',\n      mm: '%d دقائق',\n      h: 'ساعة',\n      hh: '%d ساعات',\n      d: 'يوم',\n      dd: '%d أيام',\n      M: 'شهر',\n      MM: '%d أشهر',\n      y: 'سنة',\n      yy: '%d سنوات'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return arMa;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar-ma.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar-sa.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ar-sa.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '١',\n    2: '٢',\n    3: '٣',\n    4: '٤',\n    5: '٥',\n    6: '٦',\n    7: '٧',\n    8: '٨',\n    9: '٩',\n    0: '٠'\n  },\n      numberMap = {\n    '١': '1',\n    '٢': '2',\n    '٣': '3',\n    '٤': '4',\n    '٥': '5',\n    '٦': '6',\n    '٧': '7',\n    '٨': '8',\n    '٩': '9',\n    '٠': '0'\n  };\n  var arSa = moment.defineLocale('ar-sa', {\n    months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n    monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ص|م/,\n    isPM: function (input) {\n      return 'م' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ص';\n      } else {\n        return 'م';\n      }\n    },\n    calendar: {\n      sameDay: '[اليوم على الساعة] LT',\n      nextDay: '[غدا على الساعة] LT',\n      nextWeek: 'dddd [على الساعة] LT',\n      lastDay: '[أمس على الساعة] LT',\n      lastWeek: 'dddd [على الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'في %s',\n      past: 'منذ %s',\n      s: 'ثوان',\n      ss: '%d ثانية',\n      m: 'دقيقة',\n      mm: '%d دقائق',\n      h: 'ساعة',\n      hh: '%d ساعات',\n      d: 'يوم',\n      dd: '%d أيام',\n      M: 'شهر',\n      MM: '%d أشهر',\n      y: 'سنة',\n      yy: '%d سنوات'\n    },\n    preparse: function (string) {\n      return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n        return numberMap[match];\n      }).replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      }).replace(/,/g, '،');\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return arSa;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar-sa.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar-tn.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ar-tn.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale  :  Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var arTn = moment.defineLocale('ar-tn', {\n    months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n    monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[اليوم على الساعة] LT',\n      nextDay: '[غدا على الساعة] LT',\n      nextWeek: 'dddd [على الساعة] LT',\n      lastDay: '[أمس على الساعة] LT',\n      lastWeek: 'dddd [على الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'في %s',\n      past: 'منذ %s',\n      s: 'ثوان',\n      ss: '%d ثانية',\n      m: 'دقيقة',\n      mm: '%d دقائق',\n      h: 'ساعة',\n      hh: '%d ساعات',\n      d: 'يوم',\n      dd: '%d أيام',\n      M: 'شهر',\n      MM: '%d أشهر',\n      y: 'سنة',\n      yy: '%d سنوات'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return arTn;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar-tn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ar.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ar.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '١',\n    2: '٢',\n    3: '٣',\n    4: '٤',\n    5: '٥',\n    6: '٦',\n    7: '٧',\n    8: '٨',\n    9: '٩',\n    0: '٠'\n  },\n      numberMap = {\n    '١': '1',\n    '٢': '2',\n    '٣': '3',\n    '٤': '4',\n    '٥': '5',\n    '٦': '6',\n    '٧': '7',\n    '٨': '8',\n    '٩': '9',\n    '٠': '0'\n  },\n      pluralForm = function (n) {\n    return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n  },\n      plurals = {\n    s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n    m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n    h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n    d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n    M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n    y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n  },\n      pluralize = function (u) {\n    return function (number, withoutSuffix, string, isFuture) {\n      var f = pluralForm(number),\n          str = plurals[u][pluralForm(number)];\n\n      if (f === 2) {\n        str = str[withoutSuffix ? 0 : 1];\n      }\n\n      return str.replace(/%d/i, number);\n    };\n  },\n      months = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];\n\n  var ar = moment.defineLocale('ar', {\n    months: months,\n    monthsShort: months,\n    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'D/\\u200FM/\\u200FYYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ص|م/,\n    isPM: function (input) {\n      return 'م' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ص';\n      } else {\n        return 'م';\n      }\n    },\n    calendar: {\n      sameDay: '[اليوم عند الساعة] LT',\n      nextDay: '[غدًا عند الساعة] LT',\n      nextWeek: 'dddd [عند الساعة] LT',\n      lastDay: '[أمس عند الساعة] LT',\n      lastWeek: 'dddd [عند الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'بعد %s',\n      past: 'منذ %s',\n      s: pluralize('s'),\n      ss: pluralize('s'),\n      m: pluralize('m'),\n      mm: pluralize('m'),\n      h: pluralize('h'),\n      hh: pluralize('h'),\n      d: pluralize('d'),\n      dd: pluralize('d'),\n      M: pluralize('M'),\n      MM: pluralize('M'),\n      y: pluralize('y'),\n      yy: pluralize('y')\n    },\n    preparse: function (string) {\n      return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n        return numberMap[match];\n      }).replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      }).replace(/,/g, '،');\n    },\n    week: {\n      dow: 6,\n      // Saturday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n    }\n  });\n  return ar;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ar.js?");

/***/ }),

/***/ "./node_modules/moment/locale/az.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/az.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var suffixes = {\n    1: '-inci',\n    5: '-inci',\n    8: '-inci',\n    70: '-inci',\n    80: '-inci',\n    2: '-nci',\n    7: '-nci',\n    20: '-nci',\n    50: '-nci',\n    3: '-üncü',\n    4: '-üncü',\n    100: '-üncü',\n    6: '-ncı',\n    9: '-uncu',\n    10: '-uncu',\n    30: '-uncu',\n    60: '-ıncı',\n    90: '-ıncı'\n  };\n  var az = moment.defineLocale('az', {\n    months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),\n    monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n    weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),\n    weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n    weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[bugün saat] LT',\n      nextDay: '[sabah saat] LT',\n      nextWeek: '[gələn həftə] dddd [saat] LT',\n      lastDay: '[dünən] LT',\n      lastWeek: '[keçən həftə] dddd [saat] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s sonra',\n      past: '%s əvvəl',\n      s: 'bir neçə saniyə',\n      ss: '%d saniyə',\n      m: 'bir dəqiqə',\n      mm: '%d dəqiqə',\n      h: 'bir saat',\n      hh: '%d saat',\n      d: 'bir gün',\n      dd: '%d gün',\n      M: 'bir ay',\n      MM: '%d ay',\n      y: 'bir il',\n      yy: '%d il'\n    },\n    meridiemParse: /gecə|səhər|gündüz|axşam/,\n    isPM: function (input) {\n      return /^(gündüz|axşam)$/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'gecə';\n      } else if (hour < 12) {\n        return 'səhər';\n      } else if (hour < 17) {\n        return 'gündüz';\n      } else {\n        return 'axşam';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n    ordinal: function (number) {\n      if (number === 0) {\n        // special case for zero\n        return number + '-ıncı';\n      }\n\n      var a = number % 10,\n          b = number % 100 - a,\n          c = number >= 100 ? 100 : null;\n      return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return az;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/az.js?");

/***/ }),

/***/ "./node_modules/moment/locale/be.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/be.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function plural(word, num) {\n    var forms = word.split('_');\n    return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n  }\n\n  function relativeTimeWithPlural(number, withoutSuffix, key) {\n    var format = {\n      ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n      mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n      hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n      dd: 'дзень_дні_дзён',\n      MM: 'месяц_месяцы_месяцаў',\n      yy: 'год_гады_гадоў'\n    };\n\n    if (key === 'm') {\n      return withoutSuffix ? 'хвіліна' : 'хвіліну';\n    } else if (key === 'h') {\n      return withoutSuffix ? 'гадзіна' : 'гадзіну';\n    } else {\n      return number + ' ' + plural(format[key], +number);\n    }\n  }\n\n  var be = moment.defineLocale('be', {\n    months: {\n      format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),\n      standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')\n    },\n    monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n    weekdays: {\n      format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),\n      standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),\n      isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/\n    },\n    weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n    weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY г.',\n      LLL: 'D MMMM YYYY г., HH:mm',\n      LLLL: 'dddd, D MMMM YYYY г., HH:mm'\n    },\n    calendar: {\n      sameDay: '[Сёння ў] LT',\n      nextDay: '[Заўтра ў] LT',\n      lastDay: '[Учора ў] LT',\n      nextWeek: function () {\n        return '[У] dddd [ў] LT';\n      },\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n          case 3:\n          case 5:\n          case 6:\n            return '[У мінулую] dddd [ў] LT';\n\n          case 1:\n          case 2:\n          case 4:\n            return '[У мінулы] dddd [ў] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'праз %s',\n      past: '%s таму',\n      s: 'некалькі секунд',\n      m: relativeTimeWithPlural,\n      mm: relativeTimeWithPlural,\n      h: relativeTimeWithPlural,\n      hh: relativeTimeWithPlural,\n      d: 'дзень',\n      dd: relativeTimeWithPlural,\n      M: 'месяц',\n      MM: relativeTimeWithPlural,\n      y: 'год',\n      yy: relativeTimeWithPlural\n    },\n    meridiemParse: /ночы|раніцы|дня|вечара/,\n    isPM: function (input) {\n      return /^(дня|вечара)$/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'ночы';\n      } else if (hour < 12) {\n        return 'раніцы';\n      } else if (hour < 17) {\n        return 'дня';\n      } else {\n        return 'вечара';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'M':\n        case 'd':\n        case 'DDD':\n        case 'w':\n        case 'W':\n          return (number % 10 === 2 || number % 10 === 3) && number % 100 !== 12 && number % 100 !== 13 ? number + '-і' : number + '-ы';\n\n        case 'D':\n          return number + '-га';\n\n        default:\n          return number;\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return be;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/be.js?");

/***/ }),

/***/ "./node_modules/moment/locale/bg.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/bg.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var bg = moment.defineLocale('bg', {\n    months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),\n    monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n    weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),\n    weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n    weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'D.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY H:mm',\n      LLLL: 'dddd, D MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[Днес в] LT',\n      nextDay: '[Утре в] LT',\n      nextWeek: 'dddd [в] LT',\n      lastDay: '[Вчера в] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n          case 3:\n          case 6:\n            return '[Миналата] dddd [в] LT';\n\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[Миналия] dddd [в] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'след %s',\n      past: 'преди %s',\n      s: 'няколко секунди',\n      ss: '%d секунди',\n      m: 'минута',\n      mm: '%d минути',\n      h: 'час',\n      hh: '%d часа',\n      d: 'ден',\n      dd: '%d дена',\n      w: 'седмица',\n      ww: '%d седмици',\n      M: 'месец',\n      MM: '%d месеца',\n      y: 'година',\n      yy: '%d години'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n    ordinal: function (number) {\n      var lastDigit = number % 10,\n          last2Digits = number % 100;\n\n      if (number === 0) {\n        return number + '-ев';\n      } else if (last2Digits === 0) {\n        return number + '-ен';\n      } else if (last2Digits > 10 && last2Digits < 20) {\n        return number + '-ти';\n      } else if (lastDigit === 1) {\n        return number + '-ви';\n      } else if (lastDigit === 2) {\n        return number + '-ри';\n      } else if (lastDigit === 7 || lastDigit === 8) {\n        return number + '-ми';\n      } else {\n        return number + '-ти';\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return bg;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/bg.js?");

/***/ }),

/***/ "./node_modules/moment/locale/bm.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/bm.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var bm = moment.defineLocale('bm', {\n    months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),\n    monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n    weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n    weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n    weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'MMMM [tile] D [san] YYYY',\n      LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n      LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'\n    },\n    calendar: {\n      sameDay: '[Bi lɛrɛ] LT',\n      nextDay: '[Sini lɛrɛ] LT',\n      nextWeek: 'dddd [don lɛrɛ] LT',\n      lastDay: '[Kunu lɛrɛ] LT',\n      lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s kɔnɔ',\n      past: 'a bɛ %s bɔ',\n      s: 'sanga dama dama',\n      ss: 'sekondi %d',\n      m: 'miniti kelen',\n      mm: 'miniti %d',\n      h: 'lɛrɛ kelen',\n      hh: 'lɛrɛ %d',\n      d: 'tile kelen',\n      dd: 'tile %d',\n      M: 'kalo kelen',\n      MM: 'kalo %d',\n      y: 'san kelen',\n      yy: 'san %d'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return bm;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/bm.js?");

/***/ }),

/***/ "./node_modules/moment/locale/bn-bd.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/bn-bd.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '১',\n    2: '২',\n    3: '৩',\n    4: '৪',\n    5: '৫',\n    6: '৬',\n    7: '৭',\n    8: '৮',\n    9: '৯',\n    0: '০'\n  },\n      numberMap = {\n    '১': '1',\n    '২': '2',\n    '৩': '3',\n    '৪': '4',\n    '৫': '5',\n    '৬': '6',\n    '৭': '7',\n    '৮': '8',\n    '৯': '9',\n    '০': '0'\n  };\n  var bnBd = moment.defineLocale('bn-bd', {\n    months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),\n    monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),\n    weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),\n    weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n    weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm সময়',\n      LTS: 'A h:mm:ss সময়',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm সময়',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm সময়'\n    },\n    calendar: {\n      sameDay: '[আজ] LT',\n      nextDay: '[আগামীকাল] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[গতকাল] LT',\n      lastWeek: '[গত] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s পরে',\n      past: '%s আগে',\n      s: 'কয়েক সেকেন্ড',\n      ss: '%d সেকেন্ড',\n      m: 'এক মিনিট',\n      mm: '%d মিনিট',\n      h: 'এক ঘন্টা',\n      hh: '%d ঘন্টা',\n      d: 'এক দিন',\n      dd: '%d দিন',\n      M: 'এক মাস',\n      MM: '%d মাস',\n      y: 'এক বছর',\n      yy: '%d বছর'\n    },\n    preparse: function (string) {\n      return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'রাত') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'ভোর') {\n        return hour;\n      } else if (meridiem === 'সকাল') {\n        return hour;\n      } else if (meridiem === 'দুপুর') {\n        return hour >= 3 ? hour : hour + 12;\n      } else if (meridiem === 'বিকাল') {\n        return hour + 12;\n      } else if (meridiem === 'সন্ধ্যা') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'রাত';\n      } else if (hour < 6) {\n        return 'ভোর';\n      } else if (hour < 12) {\n        return 'সকাল';\n      } else if (hour < 15) {\n        return 'দুপুর';\n      } else if (hour < 18) {\n        return 'বিকাল';\n      } else if (hour < 20) {\n        return 'সন্ধ্যা';\n      } else {\n        return 'রাত';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return bnBd;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/bn-bd.js?");

/***/ }),

/***/ "./node_modules/moment/locale/bn.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/bn.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '১',\n    2: '২',\n    3: '৩',\n    4: '৪',\n    5: '৫',\n    6: '৬',\n    7: '৭',\n    8: '৮',\n    9: '৯',\n    0: '০'\n  },\n      numberMap = {\n    '১': '1',\n    '২': '2',\n    '৩': '3',\n    '৪': '4',\n    '৫': '5',\n    '৬': '6',\n    '৭': '7',\n    '৮': '8',\n    '৯': '9',\n    '০': '0'\n  };\n  var bn = moment.defineLocale('bn', {\n    months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),\n    monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),\n    weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),\n    weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n    weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm সময়',\n      LTS: 'A h:mm:ss সময়',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm সময়',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm সময়'\n    },\n    calendar: {\n      sameDay: '[আজ] LT',\n      nextDay: '[আগামীকাল] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[গতকাল] LT',\n      lastWeek: '[গত] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s পরে',\n      past: '%s আগে',\n      s: 'কয়েক সেকেন্ড',\n      ss: '%d সেকেন্ড',\n      m: 'এক মিনিট',\n      mm: '%d মিনিট',\n      h: 'এক ঘন্টা',\n      hh: '%d ঘন্টা',\n      d: 'এক দিন',\n      dd: '%d দিন',\n      M: 'এক মাস',\n      MM: '%d মাস',\n      y: 'এক বছর',\n      yy: '%d বছর'\n    },\n    preparse: function (string) {\n      return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'রাত' && hour >= 4 || meridiem === 'দুপুর' && hour < 5 || meridiem === 'বিকাল') {\n        return hour + 12;\n      } else {\n        return hour;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'রাত';\n      } else if (hour < 10) {\n        return 'সকাল';\n      } else if (hour < 17) {\n        return 'দুপুর';\n      } else if (hour < 20) {\n        return 'বিকাল';\n      } else {\n        return 'রাত';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return bn;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/bn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/bo.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/bo.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '༡',\n    2: '༢',\n    3: '༣',\n    4: '༤',\n    5: '༥',\n    6: '༦',\n    7: '༧',\n    8: '༨',\n    9: '༩',\n    0: '༠'\n  },\n      numberMap = {\n    '༡': '1',\n    '༢': '2',\n    '༣': '3',\n    '༤': '4',\n    '༥': '5',\n    '༦': '6',\n    '༧': '7',\n    '༨': '8',\n    '༩': '9',\n    '༠': '0'\n  };\n  var bo = moment.defineLocale('bo', {\n    months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n    monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split('_'),\n    monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n    monthsParseExact: true,\n    weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),\n    weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n    weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm',\n      LTS: 'A h:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm'\n    },\n    calendar: {\n      sameDay: '[དི་རིང] LT',\n      nextDay: '[སང་ཉིན] LT',\n      nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n      lastDay: '[ཁ་སང] LT',\n      lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s ལ་',\n      past: '%s སྔན་ལ',\n      s: 'ལམ་སང',\n      ss: '%d སྐར་ཆ།',\n      m: 'སྐར་མ་གཅིག',\n      mm: '%d སྐར་མ',\n      h: 'ཆུ་ཚོད་གཅིག',\n      hh: '%d ཆུ་ཚོད',\n      d: 'ཉིན་གཅིག',\n      dd: '%d ཉིན་',\n      M: 'ཟླ་བ་གཅིག',\n      MM: '%d ཟླ་བ',\n      y: 'ལོ་གཅིག',\n      yy: '%d ལོ'\n    },\n    preparse: function (string) {\n      return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'མཚན་མོ' && hour >= 4 || meridiem === 'ཉིན་གུང' && hour < 5 || meridiem === 'དགོང་དག') {\n        return hour + 12;\n      } else {\n        return hour;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'མཚན་མོ';\n      } else if (hour < 10) {\n        return 'ཞོགས་ཀས';\n      } else if (hour < 17) {\n        return 'ཉིན་གུང';\n      } else if (hour < 20) {\n        return 'དགོང་དག';\n      } else {\n        return 'མཚན་མོ';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return bo;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/bo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/br.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/br.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function relativeTimeWithMutation(number, withoutSuffix, key) {\n    var format = {\n      mm: 'munutenn',\n      MM: 'miz',\n      dd: 'devezh'\n    };\n    return number + ' ' + mutation(format[key], number);\n  }\n\n  function specialMutationForYears(number) {\n    switch (lastNumber(number)) {\n      case 1:\n      case 3:\n      case 4:\n      case 5:\n      case 9:\n        return number + ' bloaz';\n\n      default:\n        return number + ' vloaz';\n    }\n  }\n\n  function lastNumber(number) {\n    if (number > 9) {\n      return lastNumber(number % 10);\n    }\n\n    return number;\n  }\n\n  function mutation(text, number) {\n    if (number === 2) {\n      return softMutation(text);\n    }\n\n    return text;\n  }\n\n  function softMutation(text) {\n    var mutationTable = {\n      m: 'v',\n      b: 'v',\n      d: 'z'\n    };\n\n    if (mutationTable[text.charAt(0)] === undefined) {\n      return text;\n    }\n\n    return mutationTable[text.charAt(0)] + text.substring(1);\n  }\n\n  var monthsParse = [/^gen/i, /^c[ʼ\\']hwe/i, /^meu/i, /^ebr/i, /^mae/i, /^(mez|eve)/i, /^gou/i, /^eos/i, /^gwe/i, /^her/i, /^du/i, /^ker/i],\n      monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n      monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n      monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n      fullWeekdaysParse = [/^sul/i, /^lun/i, /^meurzh/i, /^merc[ʼ\\']her/i, /^yaou/i, /^gwener/i, /^sadorn/i],\n      shortWeekdaysParse = [/^Sul/i, /^Lun/i, /^Meu/i, /^Mer/i, /^Yao/i, /^Gwe/i, /^Sad/i],\n      minWeekdaysParse = [/^Su/i, /^Lu/i, /^Me([^r]|$)/i, /^Mer/i, /^Ya/i, /^Gw/i, /^Sa/i];\n  var br = moment.defineLocale('br', {\n    months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),\n    monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n    weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n    weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n    weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n    weekdaysParse: minWeekdaysParse,\n    fullWeekdaysParse: fullWeekdaysParse,\n    shortWeekdaysParse: shortWeekdaysParse,\n    minWeekdaysParse: minWeekdaysParse,\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: monthsStrictRegex,\n    monthsShortStrictRegex: monthsShortStrictRegex,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [a viz] MMMM YYYY',\n      LLL: 'D [a viz] MMMM YYYY HH:mm',\n      LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Hiziv da] LT',\n      nextDay: '[Warcʼhoazh da] LT',\n      nextWeek: 'dddd [da] LT',\n      lastDay: '[Decʼh da] LT',\n      lastWeek: 'dddd [paset da] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'a-benn %s',\n      past: '%s ʼzo',\n      s: 'un nebeud segondennoù',\n      ss: '%d eilenn',\n      m: 'ur vunutenn',\n      mm: relativeTimeWithMutation,\n      h: 'un eur',\n      hh: '%d eur',\n      d: 'un devezh',\n      dd: relativeTimeWithMutation,\n      M: 'ur miz',\n      MM: relativeTimeWithMutation,\n      y: 'ur bloaz',\n      yy: specialMutationForYears\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n    ordinal: function (number) {\n      var output = number === 1 ? 'añ' : 'vet';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    },\n    meridiemParse: /a.m.|g.m./,\n    // goude merenn | a-raok merenn\n    isPM: function (token) {\n      return token === 'g.m.';\n    },\n    meridiem: function (hour, minute, isLower) {\n      return hour < 12 ? 'a.m.' : 'g.m.';\n    }\n  });\n  return br;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/br.js?");

/***/ }),

/***/ "./node_modules/moment/locale/bs.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/bs.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function translate(number, withoutSuffix, key) {\n    var result = number + ' ';\n\n    switch (key) {\n      case 'ss':\n        if (number === 1) {\n          result += 'sekunda';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'sekunde';\n        } else {\n          result += 'sekundi';\n        }\n\n        return result;\n\n      case 'm':\n        return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n\n      case 'mm':\n        if (number === 1) {\n          result += 'minuta';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'minute';\n        } else {\n          result += 'minuta';\n        }\n\n        return result;\n\n      case 'h':\n        return withoutSuffix ? 'jedan sat' : 'jednog sata';\n\n      case 'hh':\n        if (number === 1) {\n          result += 'sat';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'sata';\n        } else {\n          result += 'sati';\n        }\n\n        return result;\n\n      case 'dd':\n        if (number === 1) {\n          result += 'dan';\n        } else {\n          result += 'dana';\n        }\n\n        return result;\n\n      case 'MM':\n        if (number === 1) {\n          result += 'mjesec';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'mjeseca';\n        } else {\n          result += 'mjeseci';\n        }\n\n        return result;\n\n      case 'yy':\n        if (number === 1) {\n          result += 'godina';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'godine';\n        } else {\n          result += 'godina';\n        }\n\n        return result;\n    }\n  }\n\n  var bs = moment.defineLocale('bs', {\n    months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),\n    monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n    weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n    weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm',\n      LLLL: 'dddd, D. MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[danas u] LT',\n      nextDay: '[sutra u] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[u] [nedjelju] [u] LT';\n\n          case 3:\n            return '[u] [srijedu] [u] LT';\n\n          case 6:\n            return '[u] [subotu] [u] LT';\n\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[u] dddd [u] LT';\n        }\n      },\n      lastDay: '[jučer u] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n          case 3:\n            return '[prošlu] dddd [u] LT';\n\n          case 6:\n            return '[prošle] [subote] [u] LT';\n\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[prošli] dddd [u] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: 'prije %s',\n      s: 'par sekundi',\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: 'dan',\n      dd: translate,\n      M: 'mjesec',\n      MM: translate,\n      y: 'godinu',\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return bs;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/bs.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ca.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ca.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var ca = moment.defineLocale('ca', {\n    months: {\n      standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n      format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split('_'),\n      isFormat: /D[oD]?(\\s)+MMMM/\n    },\n    monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n    weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n    weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM [de] YYYY',\n      ll: 'D MMM YYYY',\n      LLL: 'D MMMM [de] YYYY [a les] H:mm',\n      lll: 'D MMM YYYY, H:mm',\n      LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n      llll: 'ddd D MMM YYYY, H:mm'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n      },\n      nextDay: function () {\n        return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n      },\n      nextWeek: function () {\n        return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n      },\n      lastDay: function () {\n        return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n      },\n      lastWeek: function () {\n        return '[el] dddd [passat a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: \"d'aquí %s\",\n      past: 'fa %s',\n      s: 'uns segons',\n      ss: '%d segons',\n      m: 'un minut',\n      mm: '%d minuts',\n      h: 'una hora',\n      hh: '%d hores',\n      d: 'un dia',\n      dd: '%d dies',\n      M: 'un mes',\n      MM: '%d mesos',\n      y: 'un any',\n      yy: '%d anys'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n    ordinal: function (number, period) {\n      var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n\n      if (period === 'w' || period === 'W') {\n        output = 'a';\n      }\n\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return ca;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ca.js?");

/***/ }),

/***/ "./node_modules/moment/locale/cs.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/cs.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var months = {\n    format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),\n    standalone: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split('_')\n  },\n      monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n      monthsParse = [/^led/i, /^úno/i, /^bře/i, /^dub/i, /^kvě/i, /^(čvn|červen$|června)/i, /^(čvc|červenec|července)/i, /^srp/i, /^zář/i, /^říj/i, /^lis/i, /^pro/i],\n      // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n  // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n  monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n  function plural(n) {\n    return n > 1 && n < 5 && ~~(n / 10) !== 1;\n  }\n\n  function translate(number, withoutSuffix, key, isFuture) {\n    var result = number + ' ';\n\n    switch (key) {\n      case 's':\n        // a few seconds / in a few seconds / a few seconds ago\n        return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n\n      case 'ss':\n        // 9 seconds / in 9 seconds / 9 seconds ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'sekundy' : 'sekund');\n        } else {\n          return result + 'sekundami';\n        }\n\n      case 'm':\n        // a minute / in a minute / a minute ago\n        return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n\n      case 'mm':\n        // 9 minutes / in 9 minutes / 9 minutes ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'minuty' : 'minut');\n        } else {\n          return result + 'minutami';\n        }\n\n      case 'h':\n        // an hour / in an hour / an hour ago\n        return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n\n      case 'hh':\n        // 9 hours / in 9 hours / 9 hours ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'hodiny' : 'hodin');\n        } else {\n          return result + 'hodinami';\n        }\n\n      case 'd':\n        // a day / in a day / a day ago\n        return withoutSuffix || isFuture ? 'den' : 'dnem';\n\n      case 'dd':\n        // 9 days / in 9 days / 9 days ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'dny' : 'dní');\n        } else {\n          return result + 'dny';\n        }\n\n      case 'M':\n        // a month / in a month / a month ago\n        return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n\n      case 'MM':\n        // 9 months / in 9 months / 9 months ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'měsíce' : 'měsíců');\n        } else {\n          return result + 'měsíci';\n        }\n\n      case 'y':\n        // a year / in a year / a year ago\n        return withoutSuffix || isFuture ? 'rok' : 'rokem';\n\n      case 'yy':\n        // 9 years / in 9 years / 9 years ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'roky' : 'let');\n        } else {\n          return result + 'lety';\n        }\n\n    }\n  }\n\n  var cs = moment.defineLocale('cs', {\n    months: months,\n    monthsShort: monthsShort,\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n    // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n    monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n    monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n    weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n    weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm',\n      LLLL: 'dddd D. MMMM YYYY H:mm',\n      l: 'D. M. YYYY'\n    },\n    calendar: {\n      sameDay: '[dnes v] LT',\n      nextDay: '[zítra v] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[v neděli v] LT';\n\n          case 1:\n          case 2:\n            return '[v] dddd [v] LT';\n\n          case 3:\n            return '[ve středu v] LT';\n\n          case 4:\n            return '[ve čtvrtek v] LT';\n\n          case 5:\n            return '[v pátek v] LT';\n\n          case 6:\n            return '[v sobotu v] LT';\n        }\n      },\n      lastDay: '[včera v] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[minulou neděli v] LT';\n\n          case 1:\n          case 2:\n            return '[minulé] dddd [v] LT';\n\n          case 3:\n            return '[minulou středu v] LT';\n\n          case 4:\n          case 5:\n            return '[minulý] dddd [v] LT';\n\n          case 6:\n            return '[minulou sobotu v] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: 'před %s',\n      s: translate,\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: translate,\n      dd: translate,\n      M: translate,\n      MM: translate,\n      y: translate,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return cs;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/cs.js?");

/***/ }),

/***/ "./node_modules/moment/locale/cv.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/cv.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var cv = moment.defineLocale('cv', {\n    months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\n    monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n    weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),\n    weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n    weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD-MM-YYYY',\n      LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n      LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n      LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'\n    },\n    calendar: {\n      sameDay: '[Паян] LT [сехетре]',\n      nextDay: '[Ыран] LT [сехетре]',\n      lastDay: '[Ӗнер] LT [сехетре]',\n      nextWeek: '[Ҫитес] dddd LT [сехетре]',\n      lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: function (output) {\n        var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\n        return output + affix;\n      },\n      past: '%s каялла',\n      s: 'пӗр-ик ҫеккунт',\n      ss: '%d ҫеккунт',\n      m: 'пӗр минут',\n      mm: '%d минут',\n      h: 'пӗр сехет',\n      hh: '%d сехет',\n      d: 'пӗр кун',\n      dd: '%d кун',\n      M: 'пӗр уйӑх',\n      MM: '%d уйӑх',\n      y: 'пӗр ҫул',\n      yy: '%d ҫул'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n    ordinal: '%d-мӗш',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return cv;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/cv.js?");

/***/ }),

/***/ "./node_modules/moment/locale/cy.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/cy.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var cy = moment.defineLocale('cy', {\n    months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n    monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n    weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\n    weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n    weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n    weekdaysParseExact: true,\n    // time formats are the same as en-gb\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Heddiw am] LT',\n      nextDay: '[Yfory am] LT',\n      nextWeek: 'dddd [am] LT',\n      lastDay: '[Ddoe am] LT',\n      lastWeek: 'dddd [diwethaf am] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'mewn %s',\n      past: '%s yn ôl',\n      s: 'ychydig eiliadau',\n      ss: '%d eiliad',\n      m: 'munud',\n      mm: '%d munud',\n      h: 'awr',\n      hh: '%d awr',\n      d: 'diwrnod',\n      dd: '%d diwrnod',\n      M: 'mis',\n      MM: '%d mis',\n      y: 'blwyddyn',\n      yy: '%d flynedd'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n    // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n    ordinal: function (number) {\n      var b = number,\n          output = '',\n          lookup = ['', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed\n      'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n      ];\n\n      if (b > 20) {\n        if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n          output = 'fed'; // not 30ain, 70ain or 90ain\n        } else {\n          output = 'ain';\n        }\n      } else if (b > 0) {\n        output = lookup[b];\n      }\n\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return cy;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/cy.js?");

/***/ }),

/***/ "./node_modules/moment/locale/da.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/da.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var da = moment.defineLocale('da', {\n    months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),\n    monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n    weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n    weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n    weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY HH:mm',\n      LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n    },\n    calendar: {\n      sameDay: '[i dag kl.] LT',\n      nextDay: '[i morgen kl.] LT',\n      nextWeek: 'på dddd [kl.] LT',\n      lastDay: '[i går kl.] LT',\n      lastWeek: '[i] dddd[s kl.] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'om %s',\n      past: '%s siden',\n      s: 'få sekunder',\n      ss: '%d sekunder',\n      m: 'et minut',\n      mm: '%d minutter',\n      h: 'en time',\n      hh: '%d timer',\n      d: 'en dag',\n      dd: '%d dage',\n      M: 'en måned',\n      MM: '%d måneder',\n      y: 'et år',\n      yy: '%d år'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return da;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/da.js?");

/***/ }),

/***/ "./node_modules/moment/locale/de-at.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/de-at.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      m: ['eine Minute', 'einer Minute'],\n      h: ['eine Stunde', 'einer Stunde'],\n      d: ['ein Tag', 'einem Tag'],\n      dd: [number + ' Tage', number + ' Tagen'],\n      w: ['eine Woche', 'einer Woche'],\n      M: ['ein Monat', 'einem Monat'],\n      MM: [number + ' Monate', number + ' Monaten'],\n      y: ['ein Jahr', 'einem Jahr'],\n      yy: [number + ' Jahre', number + ' Jahren']\n    };\n    return withoutSuffix ? format[key][0] : format[key][1];\n  }\n\n  var deAt = moment.defineLocale('de-at', {\n    months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n    monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n    weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n    weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY HH:mm',\n      LLLL: 'dddd, D. MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[heute um] LT [Uhr]',\n      sameElse: 'L',\n      nextDay: '[morgen um] LT [Uhr]',\n      nextWeek: 'dddd [um] LT [Uhr]',\n      lastDay: '[gestern um] LT [Uhr]',\n      lastWeek: '[letzten] dddd [um] LT [Uhr]'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: 'vor %s',\n      s: 'ein paar Sekunden',\n      ss: '%d Sekunden',\n      m: processRelativeTime,\n      mm: '%d Minuten',\n      h: processRelativeTime,\n      hh: '%d Stunden',\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      w: processRelativeTime,\n      ww: '%d Wochen',\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return deAt;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/de-at.js?");

/***/ }),

/***/ "./node_modules/moment/locale/de-ch.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/de-ch.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      m: ['eine Minute', 'einer Minute'],\n      h: ['eine Stunde', 'einer Stunde'],\n      d: ['ein Tag', 'einem Tag'],\n      dd: [number + ' Tage', number + ' Tagen'],\n      w: ['eine Woche', 'einer Woche'],\n      M: ['ein Monat', 'einem Monat'],\n      MM: [number + ' Monate', number + ' Monaten'],\n      y: ['ein Jahr', 'einem Jahr'],\n      yy: [number + ' Jahre', number + ' Jahren']\n    };\n    return withoutSuffix ? format[key][0] : format[key][1];\n  }\n\n  var deCh = moment.defineLocale('de-ch', {\n    months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n    monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n    weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n    weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY HH:mm',\n      LLLL: 'dddd, D. MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[heute um] LT [Uhr]',\n      sameElse: 'L',\n      nextDay: '[morgen um] LT [Uhr]',\n      nextWeek: 'dddd [um] LT [Uhr]',\n      lastDay: '[gestern um] LT [Uhr]',\n      lastWeek: '[letzten] dddd [um] LT [Uhr]'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: 'vor %s',\n      s: 'ein paar Sekunden',\n      ss: '%d Sekunden',\n      m: processRelativeTime,\n      mm: '%d Minuten',\n      h: processRelativeTime,\n      hh: '%d Stunden',\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      w: processRelativeTime,\n      ww: '%d Wochen',\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return deCh;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/de-ch.js?");

/***/ }),

/***/ "./node_modules/moment/locale/de.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/de.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      m: ['eine Minute', 'einer Minute'],\n      h: ['eine Stunde', 'einer Stunde'],\n      d: ['ein Tag', 'einem Tag'],\n      dd: [number + ' Tage', number + ' Tagen'],\n      w: ['eine Woche', 'einer Woche'],\n      M: ['ein Monat', 'einem Monat'],\n      MM: [number + ' Monate', number + ' Monaten'],\n      y: ['ein Jahr', 'einem Jahr'],\n      yy: [number + ' Jahre', number + ' Jahren']\n    };\n    return withoutSuffix ? format[key][0] : format[key][1];\n  }\n\n  var de = moment.defineLocale('de', {\n    months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n    monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n    weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n    weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY HH:mm',\n      LLLL: 'dddd, D. MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[heute um] LT [Uhr]',\n      sameElse: 'L',\n      nextDay: '[morgen um] LT [Uhr]',\n      nextWeek: 'dddd [um] LT [Uhr]',\n      lastDay: '[gestern um] LT [Uhr]',\n      lastWeek: '[letzten] dddd [um] LT [Uhr]'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: 'vor %s',\n      s: 'ein paar Sekunden',\n      ss: '%d Sekunden',\n      m: processRelativeTime,\n      mm: '%d Minuten',\n      h: processRelativeTime,\n      hh: '%d Stunden',\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      w: processRelativeTime,\n      ww: '%d Wochen',\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return de;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/de.js?");

/***/ }),

/***/ "./node_modules/moment/locale/dv.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/dv.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var months = ['ޖެނުއަރީ', 'ފެބްރުއަރީ', 'މާރިޗު', 'އޭޕްރީލު', 'މޭ', 'ޖޫން', 'ޖުލައި', 'އޯގަސްޓު', 'ސެޕްޓެމްބަރު', 'އޮކްޓޯބަރު', 'ނޮވެމްބަރު', 'ޑިސެމްބަރު'],\n      weekdays = ['އާދިއްތަ', 'ހޯމަ', 'އަންގާރަ', 'ބުދަ', 'ބުރާސްފަތި', 'ހުކުރު', 'ހޮނިހިރު'];\n  var dv = moment.defineLocale('dv', {\n    months: months,\n    monthsShort: months,\n    weekdays: weekdays,\n    weekdaysShort: weekdays,\n    weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'D/M/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /މކ|މފ/,\n    isPM: function (input) {\n      return 'މފ' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'މކ';\n      } else {\n        return 'މފ';\n      }\n    },\n    calendar: {\n      sameDay: '[މިއަދު] LT',\n      nextDay: '[މާދަމާ] LT',\n      nextWeek: 'dddd LT',\n      lastDay: '[އިއްޔެ] LT',\n      lastWeek: '[ފާއިތުވި] dddd LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'ތެރޭގައި %s',\n      past: 'ކުރިން %s',\n      s: 'ސިކުންތުކޮޅެއް',\n      ss: 'd% ސިކުންތު',\n      m: 'މިނިޓެއް',\n      mm: 'މިނިޓު %d',\n      h: 'ގަޑިއިރެއް',\n      hh: 'ގަޑިއިރު %d',\n      d: 'ދުވަހެއް',\n      dd: 'ދުވަސް %d',\n      M: 'މަހެއް',\n      MM: 'މަސް %d',\n      y: 'އަހަރެއް',\n      yy: 'އަހަރު %d'\n    },\n    preparse: function (string) {\n      return string.replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/,/g, '،');\n    },\n    week: {\n      dow: 7,\n      // Sunday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n    }\n  });\n  return dv;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/dv.js?");

/***/ }),

/***/ "./node_modules/moment/locale/el.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/el.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function isFunction(input) {\n    return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n  }\n\n  var el = moment.defineLocale('el', {\n    monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),\n    monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),\n    months: function (momentToFormat, format) {\n      if (!momentToFormat) {\n        return this._monthsNominativeEl;\n      } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) {\n        // if there is a day number before 'MMMM'\n        return this._monthsGenitiveEl[momentToFormat.month()];\n      } else {\n        return this._monthsNominativeEl[momentToFormat.month()];\n      }\n    },\n    monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n    weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),\n    weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n    weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n    meridiem: function (hours, minutes, isLower) {\n      if (hours > 11) {\n        return isLower ? 'μμ' : 'ΜΜ';\n      } else {\n        return isLower ? 'πμ' : 'ΠΜ';\n      }\n    },\n    isPM: function (input) {\n      return (input + '').toLowerCase()[0] === 'μ';\n    },\n    meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY h:mm A',\n      LLLL: 'dddd, D MMMM YYYY h:mm A'\n    },\n    calendarEl: {\n      sameDay: '[Σήμερα {}] LT',\n      nextDay: '[Αύριο {}] LT',\n      nextWeek: 'dddd [{}] LT',\n      lastDay: '[Χθες {}] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 6:\n            return '[το προηγούμενο] dddd [{}] LT';\n\n          default:\n            return '[την προηγούμενη] dddd [{}] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    calendar: function (key, mom) {\n      var output = this._calendarEl[key],\n          hours = mom && mom.hours();\n\n      if (isFunction(output)) {\n        output = output.apply(mom);\n      }\n\n      return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n    },\n    relativeTime: {\n      future: 'σε %s',\n      past: '%s πριν',\n      s: 'λίγα δευτερόλεπτα',\n      ss: '%d δευτερόλεπτα',\n      m: 'ένα λεπτό',\n      mm: '%d λεπτά',\n      h: 'μία ώρα',\n      hh: '%d ώρες',\n      d: 'μία μέρα',\n      dd: '%d μέρες',\n      M: 'ένας μήνας',\n      MM: '%d μήνες',\n      y: 'ένας χρόνος',\n      yy: '%d χρόνια'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}η/,\n    ordinal: '%dη',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4st is the first week of the year.\n\n    }\n  });\n  return el;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/el.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-au.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-au.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var enAu = moment.defineLocale('en-au', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY h:mm A',\n      LLLL: 'dddd, D MMMM YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n          output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return enAu;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-au.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-ca.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-ca.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var enCa = moment.defineLocale('en-ca', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'YYYY-MM-DD',\n      LL: 'MMMM D, YYYY',\n      LLL: 'MMMM D, YYYY h:mm A',\n      LLLL: 'dddd, MMMM D, YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n          output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    }\n  });\n  return enCa;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-ca.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-gb.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-gb.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var enGb = moment.defineLocale('en-gb', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n          output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return enGb;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-gb.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-ie.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-ie.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var enIe = moment.defineLocale('en-ie', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n          output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return enIe;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-ie.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-il.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-il.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var enIl = moment.defineLocale('en-il', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n          output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    }\n  });\n  return enIl;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-il.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-in.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-in.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var enIn = moment.defineLocale('en-in', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY h:mm A',\n      LLLL: 'dddd, D MMMM YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n          output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 1st is the first week of the year.\n\n    }\n  });\n  return enIn;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-in.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-nz.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-nz.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var enNz = moment.defineLocale('en-nz', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY h:mm A',\n      LLLL: 'dddd, D MMMM YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n          output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return enNz;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-nz.js?");

/***/ }),

/***/ "./node_modules/moment/locale/en-sg.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/en-sg.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var enSg = moment.defineLocale('en-sg', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n          output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return enSg;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/en-sg.js?");

/***/ }),

/***/ "./node_modules/moment/locale/eo.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/eo.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var eo = moment.defineLocale('eo', {\n    months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),\n    monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n    weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n    weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n    weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: '[la] D[-an de] MMMM, YYYY',\n      LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n      LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n      llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm'\n    },\n    meridiemParse: /[ap]\\.t\\.m/i,\n    isPM: function (input) {\n      return input.charAt(0).toLowerCase() === 'p';\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours > 11) {\n        return isLower ? 'p.t.m.' : 'P.T.M.';\n      } else {\n        return isLower ? 'a.t.m.' : 'A.T.M.';\n      }\n    },\n    calendar: {\n      sameDay: '[Hodiaŭ je] LT',\n      nextDay: '[Morgaŭ je] LT',\n      nextWeek: 'dddd[n je] LT',\n      lastDay: '[Hieraŭ je] LT',\n      lastWeek: '[pasintan] dddd[n je] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'post %s',\n      past: 'antaŭ %s',\n      s: 'kelkaj sekundoj',\n      ss: '%d sekundoj',\n      m: 'unu minuto',\n      mm: '%d minutoj',\n      h: 'unu horo',\n      hh: '%d horoj',\n      d: 'unu tago',\n      //ne 'diurno', ĉar estas uzita por proksimumo\n      dd: '%d tagoj',\n      M: 'unu monato',\n      MM: '%d monatoj',\n      y: 'unu jaro',\n      yy: '%d jaroj'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}a/,\n    ordinal: '%da',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return eo;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/eo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/es-do.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/es-do.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n      monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n      monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n      monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n  var esDo = moment.defineLocale('es-do', {\n    months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortDot;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShort[m.month()];\n      } else {\n        return monthsShortDot[m.month()];\n      }\n    },\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n    monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n    weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n    weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY h:mm A',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextDay: function () {\n        return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextWeek: function () {\n        return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastDay: function () {\n        return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastWeek: function () {\n        return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'en %s',\n      past: 'hace %s',\n      s: 'unos segundos',\n      ss: '%d segundos',\n      m: 'un minuto',\n      mm: '%d minutos',\n      h: 'una hora',\n      hh: '%d horas',\n      d: 'un día',\n      dd: '%d días',\n      w: 'una semana',\n      ww: '%d semanas',\n      M: 'un mes',\n      MM: '%d meses',\n      y: 'un año',\n      yy: '%d años'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return esDo;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/es-do.js?");

/***/ }),

/***/ "./node_modules/moment/locale/es-mx.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/es-mx.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n      monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n      monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n      monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n  var esMx = moment.defineLocale('es-mx', {\n    months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortDot;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShort[m.month()];\n      } else {\n        return monthsShortDot[m.month()];\n      }\n    },\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n    monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n    weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n    weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY H:mm',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextDay: function () {\n        return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextWeek: function () {\n        return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastDay: function () {\n        return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastWeek: function () {\n        return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'en %s',\n      past: 'hace %s',\n      s: 'unos segundos',\n      ss: '%d segundos',\n      m: 'un minuto',\n      mm: '%d minutos',\n      h: 'una hora',\n      hh: '%d horas',\n      d: 'un día',\n      dd: '%d días',\n      w: 'una semana',\n      ww: '%d semanas',\n      M: 'un mes',\n      MM: '%d meses',\n      y: 'un año',\n      yy: '%d años'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    },\n    invalidDate: 'Fecha inválida'\n  });\n  return esMx;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/es-mx.js?");

/***/ }),

/***/ "./node_modules/moment/locale/es-us.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/es-us.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n      monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n      monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n      monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n  var esUs = moment.defineLocale('es-us', {\n    months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortDot;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShort[m.month()];\n      } else {\n        return monthsShortDot[m.month()];\n      }\n    },\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n    monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n    weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n    weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'MM/DD/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY h:mm A',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextDay: function () {\n        return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextWeek: function () {\n        return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastDay: function () {\n        return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastWeek: function () {\n        return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'en %s',\n      past: 'hace %s',\n      s: 'unos segundos',\n      ss: '%d segundos',\n      m: 'un minuto',\n      mm: '%d minutos',\n      h: 'una hora',\n      hh: '%d horas',\n      d: 'un día',\n      dd: '%d días',\n      w: 'una semana',\n      ww: '%d semanas',\n      M: 'un mes',\n      MM: '%d meses',\n      y: 'un año',\n      yy: '%d años'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return esUs;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/es-us.js?");

/***/ }),

/***/ "./node_modules/moment/locale/es.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/es.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n      monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n      monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n      monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n  var es = moment.defineLocale('es', {\n    months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortDot;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShort[m.month()];\n      } else {\n        return monthsShortDot[m.month()];\n      }\n    },\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n    monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n    weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n    weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY H:mm',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextDay: function () {\n        return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextWeek: function () {\n        return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastDay: function () {\n        return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastWeek: function () {\n        return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'en %s',\n      past: 'hace %s',\n      s: 'unos segundos',\n      ss: '%d segundos',\n      m: 'un minuto',\n      mm: '%d minutos',\n      h: 'una hora',\n      hh: '%d horas',\n      d: 'un día',\n      dd: '%d días',\n      w: 'una semana',\n      ww: '%d semanas',\n      M: 'un mes',\n      MM: '%d meses',\n      y: 'un año',\n      yy: '%d años'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    },\n    invalidDate: 'Fecha inválida'\n  });\n  return es;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/es.js?");

/***/ }),

/***/ "./node_modules/moment/locale/et.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/et.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n      ss: [number + 'sekundi', number + 'sekundit'],\n      m: ['ühe minuti', 'üks minut'],\n      mm: [number + ' minuti', number + ' minutit'],\n      h: ['ühe tunni', 'tund aega', 'üks tund'],\n      hh: [number + ' tunni', number + ' tundi'],\n      d: ['ühe päeva', 'üks päev'],\n      M: ['kuu aja', 'kuu aega', 'üks kuu'],\n      MM: [number + ' kuu', number + ' kuud'],\n      y: ['ühe aasta', 'aasta', 'üks aasta'],\n      yy: [number + ' aasta', number + ' aastat']\n    };\n\n    if (withoutSuffix) {\n      return format[key][2] ? format[key][2] : format[key][1];\n    }\n\n    return isFuture ? format[key][0] : format[key][1];\n  }\n\n  var et = moment.defineLocale('et', {\n    months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n    monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n    weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n    weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n    weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm',\n      LLLL: 'dddd, D. MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[Täna,] LT',\n      nextDay: '[Homme,] LT',\n      nextWeek: '[Järgmine] dddd LT',\n      lastDay: '[Eile,] LT',\n      lastWeek: '[Eelmine] dddd LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s pärast',\n      past: '%s tagasi',\n      s: processRelativeTime,\n      ss: processRelativeTime,\n      m: processRelativeTime,\n      mm: processRelativeTime,\n      h: processRelativeTime,\n      hh: processRelativeTime,\n      d: processRelativeTime,\n      dd: '%d päeva',\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return et;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/et.js?");

/***/ }),

/***/ "./node_modules/moment/locale/eu.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/eu.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var eu = moment.defineLocale('eu', {\n    months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n    monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n    weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n    weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: 'YYYY[ko] MMMM[ren] D[a]',\n      LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n      LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n      l: 'YYYY-M-D',\n      ll: 'YYYY[ko] MMM D[a]',\n      lll: 'YYYY[ko] MMM D[a] HH:mm',\n      llll: 'ddd, YYYY[ko] MMM D[a] HH:mm'\n    },\n    calendar: {\n      sameDay: '[gaur] LT[etan]',\n      nextDay: '[bihar] LT[etan]',\n      nextWeek: 'dddd LT[etan]',\n      lastDay: '[atzo] LT[etan]',\n      lastWeek: '[aurreko] dddd LT[etan]',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s barru',\n      past: 'duela %s',\n      s: 'segundo batzuk',\n      ss: '%d segundo',\n      m: 'minutu bat',\n      mm: '%d minutu',\n      h: 'ordu bat',\n      hh: '%d ordu',\n      d: 'egun bat',\n      dd: '%d egun',\n      M: 'hilabete bat',\n      MM: '%d hilabete',\n      y: 'urte bat',\n      yy: '%d urte'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return eu;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/eu.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fa.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/fa.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '۱',\n    2: '۲',\n    3: '۳',\n    4: '۴',\n    5: '۵',\n    6: '۶',\n    7: '۷',\n    8: '۸',\n    9: '۹',\n    0: '۰'\n  },\n      numberMap = {\n    '۱': '1',\n    '۲': '2',\n    '۳': '3',\n    '۴': '4',\n    '۵': '5',\n    '۶': '6',\n    '۷': '7',\n    '۸': '8',\n    '۹': '9',\n    '۰': '0'\n  };\n  var fa = moment.defineLocale('fa', {\n    months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n    monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n    weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n    weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n    weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /قبل از ظهر|بعد از ظهر/,\n    isPM: function (input) {\n      return /بعد از ظهر/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'قبل از ظهر';\n      } else {\n        return 'بعد از ظهر';\n      }\n    },\n    calendar: {\n      sameDay: '[امروز ساعت] LT',\n      nextDay: '[فردا ساعت] LT',\n      nextWeek: 'dddd [ساعت] LT',\n      lastDay: '[دیروز ساعت] LT',\n      lastWeek: 'dddd [پیش] [ساعت] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'در %s',\n      past: '%s پیش',\n      s: 'چند ثانیه',\n      ss: '%d ثانیه',\n      m: 'یک دقیقه',\n      mm: '%d دقیقه',\n      h: 'یک ساعت',\n      hh: '%d ساعت',\n      d: 'یک روز',\n      dd: '%d روز',\n      M: 'یک ماه',\n      MM: '%d ماه',\n      y: 'یک سال',\n      yy: '%d سال'\n    },\n    preparse: function (string) {\n      return string.replace(/[۰-۹]/g, function (match) {\n        return numberMap[match];\n      }).replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      }).replace(/,/g, '،');\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}م/,\n    ordinal: '%dم',\n    week: {\n      dow: 6,\n      // Saturday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n    }\n  });\n  return fa;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fa.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fi.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/fi.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n      numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', numbersPast[7], numbersPast[8], numbersPast[9]];\n\n  function translate(number, withoutSuffix, key, isFuture) {\n    var result = '';\n\n    switch (key) {\n      case 's':\n        return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n\n      case 'ss':\n        result = isFuture ? 'sekunnin' : 'sekuntia';\n        break;\n\n      case 'm':\n        return isFuture ? 'minuutin' : 'minuutti';\n\n      case 'mm':\n        result = isFuture ? 'minuutin' : 'minuuttia';\n        break;\n\n      case 'h':\n        return isFuture ? 'tunnin' : 'tunti';\n\n      case 'hh':\n        result = isFuture ? 'tunnin' : 'tuntia';\n        break;\n\n      case 'd':\n        return isFuture ? 'päivän' : 'päivä';\n\n      case 'dd':\n        result = isFuture ? 'päivän' : 'päivää';\n        break;\n\n      case 'M':\n        return isFuture ? 'kuukauden' : 'kuukausi';\n\n      case 'MM':\n        result = isFuture ? 'kuukauden' : 'kuukautta';\n        break;\n\n      case 'y':\n        return isFuture ? 'vuoden' : 'vuosi';\n\n      case 'yy':\n        result = isFuture ? 'vuoden' : 'vuotta';\n        break;\n    }\n\n    result = verbalNumber(number, isFuture) + ' ' + result;\n    return result;\n  }\n\n  function verbalNumber(number, isFuture) {\n    return number < 10 ? isFuture ? numbersFuture[number] : numbersPast[number] : number;\n  }\n\n  var fi = moment.defineLocale('fi', {\n    months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n    monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n    weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n    weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n    weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n    longDateFormat: {\n      LT: 'HH.mm',\n      LTS: 'HH.mm.ss',\n      L: 'DD.MM.YYYY',\n      LL: 'Do MMMM[ta] YYYY',\n      LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n      LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n      l: 'D.M.YYYY',\n      ll: 'Do MMM YYYY',\n      lll: 'Do MMM YYYY, [klo] HH.mm',\n      llll: 'ddd, Do MMM YYYY, [klo] HH.mm'\n    },\n    calendar: {\n      sameDay: '[tänään] [klo] LT',\n      nextDay: '[huomenna] [klo] LT',\n      nextWeek: 'dddd [klo] LT',\n      lastDay: '[eilen] [klo] LT',\n      lastWeek: '[viime] dddd[na] [klo] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s päästä',\n      past: '%s sitten',\n      s: translate,\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: translate,\n      dd: translate,\n      M: translate,\n      MM: translate,\n      y: translate,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return fi;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fi.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fil.js":
/*!*******************************************!*\
  !*** ./node_modules/moment/locale/fil.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var fil = moment.defineLocale('fil', {\n    months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n    monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n    weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n    weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n    weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'MM/D/YYYY',\n      LL: 'MMMM D, YYYY',\n      LLL: 'MMMM D, YYYY HH:mm',\n      LLLL: 'dddd, MMMM DD, YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: 'LT [ngayong araw]',\n      nextDay: '[Bukas ng] LT',\n      nextWeek: 'LT [sa susunod na] dddd',\n      lastDay: 'LT [kahapon]',\n      lastWeek: 'LT [noong nakaraang] dddd',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'sa loob ng %s',\n      past: '%s ang nakalipas',\n      s: 'ilang segundo',\n      ss: '%d segundo',\n      m: 'isang minuto',\n      mm: '%d minuto',\n      h: 'isang oras',\n      hh: '%d oras',\n      d: 'isang araw',\n      dd: '%d araw',\n      M: 'isang buwan',\n      MM: '%d buwan',\n      y: 'isang taon',\n      yy: '%d taon'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}/,\n    ordinal: function (number) {\n      return number;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return fil;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fil.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fo.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/fo.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var fo = moment.defineLocale('fo', {\n    months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n    monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n    weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),\n    weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n    weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D. MMMM, YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Í dag kl.] LT',\n      nextDay: '[Í morgin kl.] LT',\n      nextWeek: 'dddd [kl.] LT',\n      lastDay: '[Í gjár kl.] LT',\n      lastWeek: '[síðstu] dddd [kl] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'um %s',\n      past: '%s síðani',\n      s: 'fá sekund',\n      ss: '%d sekundir',\n      m: 'ein minuttur',\n      mm: '%d minuttir',\n      h: 'ein tími',\n      hh: '%d tímar',\n      d: 'ein dagur',\n      dd: '%d dagar',\n      M: 'ein mánaður',\n      MM: '%d mánaðir',\n      y: 'eitt ár',\n      yy: '%d ár'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return fo;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fr-ca.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/fr-ca.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var frCa = moment.defineLocale('fr-ca', {\n    months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n    monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n    weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n    weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Aujourd’hui à] LT',\n      nextDay: '[Demain à] LT',\n      nextWeek: 'dddd [à] LT',\n      lastDay: '[Hier à] LT',\n      lastWeek: 'dddd [dernier à] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dans %s',\n      past: 'il y a %s',\n      s: 'quelques secondes',\n      ss: '%d secondes',\n      m: 'une minute',\n      mm: '%d minutes',\n      h: 'une heure',\n      hh: '%d heures',\n      d: 'un jour',\n      dd: '%d jours',\n      M: 'un mois',\n      MM: '%d mois',\n      y: 'un an',\n      yy: '%d ans'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        // Words with masculine grammatical gender: mois, trimestre, jour\n        default:\n        case 'M':\n        case 'Q':\n        case 'D':\n        case 'DDD':\n        case 'd':\n          return number + (number === 1 ? 'er' : 'e');\n        // Words with feminine grammatical gender: semaine\n\n        case 'w':\n        case 'W':\n          return number + (number === 1 ? 're' : 'e');\n      }\n    }\n  });\n  return frCa;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fr-ca.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fr-ch.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/fr-ch.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var frCh = moment.defineLocale('fr-ch', {\n    months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n    monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n    weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n    weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Aujourd’hui à] LT',\n      nextDay: '[Demain à] LT',\n      nextWeek: 'dddd [à] LT',\n      lastDay: '[Hier à] LT',\n      lastWeek: 'dddd [dernier à] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dans %s',\n      past: 'il y a %s',\n      s: 'quelques secondes',\n      ss: '%d secondes',\n      m: 'une minute',\n      mm: '%d minutes',\n      h: 'une heure',\n      hh: '%d heures',\n      d: 'un jour',\n      dd: '%d jours',\n      M: 'un mois',\n      MM: '%d mois',\n      y: 'un an',\n      yy: '%d ans'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        // Words with masculine grammatical gender: mois, trimestre, jour\n        default:\n        case 'M':\n        case 'Q':\n        case 'D':\n        case 'DDD':\n        case 'd':\n          return number + (number === 1 ? 'er' : 'e');\n        // Words with feminine grammatical gender: semaine\n\n        case 'w':\n        case 'W':\n          return number + (number === 1 ? 're' : 'e');\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return frCh;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fr-ch.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fr.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/fr.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n      monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n      monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n      monthsParse = [/^janv/i, /^févr/i, /^mars/i, /^avr/i, /^mai/i, /^juin/i, /^juil/i, /^août/i, /^sept/i, /^oct/i, /^nov/i, /^déc/i];\n  var fr = moment.defineLocale('fr', {\n    months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n    monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: monthsStrictRegex,\n    monthsShortStrictRegex: monthsShortStrictRegex,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n    weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n    weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Aujourd’hui à] LT',\n      nextDay: '[Demain à] LT',\n      nextWeek: 'dddd [à] LT',\n      lastDay: '[Hier à] LT',\n      lastWeek: 'dddd [dernier à] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dans %s',\n      past: 'il y a %s',\n      s: 'quelques secondes',\n      ss: '%d secondes',\n      m: 'une minute',\n      mm: '%d minutes',\n      h: 'une heure',\n      hh: '%d heures',\n      d: 'un jour',\n      dd: '%d jours',\n      w: 'une semaine',\n      ww: '%d semaines',\n      M: 'un mois',\n      MM: '%d mois',\n      y: 'un an',\n      yy: '%d ans'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        // TODO: Return 'e' when day of month > 1. Move this case inside\n        // block for masculine words below.\n        // See https://github.com/moment/moment/issues/3375\n        case 'D':\n          return number + (number === 1 ? 'er' : '');\n        // Words with masculine grammatical gender: mois, trimestre, jour\n\n        default:\n        case 'M':\n        case 'Q':\n        case 'DDD':\n        case 'd':\n          return number + (number === 1 ? 'er' : 'e');\n        // Words with feminine grammatical gender: semaine\n\n        case 'w':\n        case 'W':\n          return number + (number === 1 ? 're' : 'e');\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return fr;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fr.js?");

/***/ }),

/***/ "./node_modules/moment/locale/fy.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/fy.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n      monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n  var fy = moment.defineLocale('fy', {\n    months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortWithDots;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShortWithoutDots[m.month()];\n      } else {\n        return monthsShortWithDots[m.month()];\n      }\n    },\n    monthsParseExact: true,\n    weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),\n    weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n    weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD-MM-YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[hjoed om] LT',\n      nextDay: '[moarn om] LT',\n      nextWeek: 'dddd [om] LT',\n      lastDay: '[juster om] LT',\n      lastWeek: '[ôfrûne] dddd [om] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'oer %s',\n      past: '%s lyn',\n      s: 'in pear sekonden',\n      ss: '%d sekonden',\n      m: 'ien minút',\n      mm: '%d minuten',\n      h: 'ien oere',\n      hh: '%d oeren',\n      d: 'ien dei',\n      dd: '%d dagen',\n      M: 'ien moanne',\n      MM: '%d moannen',\n      y: 'ien jier',\n      yy: '%d jierren'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n    ordinal: function (number) {\n      return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return fy;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/fy.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ga.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ga.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var months = ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Meitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deireadh Fómhair', 'Samhain', 'Nollaig'],\n      monthsShort = ['Ean', 'Feabh', 'Márt', 'Aib', 'Beal', 'Meith', 'Iúil', 'Lún', 'M.F.', 'D.F.', 'Samh', 'Noll'],\n      weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Sathairn'],\n      weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n      weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n  var ga = moment.defineLocale('ga', {\n    months: months,\n    monthsShort: monthsShort,\n    monthsParseExact: true,\n    weekdays: weekdays,\n    weekdaysShort: weekdaysShort,\n    weekdaysMin: weekdaysMin,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Inniu ag] LT',\n      nextDay: '[Amárach ag] LT',\n      nextWeek: 'dddd [ag] LT',\n      lastDay: '[Inné ag] LT',\n      lastWeek: 'dddd [seo caite] [ag] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'i %s',\n      past: '%s ó shin',\n      s: 'cúpla soicind',\n      ss: '%d soicind',\n      m: 'nóiméad',\n      mm: '%d nóiméad',\n      h: 'uair an chloig',\n      hh: '%d uair an chloig',\n      d: 'lá',\n      dd: '%d lá',\n      M: 'mí',\n      MM: '%d míonna',\n      y: 'bliain',\n      yy: '%d bliain'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n    ordinal: function (number) {\n      var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return ga;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ga.js?");

/***/ }),

/***/ "./node_modules/moment/locale/gd.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/gd.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var months = ['Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'],\n      monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'],\n      weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'],\n      weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n      weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n  var gd = moment.defineLocale('gd', {\n    months: months,\n    monthsShort: monthsShort,\n    monthsParseExact: true,\n    weekdays: weekdays,\n    weekdaysShort: weekdaysShort,\n    weekdaysMin: weekdaysMin,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[An-diugh aig] LT',\n      nextDay: '[A-màireach aig] LT',\n      nextWeek: 'dddd [aig] LT',\n      lastDay: '[An-dè aig] LT',\n      lastWeek: 'dddd [seo chaidh] [aig] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'ann an %s',\n      past: 'bho chionn %s',\n      s: 'beagan diogan',\n      ss: '%d diogan',\n      m: 'mionaid',\n      mm: '%d mionaidean',\n      h: 'uair',\n      hh: '%d uairean',\n      d: 'latha',\n      dd: '%d latha',\n      M: 'mìos',\n      MM: '%d mìosan',\n      y: 'bliadhna',\n      yy: '%d bliadhna'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n    ordinal: function (number) {\n      var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return gd;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/gd.js?");

/***/ }),

/***/ "./node_modules/moment/locale/gl.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/gl.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var gl = moment.defineLocale('gl', {\n    months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n    monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n    weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n    weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY H:mm',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n      },\n      nextDay: function () {\n        return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n      },\n      nextWeek: function () {\n        return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n      },\n      lastDay: function () {\n        return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n      },\n      lastWeek: function () {\n        return '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: function (str) {\n        if (str.indexOf('un') === 0) {\n          return 'n' + str;\n        }\n\n        return 'en ' + str;\n      },\n      past: 'hai %s',\n      s: 'uns segundos',\n      ss: '%d segundos',\n      m: 'un minuto',\n      mm: '%d minutos',\n      h: 'unha hora',\n      hh: '%d horas',\n      d: 'un día',\n      dd: '%d días',\n      M: 'un mes',\n      MM: '%d meses',\n      y: 'un ano',\n      yy: '%d anos'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return gl;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/gl.js?");

/***/ }),

/***/ "./node_modules/moment/locale/gom-deva.js":
/*!************************************************!*\
  !*** ./node_modules/moment/locale/gom-deva.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n      ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n      m: ['एका मिणटान', 'एक मिनूट'],\n      mm: [number + ' मिणटांनी', number + ' मिणटां'],\n      h: ['एका वरान', 'एक वर'],\n      hh: [number + ' वरांनी', number + ' वरां'],\n      d: ['एका दिसान', 'एक दीस'],\n      dd: [number + ' दिसांनी', number + ' दीस'],\n      M: ['एका म्हयन्यान', 'एक म्हयनो'],\n      MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n      y: ['एका वर्सान', 'एक वर्स'],\n      yy: [number + ' वर्सांनी', number + ' वर्सां']\n    };\n    return isFuture ? format[key][0] : format[key][1];\n  }\n\n  var gomDeva = moment.defineLocale('gom-deva', {\n    months: {\n      standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n      format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split('_'),\n      isFormat: /MMMM(\\s)+D[oD]?/\n    },\n    monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n    weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n    weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'A h:mm [वाजतां]',\n      LTS: 'A h:mm:ss [वाजतां]',\n      L: 'DD-MM-YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n      LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n      llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]'\n    },\n    calendar: {\n      sameDay: '[आयज] LT',\n      nextDay: '[फाल्यां] LT',\n      nextWeek: '[फुडलो] dddd[,] LT',\n      lastDay: '[काल] LT',\n      lastWeek: '[फाटलो] dddd[,] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s',\n      past: '%s आदीं',\n      s: processRelativeTime,\n      ss: processRelativeTime,\n      m: processRelativeTime,\n      mm: processRelativeTime,\n      h: processRelativeTime,\n      hh: processRelativeTime,\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        // the ordinal 'वेर' only applies to day of the month\n        case 'D':\n          return number + 'वेर';\n\n        default:\n        case 'M':\n        case 'Q':\n        case 'DDD':\n        case 'd':\n        case 'w':\n        case 'W':\n          return number;\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week\n      doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n\n    },\n    meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'राती') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'सकाळीं') {\n        return hour;\n      } else if (meridiem === 'दनपारां') {\n        return hour > 12 ? hour : hour + 12;\n      } else if (meridiem === 'सांजे') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'राती';\n      } else if (hour < 12) {\n        return 'सकाळीं';\n      } else if (hour < 16) {\n        return 'दनपारां';\n      } else if (hour < 20) {\n        return 'सांजे';\n      } else {\n        return 'राती';\n      }\n    }\n  });\n  return gomDeva;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/gom-deva.js?");

/***/ }),

/***/ "./node_modules/moment/locale/gom-latn.js":
/*!************************************************!*\
  !*** ./node_modules/moment/locale/gom-latn.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      s: ['thoddea sekondamni', 'thodde sekond'],\n      ss: [number + ' sekondamni', number + ' sekond'],\n      m: ['eka mintan', 'ek minut'],\n      mm: [number + ' mintamni', number + ' mintam'],\n      h: ['eka voran', 'ek vor'],\n      hh: [number + ' voramni', number + ' voram'],\n      d: ['eka disan', 'ek dis'],\n      dd: [number + ' disamni', number + ' dis'],\n      M: ['eka mhoinean', 'ek mhoino'],\n      MM: [number + ' mhoineamni', number + ' mhoine'],\n      y: ['eka vorsan', 'ek voros'],\n      yy: [number + ' vorsamni', number + ' vorsam']\n    };\n    return isFuture ? format[key][0] : format[key][1];\n  }\n\n  var gomLatn = moment.defineLocale('gom-latn', {\n    months: {\n      standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n      format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split('_'),\n      isFormat: /MMMM(\\s)+D[oD]?/\n    },\n    monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n    monthsParseExact: true,\n    weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n    weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n    weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'A h:mm [vazta]',\n      LTS: 'A h:mm:ss [vazta]',\n      L: 'DD-MM-YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY A h:mm [vazta]',\n      LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n      llll: 'ddd, D MMM YYYY, A h:mm [vazta]'\n    },\n    calendar: {\n      sameDay: '[Aiz] LT',\n      nextDay: '[Faleam] LT',\n      nextWeek: '[Fuddlo] dddd[,] LT',\n      lastDay: '[Kal] LT',\n      lastWeek: '[Fattlo] dddd[,] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s',\n      past: '%s adim',\n      s: processRelativeTime,\n      ss: processRelativeTime,\n      m: processRelativeTime,\n      mm: processRelativeTime,\n      h: processRelativeTime,\n      hh: processRelativeTime,\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        // the ordinal 'er' only applies to day of the month\n        case 'D':\n          return number + 'er';\n\n        default:\n        case 'M':\n        case 'Q':\n        case 'DDD':\n        case 'd':\n        case 'w':\n        case 'W':\n          return number;\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week\n      doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n\n    },\n    meridiemParse: /rati|sokallim|donparam|sanje/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'rati') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'sokallim') {\n        return hour;\n      } else if (meridiem === 'donparam') {\n        return hour > 12 ? hour : hour + 12;\n      } else if (meridiem === 'sanje') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'rati';\n      } else if (hour < 12) {\n        return 'sokallim';\n      } else if (hour < 16) {\n        return 'donparam';\n      } else if (hour < 20) {\n        return 'sanje';\n      } else {\n        return 'rati';\n      }\n    }\n  });\n  return gomLatn;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/gom-latn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/gu.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/gu.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '૧',\n    2: '૨',\n    3: '૩',\n    4: '૪',\n    5: '૫',\n    6: '૬',\n    7: '૭',\n    8: '૮',\n    9: '૯',\n    0: '૦'\n  },\n      numberMap = {\n    '૧': '1',\n    '૨': '2',\n    '૩': '3',\n    '૪': '4',\n    '૫': '5',\n    '૬': '6',\n    '૭': '7',\n    '૮': '8',\n    '૯': '9',\n    '૦': '0'\n  };\n  var gu = moment.defineLocale('gu', {\n    months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),\n    monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),\n    weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n    weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm વાગ્યે',\n      LTS: 'A h:mm:ss વાગ્યે',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'\n    },\n    calendar: {\n      sameDay: '[આજ] LT',\n      nextDay: '[કાલે] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[ગઇકાલે] LT',\n      lastWeek: '[પાછલા] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s મા',\n      past: '%s પહેલા',\n      s: 'અમુક પળો',\n      ss: '%d સેકંડ',\n      m: 'એક મિનિટ',\n      mm: '%d મિનિટ',\n      h: 'એક કલાક',\n      hh: '%d કલાક',\n      d: 'એક દિવસ',\n      dd: '%d દિવસ',\n      M: 'એક મહિનો',\n      MM: '%d મહિનો',\n      y: 'એક વર્ષ',\n      yy: '%d વર્ષ'\n    },\n    preparse: function (string) {\n      return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n    // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n    meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'રાત') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'સવાર') {\n        return hour;\n      } else if (meridiem === 'બપોર') {\n        return hour >= 10 ? hour : hour + 12;\n      } else if (meridiem === 'સાંજ') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'રાત';\n      } else if (hour < 10) {\n        return 'સવાર';\n      } else if (hour < 17) {\n        return 'બપોર';\n      } else if (hour < 20) {\n        return 'સાંજ';\n      } else {\n        return 'રાત';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return gu;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/gu.js?");

/***/ }),

/***/ "./node_modules/moment/locale/he.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/he.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var he = moment.defineLocale('he', {\n    months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),\n    monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n    weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n    weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n    weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [ב]MMMM YYYY',\n      LLL: 'D [ב]MMMM YYYY HH:mm',\n      LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n      l: 'D/M/YYYY',\n      ll: 'D MMM YYYY',\n      lll: 'D MMM YYYY HH:mm',\n      llll: 'ddd, D MMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[היום ב־]LT',\n      nextDay: '[מחר ב־]LT',\n      nextWeek: 'dddd [בשעה] LT',\n      lastDay: '[אתמול ב־]LT',\n      lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'בעוד %s',\n      past: 'לפני %s',\n      s: 'מספר שניות',\n      ss: '%d שניות',\n      m: 'דקה',\n      mm: '%d דקות',\n      h: 'שעה',\n      hh: function (number) {\n        if (number === 2) {\n          return 'שעתיים';\n        }\n\n        return number + ' שעות';\n      },\n      d: 'יום',\n      dd: function (number) {\n        if (number === 2) {\n          return 'יומיים';\n        }\n\n        return number + ' ימים';\n      },\n      M: 'חודש',\n      MM: function (number) {\n        if (number === 2) {\n          return 'חודשיים';\n        }\n\n        return number + ' חודשים';\n      },\n      y: 'שנה',\n      yy: function (number) {\n        if (number === 2) {\n          return 'שנתיים';\n        } else if (number % 10 === 0 && number !== 10) {\n          return number + ' שנה';\n        }\n\n        return number + ' שנים';\n      }\n    },\n    meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n    isPM: function (input) {\n      return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 5) {\n        return 'לפנות בוקר';\n      } else if (hour < 10) {\n        return 'בבוקר';\n      } else if (hour < 12) {\n        return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n      } else if (hour < 18) {\n        return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n      } else {\n        return 'בערב';\n      }\n    }\n  });\n  return he;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/he.js?");

/***/ }),

/***/ "./node_modules/moment/locale/hi.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/hi.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '१',\n    2: '२',\n    3: '३',\n    4: '४',\n    5: '५',\n    6: '६',\n    7: '७',\n    8: '८',\n    9: '९',\n    0: '०'\n  },\n      numberMap = {\n    '१': '1',\n    '२': '2',\n    '३': '3',\n    '४': '4',\n    '५': '5',\n    '६': '6',\n    '७': '7',\n    '८': '8',\n    '९': '9',\n    '०': '0'\n  },\n      monthsParse = [/^जन/i, /^फ़र|फर/i, /^मार्च/i, /^अप्रै/i, /^मई/i, /^जून/i, /^जुल/i, /^अग/i, /^सितं|सित/i, /^अक्टू/i, /^नव|नवं/i, /^दिसं|दिस/i],\n      shortMonthsParse = [/^जन/i, /^फ़र/i, /^मार्च/i, /^अप्रै/i, /^मई/i, /^जून/i, /^जुल/i, /^अग/i, /^सित/i, /^अक्टू/i, /^नव/i, /^दिस/i];\n  var hi = moment.defineLocale('hi', {\n    months: {\n      format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),\n      standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split('_')\n    },\n    monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n    weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n    weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n    weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm बजे',\n      LTS: 'A h:mm:ss बजे',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm बजे',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm बजे'\n    },\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: shortMonthsParse,\n    monthsRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n    monthsShortRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n    monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n    monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n    calendar: {\n      sameDay: '[आज] LT',\n      nextDay: '[कल] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[कल] LT',\n      lastWeek: '[पिछले] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s में',\n      past: '%s पहले',\n      s: 'कुछ ही क्षण',\n      ss: '%d सेकंड',\n      m: 'एक मिनट',\n      mm: '%d मिनट',\n      h: 'एक घंटा',\n      hh: '%d घंटे',\n      d: 'एक दिन',\n      dd: '%d दिन',\n      M: 'एक महीने',\n      MM: '%d महीने',\n      y: 'एक वर्ष',\n      yy: '%d वर्ष'\n    },\n    preparse: function (string) {\n      return string.replace(/[१२३४५६७८९०]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n    // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n    meridiemParse: /रात|सुबह|दोपहर|शाम/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'रात') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'सुबह') {\n        return hour;\n      } else if (meridiem === 'दोपहर') {\n        return hour >= 10 ? hour : hour + 12;\n      } else if (meridiem === 'शाम') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'रात';\n      } else if (hour < 10) {\n        return 'सुबह';\n      } else if (hour < 17) {\n        return 'दोपहर';\n      } else if (hour < 20) {\n        return 'शाम';\n      } else {\n        return 'रात';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return hi;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/hi.js?");

/***/ }),

/***/ "./node_modules/moment/locale/hr.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/hr.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function translate(number, withoutSuffix, key) {\n    var result = number + ' ';\n\n    switch (key) {\n      case 'ss':\n        if (number === 1) {\n          result += 'sekunda';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'sekunde';\n        } else {\n          result += 'sekundi';\n        }\n\n        return result;\n\n      case 'm':\n        return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n\n      case 'mm':\n        if (number === 1) {\n          result += 'minuta';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'minute';\n        } else {\n          result += 'minuta';\n        }\n\n        return result;\n\n      case 'h':\n        return withoutSuffix ? 'jedan sat' : 'jednog sata';\n\n      case 'hh':\n        if (number === 1) {\n          result += 'sat';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'sata';\n        } else {\n          result += 'sati';\n        }\n\n        return result;\n\n      case 'dd':\n        if (number === 1) {\n          result += 'dan';\n        } else {\n          result += 'dana';\n        }\n\n        return result;\n\n      case 'MM':\n        if (number === 1) {\n          result += 'mjesec';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'mjeseca';\n        } else {\n          result += 'mjeseci';\n        }\n\n        return result;\n\n      case 'yy':\n        if (number === 1) {\n          result += 'godina';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'godine';\n        } else {\n          result += 'godina';\n        }\n\n        return result;\n    }\n  }\n\n  var hr = moment.defineLocale('hr', {\n    months: {\n      format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),\n      standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n    },\n    monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n    weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n    weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'Do MMMM YYYY',\n      LLL: 'Do MMMM YYYY H:mm',\n      LLLL: 'dddd, Do MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[danas u] LT',\n      nextDay: '[sutra u] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[u] [nedjelju] [u] LT';\n\n          case 3:\n            return '[u] [srijedu] [u] LT';\n\n          case 6:\n            return '[u] [subotu] [u] LT';\n\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[u] dddd [u] LT';\n        }\n      },\n      lastDay: '[jučer u] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[prošlu] [nedjelju] [u] LT';\n\n          case 3:\n            return '[prošlu] [srijedu] [u] LT';\n\n          case 6:\n            return '[prošle] [subote] [u] LT';\n\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[prošli] dddd [u] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: 'prije %s',\n      s: 'par sekundi',\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: 'dan',\n      dd: translate,\n      M: 'mjesec',\n      MM: translate,\n      y: 'godinu',\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return hr;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/hr.js?");

/***/ }),

/***/ "./node_modules/moment/locale/hu.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/hu.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt  : https://github.com/passatgt\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n\n  function translate(number, withoutSuffix, key, isFuture) {\n    var num = number;\n\n    switch (key) {\n      case 's':\n        return isFuture || withoutSuffix ? 'néhány másodperc' : 'néhány másodperce';\n\n      case 'ss':\n        return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n\n      case 'm':\n        return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n\n      case 'mm':\n        return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n\n      case 'h':\n        return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n\n      case 'hh':\n        return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n\n      case 'd':\n        return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n\n      case 'dd':\n        return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n\n      case 'M':\n        return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n\n      case 'MM':\n        return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n\n      case 'y':\n        return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n\n      case 'yy':\n        return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n    }\n\n    return '';\n  }\n\n  function week(isFuture) {\n    return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\n  }\n\n  var hu = moment.defineLocale('hu', {\n    months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n    monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n    weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n    weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'YYYY.MM.DD.',\n      LL: 'YYYY. MMMM D.',\n      LLL: 'YYYY. MMMM D. H:mm',\n      LLLL: 'YYYY. MMMM D., dddd H:mm'\n    },\n    meridiemParse: /de|du/i,\n    isPM: function (input) {\n      return input.charAt(1).toLowerCase() === 'u';\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 12) {\n        return isLower === true ? 'de' : 'DE';\n      } else {\n        return isLower === true ? 'du' : 'DU';\n      }\n    },\n    calendar: {\n      sameDay: '[ma] LT[-kor]',\n      nextDay: '[holnap] LT[-kor]',\n      nextWeek: function () {\n        return week.call(this, true);\n      },\n      lastDay: '[tegnap] LT[-kor]',\n      lastWeek: function () {\n        return week.call(this, false);\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s múlva',\n      past: '%s',\n      s: translate,\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: translate,\n      dd: translate,\n      M: translate,\n      MM: translate,\n      y: translate,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return hu;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/hu.js?");

/***/ }),

/***/ "./node_modules/moment/locale/hy-am.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/hy-am.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var hyAm = moment.defineLocale('hy-am', {\n    months: {\n      format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),\n      standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')\n    },\n    monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n    weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),\n    weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n    weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY թ.',\n      LLL: 'D MMMM YYYY թ., HH:mm',\n      LLLL: 'dddd, D MMMM YYYY թ., HH:mm'\n    },\n    calendar: {\n      sameDay: '[այսօր] LT',\n      nextDay: '[վաղը] LT',\n      lastDay: '[երեկ] LT',\n      nextWeek: function () {\n        return 'dddd [օրը ժամը] LT';\n      },\n      lastWeek: function () {\n        return '[անցած] dddd [օրը ժամը] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s հետո',\n      past: '%s առաջ',\n      s: 'մի քանի վայրկյան',\n      ss: '%d վայրկյան',\n      m: 'րոպե',\n      mm: '%d րոպե',\n      h: 'ժամ',\n      hh: '%d ժամ',\n      d: 'օր',\n      dd: '%d օր',\n      M: 'ամիս',\n      MM: '%d ամիս',\n      y: 'տարի',\n      yy: '%d տարի'\n    },\n    meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n    isPM: function (input) {\n      return /^(ցերեկվա|երեկոյան)$/.test(input);\n    },\n    meridiem: function (hour) {\n      if (hour < 4) {\n        return 'գիշերվա';\n      } else if (hour < 12) {\n        return 'առավոտվա';\n      } else if (hour < 17) {\n        return 'ցերեկվա';\n      } else {\n        return 'երեկոյան';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'DDD':\n        case 'w':\n        case 'W':\n        case 'DDDo':\n          if (number === 1) {\n            return number + '-ին';\n          }\n\n          return number + '-րդ';\n\n        default:\n          return number;\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return hyAm;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/hy-am.js?");

/***/ }),

/***/ "./node_modules/moment/locale/id.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/id.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var id = moment.defineLocale('id', {\n    months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n    weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n    weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n    weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n    longDateFormat: {\n      LT: 'HH.mm',\n      LTS: 'HH.mm.ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY [pukul] HH.mm',\n      LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n    },\n    meridiemParse: /pagi|siang|sore|malam/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'pagi') {\n        return hour;\n      } else if (meridiem === 'siang') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === 'sore' || meridiem === 'malam') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 11) {\n        return 'pagi';\n      } else if (hours < 15) {\n        return 'siang';\n      } else if (hours < 19) {\n        return 'sore';\n      } else {\n        return 'malam';\n      }\n    },\n    calendar: {\n      sameDay: '[Hari ini pukul] LT',\n      nextDay: '[Besok pukul] LT',\n      nextWeek: 'dddd [pukul] LT',\n      lastDay: '[Kemarin pukul] LT',\n      lastWeek: 'dddd [lalu pukul] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dalam %s',\n      past: '%s yang lalu',\n      s: 'beberapa detik',\n      ss: '%d detik',\n      m: 'semenit',\n      mm: '%d menit',\n      h: 'sejam',\n      hh: '%d jam',\n      d: 'sehari',\n      dd: '%d hari',\n      M: 'sebulan',\n      MM: '%d bulan',\n      y: 'setahun',\n      yy: '%d tahun'\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return id;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/id.js?");

/***/ }),

/***/ "./node_modules/moment/locale/is.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/is.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function plural(n) {\n    if (n % 100 === 11) {\n      return true;\n    } else if (n % 10 === 1) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function translate(number, withoutSuffix, key, isFuture) {\n    var result = number + ' ';\n\n    switch (key) {\n      case 's':\n        return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n\n      case 'ss':\n        if (plural(number)) {\n          return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n        }\n\n        return result + 'sekúnda';\n\n      case 'm':\n        return withoutSuffix ? 'mínúta' : 'mínútu';\n\n      case 'mm':\n        if (plural(number)) {\n          return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');\n        } else if (withoutSuffix) {\n          return result + 'mínúta';\n        }\n\n        return result + 'mínútu';\n\n      case 'hh':\n        if (plural(number)) {\n          return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n        }\n\n        return result + 'klukkustund';\n\n      case 'd':\n        if (withoutSuffix) {\n          return 'dagur';\n        }\n\n        return isFuture ? 'dag' : 'degi';\n\n      case 'dd':\n        if (plural(number)) {\n          if (withoutSuffix) {\n            return result + 'dagar';\n          }\n\n          return result + (isFuture ? 'daga' : 'dögum');\n        } else if (withoutSuffix) {\n          return result + 'dagur';\n        }\n\n        return result + (isFuture ? 'dag' : 'degi');\n\n      case 'M':\n        if (withoutSuffix) {\n          return 'mánuður';\n        }\n\n        return isFuture ? 'mánuð' : 'mánuði';\n\n      case 'MM':\n        if (plural(number)) {\n          if (withoutSuffix) {\n            return result + 'mánuðir';\n          }\n\n          return result + (isFuture ? 'mánuði' : 'mánuðum');\n        } else if (withoutSuffix) {\n          return result + 'mánuður';\n        }\n\n        return result + (isFuture ? 'mánuð' : 'mánuði');\n\n      case 'y':\n        return withoutSuffix || isFuture ? 'ár' : 'ári';\n\n      case 'yy':\n        if (plural(number)) {\n          return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n        }\n\n        return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n    }\n  }\n\n  var is = moment.defineLocale('is', {\n    months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),\n    monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n    weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n    weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n    weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY [kl.] H:mm',\n      LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm'\n    },\n    calendar: {\n      sameDay: '[í dag kl.] LT',\n      nextDay: '[á morgun kl.] LT',\n      nextWeek: 'dddd [kl.] LT',\n      lastDay: '[í gær kl.] LT',\n      lastWeek: '[síðasta] dddd [kl.] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'eftir %s',\n      past: 'fyrir %s síðan',\n      s: translate,\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: 'klukkustund',\n      hh: translate,\n      d: translate,\n      dd: translate,\n      M: translate,\n      MM: translate,\n      y: translate,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return is;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/is.js?");

/***/ }),

/***/ "./node_modules/moment/locale/it-ch.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/it-ch.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var itCh = moment.defineLocale('it-ch', {\n    months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n    monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n    weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n    weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n    weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Oggi alle] LT',\n      nextDay: '[Domani alle] LT',\n      nextWeek: 'dddd [alle] LT',\n      lastDay: '[Ieri alle] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[la scorsa] dddd [alle] LT';\n\n          default:\n            return '[lo scorso] dddd [alle] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: function (s) {\n        return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n      },\n      past: '%s fa',\n      s: 'alcuni secondi',\n      ss: '%d secondi',\n      m: 'un minuto',\n      mm: '%d minuti',\n      h: \"un'ora\",\n      hh: '%d ore',\n      d: 'un giorno',\n      dd: '%d giorni',\n      M: 'un mese',\n      MM: '%d mesi',\n      y: 'un anno',\n      yy: '%d anni'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return itCh;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/it-ch.js?");

/***/ }),

/***/ "./node_modules/moment/locale/it.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/it.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var it = moment.defineLocale('it', {\n    months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n    monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n    weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n    weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n    weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[Oggi a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n      },\n      nextDay: function () {\n        return '[Domani a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n      },\n      nextWeek: function () {\n        return 'dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n      },\n      lastDay: function () {\n        return '[Ieri a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n      },\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[La scorsa] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n\n          default:\n            return '[Lo scorso] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'tra %s',\n      past: '%s fa',\n      s: 'alcuni secondi',\n      ss: '%d secondi',\n      m: 'un minuto',\n      mm: '%d minuti',\n      h: \"un'ora\",\n      hh: '%d ore',\n      d: 'un giorno',\n      dd: '%d giorni',\n      w: 'una settimana',\n      ww: '%d settimane',\n      M: 'un mese',\n      MM: '%d mesi',\n      y: 'un anno',\n      yy: '%d anni'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return it;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/it.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ja.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ja.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var ja = moment.defineLocale('ja', {\n    eras: [{\n      since: '2019-05-01',\n      offset: 1,\n      name: '令和',\n      narrow: '㋿',\n      abbr: 'R'\n    }, {\n      since: '1989-01-08',\n      until: '2019-04-30',\n      offset: 1,\n      name: '平成',\n      narrow: '㍻',\n      abbr: 'H'\n    }, {\n      since: '1926-12-25',\n      until: '1989-01-07',\n      offset: 1,\n      name: '昭和',\n      narrow: '㍼',\n      abbr: 'S'\n    }, {\n      since: '1912-07-30',\n      until: '1926-12-24',\n      offset: 1,\n      name: '大正',\n      narrow: '㍽',\n      abbr: 'T'\n    }, {\n      since: '1873-01-01',\n      until: '1912-07-29',\n      offset: 6,\n      name: '明治',\n      narrow: '㍾',\n      abbr: 'M'\n    }, {\n      since: '0001-01-01',\n      until: '1873-12-31',\n      offset: 1,\n      name: '西暦',\n      narrow: 'AD',\n      abbr: 'AD'\n    }, {\n      since: '0000-12-31',\n      until: -Infinity,\n      offset: 1,\n      name: '紀元前',\n      narrow: 'BC',\n      abbr: 'BC'\n    }],\n    eraYearOrdinalRegex: /(元|\\d+)年/,\n    eraYearOrdinalParse: function (input, match) {\n      return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n    },\n    months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n    monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n    weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n    weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n    weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY/MM/DD',\n      LL: 'YYYY年M月D日',\n      LLL: 'YYYY年M月D日 HH:mm',\n      LLLL: 'YYYY年M月D日 dddd HH:mm',\n      l: 'YYYY/MM/DD',\n      ll: 'YYYY年M月D日',\n      lll: 'YYYY年M月D日 HH:mm',\n      llll: 'YYYY年M月D日(ddd) HH:mm'\n    },\n    meridiemParse: /午前|午後/i,\n    isPM: function (input) {\n      return input === '午後';\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return '午前';\n      } else {\n        return '午後';\n      }\n    },\n    calendar: {\n      sameDay: '[今日] LT',\n      nextDay: '[明日] LT',\n      nextWeek: function (now) {\n        if (now.week() !== this.week()) {\n          return '[来週]dddd LT';\n        } else {\n          return 'dddd LT';\n        }\n      },\n      lastDay: '[昨日] LT',\n      lastWeek: function (now) {\n        if (this.week() !== now.week()) {\n          return '[先週]dddd LT';\n        } else {\n          return 'dddd LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}日/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'y':\n          return number === 1 ? '元年' : number + '年';\n\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '日';\n\n        default:\n          return number;\n      }\n    },\n    relativeTime: {\n      future: '%s後',\n      past: '%s前',\n      s: '数秒',\n      ss: '%d秒',\n      m: '1分',\n      mm: '%d分',\n      h: '1時間',\n      hh: '%d時間',\n      d: '1日',\n      dd: '%d日',\n      M: '1ヶ月',\n      MM: '%dヶ月',\n      y: '1年',\n      yy: '%d年'\n    }\n  });\n  return ja;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ja.js?");

/***/ }),

/***/ "./node_modules/moment/locale/jv.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/jv.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var jv = moment.defineLocale('jv', {\n    months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n    weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n    weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n    weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n    longDateFormat: {\n      LT: 'HH.mm',\n      LTS: 'HH.mm.ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY [pukul] HH.mm',\n      LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n    },\n    meridiemParse: /enjing|siyang|sonten|ndalu/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'enjing') {\n        return hour;\n      } else if (meridiem === 'siyang') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 11) {\n        return 'enjing';\n      } else if (hours < 15) {\n        return 'siyang';\n      } else if (hours < 19) {\n        return 'sonten';\n      } else {\n        return 'ndalu';\n      }\n    },\n    calendar: {\n      sameDay: '[Dinten puniko pukul] LT',\n      nextDay: '[Mbenjang pukul] LT',\n      nextWeek: 'dddd [pukul] LT',\n      lastDay: '[Kala wingi pukul] LT',\n      lastWeek: 'dddd [kepengker pukul] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'wonten ing %s',\n      past: '%s ingkang kepengker',\n      s: 'sawetawis detik',\n      ss: '%d detik',\n      m: 'setunggal menit',\n      mm: '%d menit',\n      h: 'setunggal jam',\n      hh: '%d jam',\n      d: 'sedinten',\n      dd: '%d dinten',\n      M: 'sewulan',\n      MM: '%d wulan',\n      y: 'setaun',\n      yy: '%d taun'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return jv;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/jv.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ka.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ka.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var ka = moment.defineLocale('ka', {\n    months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),\n    monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n    weekdays: {\n      standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n      format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n      isFormat: /(წინა|შემდეგ)/\n    },\n    weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n    weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[დღეს] LT[-ზე]',\n      nextDay: '[ხვალ] LT[-ზე]',\n      lastDay: '[გუშინ] LT[-ზე]',\n      nextWeek: '[შემდეგ] dddd LT[-ზე]',\n      lastWeek: '[წინა] dddd LT-ზე',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: function (s) {\n        return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function ($0, $1, $2) {\n          return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n        });\n      },\n      past: function (s) {\n        if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n          return s.replace(/(ი|ე)$/, 'ის წინ');\n        }\n\n        if (/წელი/.test(s)) {\n          return s.replace(/წელი$/, 'წლის წინ');\n        }\n\n        return s;\n      },\n      s: 'რამდენიმე წამი',\n      ss: '%d წამი',\n      m: 'წუთი',\n      mm: '%d წუთი',\n      h: 'საათი',\n      hh: '%d საათი',\n      d: 'დღე',\n      dd: '%d დღე',\n      M: 'თვე',\n      MM: '%d თვე',\n      y: 'წელი',\n      yy: '%d წელი'\n    },\n    dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n    ordinal: function (number) {\n      if (number === 0) {\n        return number;\n      }\n\n      if (number === 1) {\n        return number + '-ლი';\n      }\n\n      if (number < 20 || number <= 100 && number % 20 === 0 || number % 100 === 0) {\n        return 'მე-' + number;\n      }\n\n      return number + '-ე';\n    },\n    week: {\n      dow: 1,\n      doy: 7\n    }\n  });\n  return ka;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ka.js?");

/***/ }),

/***/ "./node_modules/moment/locale/kk.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/kk.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var suffixes = {\n    0: '-ші',\n    1: '-ші',\n    2: '-ші',\n    3: '-ші',\n    4: '-ші',\n    5: '-ші',\n    6: '-шы',\n    7: '-ші',\n    8: '-ші',\n    9: '-шы',\n    10: '-шы',\n    20: '-шы',\n    30: '-шы',\n    40: '-шы',\n    50: '-ші',\n    60: '-шы',\n    70: '-ші',\n    80: '-ші',\n    90: '-шы',\n    100: '-ші'\n  };\n  var kk = moment.defineLocale('kk', {\n    months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),\n    monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n    weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),\n    weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n    weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Бүгін сағат] LT',\n      nextDay: '[Ертең сағат] LT',\n      nextWeek: 'dddd [сағат] LT',\n      lastDay: '[Кеше сағат] LT',\n      lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s ішінде',\n      past: '%s бұрын',\n      s: 'бірнеше секунд',\n      ss: '%d секунд',\n      m: 'бір минут',\n      mm: '%d минут',\n      h: 'бір сағат',\n      hh: '%d сағат',\n      d: 'бір күн',\n      dd: '%d күн',\n      M: 'бір ай',\n      MM: '%d ай',\n      y: 'бір жыл',\n      yy: '%d жыл'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n    ordinal: function (number) {\n      var a = number % 10,\n          b = number >= 100 ? 100 : null;\n      return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return kk;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/kk.js?");

/***/ }),

/***/ "./node_modules/moment/locale/km.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/km.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '១',\n    2: '២',\n    3: '៣',\n    4: '៤',\n    5: '៥',\n    6: '៦',\n    7: '៧',\n    8: '៨',\n    9: '៩',\n    0: '០'\n  },\n      numberMap = {\n    '១': '1',\n    '២': '2',\n    '៣': '3',\n    '៤': '4',\n    '៥': '5',\n    '៦': '6',\n    '៧': '7',\n    '៨': '8',\n    '៩': '9',\n    '០': '0'\n  };\n  var km = moment.defineLocale('km', {\n    months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),\n    monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),\n    weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n    weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n    weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ព្រឹក|ល្ងាច/,\n    isPM: function (input) {\n      return input === 'ល្ងាច';\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ព្រឹក';\n      } else {\n        return 'ល្ងាច';\n      }\n    },\n    calendar: {\n      sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n      nextDay: '[ស្អែក ម៉ោង] LT',\n      nextWeek: 'dddd [ម៉ោង] LT',\n      lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n      lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%sទៀត',\n      past: '%sមុន',\n      s: 'ប៉ុន្មានវិនាទី',\n      ss: '%d វិនាទី',\n      m: 'មួយនាទី',\n      mm: '%d នាទី',\n      h: 'មួយម៉ោង',\n      hh: '%d ម៉ោង',\n      d: 'មួយថ្ងៃ',\n      dd: '%d ថ្ងៃ',\n      M: 'មួយខែ',\n      MM: '%d ខែ',\n      y: 'មួយឆ្នាំ',\n      yy: '%d ឆ្នាំ'\n    },\n    dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n    ordinal: 'ទី%d',\n    preparse: function (string) {\n      return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return km;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/km.js?");

/***/ }),

/***/ "./node_modules/moment/locale/kn.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/kn.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '೧',\n    2: '೨',\n    3: '೩',\n    4: '೪',\n    5: '೫',\n    6: '೬',\n    7: '೭',\n    8: '೮',\n    9: '೯',\n    0: '೦'\n  },\n      numberMap = {\n    '೧': '1',\n    '೨': '2',\n    '೩': '3',\n    '೪': '4',\n    '೫': '5',\n    '೬': '6',\n    '೭': '7',\n    '೮': '8',\n    '೯': '9',\n    '೦': '0'\n  };\n  var kn = moment.defineLocale('kn', {\n    months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),\n    monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),\n    weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n    weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm',\n      LTS: 'A h:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm'\n    },\n    calendar: {\n      sameDay: '[ಇಂದು] LT',\n      nextDay: '[ನಾಳೆ] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[ನಿನ್ನೆ] LT',\n      lastWeek: '[ಕೊನೆಯ] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s ನಂತರ',\n      past: '%s ಹಿಂದೆ',\n      s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n      ss: '%d ಸೆಕೆಂಡುಗಳು',\n      m: 'ಒಂದು ನಿಮಿಷ',\n      mm: '%d ನಿಮಿಷ',\n      h: 'ಒಂದು ಗಂಟೆ',\n      hh: '%d ಗಂಟೆ',\n      d: 'ಒಂದು ದಿನ',\n      dd: '%d ದಿನ',\n      M: 'ಒಂದು ತಿಂಗಳು',\n      MM: '%d ತಿಂಗಳು',\n      y: 'ಒಂದು ವರ್ಷ',\n      yy: '%d ವರ್ಷ'\n    },\n    preparse: function (string) {\n      return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'ರಾತ್ರಿ') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n        return hour;\n      } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n        return hour >= 10 ? hour : hour + 12;\n      } else if (meridiem === 'ಸಂಜೆ') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'ರಾತ್ರಿ';\n      } else if (hour < 10) {\n        return 'ಬೆಳಿಗ್ಗೆ';\n      } else if (hour < 17) {\n        return 'ಮಧ್ಯಾಹ್ನ';\n      } else if (hour < 20) {\n        return 'ಸಂಜೆ';\n      } else {\n        return 'ರಾತ್ರಿ';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n    ordinal: function (number) {\n      return number + 'ನೇ';\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return kn;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/kn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ko.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ko.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var ko = moment.defineLocale('ko', {\n    months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n    monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n    weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n    weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n    weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm',\n      LTS: 'A h:mm:ss',\n      L: 'YYYY.MM.DD.',\n      LL: 'YYYY년 MMMM D일',\n      LLL: 'YYYY년 MMMM D일 A h:mm',\n      LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n      l: 'YYYY.MM.DD.',\n      ll: 'YYYY년 MMMM D일',\n      lll: 'YYYY년 MMMM D일 A h:mm',\n      llll: 'YYYY년 MMMM D일 dddd A h:mm'\n    },\n    calendar: {\n      sameDay: '오늘 LT',\n      nextDay: '내일 LT',\n      nextWeek: 'dddd LT',\n      lastDay: '어제 LT',\n      lastWeek: '지난주 dddd LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s 후',\n      past: '%s 전',\n      s: '몇 초',\n      ss: '%d초',\n      m: '1분',\n      mm: '%d분',\n      h: '한 시간',\n      hh: '%d시간',\n      d: '하루',\n      dd: '%d일',\n      M: '한 달',\n      MM: '%d달',\n      y: '일 년',\n      yy: '%d년'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '일';\n\n        case 'M':\n          return number + '월';\n\n        case 'w':\n        case 'W':\n          return number + '주';\n\n        default:\n          return number;\n      }\n    },\n    meridiemParse: /오전|오후/,\n    isPM: function (token) {\n      return token === '오후';\n    },\n    meridiem: function (hour, minute, isUpper) {\n      return hour < 12 ? '오전' : '오후';\n    }\n  });\n  return ko;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ko.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ku.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ku.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '١',\n    2: '٢',\n    3: '٣',\n    4: '٤',\n    5: '٥',\n    6: '٦',\n    7: '٧',\n    8: '٨',\n    9: '٩',\n    0: '٠'\n  },\n      numberMap = {\n    '١': '1',\n    '٢': '2',\n    '٣': '3',\n    '٤': '4',\n    '٥': '5',\n    '٦': '6',\n    '٧': '7',\n    '٨': '8',\n    '٩': '9',\n    '٠': '0'\n  },\n      months = ['کانونی دووەم', 'شوبات', 'ئازار', 'نیسان', 'ئایار', 'حوزەیران', 'تەمموز', 'ئاب', 'ئەیلوول', 'تشرینی یەكەم', 'تشرینی دووەم', 'كانونی یەکەم'];\n  var ku = moment.defineLocale('ku', {\n    months: months,\n    monthsShort: months,\n    weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split('_'),\n    weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n    weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ئێواره‌|به‌یانی/,\n    isPM: function (input) {\n      return /ئێواره‌/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'به‌یانی';\n      } else {\n        return 'ئێواره‌';\n      }\n    },\n    calendar: {\n      sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n      nextDay: '[به‌یانی كاتژمێر] LT',\n      nextWeek: 'dddd [كاتژمێر] LT',\n      lastDay: '[دوێنێ كاتژمێر] LT',\n      lastWeek: 'dddd [كاتژمێر] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'له‌ %s',\n      past: '%s',\n      s: 'چه‌ند چركه‌یه‌ك',\n      ss: 'چركه‌ %d',\n      m: 'یه‌ك خوله‌ك',\n      mm: '%d خوله‌ك',\n      h: 'یه‌ك كاتژمێر',\n      hh: '%d كاتژمێر',\n      d: 'یه‌ك ڕۆژ',\n      dd: '%d ڕۆژ',\n      M: 'یه‌ك مانگ',\n      MM: '%d مانگ',\n      y: 'یه‌ك ساڵ',\n      yy: '%d ساڵ'\n    },\n    preparse: function (string) {\n      return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n        return numberMap[match];\n      }).replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      }).replace(/,/g, '،');\n    },\n    week: {\n      dow: 6,\n      // Saturday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n    }\n  });\n  return ku;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ku.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ky.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ky.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var suffixes = {\n    0: '-чү',\n    1: '-чи',\n    2: '-чи',\n    3: '-чү',\n    4: '-чү',\n    5: '-чи',\n    6: '-чы',\n    7: '-чи',\n    8: '-чи',\n    9: '-чу',\n    10: '-чу',\n    20: '-чы',\n    30: '-чу',\n    40: '-чы',\n    50: '-чү',\n    60: '-чы',\n    70: '-чи',\n    80: '-чи',\n    90: '-чу',\n    100: '-чү'\n  };\n  var ky = moment.defineLocale('ky', {\n    months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),\n    monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),\n    weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),\n    weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n    weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Бүгүн саат] LT',\n      nextDay: '[Эртең саат] LT',\n      nextWeek: 'dddd [саат] LT',\n      lastDay: '[Кечээ саат] LT',\n      lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s ичинде',\n      past: '%s мурун',\n      s: 'бирнече секунд',\n      ss: '%d секунд',\n      m: 'бир мүнөт',\n      mm: '%d мүнөт',\n      h: 'бир саат',\n      hh: '%d саат',\n      d: 'бир күн',\n      dd: '%d күн',\n      M: 'бир ай',\n      MM: '%d ай',\n      y: 'бир жыл',\n      yy: '%d жыл'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n    ordinal: function (number) {\n      var a = number % 10,\n          b = number >= 100 ? 100 : null;\n      return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return ky;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ky.js?");

/***/ }),

/***/ "./node_modules/moment/locale/lb.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/lb.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      m: ['eng Minutt', 'enger Minutt'],\n      h: ['eng Stonn', 'enger Stonn'],\n      d: ['een Dag', 'engem Dag'],\n      M: ['ee Mount', 'engem Mount'],\n      y: ['ee Joer', 'engem Joer']\n    };\n    return withoutSuffix ? format[key][0] : format[key][1];\n  }\n\n  function processFutureTime(string) {\n    var number = string.substr(0, string.indexOf(' '));\n\n    if (eifelerRegelAppliesToNumber(number)) {\n      return 'a ' + string;\n    }\n\n    return 'an ' + string;\n  }\n\n  function processPastTime(string) {\n    var number = string.substr(0, string.indexOf(' '));\n\n    if (eifelerRegelAppliesToNumber(number)) {\n      return 'viru ' + string;\n    }\n\n    return 'virun ' + string;\n  }\n  /**\n   * Returns true if the word before the given number loses the '-n' ending.\n   * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n   *\n   * @param number {integer}\n   * @returns {boolean}\n   */\n\n\n  function eifelerRegelAppliesToNumber(number) {\n    number = parseInt(number, 10);\n\n    if (isNaN(number)) {\n      return false;\n    }\n\n    if (number < 0) {\n      // Negative Number --> always true\n      return true;\n    } else if (number < 10) {\n      // Only 1 digit\n      if (4 <= number && number <= 7) {\n        return true;\n      }\n\n      return false;\n    } else if (number < 100) {\n      // 2 digits\n      var lastDigit = number % 10,\n          firstDigit = number / 10;\n\n      if (lastDigit === 0) {\n        return eifelerRegelAppliesToNumber(firstDigit);\n      }\n\n      return eifelerRegelAppliesToNumber(lastDigit);\n    } else if (number < 10000) {\n      // 3 or 4 digits --> recursively check first digit\n      while (number >= 10) {\n        number = number / 10;\n      }\n\n      return eifelerRegelAppliesToNumber(number);\n    } else {\n      // Anything larger than 4 digits: recursively check first n-3 digits\n      number = number / 1000;\n      return eifelerRegelAppliesToNumber(number);\n    }\n  }\n\n  var lb = moment.defineLocale('lb', {\n    months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n    monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n    weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n    weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm [Auer]',\n      LTS: 'H:mm:ss [Auer]',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm [Auer]',\n      LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n    },\n    calendar: {\n      sameDay: '[Haut um] LT',\n      sameElse: 'L',\n      nextDay: '[Muer um] LT',\n      nextWeek: 'dddd [um] LT',\n      lastDay: '[Gëschter um] LT',\n      lastWeek: function () {\n        // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n        switch (this.day()) {\n          case 2:\n          case 4:\n            return '[Leschten] dddd [um] LT';\n\n          default:\n            return '[Leschte] dddd [um] LT';\n        }\n      }\n    },\n    relativeTime: {\n      future: processFutureTime,\n      past: processPastTime,\n      s: 'e puer Sekonnen',\n      ss: '%d Sekonnen',\n      m: processRelativeTime,\n      mm: '%d Minutten',\n      h: processRelativeTime,\n      hh: '%d Stonnen',\n      d: processRelativeTime,\n      dd: '%d Deeg',\n      M: processRelativeTime,\n      MM: '%d Méint',\n      y: processRelativeTime,\n      yy: '%d Joer'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return lb;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/lb.js?");

/***/ }),

/***/ "./node_modules/moment/locale/lo.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/lo.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var lo = moment.defineLocale('lo', {\n    months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n    monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n    weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n    weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n    weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'ວັນdddd D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n    isPM: function (input) {\n      return input === 'ຕອນແລງ';\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ຕອນເຊົ້າ';\n      } else {\n        return 'ຕອນແລງ';\n      }\n    },\n    calendar: {\n      sameDay: '[ມື້ນີ້ເວລາ] LT',\n      nextDay: '[ມື້ອື່ນເວລາ] LT',\n      nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n      lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n      lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'ອີກ %s',\n      past: '%sຜ່ານມາ',\n      s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n      ss: '%d ວິນາທີ',\n      m: '1 ນາທີ',\n      mm: '%d ນາທີ',\n      h: '1 ຊົ່ວໂມງ',\n      hh: '%d ຊົ່ວໂມງ',\n      d: '1 ມື້',\n      dd: '%d ມື້',\n      M: '1 ເດືອນ',\n      MM: '%d ເດືອນ',\n      y: '1 ປີ',\n      yy: '%d ປີ'\n    },\n    dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n    ordinal: function (number) {\n      return 'ທີ່' + number;\n    }\n  });\n  return lo;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/lo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/lt.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/lt.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var units = {\n    ss: 'sekundė_sekundžių_sekundes',\n    m: 'minutė_minutės_minutę',\n    mm: 'minutės_minučių_minutes',\n    h: 'valanda_valandos_valandą',\n    hh: 'valandos_valandų_valandas',\n    d: 'diena_dienos_dieną',\n    dd: 'dienos_dienų_dienas',\n    M: 'mėnuo_mėnesio_mėnesį',\n    MM: 'mėnesiai_mėnesių_mėnesius',\n    y: 'metai_metų_metus',\n    yy: 'metai_metų_metus'\n  };\n\n  function translateSeconds(number, withoutSuffix, key, isFuture) {\n    if (withoutSuffix) {\n      return 'kelios sekundės';\n    } else {\n      return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n    }\n  }\n\n  function translateSingular(number, withoutSuffix, key, isFuture) {\n    return withoutSuffix ? forms(key)[0] : isFuture ? forms(key)[1] : forms(key)[2];\n  }\n\n  function special(number) {\n    return number % 10 === 0 || number > 10 && number < 20;\n  }\n\n  function forms(key) {\n    return units[key].split('_');\n  }\n\n  function translate(number, withoutSuffix, key, isFuture) {\n    var result = number + ' ';\n\n    if (number === 1) {\n      return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n    } else if (withoutSuffix) {\n      return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n    } else {\n      if (isFuture) {\n        return result + forms(key)[1];\n      } else {\n        return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n      }\n    }\n  }\n\n  var lt = moment.defineLocale('lt', {\n    months: {\n      format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),\n      standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\n      isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n    },\n    monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n    weekdays: {\n      format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),\n      standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\n      isFormat: /dddd HH:mm/\n    },\n    weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n    weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: 'YYYY [m.] MMMM D [d.]',\n      LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n      LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n      l: 'YYYY-MM-DD',\n      ll: 'YYYY [m.] MMMM D [d.]',\n      lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n      llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n    },\n    calendar: {\n      sameDay: '[Šiandien] LT',\n      nextDay: '[Rytoj] LT',\n      nextWeek: 'dddd LT',\n      lastDay: '[Vakar] LT',\n      lastWeek: '[Praėjusį] dddd LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'po %s',\n      past: 'prieš %s',\n      s: translateSeconds,\n      ss: translate,\n      m: translateSingular,\n      mm: translate,\n      h: translateSingular,\n      hh: translate,\n      d: translateSingular,\n      dd: translate,\n      M: translateSingular,\n      MM: translate,\n      y: translateSingular,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n    ordinal: function (number) {\n      return number + '-oji';\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return lt;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/lt.js?");

/***/ }),

/***/ "./node_modules/moment/locale/lv.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/lv.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var units = {\n    ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n    m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n    mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n    h: 'stundas_stundām_stunda_stundas'.split('_'),\n    hh: 'stundas_stundām_stunda_stundas'.split('_'),\n    d: 'dienas_dienām_diena_dienas'.split('_'),\n    dd: 'dienas_dienām_diena_dienas'.split('_'),\n    M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n    MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n    y: 'gada_gadiem_gads_gadi'.split('_'),\n    yy: 'gada_gadiem_gads_gadi'.split('_')\n  };\n  /**\n   * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n   */\n\n  function format(forms, number, withoutSuffix) {\n    if (withoutSuffix) {\n      // E.g. \"21 minūte\", \"3 minūtes\".\n      return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n    } else {\n      // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n      // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n      return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n    }\n  }\n\n  function relativeTimeWithPlural(number, withoutSuffix, key) {\n    return number + ' ' + format(units[key], number, withoutSuffix);\n  }\n\n  function relativeTimeWithSingular(number, withoutSuffix, key) {\n    return format(units[key], number, withoutSuffix);\n  }\n\n  function relativeSeconds(number, withoutSuffix) {\n    return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n  }\n\n  var lv = moment.defineLocale('lv', {\n    months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n    monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n    weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n    weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n    weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY.',\n      LL: 'YYYY. [gada] D. MMMM',\n      LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n      LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n    },\n    calendar: {\n      sameDay: '[Šodien pulksten] LT',\n      nextDay: '[Rīt pulksten] LT',\n      nextWeek: 'dddd [pulksten] LT',\n      lastDay: '[Vakar pulksten] LT',\n      lastWeek: '[Pagājušā] dddd [pulksten] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'pēc %s',\n      past: 'pirms %s',\n      s: relativeSeconds,\n      ss: relativeTimeWithPlural,\n      m: relativeTimeWithSingular,\n      mm: relativeTimeWithPlural,\n      h: relativeTimeWithSingular,\n      hh: relativeTimeWithPlural,\n      d: relativeTimeWithSingular,\n      dd: relativeTimeWithPlural,\n      M: relativeTimeWithSingular,\n      MM: relativeTimeWithPlural,\n      y: relativeTimeWithSingular,\n      yy: relativeTimeWithPlural\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return lv;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/lv.js?");

/***/ }),

/***/ "./node_modules/moment/locale/me.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/me.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var translator = {\n    words: {\n      //Different grammatical cases\n      ss: ['sekund', 'sekunda', 'sekundi'],\n      m: ['jedan minut', 'jednog minuta'],\n      mm: ['minut', 'minuta', 'minuta'],\n      h: ['jedan sat', 'jednog sata'],\n      hh: ['sat', 'sata', 'sati'],\n      dd: ['dan', 'dana', 'dana'],\n      MM: ['mjesec', 'mjeseca', 'mjeseci'],\n      yy: ['godina', 'godine', 'godina']\n    },\n    correctGrammaticalCase: function (number, wordKey) {\n      return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n    },\n    translate: function (number, withoutSuffix, key) {\n      var wordKey = translator.words[key];\n\n      if (key.length === 1) {\n        return withoutSuffix ? wordKey[0] : wordKey[1];\n      } else {\n        return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n      }\n    }\n  };\n  var me = moment.defineLocale('me', {\n    months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n    monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n    weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n    weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm',\n      LLLL: 'dddd, D. MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[danas u] LT',\n      nextDay: '[sjutra u] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[u] [nedjelju] [u] LT';\n\n          case 3:\n            return '[u] [srijedu] [u] LT';\n\n          case 6:\n            return '[u] [subotu] [u] LT';\n\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[u] dddd [u] LT';\n        }\n      },\n      lastDay: '[juče u] LT',\n      lastWeek: function () {\n        var lastWeekDays = ['[prošle] [nedjelje] [u] LT', '[prošlog] [ponedjeljka] [u] LT', '[prošlog] [utorka] [u] LT', '[prošle] [srijede] [u] LT', '[prošlog] [četvrtka] [u] LT', '[prošlog] [petka] [u] LT', '[prošle] [subote] [u] LT'];\n        return lastWeekDays[this.day()];\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: 'prije %s',\n      s: 'nekoliko sekundi',\n      ss: translator.translate,\n      m: translator.translate,\n      mm: translator.translate,\n      h: translator.translate,\n      hh: translator.translate,\n      d: 'dan',\n      dd: translator.translate,\n      M: 'mjesec',\n      MM: translator.translate,\n      y: 'godinu',\n      yy: translator.translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return me;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/me.js?");

/***/ }),

/***/ "./node_modules/moment/locale/mi.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/mi.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var mi = moment.defineLocale('mi', {\n    months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),\n    monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),\n    monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n    monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n    monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n    monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n    weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n    weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n    weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY [i] HH:mm',\n      LLLL: 'dddd, D MMMM YYYY [i] HH:mm'\n    },\n    calendar: {\n      sameDay: '[i teie mahana, i] LT',\n      nextDay: '[apopo i] LT',\n      nextWeek: 'dddd [i] LT',\n      lastDay: '[inanahi i] LT',\n      lastWeek: 'dddd [whakamutunga i] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'i roto i %s',\n      past: '%s i mua',\n      s: 'te hēkona ruarua',\n      ss: '%d hēkona',\n      m: 'he meneti',\n      mm: '%d meneti',\n      h: 'te haora',\n      hh: '%d haora',\n      d: 'he ra',\n      dd: '%d ra',\n      M: 'he marama',\n      MM: '%d marama',\n      y: 'he tau',\n      yy: '%d tau'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return mi;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/mi.js?");

/***/ }),

/***/ "./node_modules/moment/locale/mk.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/mk.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var mk = moment.defineLocale('mk', {\n    months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),\n    monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n    weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),\n    weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n    weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'D.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY H:mm',\n      LLLL: 'dddd, D MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[Денес во] LT',\n      nextDay: '[Утре во] LT',\n      nextWeek: '[Во] dddd [во] LT',\n      lastDay: '[Вчера во] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n          case 3:\n          case 6:\n            return '[Изминатата] dddd [во] LT';\n\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[Изминатиот] dddd [во] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'за %s',\n      past: 'пред %s',\n      s: 'неколку секунди',\n      ss: '%d секунди',\n      m: 'една минута',\n      mm: '%d минути',\n      h: 'еден час',\n      hh: '%d часа',\n      d: 'еден ден',\n      dd: '%d дена',\n      M: 'еден месец',\n      MM: '%d месеци',\n      y: 'една година',\n      yy: '%d години'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n    ordinal: function (number) {\n      var lastDigit = number % 10,\n          last2Digits = number % 100;\n\n      if (number === 0) {\n        return number + '-ев';\n      } else if (last2Digits === 0) {\n        return number + '-ен';\n      } else if (last2Digits > 10 && last2Digits < 20) {\n        return number + '-ти';\n      } else if (lastDigit === 1) {\n        return number + '-ви';\n      } else if (lastDigit === 2) {\n        return number + '-ри';\n      } else if (lastDigit === 7 || lastDigit === 8) {\n        return number + '-ми';\n      } else {\n        return number + '-ти';\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return mk;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/mk.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ml.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ml.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var ml = moment.defineLocale('ml', {\n    months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),\n    monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),\n    weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n    weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm -നു',\n      LTS: 'A h:mm:ss -നു',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm -നു',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm -നു'\n    },\n    calendar: {\n      sameDay: '[ഇന്ന്] LT',\n      nextDay: '[നാളെ] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[ഇന്നലെ] LT',\n      lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s കഴിഞ്ഞ്',\n      past: '%s മുൻപ്',\n      s: 'അൽപ നിമിഷങ്ങൾ',\n      ss: '%d സെക്കൻഡ്',\n      m: 'ഒരു മിനിറ്റ്',\n      mm: '%d മിനിറ്റ്',\n      h: 'ഒരു മണിക്കൂർ',\n      hh: '%d മണിക്കൂർ',\n      d: 'ഒരു ദിവസം',\n      dd: '%d ദിവസം',\n      M: 'ഒരു മാസം',\n      MM: '%d മാസം',\n      y: 'ഒരു വർഷം',\n      yy: '%d വർഷം'\n    },\n    meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'രാത്രി' && hour >= 4 || meridiem === 'ഉച്ച കഴിഞ്ഞ്' || meridiem === 'വൈകുന്നേരം') {\n        return hour + 12;\n      } else {\n        return hour;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'രാത്രി';\n      } else if (hour < 12) {\n        return 'രാവിലെ';\n      } else if (hour < 17) {\n        return 'ഉച്ച കഴിഞ്ഞ്';\n      } else if (hour < 20) {\n        return 'വൈകുന്നേരം';\n      } else {\n        return 'രാത്രി';\n      }\n    }\n  });\n  return ml;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ml.js?");

/***/ }),

/***/ "./node_modules/moment/locale/mn.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/mn.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function translate(number, withoutSuffix, key, isFuture) {\n    switch (key) {\n      case 's':\n        return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n\n      case 'ss':\n        return number + (withoutSuffix ? ' секунд' : ' секундын');\n\n      case 'm':\n      case 'mm':\n        return number + (withoutSuffix ? ' минут' : ' минутын');\n\n      case 'h':\n      case 'hh':\n        return number + (withoutSuffix ? ' цаг' : ' цагийн');\n\n      case 'd':\n      case 'dd':\n        return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n\n      case 'M':\n      case 'MM':\n        return number + (withoutSuffix ? ' сар' : ' сарын');\n\n      case 'y':\n      case 'yy':\n        return number + (withoutSuffix ? ' жил' : ' жилийн');\n\n      default:\n        return number;\n    }\n  }\n\n  var mn = moment.defineLocale('mn', {\n    months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),\n    monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n    weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n    weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: 'YYYY оны MMMMын D',\n      LLL: 'YYYY оны MMMMын D HH:mm',\n      LLLL: 'dddd, YYYY оны MMMMын D HH:mm'\n    },\n    meridiemParse: /ҮӨ|ҮХ/i,\n    isPM: function (input) {\n      return input === 'ҮХ';\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ҮӨ';\n      } else {\n        return 'ҮХ';\n      }\n    },\n    calendar: {\n      sameDay: '[Өнөөдөр] LT',\n      nextDay: '[Маргааш] LT',\n      nextWeek: '[Ирэх] dddd LT',\n      lastDay: '[Өчигдөр] LT',\n      lastWeek: '[Өнгөрсөн] dddd LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s дараа',\n      past: '%s өмнө',\n      s: translate,\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: translate,\n      dd: translate,\n      M: translate,\n      MM: translate,\n      y: translate,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + ' өдөр';\n\n        default:\n          return number;\n      }\n    }\n  });\n  return mn;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/mn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/mr.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/mr.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '१',\n    2: '२',\n    3: '३',\n    4: '४',\n    5: '५',\n    6: '६',\n    7: '७',\n    8: '८',\n    9: '९',\n    0: '०'\n  },\n      numberMap = {\n    '१': '1',\n    '२': '2',\n    '३': '3',\n    '४': '4',\n    '५': '5',\n    '६': '6',\n    '७': '7',\n    '८': '8',\n    '९': '9',\n    '०': '0'\n  };\n\n  function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n    var output = '';\n\n    if (withoutSuffix) {\n      switch (string) {\n        case 's':\n          output = 'काही सेकंद';\n          break;\n\n        case 'ss':\n          output = '%d सेकंद';\n          break;\n\n        case 'm':\n          output = 'एक मिनिट';\n          break;\n\n        case 'mm':\n          output = '%d मिनिटे';\n          break;\n\n        case 'h':\n          output = 'एक तास';\n          break;\n\n        case 'hh':\n          output = '%d तास';\n          break;\n\n        case 'd':\n          output = 'एक दिवस';\n          break;\n\n        case 'dd':\n          output = '%d दिवस';\n          break;\n\n        case 'M':\n          output = 'एक महिना';\n          break;\n\n        case 'MM':\n          output = '%d महिने';\n          break;\n\n        case 'y':\n          output = 'एक वर्ष';\n          break;\n\n        case 'yy':\n          output = '%d वर्षे';\n          break;\n      }\n    } else {\n      switch (string) {\n        case 's':\n          output = 'काही सेकंदां';\n          break;\n\n        case 'ss':\n          output = '%d सेकंदां';\n          break;\n\n        case 'm':\n          output = 'एका मिनिटा';\n          break;\n\n        case 'mm':\n          output = '%d मिनिटां';\n          break;\n\n        case 'h':\n          output = 'एका तासा';\n          break;\n\n        case 'hh':\n          output = '%d तासां';\n          break;\n\n        case 'd':\n          output = 'एका दिवसा';\n          break;\n\n        case 'dd':\n          output = '%d दिवसां';\n          break;\n\n        case 'M':\n          output = 'एका महिन्या';\n          break;\n\n        case 'MM':\n          output = '%d महिन्यां';\n          break;\n\n        case 'y':\n          output = 'एका वर्षा';\n          break;\n\n        case 'yy':\n          output = '%d वर्षां';\n          break;\n      }\n    }\n\n    return output.replace(/%d/i, number);\n  }\n\n  var mr = moment.defineLocale('mr', {\n    months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n    monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n    weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n    weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm वाजता',\n      LTS: 'A h:mm:ss वाजता',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm वाजता',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता'\n    },\n    calendar: {\n      sameDay: '[आज] LT',\n      nextDay: '[उद्या] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[काल] LT',\n      lastWeek: '[मागील] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%sमध्ये',\n      past: '%sपूर्वी',\n      s: relativeTimeMr,\n      ss: relativeTimeMr,\n      m: relativeTimeMr,\n      mm: relativeTimeMr,\n      h: relativeTimeMr,\n      hh: relativeTimeMr,\n      d: relativeTimeMr,\n      dd: relativeTimeMr,\n      M: relativeTimeMr,\n      MM: relativeTimeMr,\n      y: relativeTimeMr,\n      yy: relativeTimeMr\n    },\n    preparse: function (string) {\n      return string.replace(/[१२३४५६७८९०]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n        return hour;\n      } else if (meridiem === 'दुपारी' || meridiem === 'सायंकाळी' || meridiem === 'रात्री') {\n        return hour >= 12 ? hour : hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour >= 0 && hour < 6) {\n        return 'पहाटे';\n      } else if (hour < 12) {\n        return 'सकाळी';\n      } else if (hour < 17) {\n        return 'दुपारी';\n      } else if (hour < 20) {\n        return 'सायंकाळी';\n      } else {\n        return 'रात्री';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return mr;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/mr.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ms-my.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ms-my.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var msMy = moment.defineLocale('ms-my', {\n    months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n    monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n    weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n    weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n    weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n    longDateFormat: {\n      LT: 'HH.mm',\n      LTS: 'HH.mm.ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY [pukul] HH.mm',\n      LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n    },\n    meridiemParse: /pagi|tengahari|petang|malam/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'pagi') {\n        return hour;\n      } else if (meridiem === 'tengahari') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === 'petang' || meridiem === 'malam') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 11) {\n        return 'pagi';\n      } else if (hours < 15) {\n        return 'tengahari';\n      } else if (hours < 19) {\n        return 'petang';\n      } else {\n        return 'malam';\n      }\n    },\n    calendar: {\n      sameDay: '[Hari ini pukul] LT',\n      nextDay: '[Esok pukul] LT',\n      nextWeek: 'dddd [pukul] LT',\n      lastDay: '[Kelmarin pukul] LT',\n      lastWeek: 'dddd [lepas pukul] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dalam %s',\n      past: '%s yang lepas',\n      s: 'beberapa saat',\n      ss: '%d saat',\n      m: 'seminit',\n      mm: '%d minit',\n      h: 'sejam',\n      hh: '%d jam',\n      d: 'sehari',\n      dd: '%d hari',\n      M: 'sebulan',\n      MM: '%d bulan',\n      y: 'setahun',\n      yy: '%d tahun'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return msMy;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ms-my.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ms.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ms.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var ms = moment.defineLocale('ms', {\n    months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n    monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n    weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n    weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n    weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n    longDateFormat: {\n      LT: 'HH.mm',\n      LTS: 'HH.mm.ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY [pukul] HH.mm',\n      LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n    },\n    meridiemParse: /pagi|tengahari|petang|malam/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'pagi') {\n        return hour;\n      } else if (meridiem === 'tengahari') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === 'petang' || meridiem === 'malam') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 11) {\n        return 'pagi';\n      } else if (hours < 15) {\n        return 'tengahari';\n      } else if (hours < 19) {\n        return 'petang';\n      } else {\n        return 'malam';\n      }\n    },\n    calendar: {\n      sameDay: '[Hari ini pukul] LT',\n      nextDay: '[Esok pukul] LT',\n      nextWeek: 'dddd [pukul] LT',\n      lastDay: '[Kelmarin pukul] LT',\n      lastWeek: 'dddd [lepas pukul] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dalam %s',\n      past: '%s yang lepas',\n      s: 'beberapa saat',\n      ss: '%d saat',\n      m: 'seminit',\n      mm: '%d minit',\n      h: 'sejam',\n      hh: '%d jam',\n      d: 'sehari',\n      dd: '%d hari',\n      M: 'sebulan',\n      MM: '%d bulan',\n      y: 'setahun',\n      yy: '%d tahun'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return ms;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ms.js?");

/***/ }),

/***/ "./node_modules/moment/locale/mt.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/mt.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var mt = moment.defineLocale('mt', {\n    months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),\n    monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n    weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),\n    weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n    weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Illum fil-]LT',\n      nextDay: '[Għada fil-]LT',\n      nextWeek: 'dddd [fil-]LT',\n      lastDay: '[Il-bieraħ fil-]LT',\n      lastWeek: 'dddd [li għadda] [fil-]LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'f’ %s',\n      past: '%s ilu',\n      s: 'ftit sekondi',\n      ss: '%d sekondi',\n      m: 'minuta',\n      mm: '%d minuti',\n      h: 'siegħa',\n      hh: '%d siegħat',\n      d: 'ġurnata',\n      dd: '%d ġranet',\n      M: 'xahar',\n      MM: '%d xhur',\n      y: 'sena',\n      yy: '%d sni'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return mt;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/mt.js?");

/***/ }),

/***/ "./node_modules/moment/locale/my.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/my.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '၁',\n    2: '၂',\n    3: '၃',\n    4: '၄',\n    5: '၅',\n    6: '၆',\n    7: '၇',\n    8: '၈',\n    9: '၉',\n    0: '၀'\n  },\n      numberMap = {\n    '၁': '1',\n    '၂': '2',\n    '၃': '3',\n    '၄': '4',\n    '၅': '5',\n    '၆': '6',\n    '၇': '7',\n    '၈': '8',\n    '၉': '9',\n    '၀': '0'\n  };\n  var my = moment.defineLocale('my', {\n    months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),\n    monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n    weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),\n    weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n    weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[ယနေ.] LT [မှာ]',\n      nextDay: '[မနက်ဖြန်] LT [မှာ]',\n      nextWeek: 'dddd LT [မှာ]',\n      lastDay: '[မနေ.က] LT [မှာ]',\n      lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'လာမည့် %s မှာ',\n      past: 'လွန်ခဲ့သော %s က',\n      s: 'စက္ကန်.အနည်းငယ်',\n      ss: '%d စက္ကန့်',\n      m: 'တစ်မိနစ်',\n      mm: '%d မိနစ်',\n      h: 'တစ်နာရီ',\n      hh: '%d နာရီ',\n      d: 'တစ်ရက်',\n      dd: '%d ရက်',\n      M: 'တစ်လ',\n      MM: '%d လ',\n      y: 'တစ်နှစ်',\n      yy: '%d နှစ်'\n    },\n    preparse: function (string) {\n      return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return my;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/my.js?");

/***/ }),

/***/ "./node_modules/moment/locale/nb.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/nb.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//!           Sigurd Gartmann : https://github.com/sigurdga\n//!           Stephen Ramthun : https://github.com/stephenramthun\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var nb = moment.defineLocale('nb', {\n    months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n    monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n    weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n    weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY [kl.] HH:mm',\n      LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n    },\n    calendar: {\n      sameDay: '[i dag kl.] LT',\n      nextDay: '[i morgen kl.] LT',\n      nextWeek: 'dddd [kl.] LT',\n      lastDay: '[i går kl.] LT',\n      lastWeek: '[forrige] dddd [kl.] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'om %s',\n      past: '%s siden',\n      s: 'noen sekunder',\n      ss: '%d sekunder',\n      m: 'ett minutt',\n      mm: '%d minutter',\n      h: 'en time',\n      hh: '%d timer',\n      d: 'en dag',\n      dd: '%d dager',\n      w: 'en uke',\n      ww: '%d uker',\n      M: 'en måned',\n      MM: '%d måneder',\n      y: 'ett år',\n      yy: '%d år'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return nb;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/nb.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ne.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ne.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '१',\n    2: '२',\n    3: '३',\n    4: '४',\n    5: '५',\n    6: '६',\n    7: '७',\n    8: '८',\n    9: '९',\n    0: '०'\n  },\n      numberMap = {\n    '१': '1',\n    '२': '2',\n    '३': '3',\n    '४': '4',\n    '५': '5',\n    '६': '6',\n    '७': '7',\n    '८': '8',\n    '९': '9',\n    '०': '0'\n  };\n  var ne = moment.defineLocale('ne', {\n    months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),\n    monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),\n    weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n    weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'Aको h:mm बजे',\n      LTS: 'Aको h:mm:ss बजे',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, Aको h:mm बजे',\n      LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे'\n    },\n    preparse: function (string) {\n      return string.replace(/[१२३४५६७८९०]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'राति') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'बिहान') {\n        return hour;\n      } else if (meridiem === 'दिउँसो') {\n        return hour >= 10 ? hour : hour + 12;\n      } else if (meridiem === 'साँझ') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 3) {\n        return 'राति';\n      } else if (hour < 12) {\n        return 'बिहान';\n      } else if (hour < 16) {\n        return 'दिउँसो';\n      } else if (hour < 20) {\n        return 'साँझ';\n      } else {\n        return 'राति';\n      }\n    },\n    calendar: {\n      sameDay: '[आज] LT',\n      nextDay: '[भोलि] LT',\n      nextWeek: '[आउँदो] dddd[,] LT',\n      lastDay: '[हिजो] LT',\n      lastWeek: '[गएको] dddd[,] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%sमा',\n      past: '%s अगाडि',\n      s: 'केही क्षण',\n      ss: '%d सेकेण्ड',\n      m: 'एक मिनेट',\n      mm: '%d मिनेट',\n      h: 'एक घण्टा',\n      hh: '%d घण्टा',\n      d: 'एक दिन',\n      dd: '%d दिन',\n      M: 'एक महिना',\n      MM: '%d महिना',\n      y: 'एक बर्ष',\n      yy: '%d बर्ष'\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return ne;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ne.js?");

/***/ }),

/***/ "./node_modules/moment/locale/nl-be.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/nl-be.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n      monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n      monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i],\n      monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n  var nlBe = moment.defineLocale('nl-be', {\n    months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortWithDots;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShortWithoutDots[m.month()];\n      } else {\n        return monthsShortWithDots[m.month()];\n      }\n    },\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n    monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n    weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n    weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[vandaag om] LT',\n      nextDay: '[morgen om] LT',\n      nextWeek: 'dddd [om] LT',\n      lastDay: '[gisteren om] LT',\n      lastWeek: '[afgelopen] dddd [om] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'over %s',\n      past: '%s geleden',\n      s: 'een paar seconden',\n      ss: '%d seconden',\n      m: 'één minuut',\n      mm: '%d minuten',\n      h: 'één uur',\n      hh: '%d uur',\n      d: 'één dag',\n      dd: '%d dagen',\n      M: 'één maand',\n      MM: '%d maanden',\n      y: 'één jaar',\n      yy: '%d jaar'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n    ordinal: function (number) {\n      return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return nlBe;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/nl-be.js?");

/***/ }),

/***/ "./node_modules/moment/locale/nl.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/nl.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n      monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n      monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i],\n      monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n  var nl = moment.defineLocale('nl', {\n    months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortWithDots;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShortWithoutDots[m.month()];\n      } else {\n        return monthsShortWithDots[m.month()];\n      }\n    },\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n    monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n    weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n    weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD-MM-YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[vandaag om] LT',\n      nextDay: '[morgen om] LT',\n      nextWeek: 'dddd [om] LT',\n      lastDay: '[gisteren om] LT',\n      lastWeek: '[afgelopen] dddd [om] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'over %s',\n      past: '%s geleden',\n      s: 'een paar seconden',\n      ss: '%d seconden',\n      m: 'één minuut',\n      mm: '%d minuten',\n      h: 'één uur',\n      hh: '%d uur',\n      d: 'één dag',\n      dd: '%d dagen',\n      w: 'één week',\n      ww: '%d weken',\n      M: 'één maand',\n      MM: '%d maanden',\n      y: 'één jaar',\n      yy: '%d jaar'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n    ordinal: function (number) {\n      return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return nl;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/nl.js?");

/***/ }),

/***/ "./node_modules/moment/locale/nn.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/nn.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//!           Stephen Ramthun : https://github.com/stephenramthun\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var nn = moment.defineLocale('nn', {\n    months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n    monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n    weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n    weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY [kl.] H:mm',\n      LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n    },\n    calendar: {\n      sameDay: '[I dag klokka] LT',\n      nextDay: '[I morgon klokka] LT',\n      nextWeek: 'dddd [klokka] LT',\n      lastDay: '[I går klokka] LT',\n      lastWeek: '[Føregåande] dddd [klokka] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'om %s',\n      past: '%s sidan',\n      s: 'nokre sekund',\n      ss: '%d sekund',\n      m: 'eit minutt',\n      mm: '%d minutt',\n      h: 'ein time',\n      hh: '%d timar',\n      d: 'ein dag',\n      dd: '%d dagar',\n      w: 'ei veke',\n      ww: '%d veker',\n      M: 'ein månad',\n      MM: '%d månader',\n      y: 'eit år',\n      yy: '%d år'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return nn;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/nn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/oc-lnc.js":
/*!**********************************************!*\
  !*** ./node_modules/moment/locale/oc-lnc.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var ocLnc = moment.defineLocale('oc-lnc', {\n    months: {\n      standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split('_'),\n      format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split('_'),\n      isFormat: /D[oD]?(\\s)+MMMM/\n    },\n    monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split('_'),\n    weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n    weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM [de] YYYY',\n      ll: 'D MMM YYYY',\n      LLL: 'D MMMM [de] YYYY [a] H:mm',\n      lll: 'D MMM YYYY, H:mm',\n      LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n      llll: 'ddd D MMM YYYY, H:mm'\n    },\n    calendar: {\n      sameDay: '[uèi a] LT',\n      nextDay: '[deman a] LT',\n      nextWeek: 'dddd [a] LT',\n      lastDay: '[ièr a] LT',\n      lastWeek: 'dddd [passat a] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: \"d'aquí %s\",\n      past: 'fa %s',\n      s: 'unas segondas',\n      ss: '%d segondas',\n      m: 'una minuta',\n      mm: '%d minutas',\n      h: 'una ora',\n      hh: '%d oras',\n      d: 'un jorn',\n      dd: '%d jorns',\n      M: 'un mes',\n      MM: '%d meses',\n      y: 'un an',\n      yy: '%d ans'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n    ordinal: function (number, period) {\n      var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n\n      if (period === 'w' || period === 'W') {\n        output = 'a';\n      }\n\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4\n    }\n  });\n  return ocLnc;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/oc-lnc.js?");

/***/ }),

/***/ "./node_modules/moment/locale/pa-in.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/pa-in.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '੧',\n    2: '੨',\n    3: '੩',\n    4: '੪',\n    5: '੫',\n    6: '੬',\n    7: '੭',\n    8: '੮',\n    9: '੯',\n    0: '੦'\n  },\n      numberMap = {\n    '੧': '1',\n    '੨': '2',\n    '੩': '3',\n    '੪': '4',\n    '੫': '5',\n    '੬': '6',\n    '੭': '7',\n    '੮': '8',\n    '੯': '9',\n    '੦': '0'\n  };\n  var paIn = moment.defineLocale('pa-in', {\n    // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n    months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n    monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n    weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),\n    weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n    weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm ਵਜੇ',\n      LTS: 'A h:mm:ss ਵਜੇ',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'\n    },\n    calendar: {\n      sameDay: '[ਅਜ] LT',\n      nextDay: '[ਕਲ] LT',\n      nextWeek: '[ਅਗਲਾ] dddd, LT',\n      lastDay: '[ਕਲ] LT',\n      lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s ਵਿੱਚ',\n      past: '%s ਪਿਛਲੇ',\n      s: 'ਕੁਝ ਸਕਿੰਟ',\n      ss: '%d ਸਕਿੰਟ',\n      m: 'ਇਕ ਮਿੰਟ',\n      mm: '%d ਮਿੰਟ',\n      h: 'ਇੱਕ ਘੰਟਾ',\n      hh: '%d ਘੰਟੇ',\n      d: 'ਇੱਕ ਦਿਨ',\n      dd: '%d ਦਿਨ',\n      M: 'ਇੱਕ ਮਹੀਨਾ',\n      MM: '%d ਮਹੀਨੇ',\n      y: 'ਇੱਕ ਸਾਲ',\n      yy: '%d ਸਾਲ'\n    },\n    preparse: function (string) {\n      return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n    // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n    meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'ਰਾਤ') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'ਸਵੇਰ') {\n        return hour;\n      } else if (meridiem === 'ਦੁਪਹਿਰ') {\n        return hour >= 10 ? hour : hour + 12;\n      } else if (meridiem === 'ਸ਼ਾਮ') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'ਰਾਤ';\n      } else if (hour < 10) {\n        return 'ਸਵੇਰ';\n      } else if (hour < 17) {\n        return 'ਦੁਪਹਿਰ';\n      } else if (hour < 20) {\n        return 'ਸ਼ਾਮ';\n      } else {\n        return 'ਰਾਤ';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return paIn;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/pa-in.js?");

/***/ }),

/***/ "./node_modules/moment/locale/pl.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/pl.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),\n      monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_'),\n      monthsParse = [/^sty/i, /^lut/i, /^mar/i, /^kwi/i, /^maj/i, /^cze/i, /^lip/i, /^sie/i, /^wrz/i, /^paź/i, /^lis/i, /^gru/i];\n\n  function plural(n) {\n    return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n  }\n\n  function translate(number, withoutSuffix, key) {\n    var result = number + ' ';\n\n    switch (key) {\n      case 'ss':\n        return result + (plural(number) ? 'sekundy' : 'sekund');\n\n      case 'm':\n        return withoutSuffix ? 'minuta' : 'minutę';\n\n      case 'mm':\n        return result + (plural(number) ? 'minuty' : 'minut');\n\n      case 'h':\n        return withoutSuffix ? 'godzina' : 'godzinę';\n\n      case 'hh':\n        return result + (plural(number) ? 'godziny' : 'godzin');\n\n      case 'ww':\n        return result + (plural(number) ? 'tygodnie' : 'tygodni');\n\n      case 'MM':\n        return result + (plural(number) ? 'miesiące' : 'miesięcy');\n\n      case 'yy':\n        return result + (plural(number) ? 'lata' : 'lat');\n    }\n  }\n\n  var pl = moment.defineLocale('pl', {\n    months: function (momentToFormat, format) {\n      if (!momentToFormat) {\n        return monthsNominative;\n      } else if (/D MMMM/.test(format)) {\n        return monthsSubjective[momentToFormat.month()];\n      } else {\n        return monthsNominative[momentToFormat.month()];\n      }\n    },\n    monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n    weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n    weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Dziś o] LT',\n      nextDay: '[Jutro o] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[W niedzielę o] LT';\n\n          case 2:\n            return '[We wtorek o] LT';\n\n          case 3:\n            return '[W środę o] LT';\n\n          case 6:\n            return '[W sobotę o] LT';\n\n          default:\n            return '[W] dddd [o] LT';\n        }\n      },\n      lastDay: '[Wczoraj o] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[W zeszłą niedzielę o] LT';\n\n          case 3:\n            return '[W zeszłą środę o] LT';\n\n          case 6:\n            return '[W zeszłą sobotę o] LT';\n\n          default:\n            return '[W zeszły] dddd [o] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: '%s temu',\n      s: 'kilka sekund',\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: '1 dzień',\n      dd: '%d dni',\n      w: 'tydzień',\n      ww: translate,\n      M: 'miesiąc',\n      MM: translate,\n      y: 'rok',\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return pl;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/pl.js?");

/***/ }),

/***/ "./node_modules/moment/locale/pt-br.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/pt-br.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var ptBr = moment.defineLocale('pt-br', {\n    months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n    monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n    weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'),\n    weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n    weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'\n    },\n    calendar: {\n      sameDay: '[Hoje às] LT',\n      nextDay: '[Amanhã às] LT',\n      nextWeek: 'dddd [às] LT',\n      lastDay: '[Ontem às] LT',\n      lastWeek: function () {\n        return this.day() === 0 || this.day() === 6 ? '[Último] dddd [às] LT' // Saturday + Sunday\n        : '[Última] dddd [às] LT'; // Monday - Friday\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'em %s',\n      past: 'há %s',\n      s: 'poucos segundos',\n      ss: '%d segundos',\n      m: 'um minuto',\n      mm: '%d minutos',\n      h: 'uma hora',\n      hh: '%d horas',\n      d: 'um dia',\n      dd: '%d dias',\n      M: 'um mês',\n      MM: '%d meses',\n      y: 'um ano',\n      yy: '%d anos'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    invalidDate: 'Data inválida'\n  });\n  return ptBr;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/pt-br.js?");

/***/ }),

/***/ "./node_modules/moment/locale/pt.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/pt.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var pt = moment.defineLocale('pt', {\n    months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n    monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n    weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n    weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n    weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY HH:mm',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Hoje às] LT',\n      nextDay: '[Amanhã às] LT',\n      nextWeek: 'dddd [às] LT',\n      lastDay: '[Ontem às] LT',\n      lastWeek: function () {\n        return this.day() === 0 || this.day() === 6 ? '[Último] dddd [às] LT' // Saturday + Sunday\n        : '[Última] dddd [às] LT'; // Monday - Friday\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'em %s',\n      past: 'há %s',\n      s: 'segundos',\n      ss: '%d segundos',\n      m: 'um minuto',\n      mm: '%d minutos',\n      h: 'uma hora',\n      hh: '%d horas',\n      d: 'um dia',\n      dd: '%d dias',\n      w: 'uma semana',\n      ww: '%d semanas',\n      M: 'um mês',\n      MM: '%d meses',\n      y: 'um ano',\n      yy: '%d anos'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return pt;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/pt.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ro.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ro.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function relativeTimeWithPlural(number, withoutSuffix, key) {\n    var format = {\n      ss: 'secunde',\n      mm: 'minute',\n      hh: 'ore',\n      dd: 'zile',\n      ww: 'săptămâni',\n      MM: 'luni',\n      yy: 'ani'\n    },\n        separator = ' ';\n\n    if (number % 100 >= 20 || number >= 100 && number % 100 === 0) {\n      separator = ' de ';\n    }\n\n    return number + separator + format[key];\n  }\n\n  var ro = moment.defineLocale('ro', {\n    months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n    monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n    weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n    weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY H:mm',\n      LLLL: 'dddd, D MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[azi la] LT',\n      nextDay: '[mâine la] LT',\n      nextWeek: 'dddd [la] LT',\n      lastDay: '[ieri la] LT',\n      lastWeek: '[fosta] dddd [la] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'peste %s',\n      past: '%s în urmă',\n      s: 'câteva secunde',\n      ss: relativeTimeWithPlural,\n      m: 'un minut',\n      mm: relativeTimeWithPlural,\n      h: 'o oră',\n      hh: relativeTimeWithPlural,\n      d: 'o zi',\n      dd: relativeTimeWithPlural,\n      w: 'o săptămână',\n      ww: relativeTimeWithPlural,\n      M: 'o lună',\n      MM: relativeTimeWithPlural,\n      y: 'un an',\n      yy: relativeTimeWithPlural\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return ro;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ro.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ru.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ru.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function plural(word, num) {\n    var forms = word.split('_');\n    return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n  }\n\n  function relativeTimeWithPlural(number, withoutSuffix, key) {\n    var format = {\n      ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n      mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n      hh: 'час_часа_часов',\n      dd: 'день_дня_дней',\n      ww: 'неделя_недели_недель',\n      MM: 'месяц_месяца_месяцев',\n      yy: 'год_года_лет'\n    };\n\n    if (key === 'm') {\n      return withoutSuffix ? 'минута' : 'минуту';\n    } else {\n      return number + ' ' + plural(format[key], +number);\n    }\n  }\n\n  var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i]; // http://new.gramota.ru/spravka/rules/139-prop : § 103\n  // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n  // CLDR data:          http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n\n  var ru = moment.defineLocale('ru', {\n    months: {\n      format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n      standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n    },\n    monthsShort: {\n      // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n      format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n      standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n    },\n    weekdays: {\n      standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n      format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n      isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/\n    },\n    weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n    weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n    monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n    // копия предыдущего\n    monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n    // полные названия с падежами\n    monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n    // Выражение, которое соответствует только сокращённым формам\n    monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY г.',\n      LLL: 'D MMMM YYYY г., H:mm',\n      LLLL: 'dddd, D MMMM YYYY г., H:mm'\n    },\n    calendar: {\n      sameDay: '[Сегодня, в] LT',\n      nextDay: '[Завтра, в] LT',\n      lastDay: '[Вчера, в] LT',\n      nextWeek: function (now) {\n        if (now.week() !== this.week()) {\n          switch (this.day()) {\n            case 0:\n              return '[В следующее] dddd, [в] LT';\n\n            case 1:\n            case 2:\n            case 4:\n              return '[В следующий] dddd, [в] LT';\n\n            case 3:\n            case 5:\n            case 6:\n              return '[В следующую] dddd, [в] LT';\n          }\n        } else {\n          if (this.day() === 2) {\n            return '[Во] dddd, [в] LT';\n          } else {\n            return '[В] dddd, [в] LT';\n          }\n        }\n      },\n      lastWeek: function (now) {\n        if (now.week() !== this.week()) {\n          switch (this.day()) {\n            case 0:\n              return '[В прошлое] dddd, [в] LT';\n\n            case 1:\n            case 2:\n            case 4:\n              return '[В прошлый] dddd, [в] LT';\n\n            case 3:\n            case 5:\n            case 6:\n              return '[В прошлую] dddd, [в] LT';\n          }\n        } else {\n          if (this.day() === 2) {\n            return '[Во] dddd, [в] LT';\n          } else {\n            return '[В] dddd, [в] LT';\n          }\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'через %s',\n      past: '%s назад',\n      s: 'несколько секунд',\n      ss: relativeTimeWithPlural,\n      m: relativeTimeWithPlural,\n      mm: relativeTimeWithPlural,\n      h: 'час',\n      hh: relativeTimeWithPlural,\n      d: 'день',\n      dd: relativeTimeWithPlural,\n      w: 'неделя',\n      ww: relativeTimeWithPlural,\n      M: 'месяц',\n      MM: relativeTimeWithPlural,\n      y: 'год',\n      yy: relativeTimeWithPlural\n    },\n    meridiemParse: /ночи|утра|дня|вечера/i,\n    isPM: function (input) {\n      return /^(дня|вечера)$/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'ночи';\n      } else if (hour < 12) {\n        return 'утра';\n      } else if (hour < 17) {\n        return 'дня';\n      } else {\n        return 'вечера';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'M':\n        case 'd':\n        case 'DDD':\n          return number + '-й';\n\n        case 'D':\n          return number + '-го';\n\n        case 'w':\n        case 'W':\n          return number + '-я';\n\n        default:\n          return number;\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return ru;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ru.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sd.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sd.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var months = ['جنوري', 'فيبروري', 'مارچ', 'اپريل', 'مئي', 'جون', 'جولاءِ', 'آگسٽ', 'سيپٽمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'],\n      days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n  var sd = moment.defineLocale('sd', {\n    months: months,\n    monthsShort: months,\n    weekdays: days,\n    weekdaysShort: days,\n    weekdaysMin: days,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd، D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /صبح|شام/,\n    isPM: function (input) {\n      return 'شام' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'صبح';\n      }\n\n      return 'شام';\n    },\n    calendar: {\n      sameDay: '[اڄ] LT',\n      nextDay: '[سڀاڻي] LT',\n      nextWeek: 'dddd [اڳين هفتي تي] LT',\n      lastDay: '[ڪالهه] LT',\n      lastWeek: '[گزريل هفتي] dddd [تي] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s پوء',\n      past: '%s اڳ',\n      s: 'چند سيڪنڊ',\n      ss: '%d سيڪنڊ',\n      m: 'هڪ منٽ',\n      mm: '%d منٽ',\n      h: 'هڪ ڪلاڪ',\n      hh: '%d ڪلاڪ',\n      d: 'هڪ ڏينهن',\n      dd: '%d ڏينهن',\n      M: 'هڪ مهينو',\n      MM: '%d مهينا',\n      y: 'هڪ سال',\n      yy: '%d سال'\n    },\n    preparse: function (string) {\n      return string.replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/,/g, '،');\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return sd;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sd.js?");

/***/ }),

/***/ "./node_modules/moment/locale/se.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/se.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var se = moment.defineLocale('se', {\n    months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),\n    monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n    weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\n    weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n    weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'MMMM D. [b.] YYYY',\n      LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n      LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'\n    },\n    calendar: {\n      sameDay: '[otne ti] LT',\n      nextDay: '[ihttin ti] LT',\n      nextWeek: 'dddd [ti] LT',\n      lastDay: '[ikte ti] LT',\n      lastWeek: '[ovddit] dddd [ti] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s geažes',\n      past: 'maŋit %s',\n      s: 'moadde sekunddat',\n      ss: '%d sekunddat',\n      m: 'okta minuhta',\n      mm: '%d minuhtat',\n      h: 'okta diimmu',\n      hh: '%d diimmut',\n      d: 'okta beaivi',\n      dd: '%d beaivvit',\n      M: 'okta mánnu',\n      MM: '%d mánut',\n      y: 'okta jahki',\n      yy: '%d jagit'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return se;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/se.js?");

/***/ }),

/***/ "./node_modules/moment/locale/si.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/si.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  /*jshint -W100*/\n\n  var si = moment.defineLocale('si', {\n    months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),\n    monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),\n    weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),\n    weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n    weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'a h:mm',\n      LTS: 'a h:mm:ss',\n      L: 'YYYY/MM/DD',\n      LL: 'YYYY MMMM D',\n      LLL: 'YYYY MMMM D, a h:mm',\n      LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'\n    },\n    calendar: {\n      sameDay: '[අද] LT[ට]',\n      nextDay: '[හෙට] LT[ට]',\n      nextWeek: 'dddd LT[ට]',\n      lastDay: '[ඊයේ] LT[ට]',\n      lastWeek: '[පසුගිය] dddd LT[ට]',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%sකින්',\n      past: '%sකට පෙර',\n      s: 'තත්පර කිහිපය',\n      ss: 'තත්පර %d',\n      m: 'මිනිත්තුව',\n      mm: 'මිනිත්තු %d',\n      h: 'පැය',\n      hh: 'පැය %d',\n      d: 'දිනය',\n      dd: 'දින %d',\n      M: 'මාසය',\n      MM: 'මාස %d',\n      y: 'වසර',\n      yy: 'වසර %d'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n    ordinal: function (number) {\n      return number + ' වැනි';\n    },\n    meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n    isPM: function (input) {\n      return input === 'ප.ව.' || input === 'පස් වරු';\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours > 11) {\n        return isLower ? 'ප.ව.' : 'පස් වරු';\n      } else {\n        return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n      }\n    }\n  });\n  return si;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/si.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sk.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sk.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),\n      monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n\n  function plural(n) {\n    return n > 1 && n < 5;\n  }\n\n  function translate(number, withoutSuffix, key, isFuture) {\n    var result = number + ' ';\n\n    switch (key) {\n      case 's':\n        // a few seconds / in a few seconds / a few seconds ago\n        return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n\n      case 'ss':\n        // 9 seconds / in 9 seconds / 9 seconds ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'sekundy' : 'sekúnd');\n        } else {\n          return result + 'sekundami';\n        }\n\n      case 'm':\n        // a minute / in a minute / a minute ago\n        return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n\n      case 'mm':\n        // 9 minutes / in 9 minutes / 9 minutes ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'minúty' : 'minút');\n        } else {\n          return result + 'minútami';\n        }\n\n      case 'h':\n        // an hour / in an hour / an hour ago\n        return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n\n      case 'hh':\n        // 9 hours / in 9 hours / 9 hours ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'hodiny' : 'hodín');\n        } else {\n          return result + 'hodinami';\n        }\n\n      case 'd':\n        // a day / in a day / a day ago\n        return withoutSuffix || isFuture ? 'deň' : 'dňom';\n\n      case 'dd':\n        // 9 days / in 9 days / 9 days ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'dni' : 'dní');\n        } else {\n          return result + 'dňami';\n        }\n\n      case 'M':\n        // a month / in a month / a month ago\n        return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n\n      case 'MM':\n        // 9 months / in 9 months / 9 months ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'mesiace' : 'mesiacov');\n        } else {\n          return result + 'mesiacmi';\n        }\n\n      case 'y':\n        // a year / in a year / a year ago\n        return withoutSuffix || isFuture ? 'rok' : 'rokom';\n\n      case 'yy':\n        // 9 years / in 9 years / 9 years ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'roky' : 'rokov');\n        } else {\n          return result + 'rokmi';\n        }\n\n    }\n  }\n\n  var sk = moment.defineLocale('sk', {\n    months: months,\n    monthsShort: monthsShort,\n    weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n    weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n    weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm',\n      LLLL: 'dddd D. MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[dnes o] LT',\n      nextDay: '[zajtra o] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[v nedeľu o] LT';\n\n          case 1:\n          case 2:\n            return '[v] dddd [o] LT';\n\n          case 3:\n            return '[v stredu o] LT';\n\n          case 4:\n            return '[vo štvrtok o] LT';\n\n          case 5:\n            return '[v piatok o] LT';\n\n          case 6:\n            return '[v sobotu o] LT';\n        }\n      },\n      lastDay: '[včera o] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[minulú nedeľu o] LT';\n\n          case 1:\n          case 2:\n            return '[minulý] dddd [o] LT';\n\n          case 3:\n            return '[minulú stredu o] LT';\n\n          case 4:\n          case 5:\n            return '[minulý] dddd [o] LT';\n\n          case 6:\n            return '[minulú sobotu o] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: 'pred %s',\n      s: translate,\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: translate,\n      dd: translate,\n      M: translate,\n      MM: translate,\n      y: translate,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return sk;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sk.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sl.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sl.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var result = number + ' ';\n\n    switch (key) {\n      case 's':\n        return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n\n      case 'ss':\n        if (number === 1) {\n          result += withoutSuffix ? 'sekundo' : 'sekundi';\n        } else if (number === 2) {\n          result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n        } else if (number < 5) {\n          result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n        } else {\n          result += 'sekund';\n        }\n\n        return result;\n\n      case 'm':\n        return withoutSuffix ? 'ena minuta' : 'eno minuto';\n\n      case 'mm':\n        if (number === 1) {\n          result += withoutSuffix ? 'minuta' : 'minuto';\n        } else if (number === 2) {\n          result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n        } else if (number < 5) {\n          result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n        } else {\n          result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n        }\n\n        return result;\n\n      case 'h':\n        return withoutSuffix ? 'ena ura' : 'eno uro';\n\n      case 'hh':\n        if (number === 1) {\n          result += withoutSuffix ? 'ura' : 'uro';\n        } else if (number === 2) {\n          result += withoutSuffix || isFuture ? 'uri' : 'urama';\n        } else if (number < 5) {\n          result += withoutSuffix || isFuture ? 'ure' : 'urami';\n        } else {\n          result += withoutSuffix || isFuture ? 'ur' : 'urami';\n        }\n\n        return result;\n\n      case 'd':\n        return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n\n      case 'dd':\n        if (number === 1) {\n          result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n        } else if (number === 2) {\n          result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n        } else {\n          result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n        }\n\n        return result;\n\n      case 'M':\n        return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n\n      case 'MM':\n        if (number === 1) {\n          result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n        } else if (number === 2) {\n          result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n        } else if (number < 5) {\n          result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n        } else {\n          result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n        }\n\n        return result;\n\n      case 'y':\n        return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n\n      case 'yy':\n        if (number === 1) {\n          result += withoutSuffix || isFuture ? 'leto' : 'letom';\n        } else if (number === 2) {\n          result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n        } else if (number < 5) {\n          result += withoutSuffix || isFuture ? 'leta' : 'leti';\n        } else {\n          result += withoutSuffix || isFuture ? 'let' : 'leti';\n        }\n\n        return result;\n    }\n  }\n\n  var sl = moment.defineLocale('sl', {\n    months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n    monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n    weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n    weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD. MM. YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm',\n      LLLL: 'dddd, D. MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[danes ob] LT',\n      nextDay: '[jutri ob] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[v] [nedeljo] [ob] LT';\n\n          case 3:\n            return '[v] [sredo] [ob] LT';\n\n          case 6:\n            return '[v] [soboto] [ob] LT';\n\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[v] dddd [ob] LT';\n        }\n      },\n      lastDay: '[včeraj ob] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[prejšnjo] [nedeljo] [ob] LT';\n\n          case 3:\n            return '[prejšnjo] [sredo] [ob] LT';\n\n          case 6:\n            return '[prejšnjo] [soboto] [ob] LT';\n\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[prejšnji] dddd [ob] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'čez %s',\n      past: 'pred %s',\n      s: processRelativeTime,\n      ss: processRelativeTime,\n      m: processRelativeTime,\n      mm: processRelativeTime,\n      h: processRelativeTime,\n      hh: processRelativeTime,\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return sl;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sl.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sq.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sq.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var sq = moment.defineLocale('sq', {\n    months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n    monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n    weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n    weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n    weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n    weekdaysParseExact: true,\n    meridiemParse: /PD|MD/,\n    isPM: function (input) {\n      return input.charAt(0) === 'M';\n    },\n    meridiem: function (hours, minutes, isLower) {\n      return hours < 12 ? 'PD' : 'MD';\n    },\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Sot në] LT',\n      nextDay: '[Nesër në] LT',\n      nextWeek: 'dddd [në] LT',\n      lastDay: '[Dje në] LT',\n      lastWeek: 'dddd [e kaluar në] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'në %s',\n      past: '%s më parë',\n      s: 'disa sekonda',\n      ss: '%d sekonda',\n      m: 'një minutë',\n      mm: '%d minuta',\n      h: 'një orë',\n      hh: '%d orë',\n      d: 'një ditë',\n      dd: '%d ditë',\n      M: 'një muaj',\n      MM: '%d muaj',\n      y: 'një vit',\n      yy: '%d vite'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return sq;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sq.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sr-cyrl.js":
/*!***********************************************!*\
  !*** ./node_modules/moment/locale/sr-cyrl.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var translator = {\n    words: {\n      //Different grammatical cases\n      ss: ['секунда', 'секунде', 'секунди'],\n      m: ['један минут', 'једног минута'],\n      mm: ['минут', 'минута', 'минута'],\n      h: ['један сат', 'једног сата'],\n      hh: ['сат', 'сата', 'сати'],\n      d: ['један дан', 'једног дана'],\n      dd: ['дан', 'дана', 'дана'],\n      M: ['један месец', 'једног месеца'],\n      MM: ['месец', 'месеца', 'месеци'],\n      y: ['једну годину', 'једне године'],\n      yy: ['годину', 'године', 'година']\n    },\n    correctGrammaticalCase: function (number, wordKey) {\n      if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n        return number % 10 === 1 ? wordKey[0] : wordKey[1];\n      }\n\n      return wordKey[2];\n    },\n    translate: function (number, withoutSuffix, key, isFuture) {\n      var wordKey = translator.words[key],\n          word;\n\n      if (key.length === 1) {\n        // Nominativ\n        if (key === 'y' && withoutSuffix) return 'једна година';\n        return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n      }\n\n      word = translator.correctGrammaticalCase(number, wordKey); // Nominativ\n\n      if (key === 'yy' && withoutSuffix && word === 'годину') {\n        return number + ' година';\n      }\n\n      return number + ' ' + word;\n    }\n  };\n  var srCyrl = moment.defineLocale('sr-cyrl', {\n    months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),\n    monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n    weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n    weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'D. M. YYYY.',\n      LL: 'D. MMMM YYYY.',\n      LLL: 'D. MMMM YYYY. H:mm',\n      LLLL: 'dddd, D. MMMM YYYY. H:mm'\n    },\n    calendar: {\n      sameDay: '[данас у] LT',\n      nextDay: '[сутра у] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[у] [недељу] [у] LT';\n\n          case 3:\n            return '[у] [среду] [у] LT';\n\n          case 6:\n            return '[у] [суботу] [у] LT';\n\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[у] dddd [у] LT';\n        }\n      },\n      lastDay: '[јуче у] LT',\n      lastWeek: function () {\n        var lastWeekDays = ['[прошле] [недеље] [у] LT', '[прошлог] [понедељка] [у] LT', '[прошлог] [уторка] [у] LT', '[прошле] [среде] [у] LT', '[прошлог] [четвртка] [у] LT', '[прошлог] [петка] [у] LT', '[прошле] [суботе] [у] LT'];\n        return lastWeekDays[this.day()];\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'за %s',\n      past: 'пре %s',\n      s: 'неколико секунди',\n      ss: translator.translate,\n      m: translator.translate,\n      mm: translator.translate,\n      h: translator.translate,\n      hh: translator.translate,\n      d: translator.translate,\n      dd: translator.translate,\n      M: translator.translate,\n      MM: translator.translate,\n      y: translator.translate,\n      yy: translator.translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 1st is the first week of the year.\n\n    }\n  });\n  return srCyrl;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sr-cyrl.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sr.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sr.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var translator = {\n    words: {\n      //Different grammatical cases\n      ss: ['sekunda', 'sekunde', 'sekundi'],\n      m: ['jedan minut', 'jednog minuta'],\n      mm: ['minut', 'minuta', 'minuta'],\n      h: ['jedan sat', 'jednog sata'],\n      hh: ['sat', 'sata', 'sati'],\n      d: ['jedan dan', 'jednog dana'],\n      dd: ['dan', 'dana', 'dana'],\n      M: ['jedan mesec', 'jednog meseca'],\n      MM: ['mesec', 'meseca', 'meseci'],\n      y: ['jednu godinu', 'jedne godine'],\n      yy: ['godinu', 'godine', 'godina']\n    },\n    correctGrammaticalCase: function (number, wordKey) {\n      if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n        return number % 10 === 1 ? wordKey[0] : wordKey[1];\n      }\n\n      return wordKey[2];\n    },\n    translate: function (number, withoutSuffix, key, isFuture) {\n      var wordKey = translator.words[key],\n          word;\n\n      if (key.length === 1) {\n        // Nominativ\n        if (key === 'y' && withoutSuffix) return 'jedna godina';\n        return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n      }\n\n      word = translator.correctGrammaticalCase(number, wordKey); // Nominativ\n\n      if (key === 'yy' && withoutSuffix && word === 'godinu') {\n        return number + ' godina';\n      }\n\n      return number + ' ' + word;\n    }\n  };\n  var sr = moment.defineLocale('sr', {\n    months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n    monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),\n    weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n    weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'D. M. YYYY.',\n      LL: 'D. MMMM YYYY.',\n      LLL: 'D. MMMM YYYY. H:mm',\n      LLLL: 'dddd, D. MMMM YYYY. H:mm'\n    },\n    calendar: {\n      sameDay: '[danas u] LT',\n      nextDay: '[sutra u] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[u] [nedelju] [u] LT';\n\n          case 3:\n            return '[u] [sredu] [u] LT';\n\n          case 6:\n            return '[u] [subotu] [u] LT';\n\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[u] dddd [u] LT';\n        }\n      },\n      lastDay: '[juče u] LT',\n      lastWeek: function () {\n        var lastWeekDays = ['[prošle] [nedelje] [u] LT', '[prošlog] [ponedeljka] [u] LT', '[prošlog] [utorka] [u] LT', '[prošle] [srede] [u] LT', '[prošlog] [četvrtka] [u] LT', '[prošlog] [petka] [u] LT', '[prošle] [subote] [u] LT'];\n        return lastWeekDays[this.day()];\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: 'pre %s',\n      s: 'nekoliko sekundi',\n      ss: translator.translate,\n      m: translator.translate,\n      mm: translator.translate,\n      h: translator.translate,\n      hh: translator.translate,\n      d: translator.translate,\n      dd: translator.translate,\n      M: translator.translate,\n      MM: translator.translate,\n      y: translator.translate,\n      yy: translator.translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return sr;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sr.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ss.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ss.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var ss = moment.defineLocale('ss', {\n    months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n    monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n    weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\n    weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n    weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY h:mm A',\n      LLLL: 'dddd, D MMMM YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: '[Namuhla nga] LT',\n      nextDay: '[Kusasa nga] LT',\n      nextWeek: 'dddd [nga] LT',\n      lastDay: '[Itolo nga] LT',\n      lastWeek: 'dddd [leliphelile] [nga] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'nga %s',\n      past: 'wenteka nga %s',\n      s: 'emizuzwana lomcane',\n      ss: '%d mzuzwana',\n      m: 'umzuzu',\n      mm: '%d emizuzu',\n      h: 'lihora',\n      hh: '%d emahora',\n      d: 'lilanga',\n      dd: '%d emalanga',\n      M: 'inyanga',\n      MM: '%d tinyanga',\n      y: 'umnyaka',\n      yy: '%d iminyaka'\n    },\n    meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 11) {\n        return 'ekuseni';\n      } else if (hours < 15) {\n        return 'emini';\n      } else if (hours < 19) {\n        return 'entsambama';\n      } else {\n        return 'ebusuku';\n      }\n    },\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'ekuseni') {\n        return hour;\n      } else if (meridiem === 'emini') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n        if (hour === 0) {\n          return 0;\n        }\n\n        return hour + 12;\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}/,\n    ordinal: '%d',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return ss;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ss.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sv.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sv.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var sv = moment.defineLocale('sv', {\n    months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n    monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n    weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n    weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n    weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY [kl.] HH:mm',\n      LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n      lll: 'D MMM YYYY HH:mm',\n      llll: 'ddd D MMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Idag] LT',\n      nextDay: '[Imorgon] LT',\n      lastDay: '[Igår] LT',\n      nextWeek: '[På] dddd LT',\n      lastWeek: '[I] dddd[s] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'om %s',\n      past: 'för %s sedan',\n      s: 'några sekunder',\n      ss: '%d sekunder',\n      m: 'en minut',\n      mm: '%d minuter',\n      h: 'en timme',\n      hh: '%d timmar',\n      d: 'en dag',\n      dd: '%d dagar',\n      M: 'en månad',\n      MM: '%d månader',\n      y: 'ett år',\n      yy: '%d år'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n    ordinal: function (number) {\n      var b = number % 10,\n          output = ~~(number % 100 / 10) === 1 ? ':e' : b === 1 ? ':a' : b === 2 ? ':a' : b === 3 ? ':e' : ':e';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return sv;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sv.js?");

/***/ }),

/***/ "./node_modules/moment/locale/sw.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/sw.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var sw = moment.defineLocale('sw', {\n    months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n    monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n    weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\n    weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n    weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'hh:mm A',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[leo saa] LT',\n      nextDay: '[kesho saa] LT',\n      nextWeek: '[wiki ijayo] dddd [saat] LT',\n      lastDay: '[jana] LT',\n      lastWeek: '[wiki iliyopita] dddd [saat] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s baadaye',\n      past: 'tokea %s',\n      s: 'hivi punde',\n      ss: 'sekunde %d',\n      m: 'dakika moja',\n      mm: 'dakika %d',\n      h: 'saa limoja',\n      hh: 'masaa %d',\n      d: 'siku moja',\n      dd: 'siku %d',\n      M: 'mwezi mmoja',\n      MM: 'miezi %d',\n      y: 'mwaka mmoja',\n      yy: 'miaka %d'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return sw;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/sw.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ta.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ta.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var symbolMap = {\n    1: '௧',\n    2: '௨',\n    3: '௩',\n    4: '௪',\n    5: '௫',\n    6: '௬',\n    7: '௭',\n    8: '௮',\n    9: '௯',\n    0: '௦'\n  },\n      numberMap = {\n    '௧': '1',\n    '௨': '2',\n    '௩': '3',\n    '௪': '4',\n    '௫': '5',\n    '௬': '6',\n    '௭': '7',\n    '௮': '8',\n    '௯': '9',\n    '௦': '0'\n  };\n  var ta = moment.defineLocale('ta', {\n    months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n    monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n    weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),\n    weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),\n    weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, HH:mm',\n      LLLL: 'dddd, D MMMM YYYY, HH:mm'\n    },\n    calendar: {\n      sameDay: '[இன்று] LT',\n      nextDay: '[நாளை] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[நேற்று] LT',\n      lastWeek: '[கடந்த வாரம்] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s இல்',\n      past: '%s முன்',\n      s: 'ஒரு சில விநாடிகள்',\n      ss: '%d விநாடிகள்',\n      m: 'ஒரு நிமிடம்',\n      mm: '%d நிமிடங்கள்',\n      h: 'ஒரு மணி நேரம்',\n      hh: '%d மணி நேரம்',\n      d: 'ஒரு நாள்',\n      dd: '%d நாட்கள்',\n      M: 'ஒரு மாதம்',\n      MM: '%d மாதங்கள்',\n      y: 'ஒரு வருடம்',\n      yy: '%d ஆண்டுகள்'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n    ordinal: function (number) {\n      return number + 'வது';\n    },\n    preparse: function (string) {\n      return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    // refer http://ta.wikipedia.org/s/1er1\n    meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 2) {\n        return ' யாமம்';\n      } else if (hour < 6) {\n        return ' வைகறை'; // வைகறை\n      } else if (hour < 10) {\n        return ' காலை'; // காலை\n      } else if (hour < 14) {\n        return ' நண்பகல்'; // நண்பகல்\n      } else if (hour < 18) {\n        return ' எற்பாடு'; // எற்பாடு\n      } else if (hour < 22) {\n        return ' மாலை'; // மாலை\n      } else {\n        return ' யாமம்';\n      }\n    },\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'யாமம்') {\n        return hour < 2 ? hour : hour + 12;\n      } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n        return hour;\n      } else if (meridiem === 'நண்பகல்') {\n        return hour >= 10 ? hour : hour + 12;\n      } else {\n        return hour + 12;\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return ta;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ta.js?");

/***/ }),

/***/ "./node_modules/moment/locale/te.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/te.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var te = moment.defineLocale('te', {\n    months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),\n    monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),\n    weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n    weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm',\n      LTS: 'A h:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm'\n    },\n    calendar: {\n      sameDay: '[నేడు] LT',\n      nextDay: '[రేపు] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[నిన్న] LT',\n      lastWeek: '[గత] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s లో',\n      past: '%s క్రితం',\n      s: 'కొన్ని క్షణాలు',\n      ss: '%d సెకన్లు',\n      m: 'ఒక నిమిషం',\n      mm: '%d నిమిషాలు',\n      h: 'ఒక గంట',\n      hh: '%d గంటలు',\n      d: 'ఒక రోజు',\n      dd: '%d రోజులు',\n      M: 'ఒక నెల',\n      MM: '%d నెలలు',\n      y: 'ఒక సంవత్సరం',\n      yy: '%d సంవత్సరాలు'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n    ordinal: '%dవ',\n    meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'రాత్రి') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'ఉదయం') {\n        return hour;\n      } else if (meridiem === 'మధ్యాహ్నం') {\n        return hour >= 10 ? hour : hour + 12;\n      } else if (meridiem === 'సాయంత్రం') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'రాత్రి';\n      } else if (hour < 10) {\n        return 'ఉదయం';\n      } else if (hour < 17) {\n        return 'మధ్యాహ్నం';\n      } else if (hour < 20) {\n        return 'సాయంత్రం';\n      } else {\n        return 'రాత్రి';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n    }\n  });\n  return te;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/te.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tet.js":
/*!*******************************************!*\
  !*** ./node_modules/moment/locale/tet.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var tet = moment.defineLocale('tet', {\n    months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\n    monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n    weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n    weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n    weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Ohin iha] LT',\n      nextDay: '[Aban iha] LT',\n      nextWeek: 'dddd [iha] LT',\n      lastDay: '[Horiseik iha] LT',\n      lastWeek: 'dddd [semana kotuk] [iha] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'iha %s',\n      past: '%s liuba',\n      s: 'segundu balun',\n      ss: 'segundu %d',\n      m: 'minutu ida',\n      mm: 'minutu %d',\n      h: 'oras ida',\n      hh: 'oras %d',\n      d: 'loron ida',\n      dd: 'loron %d',\n      M: 'fulan ida',\n      MM: 'fulan %d',\n      y: 'tinan ida',\n      yy: 'tinan %d'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n          output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return tet;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tet.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tg.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/tg.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var suffixes = {\n    0: '-ум',\n    1: '-ум',\n    2: '-юм',\n    3: '-юм',\n    4: '-ум',\n    5: '-ум',\n    6: '-ум',\n    7: '-ум',\n    8: '-ум',\n    9: '-ум',\n    10: '-ум',\n    12: '-ум',\n    13: '-ум',\n    20: '-ум',\n    30: '-юм',\n    40: '-ум',\n    50: '-ум',\n    60: '-ум',\n    70: '-ум',\n    80: '-ум',\n    90: '-ум',\n    100: '-ум'\n  };\n  var tg = moment.defineLocale('tg', {\n    months: {\n      format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split('_'),\n      standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_')\n    },\n    monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n    weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),\n    weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n    weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Имрӯз соати] LT',\n      nextDay: '[Фардо соати] LT',\n      lastDay: '[Дирӯз соати] LT',\n      nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n      lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'баъди %s',\n      past: '%s пеш',\n      s: 'якчанд сония',\n      m: 'як дақиқа',\n      mm: '%d дақиқа',\n      h: 'як соат',\n      hh: '%d соат',\n      d: 'як рӯз',\n      dd: '%d рӯз',\n      M: 'як моҳ',\n      MM: '%d моҳ',\n      y: 'як сол',\n      yy: '%d сол'\n    },\n    meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'шаб') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'субҳ') {\n        return hour;\n      } else if (meridiem === 'рӯз') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === 'бегоҳ') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'шаб';\n      } else if (hour < 11) {\n        return 'субҳ';\n      } else if (hour < 16) {\n        return 'рӯз';\n      } else if (hour < 19) {\n        return 'бегоҳ';\n      } else {\n        return 'шаб';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n    ordinal: function (number) {\n      var a = number % 10,\n          b = number >= 100 ? 100 : null;\n      return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 1th is the first week of the year.\n\n    }\n  });\n  return tg;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tg.js?");

/***/ }),

/***/ "./node_modules/moment/locale/th.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/th.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var th = moment.defineLocale('th', {\n    months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n    monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n    weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'),\n    // yes, three characters difference\n    weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY เวลา H:mm',\n      LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm'\n    },\n    meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n    isPM: function (input) {\n      return input === 'หลังเที่ยง';\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ก่อนเที่ยง';\n      } else {\n        return 'หลังเที่ยง';\n      }\n    },\n    calendar: {\n      sameDay: '[วันนี้ เวลา] LT',\n      nextDay: '[พรุ่งนี้ เวลา] LT',\n      nextWeek: 'dddd[หน้า เวลา] LT',\n      lastDay: '[เมื่อวานนี้ เวลา] LT',\n      lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'อีก %s',\n      past: '%sที่แล้ว',\n      s: 'ไม่กี่วินาที',\n      ss: '%d วินาที',\n      m: '1 นาที',\n      mm: '%d นาที',\n      h: '1 ชั่วโมง',\n      hh: '%d ชั่วโมง',\n      d: '1 วัน',\n      dd: '%d วัน',\n      w: '1 สัปดาห์',\n      ww: '%d สัปดาห์',\n      M: '1 เดือน',\n      MM: '%d เดือน',\n      y: '1 ปี',\n      yy: '%d ปี'\n    }\n  });\n  return th;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/th.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tk.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/tk.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var suffixes = {\n    1: \"'inji\",\n    5: \"'inji\",\n    8: \"'inji\",\n    70: \"'inji\",\n    80: \"'inji\",\n    2: \"'nji\",\n    7: \"'nji\",\n    20: \"'nji\",\n    50: \"'nji\",\n    3: \"'ünji\",\n    4: \"'ünji\",\n    100: \"'ünji\",\n    6: \"'njy\",\n    9: \"'unjy\",\n    10: \"'unjy\",\n    30: \"'unjy\",\n    60: \"'ynjy\",\n    90: \"'ynjy\"\n  };\n  var tk = moment.defineLocale('tk', {\n    months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split('_'),\n    monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n    weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split('_'),\n    weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n    weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[bugün sagat] LT',\n      nextDay: '[ertir sagat] LT',\n      nextWeek: '[indiki] dddd [sagat] LT',\n      lastDay: '[düýn] LT',\n      lastWeek: '[geçen] dddd [sagat] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s soň',\n      past: '%s öň',\n      s: 'birnäçe sekunt',\n      m: 'bir minut',\n      mm: '%d minut',\n      h: 'bir sagat',\n      hh: '%d sagat',\n      d: 'bir gün',\n      dd: '%d gün',\n      M: 'bir aý',\n      MM: '%d aý',\n      y: 'bir ýyl',\n      yy: '%d ýyl'\n    },\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'Do':\n        case 'DD':\n          return number;\n\n        default:\n          if (number === 0) {\n            // special case for zero\n            return number + \"'unjy\";\n          }\n\n          var a = number % 10,\n              b = number % 100 - a,\n              c = number >= 100 ? 100 : null;\n          return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return tk;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tk.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tl-ph.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/tl-ph.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var tlPh = moment.defineLocale('tl-ph', {\n    months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n    monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n    weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n    weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n    weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'MM/D/YYYY',\n      LL: 'MMMM D, YYYY',\n      LLL: 'MMMM D, YYYY HH:mm',\n      LLLL: 'dddd, MMMM DD, YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: 'LT [ngayong araw]',\n      nextDay: '[Bukas ng] LT',\n      nextWeek: 'LT [sa susunod na] dddd',\n      lastDay: 'LT [kahapon]',\n      lastWeek: 'LT [noong nakaraang] dddd',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'sa loob ng %s',\n      past: '%s ang nakalipas',\n      s: 'ilang segundo',\n      ss: '%d segundo',\n      m: 'isang minuto',\n      mm: '%d minuto',\n      h: 'isang oras',\n      hh: '%d oras',\n      d: 'isang araw',\n      dd: '%d araw',\n      M: 'isang buwan',\n      MM: '%d buwan',\n      y: 'isang taon',\n      yy: '%d taon'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}/,\n    ordinal: function (number) {\n      return number;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return tlPh;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tl-ph.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tlh.js":
/*!*******************************************!*\
  !*** ./node_modules/moment/locale/tlh.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n  function translateFuture(output) {\n    var time = output;\n    time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'leS' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'waQ' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'nem' : time + ' pIq';\n    return time;\n  }\n\n  function translatePast(output) {\n    var time = output;\n    time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'Hu’' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'wen' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'ben' : time + ' ret';\n    return time;\n  }\n\n  function translate(number, withoutSuffix, string, isFuture) {\n    var numberNoun = numberAsNoun(number);\n\n    switch (string) {\n      case 'ss':\n        return numberNoun + ' lup';\n\n      case 'mm':\n        return numberNoun + ' tup';\n\n      case 'hh':\n        return numberNoun + ' rep';\n\n      case 'dd':\n        return numberNoun + ' jaj';\n\n      case 'MM':\n        return numberNoun + ' jar';\n\n      case 'yy':\n        return numberNoun + ' DIS';\n    }\n  }\n\n  function numberAsNoun(number) {\n    var hundred = Math.floor(number % 1000 / 100),\n        ten = Math.floor(number % 100 / 10),\n        one = number % 10,\n        word = '';\n\n    if (hundred > 0) {\n      word += numbersNouns[hundred] + 'vatlh';\n    }\n\n    if (ten > 0) {\n      word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n    }\n\n    if (one > 0) {\n      word += (word !== '' ? ' ' : '') + numbersNouns[one];\n    }\n\n    return word === '' ? 'pagh' : word;\n  }\n\n  var tlh = moment.defineLocale('tlh', {\n    months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n    monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n    weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n    weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[DaHjaj] LT',\n      nextDay: '[wa’leS] LT',\n      nextWeek: 'LLL',\n      lastDay: '[wa’Hu’] LT',\n      lastWeek: 'LLL',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: translateFuture,\n      past: translatePast,\n      s: 'puS lup',\n      ss: translate,\n      m: 'wa’ tup',\n      mm: translate,\n      h: 'wa’ rep',\n      hh: translate,\n      d: 'wa’ jaj',\n      dd: translate,\n      M: 'wa’ jar',\n      MM: translate,\n      y: 'wa’ DIS',\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return tlh;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tlh.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tr.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/tr.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//!           Burak Yiğit Kaya: https://github.com/BYK\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var suffixes = {\n    1: \"'inci\",\n    5: \"'inci\",\n    8: \"'inci\",\n    70: \"'inci\",\n    80: \"'inci\",\n    2: \"'nci\",\n    7: \"'nci\",\n    20: \"'nci\",\n    50: \"'nci\",\n    3: \"'üncü\",\n    4: \"'üncü\",\n    100: \"'üncü\",\n    6: \"'ncı\",\n    9: \"'uncu\",\n    10: \"'uncu\",\n    30: \"'uncu\",\n    60: \"'ıncı\",\n    90: \"'ıncı\"\n  };\n  var tr = moment.defineLocale('tr', {\n    months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n    monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n    weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n    weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n    weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 12) {\n        return isLower ? 'öö' : 'ÖÖ';\n      } else {\n        return isLower ? 'ös' : 'ÖS';\n      }\n    },\n    meridiemParse: /öö|ÖÖ|ös|ÖS/,\n    isPM: function (input) {\n      return input === 'ös' || input === 'ÖS';\n    },\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[bugün saat] LT',\n      nextDay: '[yarın saat] LT',\n      nextWeek: '[gelecek] dddd [saat] LT',\n      lastDay: '[dün] LT',\n      lastWeek: '[geçen] dddd [saat] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s sonra',\n      past: '%s önce',\n      s: 'birkaç saniye',\n      ss: '%d saniye',\n      m: 'bir dakika',\n      mm: '%d dakika',\n      h: 'bir saat',\n      hh: '%d saat',\n      d: 'bir gün',\n      dd: '%d gün',\n      w: 'bir hafta',\n      ww: '%d hafta',\n      M: 'bir ay',\n      MM: '%d ay',\n      y: 'bir yıl',\n      yy: '%d yıl'\n    },\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'Do':\n        case 'DD':\n          return number;\n\n        default:\n          if (number === 0) {\n            // special case for zero\n            return number + \"'ıncı\";\n          }\n\n          var a = number % 10,\n              b = number % 100 - a,\n              c = number >= 100 ? 100 : null;\n          return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return tr;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tr.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tzl.js":
/*!*******************************************!*\
  !*** ./node_modules/moment/locale/tzl.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n  // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n  // This is currently too difficult (maybe even impossible) to add.\n\n  var tzl = moment.defineLocale('tzl', {\n    months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n    monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n    weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n    weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n    weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n    longDateFormat: {\n      LT: 'HH.mm',\n      LTS: 'HH.mm.ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM [dallas] YYYY',\n      LLL: 'D. MMMM [dallas] YYYY HH.mm',\n      LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n    },\n    meridiemParse: /d\\'o|d\\'a/i,\n    isPM: function (input) {\n      return \"d'o\" === input.toLowerCase();\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours > 11) {\n        return isLower ? \"d'o\" : \"D'O\";\n      } else {\n        return isLower ? \"d'a\" : \"D'A\";\n      }\n    },\n    calendar: {\n      sameDay: '[oxhi à] LT',\n      nextDay: '[demà à] LT',\n      nextWeek: 'dddd [à] LT',\n      lastDay: '[ieiri à] LT',\n      lastWeek: '[sür el] dddd [lasteu à] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'osprei %s',\n      past: 'ja%s',\n      s: processRelativeTime,\n      ss: processRelativeTime,\n      m: processRelativeTime,\n      mm: processRelativeTime,\n      h: processRelativeTime,\n      hh: processRelativeTime,\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      s: ['viensas secunds', \"'iensas secunds\"],\n      ss: [number + ' secunds', '' + number + ' secunds'],\n      m: [\"'n míut\", \"'iens míut\"],\n      mm: [number + ' míuts', '' + number + ' míuts'],\n      h: [\"'n þora\", \"'iensa þora\"],\n      hh: [number + ' þoras', '' + number + ' þoras'],\n      d: [\"'n ziua\", \"'iensa ziua\"],\n      dd: [number + ' ziuas', '' + number + ' ziuas'],\n      M: [\"'n mes\", \"'iens mes\"],\n      MM: [number + ' mesen', '' + number + ' mesen'],\n      y: [\"'n ar\", \"'iens ar\"],\n      yy: [number + ' ars', '' + number + ' ars']\n    };\n    return isFuture ? format[key][0] : withoutSuffix ? format[key][0] : format[key][1];\n  }\n\n  return tzl;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tzl.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tzm-latn.js":
/*!************************************************!*\
  !*** ./node_modules/moment/locale/tzm-latn.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var tzmLatn = moment.defineLocale('tzm-latn', {\n    months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n    monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n    weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n    weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n    weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[asdkh g] LT',\n      nextDay: '[aska g] LT',\n      nextWeek: 'dddd [g] LT',\n      lastDay: '[assant g] LT',\n      lastWeek: 'dddd [g] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dadkh s yan %s',\n      past: 'yan %s',\n      s: 'imik',\n      ss: '%d imik',\n      m: 'minuḍ',\n      mm: '%d minuḍ',\n      h: 'saɛa',\n      hh: '%d tassaɛin',\n      d: 'ass',\n      dd: '%d ossan',\n      M: 'ayowr',\n      MM: '%d iyyirn',\n      y: 'asgas',\n      yy: '%d isgasn'\n    },\n    week: {\n      dow: 6,\n      // Saturday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n    }\n  });\n  return tzmLatn;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tzm-latn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/tzm.js":
/*!*******************************************!*\
  !*** ./node_modules/moment/locale/tzm.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var tzm = moment.defineLocale('tzm', {\n    months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n    monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n    weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n    weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n    weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n      nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n      nextWeek: 'dddd [ⴴ] LT',\n      lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n      lastWeek: 'dddd [ⴴ] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n      past: 'ⵢⴰⵏ %s',\n      s: 'ⵉⵎⵉⴽ',\n      ss: '%d ⵉⵎⵉⴽ',\n      m: 'ⵎⵉⵏⵓⴺ',\n      mm: '%d ⵎⵉⵏⵓⴺ',\n      h: 'ⵙⴰⵄⴰ',\n      hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n      d: 'ⴰⵙⵙ',\n      dd: '%d oⵙⵙⴰⵏ',\n      M: 'ⴰⵢoⵓⵔ',\n      MM: '%d ⵉⵢⵢⵉⵔⵏ',\n      y: 'ⴰⵙⴳⴰⵙ',\n      yy: '%d ⵉⵙⴳⴰⵙⵏ'\n    },\n    week: {\n      dow: 6,\n      // Saturday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n    }\n  });\n  return tzm;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/tzm.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ug-cn.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/ug-cn.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var ugCn = moment.defineLocale('ug-cn', {\n    months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split('_'),\n    monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split('_'),\n    weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split('_'),\n    weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n    weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n      LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n      LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'\n    },\n    meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === 'يېرىم كېچە' || meridiem === 'سەھەر' || meridiem === 'چۈشتىن بۇرۇن') {\n        return hour;\n      } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n        return hour + 12;\n      } else {\n        return hour >= 11 ? hour : hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      var hm = hour * 100 + minute;\n\n      if (hm < 600) {\n        return 'يېرىم كېچە';\n      } else if (hm < 900) {\n        return 'سەھەر';\n      } else if (hm < 1130) {\n        return 'چۈشتىن بۇرۇن';\n      } else if (hm < 1230) {\n        return 'چۈش';\n      } else if (hm < 1800) {\n        return 'چۈشتىن كېيىن';\n      } else {\n        return 'كەچ';\n      }\n    },\n    calendar: {\n      sameDay: '[بۈگۈن سائەت] LT',\n      nextDay: '[ئەتە سائەت] LT',\n      nextWeek: '[كېلەركى] dddd [سائەت] LT',\n      lastDay: '[تۆنۈگۈن] LT',\n      lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s كېيىن',\n      past: '%s بۇرۇن',\n      s: 'نەچچە سېكونت',\n      ss: '%d سېكونت',\n      m: 'بىر مىنۇت',\n      mm: '%d مىنۇت',\n      h: 'بىر سائەت',\n      hh: '%d سائەت',\n      d: 'بىر كۈن',\n      dd: '%d كۈن',\n      M: 'بىر ئاي',\n      MM: '%d ئاي',\n      y: 'بىر يىل',\n      yy: '%d يىل'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '-كۈنى';\n\n        case 'w':\n        case 'W':\n          return number + '-ھەپتە';\n\n        default:\n          return number;\n      }\n    },\n    preparse: function (string) {\n      return string.replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/,/g, '،');\n    },\n    week: {\n      // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 1st is the first week of the year.\n\n    }\n  });\n  return ugCn;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ug-cn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/uk.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/uk.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  function plural(word, num) {\n    var forms = word.split('_');\n    return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n  }\n\n  function relativeTimeWithPlural(number, withoutSuffix, key) {\n    var format = {\n      ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n      mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n      hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n      dd: 'день_дні_днів',\n      MM: 'місяць_місяці_місяців',\n      yy: 'рік_роки_років'\n    };\n\n    if (key === 'm') {\n      return withoutSuffix ? 'хвилина' : 'хвилину';\n    } else if (key === 'h') {\n      return withoutSuffix ? 'година' : 'годину';\n    } else {\n      return number + ' ' + plural(format[key], +number);\n    }\n  }\n\n  function weekdaysCaseReplace(m, format) {\n    var weekdays = {\n      nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n      accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n      genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n    },\n        nounCase;\n\n    if (m === true) {\n      return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1));\n    }\n\n    if (!m) {\n      return weekdays['nominative'];\n    }\n\n    nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format) ? 'accusative' : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format) ? 'genitive' : 'nominative';\n    return weekdays[nounCase][m.day()];\n  }\n\n  function processHoursFunction(str) {\n    return function () {\n      return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n    };\n  }\n\n  var uk = moment.defineLocale('uk', {\n    months: {\n      format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),\n      standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n    },\n    monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n    weekdays: weekdaysCaseReplace,\n    weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n    weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY р.',\n      LLL: 'D MMMM YYYY р., HH:mm',\n      LLLL: 'dddd, D MMMM YYYY р., HH:mm'\n    },\n    calendar: {\n      sameDay: processHoursFunction('[Сьогодні '),\n      nextDay: processHoursFunction('[Завтра '),\n      lastDay: processHoursFunction('[Вчора '),\n      nextWeek: processHoursFunction('[У] dddd ['),\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n          case 3:\n          case 5:\n          case 6:\n            return processHoursFunction('[Минулої] dddd [').call(this);\n\n          case 1:\n          case 2:\n          case 4:\n            return processHoursFunction('[Минулого] dddd [').call(this);\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'за %s',\n      past: '%s тому',\n      s: 'декілька секунд',\n      ss: relativeTimeWithPlural,\n      m: relativeTimeWithPlural,\n      mm: relativeTimeWithPlural,\n      h: 'годину',\n      hh: relativeTimeWithPlural,\n      d: 'день',\n      dd: relativeTimeWithPlural,\n      M: 'місяць',\n      MM: relativeTimeWithPlural,\n      y: 'рік',\n      yy: relativeTimeWithPlural\n    },\n    // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n    meridiemParse: /ночі|ранку|дня|вечора/,\n    isPM: function (input) {\n      return /^(дня|вечора)$/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'ночі';\n      } else if (hour < 12) {\n        return 'ранку';\n      } else if (hour < 17) {\n        return 'дня';\n      } else {\n        return 'вечора';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'M':\n        case 'd':\n        case 'DDD':\n        case 'w':\n        case 'W':\n          return number + '-й';\n\n        case 'D':\n          return number + '-го';\n\n        default:\n          return number;\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return uk;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/uk.js?");

/***/ }),

/***/ "./node_modules/moment/locale/ur.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/ur.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var months = ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n      days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n  var ur = moment.defineLocale('ur', {\n    months: months,\n    monthsShort: months,\n    weekdays: days,\n    weekdaysShort: days,\n    weekdaysMin: days,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd، D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /صبح|شام/,\n    isPM: function (input) {\n      return 'شام' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'صبح';\n      }\n\n      return 'شام';\n    },\n    calendar: {\n      sameDay: '[آج بوقت] LT',\n      nextDay: '[کل بوقت] LT',\n      nextWeek: 'dddd [بوقت] LT',\n      lastDay: '[گذشتہ روز بوقت] LT',\n      lastWeek: '[گذشتہ] dddd [بوقت] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s بعد',\n      past: '%s قبل',\n      s: 'چند سیکنڈ',\n      ss: '%d سیکنڈ',\n      m: 'ایک منٹ',\n      mm: '%d منٹ',\n      h: 'ایک گھنٹہ',\n      hh: '%d گھنٹے',\n      d: 'ایک دن',\n      dd: '%d دن',\n      M: 'ایک ماہ',\n      MM: '%d ماہ',\n      y: 'ایک سال',\n      yy: '%d سال'\n    },\n    preparse: function (string) {\n      return string.replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/,/g, '،');\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return ur;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/ur.js?");

/***/ }),

/***/ "./node_modules/moment/locale/uz-latn.js":
/*!***********************************************!*\
  !*** ./node_modules/moment/locale/uz-latn.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var uzLatn = moment.defineLocale('uz-latn', {\n    months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n    monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n    weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n    weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n    weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'D MMMM YYYY, dddd HH:mm'\n    },\n    calendar: {\n      sameDay: '[Bugun soat] LT [da]',\n      nextDay: '[Ertaga] LT [da]',\n      nextWeek: 'dddd [kuni soat] LT [da]',\n      lastDay: '[Kecha soat] LT [da]',\n      lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'Yaqin %s ichida',\n      past: 'Bir necha %s oldin',\n      s: 'soniya',\n      ss: '%d soniya',\n      m: 'bir daqiqa',\n      mm: '%d daqiqa',\n      h: 'bir soat',\n      hh: '%d soat',\n      d: 'bir kun',\n      dd: '%d kun',\n      M: 'bir oy',\n      MM: '%d oy',\n      y: 'bir yil',\n      yy: '%d yil'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n    }\n  });\n  return uzLatn;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/uz-latn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/uz.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/uz.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var uz = moment.defineLocale('uz', {\n    months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n    monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n    weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n    weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n    weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'D MMMM YYYY, dddd HH:mm'\n    },\n    calendar: {\n      sameDay: '[Бугун соат] LT [да]',\n      nextDay: '[Эртага] LT [да]',\n      nextWeek: 'dddd [куни соат] LT [да]',\n      lastDay: '[Кеча соат] LT [да]',\n      lastWeek: '[Утган] dddd [куни соат] LT [да]',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'Якин %s ичида',\n      past: 'Бир неча %s олдин',\n      s: 'фурсат',\n      ss: '%d фурсат',\n      m: 'бир дакика',\n      mm: '%d дакика',\n      h: 'бир соат',\n      hh: '%d соат',\n      d: 'бир кун',\n      dd: '%d кун',\n      M: 'бир ой',\n      MM: '%d ой',\n      y: 'бир йил',\n      yy: '%d йил'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return uz;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/uz.js?");

/***/ }),

/***/ "./node_modules/moment/locale/vi.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/vi.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var vi = moment.defineLocale('vi', {\n    months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n    monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),\n    weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n    weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n    weekdaysParseExact: true,\n    meridiemParse: /sa|ch/i,\n    isPM: function (input) {\n      return /^ch$/i.test(input);\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 12) {\n        return isLower ? 'sa' : 'SA';\n      } else {\n        return isLower ? 'ch' : 'CH';\n      }\n    },\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM [năm] YYYY',\n      LLL: 'D MMMM [năm] YYYY HH:mm',\n      LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n      l: 'DD/M/YYYY',\n      ll: 'D MMM YYYY',\n      lll: 'D MMM YYYY HH:mm',\n      llll: 'ddd, D MMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Hôm nay lúc] LT',\n      nextDay: '[Ngày mai lúc] LT',\n      nextWeek: 'dddd [tuần tới lúc] LT',\n      lastDay: '[Hôm qua lúc] LT',\n      lastWeek: 'dddd [tuần trước lúc] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s tới',\n      past: '%s trước',\n      s: 'vài giây',\n      ss: '%d giây',\n      m: 'một phút',\n      mm: '%d phút',\n      h: 'một giờ',\n      hh: '%d giờ',\n      d: 'một ngày',\n      dd: '%d ngày',\n      w: 'một tuần',\n      ww: '%d tuần',\n      M: 'một tháng',\n      MM: '%d tháng',\n      y: 'một năm',\n      yy: '%d năm'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}/,\n    ordinal: function (number) {\n      return number;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return vi;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/vi.js?");

/***/ }),

/***/ "./node_modules/moment/locale/x-pseudo.js":
/*!************************************************!*\
  !*** ./node_modules/moment/locale/x-pseudo.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var xPseudo = moment.defineLocale('x-pseudo', {\n    months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),\n    monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),\n    weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n    weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[T~ódá~ý át] LT',\n      nextDay: '[T~ómó~rró~w át] LT',\n      nextWeek: 'dddd [át] LT',\n      lastDay: '[Ý~ést~érdá~ý át] LT',\n      lastWeek: '[L~ást] dddd [át] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'í~ñ %s',\n      past: '%s á~gó',\n      s: 'á ~féw ~sécó~ñds',\n      ss: '%d s~écóñ~ds',\n      m: 'á ~míñ~úté',\n      mm: '%d m~íñú~tés',\n      h: 'á~ñ hó~úr',\n      hh: '%d h~óúrs',\n      d: 'á ~dáý',\n      dd: '%d d~áýs',\n      M: 'á ~móñ~th',\n      MM: '%d m~óñt~hs',\n      y: 'á ~ýéár',\n      yy: '%d ý~éárs'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n    ordinal: function (number) {\n      var b = number % 10,\n          output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return xPseudo;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/x-pseudo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/yo.js":
/*!******************************************!*\
  !*** ./node_modules/moment/locale/yo.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var yo = moment.defineLocale('yo', {\n    months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),\n    monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n    weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n    weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n    weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY h:mm A',\n      LLLL: 'dddd, D MMMM YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: '[Ònì ni] LT',\n      nextDay: '[Ọ̀la ni] LT',\n      nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n      lastDay: '[Àna ni] LT',\n      lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'ní %s',\n      past: '%s kọjá',\n      s: 'ìsẹjú aayá die',\n      ss: 'aayá %d',\n      m: 'ìsẹjú kan',\n      mm: 'ìsẹjú %d',\n      h: 'wákati kan',\n      hh: 'wákati %d',\n      d: 'ọjọ́ kan',\n      dd: 'ọjọ́ %d',\n      M: 'osù kan',\n      MM: 'osù %d',\n      y: 'ọdún kan',\n      yy: 'ọdún %d'\n    },\n    dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n    ordinal: 'ọjọ́ %d',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return yo;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/yo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/zh-cn.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/zh-cn.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var zhCn = moment.defineLocale('zh-cn', {\n    months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n    monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n    weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n    weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n    weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY/MM/DD',\n      LL: 'YYYY年M月D日',\n      LLL: 'YYYY年M月D日Ah点mm分',\n      LLLL: 'YYYY年M月D日ddddAh点mm分',\n      l: 'YYYY/M/D',\n      ll: 'YYYY年M月D日',\n      lll: 'YYYY年M月D日 HH:mm',\n      llll: 'YYYY年M月D日dddd HH:mm'\n    },\n    meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n        return hour;\n      } else if (meridiem === '下午' || meridiem === '晚上') {\n        return hour + 12;\n      } else {\n        // '中午'\n        return hour >= 11 ? hour : hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      var hm = hour * 100 + minute;\n\n      if (hm < 600) {\n        return '凌晨';\n      } else if (hm < 900) {\n        return '早上';\n      } else if (hm < 1130) {\n        return '上午';\n      } else if (hm < 1230) {\n        return '中午';\n      } else if (hm < 1800) {\n        return '下午';\n      } else {\n        return '晚上';\n      }\n    },\n    calendar: {\n      sameDay: '[今天]LT',\n      nextDay: '[明天]LT',\n      nextWeek: function (now) {\n        if (now.week() !== this.week()) {\n          return '[下]dddLT';\n        } else {\n          return '[本]dddLT';\n        }\n      },\n      lastDay: '[昨天]LT',\n      lastWeek: function (now) {\n        if (this.week() !== now.week()) {\n          return '[上]dddLT';\n        } else {\n          return '[本]dddLT';\n        }\n      },\n      sameElse: 'L'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '日';\n\n        case 'M':\n          return number + '月';\n\n        case 'w':\n        case 'W':\n          return number + '周';\n\n        default:\n          return number;\n      }\n    },\n    relativeTime: {\n      future: '%s后',\n      past: '%s前',\n      s: '几秒',\n      ss: '%d 秒',\n      m: '1 分钟',\n      mm: '%d 分钟',\n      h: '1 小时',\n      hh: '%d 小时',\n      d: '1 天',\n      dd: '%d 天',\n      w: '1 周',\n      ww: '%d 周',\n      M: '1 个月',\n      MM: '%d 个月',\n      y: '1 年',\n      yy: '%d 年'\n    },\n    week: {\n      // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n    }\n  });\n  return zhCn;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/zh-cn.js?");

/***/ }),

/***/ "./node_modules/moment/locale/zh-hk.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/zh-hk.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var zhHk = moment.defineLocale('zh-hk', {\n    months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n    monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n    weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n    weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n    weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY/MM/DD',\n      LL: 'YYYY年M月D日',\n      LLL: 'YYYY年M月D日 HH:mm',\n      LLLL: 'YYYY年M月D日dddd HH:mm',\n      l: 'YYYY/M/D',\n      ll: 'YYYY年M月D日',\n      lll: 'YYYY年M月D日 HH:mm',\n      llll: 'YYYY年M月D日dddd HH:mm'\n    },\n    meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n        return hour;\n      } else if (meridiem === '中午') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === '下午' || meridiem === '晚上') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      var hm = hour * 100 + minute;\n\n      if (hm < 600) {\n        return '凌晨';\n      } else if (hm < 900) {\n        return '早上';\n      } else if (hm < 1200) {\n        return '上午';\n      } else if (hm === 1200) {\n        return '中午';\n      } else if (hm < 1800) {\n        return '下午';\n      } else {\n        return '晚上';\n      }\n    },\n    calendar: {\n      sameDay: '[今天]LT',\n      nextDay: '[明天]LT',\n      nextWeek: '[下]ddddLT',\n      lastDay: '[昨天]LT',\n      lastWeek: '[上]ddddLT',\n      sameElse: 'L'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '日';\n\n        case 'M':\n          return number + '月';\n\n        case 'w':\n        case 'W':\n          return number + '週';\n\n        default:\n          return number;\n      }\n    },\n    relativeTime: {\n      future: '%s後',\n      past: '%s前',\n      s: '幾秒',\n      ss: '%d 秒',\n      m: '1 分鐘',\n      mm: '%d 分鐘',\n      h: '1 小時',\n      hh: '%d 小時',\n      d: '1 天',\n      dd: '%d 天',\n      M: '1 個月',\n      MM: '%d 個月',\n      y: '1 年',\n      yy: '%d 年'\n    }\n  });\n  return zhHk;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/zh-hk.js?");

/***/ }),

/***/ "./node_modules/moment/locale/zh-mo.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/zh-mo.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var zhMo = moment.defineLocale('zh-mo', {\n    months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n    monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n    weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n    weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n    weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'YYYY年M月D日',\n      LLL: 'YYYY年M月D日 HH:mm',\n      LLLL: 'YYYY年M月D日dddd HH:mm',\n      l: 'D/M/YYYY',\n      ll: 'YYYY年M月D日',\n      lll: 'YYYY年M月D日 HH:mm',\n      llll: 'YYYY年M月D日dddd HH:mm'\n    },\n    meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n        return hour;\n      } else if (meridiem === '中午') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === '下午' || meridiem === '晚上') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      var hm = hour * 100 + minute;\n\n      if (hm < 600) {\n        return '凌晨';\n      } else if (hm < 900) {\n        return '早上';\n      } else if (hm < 1130) {\n        return '上午';\n      } else if (hm < 1230) {\n        return '中午';\n      } else if (hm < 1800) {\n        return '下午';\n      } else {\n        return '晚上';\n      }\n    },\n    calendar: {\n      sameDay: '[今天] LT',\n      nextDay: '[明天] LT',\n      nextWeek: '[下]dddd LT',\n      lastDay: '[昨天] LT',\n      lastWeek: '[上]dddd LT',\n      sameElse: 'L'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '日';\n\n        case 'M':\n          return number + '月';\n\n        case 'w':\n        case 'W':\n          return number + '週';\n\n        default:\n          return number;\n      }\n    },\n    relativeTime: {\n      future: '%s內',\n      past: '%s前',\n      s: '幾秒',\n      ss: '%d 秒',\n      m: '1 分鐘',\n      mm: '%d 分鐘',\n      h: '1 小時',\n      hh: '%d 小時',\n      d: '1 天',\n      dd: '%d 天',\n      M: '1 個月',\n      MM: '%d 個月',\n      y: '1 年',\n      yy: '%d 年'\n    }\n  });\n  return zhMo;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/zh-mo.js?");

/***/ }),

/***/ "./node_modules/moment/locale/zh-tw.js":
/*!*********************************************!*\
  !*** ./node_modules/moment/locale/zh-tw.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n;\n\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"./node_modules/moment/moment.js\")) : undefined;\n})(this, function (moment) {\n  'use strict'; //! moment.js locale configuration\n\n  var zhTw = moment.defineLocale('zh-tw', {\n    months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n    monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n    weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n    weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n    weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY/MM/DD',\n      LL: 'YYYY年M月D日',\n      LLL: 'YYYY年M月D日 HH:mm',\n      LLLL: 'YYYY年M月D日dddd HH:mm',\n      l: 'YYYY/M/D',\n      ll: 'YYYY年M月D日',\n      lll: 'YYYY年M月D日 HH:mm',\n      llll: 'YYYY年M月D日dddd HH:mm'\n    },\n    meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n\n      if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n        return hour;\n      } else if (meridiem === '中午') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === '下午' || meridiem === '晚上') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      var hm = hour * 100 + minute;\n\n      if (hm < 600) {\n        return '凌晨';\n      } else if (hm < 900) {\n        return '早上';\n      } else if (hm < 1130) {\n        return '上午';\n      } else if (hm < 1230) {\n        return '中午';\n      } else if (hm < 1800) {\n        return '下午';\n      } else {\n        return '晚上';\n      }\n    },\n    calendar: {\n      sameDay: '[今天] LT',\n      nextDay: '[明天] LT',\n      nextWeek: '[下]dddd LT',\n      lastDay: '[昨天] LT',\n      lastWeek: '[上]dddd LT',\n      sameElse: 'L'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '日';\n\n        case 'M':\n          return number + '月';\n\n        case 'w':\n        case 'W':\n          return number + '週';\n\n        default:\n          return number;\n      }\n    },\n    relativeTime: {\n      future: '%s後',\n      past: '%s前',\n      s: '幾秒',\n      ss: '%d 秒',\n      m: '1 分鐘',\n      mm: '%d 分鐘',\n      h: '1 小時',\n      hh: '%d 小時',\n      d: '1 天',\n      dd: '%d 天',\n      M: '1 個月',\n      MM: '%d 個月',\n      y: '1 年',\n      yy: '%d 年'\n    }\n  });\n  return zhTw;\n});\n\n//# sourceURL=webpack:///./node_modules/moment/locale/zh-tw.js?");

/***/ }),

/***/ "./node_modules/moment/moment.js":
/*!***************************************!*\
  !*** ./node_modules/moment/moment.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n;\n\n(function (global, factory) {\n   true ? module.exports = factory() : undefined;\n})(this, function () {\n  'use strict';\n\n  var hookCallback;\n\n  function hooks() {\n    return hookCallback.apply(null, arguments);\n  } // This is done to register the method called with moment()\n  // without creating circular dependencies.\n\n\n  function setHookCallback(callback) {\n    hookCallback = callback;\n  }\n\n  function isArray(input) {\n    return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n  }\n\n  function isObject(input) {\n    // IE8 will treat undefined and null as object if it wasn't for\n    // input != null\n    return input != null && Object.prototype.toString.call(input) === '[object Object]';\n  }\n\n  function hasOwnProp(a, b) {\n    return Object.prototype.hasOwnProperty.call(a, b);\n  }\n\n  function isObjectEmpty(obj) {\n    if (Object.getOwnPropertyNames) {\n      return Object.getOwnPropertyNames(obj).length === 0;\n    } else {\n      var k;\n\n      for (k in obj) {\n        if (hasOwnProp(obj, k)) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n  }\n\n  function isUndefined(input) {\n    return input === void 0;\n  }\n\n  function isNumber(input) {\n    return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n  }\n\n  function isDate(input) {\n    return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n  }\n\n  function map(arr, fn) {\n    var res = [],\n        i,\n        arrLen = arr.length;\n\n    for (i = 0; i < arrLen; ++i) {\n      res.push(fn(arr[i], i));\n    }\n\n    return res;\n  }\n\n  function extend(a, b) {\n    for (var i in b) {\n      if (hasOwnProp(b, i)) {\n        a[i] = b[i];\n      }\n    }\n\n    if (hasOwnProp(b, 'toString')) {\n      a.toString = b.toString;\n    }\n\n    if (hasOwnProp(b, 'valueOf')) {\n      a.valueOf = b.valueOf;\n    }\n\n    return a;\n  }\n\n  function createUTC(input, format, locale, strict) {\n    return createLocalOrUTC(input, format, locale, strict, true).utc();\n  }\n\n  function defaultParsingFlags() {\n    // We need to deep clone this object.\n    return {\n      empty: false,\n      unusedTokens: [],\n      unusedInput: [],\n      overflow: -2,\n      charsLeftOver: 0,\n      nullInput: false,\n      invalidEra: null,\n      invalidMonth: null,\n      invalidFormat: false,\n      userInvalidated: false,\n      iso: false,\n      parsedDateParts: [],\n      era: null,\n      meridiem: null,\n      rfc2822: false,\n      weekdayMismatch: false\n    };\n  }\n\n  function getParsingFlags(m) {\n    if (m._pf == null) {\n      m._pf = defaultParsingFlags();\n    }\n\n    return m._pf;\n  }\n\n  var some;\n\n  if (Array.prototype.some) {\n    some = Array.prototype.some;\n  } else {\n    some = function (fun) {\n      var t = Object(this),\n          len = t.length >>> 0,\n          i;\n\n      for (i = 0; i < len; i++) {\n        if (i in t && fun.call(this, t[i], i, t)) {\n          return true;\n        }\n      }\n\n      return false;\n    };\n  }\n\n  function isValid(m) {\n    if (m._isValid == null) {\n      var flags = getParsingFlags(m),\n          parsedParts = some.call(flags.parsedDateParts, function (i) {\n        return i != null;\n      }),\n          isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n\n      if (m._strict) {\n        isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n      }\n\n      if (Object.isFrozen == null || !Object.isFrozen(m)) {\n        m._isValid = isNowValid;\n      } else {\n        return isNowValid;\n      }\n    }\n\n    return m._isValid;\n  }\n\n  function createInvalid(flags) {\n    var m = createUTC(NaN);\n\n    if (flags != null) {\n      extend(getParsingFlags(m), flags);\n    } else {\n      getParsingFlags(m).userInvalidated = true;\n    }\n\n    return m;\n  } // Plugins that add properties should also add the key here (null value),\n  // so we can properly clone ourselves.\n\n\n  var momentProperties = hooks.momentProperties = [],\n      updateInProgress = false;\n\n  function copyConfig(to, from) {\n    var i,\n        prop,\n        val,\n        momentPropertiesLen = momentProperties.length;\n\n    if (!isUndefined(from._isAMomentObject)) {\n      to._isAMomentObject = from._isAMomentObject;\n    }\n\n    if (!isUndefined(from._i)) {\n      to._i = from._i;\n    }\n\n    if (!isUndefined(from._f)) {\n      to._f = from._f;\n    }\n\n    if (!isUndefined(from._l)) {\n      to._l = from._l;\n    }\n\n    if (!isUndefined(from._strict)) {\n      to._strict = from._strict;\n    }\n\n    if (!isUndefined(from._tzm)) {\n      to._tzm = from._tzm;\n    }\n\n    if (!isUndefined(from._isUTC)) {\n      to._isUTC = from._isUTC;\n    }\n\n    if (!isUndefined(from._offset)) {\n      to._offset = from._offset;\n    }\n\n    if (!isUndefined(from._pf)) {\n      to._pf = getParsingFlags(from);\n    }\n\n    if (!isUndefined(from._locale)) {\n      to._locale = from._locale;\n    }\n\n    if (momentPropertiesLen > 0) {\n      for (i = 0; i < momentPropertiesLen; i++) {\n        prop = momentProperties[i];\n        val = from[prop];\n\n        if (!isUndefined(val)) {\n          to[prop] = val;\n        }\n      }\n    }\n\n    return to;\n  } // Moment prototype object\n\n\n  function Moment(config) {\n    copyConfig(this, config);\n    this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n\n    if (!this.isValid()) {\n      this._d = new Date(NaN);\n    } // Prevent infinite loop in case updateOffset creates new moment\n    // objects.\n\n\n    if (updateInProgress === false) {\n      updateInProgress = true;\n      hooks.updateOffset(this);\n      updateInProgress = false;\n    }\n  }\n\n  function isMoment(obj) {\n    return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n  }\n\n  function warn(msg) {\n    if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n      console.warn('Deprecation warning: ' + msg);\n    }\n  }\n\n  function deprecate(msg, fn) {\n    var firstTime = true;\n    return extend(function () {\n      if (hooks.deprecationHandler != null) {\n        hooks.deprecationHandler(null, msg);\n      }\n\n      if (firstTime) {\n        var args = [],\n            arg,\n            i,\n            key,\n            argLen = arguments.length;\n\n        for (i = 0; i < argLen; i++) {\n          arg = '';\n\n          if (typeof arguments[i] === 'object') {\n            arg += '\\n[' + i + '] ';\n\n            for (key in arguments[0]) {\n              if (hasOwnProp(arguments[0], key)) {\n                arg += key + ': ' + arguments[0][key] + ', ';\n              }\n            }\n\n            arg = arg.slice(0, -2); // Remove trailing comma and space\n          } else {\n            arg = arguments[i];\n          }\n\n          args.push(arg);\n        }\n\n        warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n        firstTime = false;\n      }\n\n      return fn.apply(this, arguments);\n    }, fn);\n  }\n\n  var deprecations = {};\n\n  function deprecateSimple(name, msg) {\n    if (hooks.deprecationHandler != null) {\n      hooks.deprecationHandler(name, msg);\n    }\n\n    if (!deprecations[name]) {\n      warn(msg);\n      deprecations[name] = true;\n    }\n  }\n\n  hooks.suppressDeprecationWarnings = false;\n  hooks.deprecationHandler = null;\n\n  function isFunction(input) {\n    return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n  }\n\n  function set(config) {\n    var prop, i;\n\n    for (i in config) {\n      if (hasOwnProp(config, i)) {\n        prop = config[i];\n\n        if (isFunction(prop)) {\n          this[i] = prop;\n        } else {\n          this['_' + i] = prop;\n        }\n      }\n    }\n\n    this._config = config; // Lenient ordinal parsing accepts just a number in addition to\n    // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n    // TODO: Remove \"ordinalParse\" fallback in next major release.\n\n    this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n  }\n\n  function mergeConfigs(parentConfig, childConfig) {\n    var res = extend({}, parentConfig),\n        prop;\n\n    for (prop in childConfig) {\n      if (hasOwnProp(childConfig, prop)) {\n        if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n          res[prop] = {};\n          extend(res[prop], parentConfig[prop]);\n          extend(res[prop], childConfig[prop]);\n        } else if (childConfig[prop] != null) {\n          res[prop] = childConfig[prop];\n        } else {\n          delete res[prop];\n        }\n      }\n    }\n\n    for (prop in parentConfig) {\n      if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n        // make sure changes to properties don't modify parent config\n        res[prop] = extend({}, res[prop]);\n      }\n    }\n\n    return res;\n  }\n\n  function Locale(config) {\n    if (config != null) {\n      this.set(config);\n    }\n  }\n\n  var keys;\n\n  if (Object.keys) {\n    keys = Object.keys;\n  } else {\n    keys = function (obj) {\n      var i,\n          res = [];\n\n      for (i in obj) {\n        if (hasOwnProp(obj, i)) {\n          res.push(i);\n        }\n      }\n\n      return res;\n    };\n  }\n\n  var defaultCalendar = {\n    sameDay: '[Today at] LT',\n    nextDay: '[Tomorrow at] LT',\n    nextWeek: 'dddd [at] LT',\n    lastDay: '[Yesterday at] LT',\n    lastWeek: '[Last] dddd [at] LT',\n    sameElse: 'L'\n  };\n\n  function calendar(key, mom, now) {\n    var output = this._calendar[key] || this._calendar['sameElse'];\n    return isFunction(output) ? output.call(mom, now) : output;\n  }\n\n  function zeroFill(number, targetLength, forceSign) {\n    var absNumber = '' + Math.abs(number),\n        zerosToFill = targetLength - absNumber.length,\n        sign = number >= 0;\n    return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n  }\n\n  var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n      localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n      formatFunctions = {},\n      formatTokenFunctions = {}; // token:    'M'\n  // padded:   ['MM', 2]\n  // ordinal:  'Mo'\n  // callback: function () { this.month() + 1 }\n\n  function addFormatToken(token, padded, ordinal, callback) {\n    var func = callback;\n\n    if (typeof callback === 'string') {\n      func = function () {\n        return this[callback]();\n      };\n    }\n\n    if (token) {\n      formatTokenFunctions[token] = func;\n    }\n\n    if (padded) {\n      formatTokenFunctions[padded[0]] = function () {\n        return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n      };\n    }\n\n    if (ordinal) {\n      formatTokenFunctions[ordinal] = function () {\n        return this.localeData().ordinal(func.apply(this, arguments), token);\n      };\n    }\n  }\n\n  function removeFormattingTokens(input) {\n    if (input.match(/\\[[\\s\\S]/)) {\n      return input.replace(/^\\[|\\]$/g, '');\n    }\n\n    return input.replace(/\\\\/g, '');\n  }\n\n  function makeFormatFunction(format) {\n    var array = format.match(formattingTokens),\n        i,\n        length;\n\n    for (i = 0, length = array.length; i < length; i++) {\n      if (formatTokenFunctions[array[i]]) {\n        array[i] = formatTokenFunctions[array[i]];\n      } else {\n        array[i] = removeFormattingTokens(array[i]);\n      }\n    }\n\n    return function (mom) {\n      var output = '',\n          i;\n\n      for (i = 0; i < length; i++) {\n        output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n      }\n\n      return output;\n    };\n  } // format date using native date object\n\n\n  function formatMoment(m, format) {\n    if (!m.isValid()) {\n      return m.localeData().invalidDate();\n    }\n\n    format = expandFormat(format, m.localeData());\n    formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n    return formatFunctions[format](m);\n  }\n\n  function expandFormat(format, locale) {\n    var i = 5;\n\n    function replaceLongDateFormatTokens(input) {\n      return locale.longDateFormat(input) || input;\n    }\n\n    localFormattingTokens.lastIndex = 0;\n\n    while (i >= 0 && localFormattingTokens.test(format)) {\n      format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n      localFormattingTokens.lastIndex = 0;\n      i -= 1;\n    }\n\n    return format;\n  }\n\n  var defaultLongDateFormat = {\n    LTS: 'h:mm:ss A',\n    LT: 'h:mm A',\n    L: 'MM/DD/YYYY',\n    LL: 'MMMM D, YYYY',\n    LLL: 'MMMM D, YYYY h:mm A',\n    LLLL: 'dddd, MMMM D, YYYY h:mm A'\n  };\n\n  function longDateFormat(key) {\n    var format = this._longDateFormat[key],\n        formatUpper = this._longDateFormat[key.toUpperCase()];\n\n    if (format || !formatUpper) {\n      return format;\n    }\n\n    this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n      if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n        return tok.slice(1);\n      }\n\n      return tok;\n    }).join('');\n    return this._longDateFormat[key];\n  }\n\n  var defaultInvalidDate = 'Invalid date';\n\n  function invalidDate() {\n    return this._invalidDate;\n  }\n\n  var defaultOrdinal = '%d',\n      defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n  function ordinal(number) {\n    return this._ordinal.replace('%d', number);\n  }\n\n  var defaultRelativeTime = {\n    future: 'in %s',\n    past: '%s ago',\n    s: 'a few seconds',\n    ss: '%d seconds',\n    m: 'a minute',\n    mm: '%d minutes',\n    h: 'an hour',\n    hh: '%d hours',\n    d: 'a day',\n    dd: '%d days',\n    w: 'a week',\n    ww: '%d weeks',\n    M: 'a month',\n    MM: '%d months',\n    y: 'a year',\n    yy: '%d years'\n  };\n\n  function relativeTime(number, withoutSuffix, string, isFuture) {\n    var output = this._relativeTime[string];\n    return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n  }\n\n  function pastFuture(diff, output) {\n    var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n    return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n  }\n\n  var aliases = {};\n\n  function addUnitAlias(unit, shorthand) {\n    var lowerCase = unit.toLowerCase();\n    aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n  }\n\n  function normalizeUnits(units) {\n    return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n  }\n\n  function normalizeObjectUnits(inputObject) {\n    var normalizedInput = {},\n        normalizedProp,\n        prop;\n\n    for (prop in inputObject) {\n      if (hasOwnProp(inputObject, prop)) {\n        normalizedProp = normalizeUnits(prop);\n\n        if (normalizedProp) {\n          normalizedInput[normalizedProp] = inputObject[prop];\n        }\n      }\n    }\n\n    return normalizedInput;\n  }\n\n  var priorities = {};\n\n  function addUnitPriority(unit, priority) {\n    priorities[unit] = priority;\n  }\n\n  function getPrioritizedUnits(unitsObj) {\n    var units = [],\n        u;\n\n    for (u in unitsObj) {\n      if (hasOwnProp(unitsObj, u)) {\n        units.push({\n          unit: u,\n          priority: priorities[u]\n        });\n      }\n    }\n\n    units.sort(function (a, b) {\n      return a.priority - b.priority;\n    });\n    return units;\n  }\n\n  function isLeapYear(year) {\n    return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n  }\n\n  function absFloor(number) {\n    if (number < 0) {\n      // -0 -> 0\n      return Math.ceil(number) || 0;\n    } else {\n      return Math.floor(number);\n    }\n  }\n\n  function toInt(argumentForCoercion) {\n    var coercedNumber = +argumentForCoercion,\n        value = 0;\n\n    if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n      value = absFloor(coercedNumber);\n    }\n\n    return value;\n  }\n\n  function makeGetSet(unit, keepTime) {\n    return function (value) {\n      if (value != null) {\n        set$1(this, unit, value);\n        hooks.updateOffset(this, keepTime);\n        return this;\n      } else {\n        return get(this, unit);\n      }\n    };\n  }\n\n  function get(mom, unit) {\n    return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n  }\n\n  function set$1(mom, unit, value) {\n    if (mom.isValid() && !isNaN(value)) {\n      if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n        value = toInt(value);\n\n        mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n      } else {\n        mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n      }\n    }\n  } // MOMENTS\n\n\n  function stringGet(units) {\n    units = normalizeUnits(units);\n\n    if (isFunction(this[units])) {\n      return this[units]();\n    }\n\n    return this;\n  }\n\n  function stringSet(units, value) {\n    if (typeof units === 'object') {\n      units = normalizeObjectUnits(units);\n      var prioritized = getPrioritizedUnits(units),\n          i,\n          prioritizedLen = prioritized.length;\n\n      for (i = 0; i < prioritizedLen; i++) {\n        this[prioritized[i].unit](units[prioritized[i].unit]);\n      }\n    } else {\n      units = normalizeUnits(units);\n\n      if (isFunction(this[units])) {\n        return this[units](value);\n      }\n    }\n\n    return this;\n  }\n\n  var match1 = /\\d/,\n      //       0 - 9\n  match2 = /\\d\\d/,\n      //      00 - 99\n  match3 = /\\d{3}/,\n      //     000 - 999\n  match4 = /\\d{4}/,\n      //    0000 - 9999\n  match6 = /[+-]?\\d{6}/,\n      // -999999 - 999999\n  match1to2 = /\\d\\d?/,\n      //       0 - 99\n  match3to4 = /\\d\\d\\d\\d?/,\n      //     999 - 9999\n  match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n      //   99999 - 999999\n  match1to3 = /\\d{1,3}/,\n      //       0 - 999\n  match1to4 = /\\d{1,4}/,\n      //       0 - 9999\n  match1to6 = /[+-]?\\d{1,6}/,\n      // -999999 - 999999\n  matchUnsigned = /\\d+/,\n      //       0 - inf\n  matchSigned = /[+-]?\\d+/,\n      //    -inf - inf\n  matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n      // +00:00 -00:00 +0000 -0000 or Z\n  matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n      // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n  matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n      // 123456789 123456789.123\n  // any word (or two) characters or numbers including two/three word month in arabic.\n  // includes scottish gaelic two word and hyphenated months\n  matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n      regexes;\n  regexes = {};\n\n  function addRegexToken(token, regex, strictRegex) {\n    regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n      return isStrict && strictRegex ? strictRegex : regex;\n    };\n  }\n\n  function getParseRegexForToken(token, config) {\n    if (!hasOwnProp(regexes, token)) {\n      return new RegExp(unescapeFormat(token));\n    }\n\n    return regexes[token](config._strict, config._locale);\n  } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n\n\n  function unescapeFormat(s) {\n    return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n      return p1 || p2 || p3 || p4;\n    }));\n  }\n\n  function regexEscape(s) {\n    return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n  }\n\n  var tokens = {};\n\n  function addParseToken(token, callback) {\n    var i,\n        func = callback,\n        tokenLen;\n\n    if (typeof token === 'string') {\n      token = [token];\n    }\n\n    if (isNumber(callback)) {\n      func = function (input, array) {\n        array[callback] = toInt(input);\n      };\n    }\n\n    tokenLen = token.length;\n\n    for (i = 0; i < tokenLen; i++) {\n      tokens[token[i]] = func;\n    }\n  }\n\n  function addWeekParseToken(token, callback) {\n    addParseToken(token, function (input, array, config, token) {\n      config._w = config._w || {};\n      callback(input, config._w, config, token);\n    });\n  }\n\n  function addTimeToArrayFromToken(token, input, config) {\n    if (input != null && hasOwnProp(tokens, token)) {\n      tokens[token](input, config._a, config, token);\n    }\n  }\n\n  var YEAR = 0,\n      MONTH = 1,\n      DATE = 2,\n      HOUR = 3,\n      MINUTE = 4,\n      SECOND = 5,\n      MILLISECOND = 6,\n      WEEK = 7,\n      WEEKDAY = 8;\n\n  function mod(n, x) {\n    return (n % x + x) % x;\n  }\n\n  var indexOf;\n\n  if (Array.prototype.indexOf) {\n    indexOf = Array.prototype.indexOf;\n  } else {\n    indexOf = function (o) {\n      // I know\n      var i;\n\n      for (i = 0; i < this.length; ++i) {\n        if (this[i] === o) {\n          return i;\n        }\n      }\n\n      return -1;\n    };\n  }\n\n  function daysInMonth(year, month) {\n    if (isNaN(year) || isNaN(month)) {\n      return NaN;\n    }\n\n    var modMonth = mod(month, 12);\n    year += (month - modMonth) / 12;\n    return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n  } // FORMATTING\n\n\n  addFormatToken('M', ['MM', 2], 'Mo', function () {\n    return this.month() + 1;\n  });\n  addFormatToken('MMM', 0, 0, function (format) {\n    return this.localeData().monthsShort(this, format);\n  });\n  addFormatToken('MMMM', 0, 0, function (format) {\n    return this.localeData().months(this, format);\n  }); // ALIASES\n\n  addUnitAlias('month', 'M'); // PRIORITY\n\n  addUnitPriority('month', 8); // PARSING\n\n  addRegexToken('M', match1to2);\n  addRegexToken('MM', match1to2, match2);\n  addRegexToken('MMM', function (isStrict, locale) {\n    return locale.monthsShortRegex(isStrict);\n  });\n  addRegexToken('MMMM', function (isStrict, locale) {\n    return locale.monthsRegex(isStrict);\n  });\n  addParseToken(['M', 'MM'], function (input, array) {\n    array[MONTH] = toInt(input) - 1;\n  });\n  addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n    var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid.\n\n\n    if (month != null) {\n      array[MONTH] = month;\n    } else {\n      getParsingFlags(config).invalidMonth = input;\n    }\n  }); // LOCALES\n\n  var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n      defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n      MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n      defaultMonthsShortRegex = matchWord,\n      defaultMonthsRegex = matchWord;\n\n  function localeMonths(m, format) {\n    if (!m) {\n      return isArray(this._months) ? this._months : this._months['standalone'];\n    }\n\n    return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n  }\n\n  function localeMonthsShort(m, format) {\n    if (!m) {\n      return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n    }\n\n    return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n  }\n\n  function handleStrictParse(monthName, format, strict) {\n    var i,\n        ii,\n        mom,\n        llc = monthName.toLocaleLowerCase();\n\n    if (!this._monthsParse) {\n      // this is not used\n      this._monthsParse = [];\n      this._longMonthsParse = [];\n      this._shortMonthsParse = [];\n\n      for (i = 0; i < 12; ++i) {\n        mom = createUTC([2000, i]);\n        this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n        this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n      }\n    }\n\n    if (strict) {\n      if (format === 'MMM') {\n        ii = indexOf.call(this._shortMonthsParse, llc);\n        return ii !== -1 ? ii : null;\n      } else {\n        ii = indexOf.call(this._longMonthsParse, llc);\n        return ii !== -1 ? ii : null;\n      }\n    } else {\n      if (format === 'MMM') {\n        ii = indexOf.call(this._shortMonthsParse, llc);\n\n        if (ii !== -1) {\n          return ii;\n        }\n\n        ii = indexOf.call(this._longMonthsParse, llc);\n        return ii !== -1 ? ii : null;\n      } else {\n        ii = indexOf.call(this._longMonthsParse, llc);\n\n        if (ii !== -1) {\n          return ii;\n        }\n\n        ii = indexOf.call(this._shortMonthsParse, llc);\n        return ii !== -1 ? ii : null;\n      }\n    }\n  }\n\n  function localeMonthsParse(monthName, format, strict) {\n    var i, mom, regex;\n\n    if (this._monthsParseExact) {\n      return handleStrictParse.call(this, monthName, format, strict);\n    }\n\n    if (!this._monthsParse) {\n      this._monthsParse = [];\n      this._longMonthsParse = [];\n      this._shortMonthsParse = [];\n    } // TODO: add sorting\n    // Sorting makes sure if one month (or abbr) is a prefix of another\n    // see sorting in computeMonthsParse\n\n\n    for (i = 0; i < 12; i++) {\n      // make the regex if we don't have it already\n      mom = createUTC([2000, i]);\n\n      if (strict && !this._longMonthsParse[i]) {\n        this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n        this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n      }\n\n      if (!strict && !this._monthsParse[i]) {\n        regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n        this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n      } // test the regex\n\n\n      if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n        return i;\n      } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n        return i;\n      } else if (!strict && this._monthsParse[i].test(monthName)) {\n        return i;\n      }\n    }\n  } // MOMENTS\n\n\n  function setMonth(mom, value) {\n    var dayOfMonth;\n\n    if (!mom.isValid()) {\n      // No op\n      return mom;\n    }\n\n    if (typeof value === 'string') {\n      if (/^\\d+$/.test(value)) {\n        value = toInt(value);\n      } else {\n        value = mom.localeData().monthsParse(value); // TODO: Another silent failure?\n\n        if (!isNumber(value)) {\n          return mom;\n        }\n      }\n    }\n\n    dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n\n    mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n\n    return mom;\n  }\n\n  function getSetMonth(value) {\n    if (value != null) {\n      setMonth(this, value);\n      hooks.updateOffset(this, true);\n      return this;\n    } else {\n      return get(this, 'Month');\n    }\n  }\n\n  function getDaysInMonth() {\n    return daysInMonth(this.year(), this.month());\n  }\n\n  function monthsShortRegex(isStrict) {\n    if (this._monthsParseExact) {\n      if (!hasOwnProp(this, '_monthsRegex')) {\n        computeMonthsParse.call(this);\n      }\n\n      if (isStrict) {\n        return this._monthsShortStrictRegex;\n      } else {\n        return this._monthsShortRegex;\n      }\n    } else {\n      if (!hasOwnProp(this, '_monthsShortRegex')) {\n        this._monthsShortRegex = defaultMonthsShortRegex;\n      }\n\n      return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n    }\n  }\n\n  function monthsRegex(isStrict) {\n    if (this._monthsParseExact) {\n      if (!hasOwnProp(this, '_monthsRegex')) {\n        computeMonthsParse.call(this);\n      }\n\n      if (isStrict) {\n        return this._monthsStrictRegex;\n      } else {\n        return this._monthsRegex;\n      }\n    } else {\n      if (!hasOwnProp(this, '_monthsRegex')) {\n        this._monthsRegex = defaultMonthsRegex;\n      }\n\n      return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n    }\n  }\n\n  function computeMonthsParse() {\n    function cmpLenRev(a, b) {\n      return b.length - a.length;\n    }\n\n    var shortPieces = [],\n        longPieces = [],\n        mixedPieces = [],\n        i,\n        mom;\n\n    for (i = 0; i < 12; i++) {\n      // make the regex if we don't have it already\n      mom = createUTC([2000, i]);\n      shortPieces.push(this.monthsShort(mom, ''));\n      longPieces.push(this.months(mom, ''));\n      mixedPieces.push(this.months(mom, ''));\n      mixedPieces.push(this.monthsShort(mom, ''));\n    } // Sorting makes sure if one month (or abbr) is a prefix of another it\n    // will match the longer piece.\n\n\n    shortPieces.sort(cmpLenRev);\n    longPieces.sort(cmpLenRev);\n    mixedPieces.sort(cmpLenRev);\n\n    for (i = 0; i < 12; i++) {\n      shortPieces[i] = regexEscape(shortPieces[i]);\n      longPieces[i] = regexEscape(longPieces[i]);\n    }\n\n    for (i = 0; i < 24; i++) {\n      mixedPieces[i] = regexEscape(mixedPieces[i]);\n    }\n\n    this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n    this._monthsShortRegex = this._monthsRegex;\n    this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n    this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n  } // FORMATTING\n\n\n  addFormatToken('Y', 0, 0, function () {\n    var y = this.year();\n    return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n  });\n  addFormatToken(0, ['YY', 2], 0, function () {\n    return this.year() % 100;\n  });\n  addFormatToken(0, ['YYYY', 4], 0, 'year');\n  addFormatToken(0, ['YYYYY', 5], 0, 'year');\n  addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES\n\n  addUnitAlias('year', 'y'); // PRIORITIES\n\n  addUnitPriority('year', 1); // PARSING\n\n  addRegexToken('Y', matchSigned);\n  addRegexToken('YY', match1to2, match2);\n  addRegexToken('YYYY', match1to4, match4);\n  addRegexToken('YYYYY', match1to6, match6);\n  addRegexToken('YYYYYY', match1to6, match6);\n  addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n  addParseToken('YYYY', function (input, array) {\n    array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n  });\n  addParseToken('YY', function (input, array) {\n    array[YEAR] = hooks.parseTwoDigitYear(input);\n  });\n  addParseToken('Y', function (input, array) {\n    array[YEAR] = parseInt(input, 10);\n  }); // HELPERS\n\n  function daysInYear(year) {\n    return isLeapYear(year) ? 366 : 365;\n  } // HOOKS\n\n\n  hooks.parseTwoDigitYear = function (input) {\n    return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n  }; // MOMENTS\n\n\n  var getSetYear = makeGetSet('FullYear', true);\n\n  function getIsLeapYear() {\n    return isLeapYear(this.year());\n  }\n\n  function createDate(y, m, d, h, M, s, ms) {\n    // can't just apply() to create a date:\n    // https://stackoverflow.com/q/181348\n    var date; // the date constructor remaps years 0-99 to 1900-1999\n\n    if (y < 100 && y >= 0) {\n      // preserve leap years using a full 400 year cycle, then reset\n      date = new Date(y + 400, m, d, h, M, s, ms);\n\n      if (isFinite(date.getFullYear())) {\n        date.setFullYear(y);\n      }\n    } else {\n      date = new Date(y, m, d, h, M, s, ms);\n    }\n\n    return date;\n  }\n\n  function createUTCDate(y) {\n    var date, args; // the Date.UTC function remaps years 0-99 to 1900-1999\n\n    if (y < 100 && y >= 0) {\n      args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset\n\n      args[0] = y + 400;\n      date = new Date(Date.UTC.apply(null, args));\n\n      if (isFinite(date.getUTCFullYear())) {\n        date.setUTCFullYear(y);\n      }\n    } else {\n      date = new Date(Date.UTC.apply(null, arguments));\n    }\n\n    return date;\n  } // start-of-first-week - start-of-year\n\n\n  function firstWeekOffset(year, dow, doy) {\n    var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n    fwd = 7 + dow - doy,\n        // first-week day local weekday -- which local weekday is fwd\n    fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n    return -fwdlw + fwd - 1;\n  } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n\n\n  function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n    var localWeekday = (7 + weekday - dow) % 7,\n        weekOffset = firstWeekOffset(year, dow, doy),\n        dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n        resYear,\n        resDayOfYear;\n\n    if (dayOfYear <= 0) {\n      resYear = year - 1;\n      resDayOfYear = daysInYear(resYear) + dayOfYear;\n    } else if (dayOfYear > daysInYear(year)) {\n      resYear = year + 1;\n      resDayOfYear = dayOfYear - daysInYear(year);\n    } else {\n      resYear = year;\n      resDayOfYear = dayOfYear;\n    }\n\n    return {\n      year: resYear,\n      dayOfYear: resDayOfYear\n    };\n  }\n\n  function weekOfYear(mom, dow, doy) {\n    var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n        week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n        resWeek,\n        resYear;\n\n    if (week < 1) {\n      resYear = mom.year() - 1;\n      resWeek = week + weeksInYear(resYear, dow, doy);\n    } else if (week > weeksInYear(mom.year(), dow, doy)) {\n      resWeek = week - weeksInYear(mom.year(), dow, doy);\n      resYear = mom.year() + 1;\n    } else {\n      resYear = mom.year();\n      resWeek = week;\n    }\n\n    return {\n      week: resWeek,\n      year: resYear\n    };\n  }\n\n  function weeksInYear(year, dow, doy) {\n    var weekOffset = firstWeekOffset(year, dow, doy),\n        weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n    return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n  } // FORMATTING\n\n\n  addFormatToken('w', ['ww', 2], 'wo', 'week');\n  addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES\n\n  addUnitAlias('week', 'w');\n  addUnitAlias('isoWeek', 'W'); // PRIORITIES\n\n  addUnitPriority('week', 5);\n  addUnitPriority('isoWeek', 5); // PARSING\n\n  addRegexToken('w', match1to2);\n  addRegexToken('ww', match1to2, match2);\n  addRegexToken('W', match1to2);\n  addRegexToken('WW', match1to2, match2);\n  addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n    week[token.substr(0, 1)] = toInt(input);\n  }); // HELPERS\n  // LOCALES\n\n  function localeWeek(mom) {\n    return weekOfYear(mom, this._week.dow, this._week.doy).week;\n  }\n\n  var defaultLocaleWeek = {\n    dow: 0,\n    // Sunday is the first day of the week.\n    doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n  };\n\n  function localeFirstDayOfWeek() {\n    return this._week.dow;\n  }\n\n  function localeFirstDayOfYear() {\n    return this._week.doy;\n  } // MOMENTS\n\n\n  function getSetWeek(input) {\n    var week = this.localeData().week(this);\n    return input == null ? week : this.add((input - week) * 7, 'd');\n  }\n\n  function getSetISOWeek(input) {\n    var week = weekOfYear(this, 1, 4).week;\n    return input == null ? week : this.add((input - week) * 7, 'd');\n  } // FORMATTING\n\n\n  addFormatToken('d', 0, 'do', 'day');\n  addFormatToken('dd', 0, 0, function (format) {\n    return this.localeData().weekdaysMin(this, format);\n  });\n  addFormatToken('ddd', 0, 0, function (format) {\n    return this.localeData().weekdaysShort(this, format);\n  });\n  addFormatToken('dddd', 0, 0, function (format) {\n    return this.localeData().weekdays(this, format);\n  });\n  addFormatToken('e', 0, 0, 'weekday');\n  addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES\n\n  addUnitAlias('day', 'd');\n  addUnitAlias('weekday', 'e');\n  addUnitAlias('isoWeekday', 'E'); // PRIORITY\n\n  addUnitPriority('day', 11);\n  addUnitPriority('weekday', 11);\n  addUnitPriority('isoWeekday', 11); // PARSING\n\n  addRegexToken('d', match1to2);\n  addRegexToken('e', match1to2);\n  addRegexToken('E', match1to2);\n  addRegexToken('dd', function (isStrict, locale) {\n    return locale.weekdaysMinRegex(isStrict);\n  });\n  addRegexToken('ddd', function (isStrict, locale) {\n    return locale.weekdaysShortRegex(isStrict);\n  });\n  addRegexToken('dddd', function (isStrict, locale) {\n    return locale.weekdaysRegex(isStrict);\n  });\n  addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n    var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid\n\n\n    if (weekday != null) {\n      week.d = weekday;\n    } else {\n      getParsingFlags(config).invalidWeekday = input;\n    }\n  });\n  addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n    week[token] = toInt(input);\n  }); // HELPERS\n\n  function parseWeekday(input, locale) {\n    if (typeof input !== 'string') {\n      return input;\n    }\n\n    if (!isNaN(input)) {\n      return parseInt(input, 10);\n    }\n\n    input = locale.weekdaysParse(input);\n\n    if (typeof input === 'number') {\n      return input;\n    }\n\n    return null;\n  }\n\n  function parseIsoWeekday(input, locale) {\n    if (typeof input === 'string') {\n      return locale.weekdaysParse(input) % 7 || 7;\n    }\n\n    return isNaN(input) ? null : input;\n  } // LOCALES\n\n\n  function shiftWeekdays(ws, n) {\n    return ws.slice(n, 7).concat(ws.slice(0, n));\n  }\n\n  var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n      defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n      defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n      defaultWeekdaysRegex = matchWord,\n      defaultWeekdaysShortRegex = matchWord,\n      defaultWeekdaysMinRegex = matchWord;\n\n  function localeWeekdays(m, format) {\n    var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n    return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n  }\n\n  function localeWeekdaysShort(m) {\n    return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n  }\n\n  function localeWeekdaysMin(m) {\n    return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n  }\n\n  function handleStrictParse$1(weekdayName, format, strict) {\n    var i,\n        ii,\n        mom,\n        llc = weekdayName.toLocaleLowerCase();\n\n    if (!this._weekdaysParse) {\n      this._weekdaysParse = [];\n      this._shortWeekdaysParse = [];\n      this._minWeekdaysParse = [];\n\n      for (i = 0; i < 7; ++i) {\n        mom = createUTC([2000, 1]).day(i);\n        this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n        this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n        this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n      }\n    }\n\n    if (strict) {\n      if (format === 'dddd') {\n        ii = indexOf.call(this._weekdaysParse, llc);\n        return ii !== -1 ? ii : null;\n      } else if (format === 'ddd') {\n        ii = indexOf.call(this._shortWeekdaysParse, llc);\n        return ii !== -1 ? ii : null;\n      } else {\n        ii = indexOf.call(this._minWeekdaysParse, llc);\n        return ii !== -1 ? ii : null;\n      }\n    } else {\n      if (format === 'dddd') {\n        ii = indexOf.call(this._weekdaysParse, llc);\n\n        if (ii !== -1) {\n          return ii;\n        }\n\n        ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n        if (ii !== -1) {\n          return ii;\n        }\n\n        ii = indexOf.call(this._minWeekdaysParse, llc);\n        return ii !== -1 ? ii : null;\n      } else if (format === 'ddd') {\n        ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n        if (ii !== -1) {\n          return ii;\n        }\n\n        ii = indexOf.call(this._weekdaysParse, llc);\n\n        if (ii !== -1) {\n          return ii;\n        }\n\n        ii = indexOf.call(this._minWeekdaysParse, llc);\n        return ii !== -1 ? ii : null;\n      } else {\n        ii = indexOf.call(this._minWeekdaysParse, llc);\n\n        if (ii !== -1) {\n          return ii;\n        }\n\n        ii = indexOf.call(this._weekdaysParse, llc);\n\n        if (ii !== -1) {\n          return ii;\n        }\n\n        ii = indexOf.call(this._shortWeekdaysParse, llc);\n        return ii !== -1 ? ii : null;\n      }\n    }\n  }\n\n  function localeWeekdaysParse(weekdayName, format, strict) {\n    var i, mom, regex;\n\n    if (this._weekdaysParseExact) {\n      return handleStrictParse$1.call(this, weekdayName, format, strict);\n    }\n\n    if (!this._weekdaysParse) {\n      this._weekdaysParse = [];\n      this._minWeekdaysParse = [];\n      this._shortWeekdaysParse = [];\n      this._fullWeekdaysParse = [];\n    }\n\n    for (i = 0; i < 7; i++) {\n      // make the regex if we don't have it already\n      mom = createUTC([2000, 1]).day(i);\n\n      if (strict && !this._fullWeekdaysParse[i]) {\n        this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n        this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n        this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n      }\n\n      if (!this._weekdaysParse[i]) {\n        regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n        this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n      } // test the regex\n\n\n      if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n        return i;\n      } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n        return i;\n      } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n        return i;\n      } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n        return i;\n      }\n    }\n  } // MOMENTS\n\n\n  function getSetDayOfWeek(input) {\n    if (!this.isValid()) {\n      return input != null ? this : NaN;\n    }\n\n    var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n\n    if (input != null) {\n      input = parseWeekday(input, this.localeData());\n      return this.add(input - day, 'd');\n    } else {\n      return day;\n    }\n  }\n\n  function getSetLocaleDayOfWeek(input) {\n    if (!this.isValid()) {\n      return input != null ? this : NaN;\n    }\n\n    var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n    return input == null ? weekday : this.add(input - weekday, 'd');\n  }\n\n  function getSetISODayOfWeek(input) {\n    if (!this.isValid()) {\n      return input != null ? this : NaN;\n    } // behaves the same as moment#day except\n    // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n    // as a setter, sunday should belong to the previous week.\n\n\n    if (input != null) {\n      var weekday = parseIsoWeekday(input, this.localeData());\n      return this.day(this.day() % 7 ? weekday : weekday - 7);\n    } else {\n      return this.day() || 7;\n    }\n  }\n\n  function weekdaysRegex(isStrict) {\n    if (this._weekdaysParseExact) {\n      if (!hasOwnProp(this, '_weekdaysRegex')) {\n        computeWeekdaysParse.call(this);\n      }\n\n      if (isStrict) {\n        return this._weekdaysStrictRegex;\n      } else {\n        return this._weekdaysRegex;\n      }\n    } else {\n      if (!hasOwnProp(this, '_weekdaysRegex')) {\n        this._weekdaysRegex = defaultWeekdaysRegex;\n      }\n\n      return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n    }\n  }\n\n  function weekdaysShortRegex(isStrict) {\n    if (this._weekdaysParseExact) {\n      if (!hasOwnProp(this, '_weekdaysRegex')) {\n        computeWeekdaysParse.call(this);\n      }\n\n      if (isStrict) {\n        return this._weekdaysShortStrictRegex;\n      } else {\n        return this._weekdaysShortRegex;\n      }\n    } else {\n      if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n        this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n      }\n\n      return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n    }\n  }\n\n  function weekdaysMinRegex(isStrict) {\n    if (this._weekdaysParseExact) {\n      if (!hasOwnProp(this, '_weekdaysRegex')) {\n        computeWeekdaysParse.call(this);\n      }\n\n      if (isStrict) {\n        return this._weekdaysMinStrictRegex;\n      } else {\n        return this._weekdaysMinRegex;\n      }\n    } else {\n      if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n        this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n      }\n\n      return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n    }\n  }\n\n  function computeWeekdaysParse() {\n    function cmpLenRev(a, b) {\n      return b.length - a.length;\n    }\n\n    var minPieces = [],\n        shortPieces = [],\n        longPieces = [],\n        mixedPieces = [],\n        i,\n        mom,\n        minp,\n        shortp,\n        longp;\n\n    for (i = 0; i < 7; i++) {\n      // make the regex if we don't have it already\n      mom = createUTC([2000, 1]).day(i);\n      minp = regexEscape(this.weekdaysMin(mom, ''));\n      shortp = regexEscape(this.weekdaysShort(mom, ''));\n      longp = regexEscape(this.weekdays(mom, ''));\n      minPieces.push(minp);\n      shortPieces.push(shortp);\n      longPieces.push(longp);\n      mixedPieces.push(minp);\n      mixedPieces.push(shortp);\n      mixedPieces.push(longp);\n    } // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n    // will match the longer piece.\n\n\n    minPieces.sort(cmpLenRev);\n    shortPieces.sort(cmpLenRev);\n    longPieces.sort(cmpLenRev);\n    mixedPieces.sort(cmpLenRev);\n    this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n    this._weekdaysShortRegex = this._weekdaysRegex;\n    this._weekdaysMinRegex = this._weekdaysRegex;\n    this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n    this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n    this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n  } // FORMATTING\n\n\n  function hFormat() {\n    return this.hours() % 12 || 12;\n  }\n\n  function kFormat() {\n    return this.hours() || 24;\n  }\n\n  addFormatToken('H', ['HH', 2], 0, 'hour');\n  addFormatToken('h', ['hh', 2], 0, hFormat);\n  addFormatToken('k', ['kk', 2], 0, kFormat);\n  addFormatToken('hmm', 0, 0, function () {\n    return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n  });\n  addFormatToken('hmmss', 0, 0, function () {\n    return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n  });\n  addFormatToken('Hmm', 0, 0, function () {\n    return '' + this.hours() + zeroFill(this.minutes(), 2);\n  });\n  addFormatToken('Hmmss', 0, 0, function () {\n    return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n  });\n\n  function meridiem(token, lowercase) {\n    addFormatToken(token, 0, 0, function () {\n      return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n    });\n  }\n\n  meridiem('a', true);\n  meridiem('A', false); // ALIASES\n\n  addUnitAlias('hour', 'h'); // PRIORITY\n\n  addUnitPriority('hour', 13); // PARSING\n\n  function matchMeridiem(isStrict, locale) {\n    return locale._meridiemParse;\n  }\n\n  addRegexToken('a', matchMeridiem);\n  addRegexToken('A', matchMeridiem);\n  addRegexToken('H', match1to2);\n  addRegexToken('h', match1to2);\n  addRegexToken('k', match1to2);\n  addRegexToken('HH', match1to2, match2);\n  addRegexToken('hh', match1to2, match2);\n  addRegexToken('kk', match1to2, match2);\n  addRegexToken('hmm', match3to4);\n  addRegexToken('hmmss', match5to6);\n  addRegexToken('Hmm', match3to4);\n  addRegexToken('Hmmss', match5to6);\n  addParseToken(['H', 'HH'], HOUR);\n  addParseToken(['k', 'kk'], function (input, array, config) {\n    var kInput = toInt(input);\n    array[HOUR] = kInput === 24 ? 0 : kInput;\n  });\n  addParseToken(['a', 'A'], function (input, array, config) {\n    config._isPm = config._locale.isPM(input);\n    config._meridiem = input;\n  });\n  addParseToken(['h', 'hh'], function (input, array, config) {\n    array[HOUR] = toInt(input);\n    getParsingFlags(config).bigHour = true;\n  });\n  addParseToken('hmm', function (input, array, config) {\n    var pos = input.length - 2;\n    array[HOUR] = toInt(input.substr(0, pos));\n    array[MINUTE] = toInt(input.substr(pos));\n    getParsingFlags(config).bigHour = true;\n  });\n  addParseToken('hmmss', function (input, array, config) {\n    var pos1 = input.length - 4,\n        pos2 = input.length - 2;\n    array[HOUR] = toInt(input.substr(0, pos1));\n    array[MINUTE] = toInt(input.substr(pos1, 2));\n    array[SECOND] = toInt(input.substr(pos2));\n    getParsingFlags(config).bigHour = true;\n  });\n  addParseToken('Hmm', function (input, array, config) {\n    var pos = input.length - 2;\n    array[HOUR] = toInt(input.substr(0, pos));\n    array[MINUTE] = toInt(input.substr(pos));\n  });\n  addParseToken('Hmmss', function (input, array, config) {\n    var pos1 = input.length - 4,\n        pos2 = input.length - 2;\n    array[HOUR] = toInt(input.substr(0, pos1));\n    array[MINUTE] = toInt(input.substr(pos1, 2));\n    array[SECOND] = toInt(input.substr(pos2));\n  }); // LOCALES\n\n  function localeIsPM(input) {\n    // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n    // Using charAt should be more compatible.\n    return (input + '').toLowerCase().charAt(0) === 'p';\n  }\n\n  var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n      // Setting the hour should keep the time, because the user explicitly\n  // specified which hour they want. So trying to maintain the same hour (in\n  // a new timezone) makes sense. Adding/subtracting hours does not follow\n  // this rule.\n  getSetHour = makeGetSet('Hours', true);\n\n  function localeMeridiem(hours, minutes, isLower) {\n    if (hours > 11) {\n      return isLower ? 'pm' : 'PM';\n    } else {\n      return isLower ? 'am' : 'AM';\n    }\n  }\n\n  var baseConfig = {\n    calendar: defaultCalendar,\n    longDateFormat: defaultLongDateFormat,\n    invalidDate: defaultInvalidDate,\n    ordinal: defaultOrdinal,\n    dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n    relativeTime: defaultRelativeTime,\n    months: defaultLocaleMonths,\n    monthsShort: defaultLocaleMonthsShort,\n    week: defaultLocaleWeek,\n    weekdays: defaultLocaleWeekdays,\n    weekdaysMin: defaultLocaleWeekdaysMin,\n    weekdaysShort: defaultLocaleWeekdaysShort,\n    meridiemParse: defaultLocaleMeridiemParse\n  }; // internal storage for locale config files\n\n  var locales = {},\n      localeFamilies = {},\n      globalLocale;\n\n  function commonPrefix(arr1, arr2) {\n    var i,\n        minl = Math.min(arr1.length, arr2.length);\n\n    for (i = 0; i < minl; i += 1) {\n      if (arr1[i] !== arr2[i]) {\n        return i;\n      }\n    }\n\n    return minl;\n  }\n\n  function normalizeLocale(key) {\n    return key ? key.toLowerCase().replace('_', '-') : key;\n  } // pick the locale from the array\n  // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n  // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n\n\n  function chooseLocale(names) {\n    var i = 0,\n        j,\n        next,\n        locale,\n        split;\n\n    while (i < names.length) {\n      split = normalizeLocale(names[i]).split('-');\n      j = split.length;\n      next = normalizeLocale(names[i + 1]);\n      next = next ? next.split('-') : null;\n\n      while (j > 0) {\n        locale = loadLocale(split.slice(0, j).join('-'));\n\n        if (locale) {\n          return locale;\n        }\n\n        if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n          //the next array item is better than a shallower substring of this one\n          break;\n        }\n\n        j--;\n      }\n\n      i++;\n    }\n\n    return globalLocale;\n  }\n\n  function isLocaleNameSane(name) {\n    // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n    return name.match('^[^/\\\\\\\\]*$') != null;\n  }\n\n  function loadLocale(name) {\n    var oldLocale = null,\n        aliasedRequire; // TODO: Find a better way to register and load all the locales in Node\n\n    if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports && isLocaleNameSane(name)) {\n      try {\n        oldLocale = globalLocale._abbr;\n        aliasedRequire = require;\n        __webpack_require__(\"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\")(\"./\" + name);\n        getSetGlobalLocale(oldLocale);\n      } catch (e) {\n        // mark as not found to avoid repeating expensive file require call causing high CPU\n        // when trying to find en-US, en_US, en-us for every format call\n        locales[name] = null; // null means not found\n      }\n    }\n\n    return locales[name];\n  } // This function will load locale and then set the global locale.  If\n  // no arguments are passed in, it will simply return the current global\n  // locale key.\n\n\n  function getSetGlobalLocale(key, values) {\n    var data;\n\n    if (key) {\n      if (isUndefined(values)) {\n        data = getLocale(key);\n      } else {\n        data = defineLocale(key, values);\n      }\n\n      if (data) {\n        // moment.duration._locale = moment._locale = data;\n        globalLocale = data;\n      } else {\n        if (typeof console !== 'undefined' && console.warn) {\n          //warn user if arguments are passed but the locale could not be set\n          console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n        }\n      }\n    }\n\n    return globalLocale._abbr;\n  }\n\n  function defineLocale(name, config) {\n    if (config !== null) {\n      var locale,\n          parentConfig = baseConfig;\n      config.abbr = name;\n\n      if (locales[name] != null) {\n        deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n        parentConfig = locales[name]._config;\n      } else if (config.parentLocale != null) {\n        if (locales[config.parentLocale] != null) {\n          parentConfig = locales[config.parentLocale]._config;\n        } else {\n          locale = loadLocale(config.parentLocale);\n\n          if (locale != null) {\n            parentConfig = locale._config;\n          } else {\n            if (!localeFamilies[config.parentLocale]) {\n              localeFamilies[config.parentLocale] = [];\n            }\n\n            localeFamilies[config.parentLocale].push({\n              name: name,\n              config: config\n            });\n            return null;\n          }\n        }\n      }\n\n      locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n      if (localeFamilies[name]) {\n        localeFamilies[name].forEach(function (x) {\n          defineLocale(x.name, x.config);\n        });\n      } // backwards compat for now: also set the locale\n      // make sure we set the locale AFTER all child locales have been\n      // created, so we won't end up with the child locale set.\n\n\n      getSetGlobalLocale(name);\n      return locales[name];\n    } else {\n      // useful for testing\n      delete locales[name];\n      return null;\n    }\n  }\n\n  function updateLocale(name, config) {\n    if (config != null) {\n      var locale,\n          tmpLocale,\n          parentConfig = baseConfig;\n\n      if (locales[name] != null && locales[name].parentLocale != null) {\n        // Update existing child locale in-place to avoid memory-leaks\n        locales[name].set(mergeConfigs(locales[name]._config, config));\n      } else {\n        // MERGE\n        tmpLocale = loadLocale(name);\n\n        if (tmpLocale != null) {\n          parentConfig = tmpLocale._config;\n        }\n\n        config = mergeConfigs(parentConfig, config);\n\n        if (tmpLocale == null) {\n          // updateLocale is called for creating a new locale\n          // Set abbr so it will have a name (getters return\n          // undefined otherwise).\n          config.abbr = name;\n        }\n\n        locale = new Locale(config);\n        locale.parentLocale = locales[name];\n        locales[name] = locale;\n      } // backwards compat for now: also set the locale\n\n\n      getSetGlobalLocale(name);\n    } else {\n      // pass null for config to unupdate, useful for tests\n      if (locales[name] != null) {\n        if (locales[name].parentLocale != null) {\n          locales[name] = locales[name].parentLocale;\n\n          if (name === getSetGlobalLocale()) {\n            getSetGlobalLocale(name);\n          }\n        } else if (locales[name] != null) {\n          delete locales[name];\n        }\n      }\n    }\n\n    return locales[name];\n  } // returns locale data\n\n\n  function getLocale(key) {\n    var locale;\n\n    if (key && key._locale && key._locale._abbr) {\n      key = key._locale._abbr;\n    }\n\n    if (!key) {\n      return globalLocale;\n    }\n\n    if (!isArray(key)) {\n      //short-circuit everything else\n      locale = loadLocale(key);\n\n      if (locale) {\n        return locale;\n      }\n\n      key = [key];\n    }\n\n    return chooseLocale(key);\n  }\n\n  function listLocales() {\n    return keys(locales);\n  }\n\n  function checkOverflow(m) {\n    var overflow,\n        a = m._a;\n\n    if (a && getParsingFlags(m).overflow === -2) {\n      overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n\n      if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n        overflow = DATE;\n      }\n\n      if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n        overflow = WEEK;\n      }\n\n      if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n        overflow = WEEKDAY;\n      }\n\n      getParsingFlags(m).overflow = overflow;\n    }\n\n    return m;\n  } // iso 8601 regex\n  // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n\n\n  var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n      basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n      tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n      isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n      // iso time formats and regexes\n  isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n      aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n      // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n  rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n      obsOffsets = {\n    UT: 0,\n    GMT: 0,\n    EDT: -4 * 60,\n    EST: -5 * 60,\n    CDT: -5 * 60,\n    CST: -6 * 60,\n    MDT: -6 * 60,\n    MST: -7 * 60,\n    PDT: -7 * 60,\n    PST: -8 * 60\n  }; // date from iso format\n\n  function configFromISO(config) {\n    var i,\n        l,\n        string = config._i,\n        match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n        allowTime,\n        dateFormat,\n        timeFormat,\n        tzFormat,\n        isoDatesLen = isoDates.length,\n        isoTimesLen = isoTimes.length;\n\n    if (match) {\n      getParsingFlags(config).iso = true;\n\n      for (i = 0, l = isoDatesLen; i < l; i++) {\n        if (isoDates[i][1].exec(match[1])) {\n          dateFormat = isoDates[i][0];\n          allowTime = isoDates[i][2] !== false;\n          break;\n        }\n      }\n\n      if (dateFormat == null) {\n        config._isValid = false;\n        return;\n      }\n\n      if (match[3]) {\n        for (i = 0, l = isoTimesLen; i < l; i++) {\n          if (isoTimes[i][1].exec(match[3])) {\n            // match[2] should be 'T' or space\n            timeFormat = (match[2] || ' ') + isoTimes[i][0];\n            break;\n          }\n        }\n\n        if (timeFormat == null) {\n          config._isValid = false;\n          return;\n        }\n      }\n\n      if (!allowTime && timeFormat != null) {\n        config._isValid = false;\n        return;\n      }\n\n      if (match[4]) {\n        if (tzRegex.exec(match[4])) {\n          tzFormat = 'Z';\n        } else {\n          config._isValid = false;\n          return;\n        }\n      }\n\n      config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n      configFromStringAndFormat(config);\n    } else {\n      config._isValid = false;\n    }\n  }\n\n  function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n    var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n\n    if (secondStr) {\n      result.push(parseInt(secondStr, 10));\n    }\n\n    return result;\n  }\n\n  function untruncateYear(yearStr) {\n    var year = parseInt(yearStr, 10);\n\n    if (year <= 49) {\n      return 2000 + year;\n    } else if (year <= 999) {\n      return 1900 + year;\n    }\n\n    return year;\n  }\n\n  function preprocessRFC2822(s) {\n    // Remove comments and folding whitespace and replace multiple-spaces with a single space\n    return s.replace(/\\([^()]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n  }\n\n  function checkWeekday(weekdayStr, parsedInput, config) {\n    if (weekdayStr) {\n      // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n      var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n          weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n\n      if (weekdayProvided !== weekdayActual) {\n        getParsingFlags(config).weekdayMismatch = true;\n        config._isValid = false;\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  function calculateOffset(obsOffset, militaryOffset, numOffset) {\n    if (obsOffset) {\n      return obsOffsets[obsOffset];\n    } else if (militaryOffset) {\n      // the only allowed military tz is Z\n      return 0;\n    } else {\n      var hm = parseInt(numOffset, 10),\n          m = hm % 100,\n          h = (hm - m) / 100;\n      return h * 60 + m;\n    }\n  } // date and time from ref 2822 format\n\n\n  function configFromRFC2822(config) {\n    var match = rfc2822.exec(preprocessRFC2822(config._i)),\n        parsedArray;\n\n    if (match) {\n      parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n\n      if (!checkWeekday(match[1], parsedArray, config)) {\n        return;\n      }\n\n      config._a = parsedArray;\n      config._tzm = calculateOffset(match[8], match[9], match[10]);\n      config._d = createUTCDate.apply(null, config._a);\n\n      config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n      getParsingFlags(config).rfc2822 = true;\n    } else {\n      config._isValid = false;\n    }\n  } // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n\n\n  function configFromString(config) {\n    var matched = aspNetJsonRegex.exec(config._i);\n\n    if (matched !== null) {\n      config._d = new Date(+matched[1]);\n      return;\n    }\n\n    configFromISO(config);\n\n    if (config._isValid === false) {\n      delete config._isValid;\n    } else {\n      return;\n    }\n\n    configFromRFC2822(config);\n\n    if (config._isValid === false) {\n      delete config._isValid;\n    } else {\n      return;\n    }\n\n    if (config._strict) {\n      config._isValid = false;\n    } else {\n      // Final attempt, use Input Fallback\n      hooks.createFromInputFallback(config);\n    }\n  }\n\n  hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n    config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n  }); // Pick the first defined of two or three arguments.\n\n  function defaults(a, b, c) {\n    if (a != null) {\n      return a;\n    }\n\n    if (b != null) {\n      return b;\n    }\n\n    return c;\n  }\n\n  function currentDateArray(config) {\n    // hooks is actually the exported moment object\n    var nowValue = new Date(hooks.now());\n\n    if (config._useUTC) {\n      return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n    }\n\n    return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n  } // convert an array to a date.\n  // the array should mirror the parameters below\n  // note: all values past the year are optional and will default to the lowest possible value.\n  // [year, month, day , hour, minute, second, millisecond]\n\n\n  function configFromArray(config) {\n    var i,\n        date,\n        input = [],\n        currentDate,\n        expectedWeekday,\n        yearToUse;\n\n    if (config._d) {\n      return;\n    }\n\n    currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays\n\n    if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n      dayOfYearFromWeekInfo(config);\n    } //if the day of the year is set, figure out what it is\n\n\n    if (config._dayOfYear != null) {\n      yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n      if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n        getParsingFlags(config)._overflowDayOfYear = true;\n      }\n\n      date = createUTCDate(yearToUse, 0, config._dayOfYear);\n      config._a[MONTH] = date.getUTCMonth();\n      config._a[DATE] = date.getUTCDate();\n    } // Default to current date.\n    // * if no year, month, day of month are given, default to today\n    // * if day of month is given, default month and year\n    // * if month is given, default only year\n    // * if year is given, don't default anything\n\n\n    for (i = 0; i < 3 && config._a[i] == null; ++i) {\n      config._a[i] = input[i] = currentDate[i];\n    } // Zero out whatever was not defaulted, including time\n\n\n    for (; i < 7; i++) {\n      config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n    } // Check for 24:00:00.000\n\n\n    if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n      config._nextDay = true;\n      config._a[HOUR] = 0;\n    }\n\n    config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n    expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed\n    // with parseZone.\n\n    if (config._tzm != null) {\n      config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n    }\n\n    if (config._nextDay) {\n      config._a[HOUR] = 24;\n    } // check for mismatching day of week\n\n\n    if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n      getParsingFlags(config).weekdayMismatch = true;\n    }\n  }\n\n  function dayOfYearFromWeekInfo(config) {\n    var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n    w = config._w;\n\n    if (w.GG != null || w.W != null || w.E != null) {\n      dow = 1;\n      doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on\n      // how we interpret now (local, utc, fixed offset). So create\n      // a now version of current config (take local/utc/offset flags, and\n      // create now).\n\n      weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n      week = defaults(w.W, 1);\n      weekday = defaults(w.E, 1);\n\n      if (weekday < 1 || weekday > 7) {\n        weekdayOverflow = true;\n      }\n    } else {\n      dow = config._locale._week.dow;\n      doy = config._locale._week.doy;\n      curWeek = weekOfYear(createLocal(), dow, doy);\n      weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week.\n\n      week = defaults(w.w, curWeek.week);\n\n      if (w.d != null) {\n        // weekday -- low day numbers are considered next week\n        weekday = w.d;\n\n        if (weekday < 0 || weekday > 6) {\n          weekdayOverflow = true;\n        }\n      } else if (w.e != null) {\n        // local weekday -- counting starts from beginning of week\n        weekday = w.e + dow;\n\n        if (w.e < 0 || w.e > 6) {\n          weekdayOverflow = true;\n        }\n      } else {\n        // default to beginning of week\n        weekday = dow;\n      }\n    }\n\n    if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n      getParsingFlags(config)._overflowWeeks = true;\n    } else if (weekdayOverflow != null) {\n      getParsingFlags(config)._overflowWeekday = true;\n    } else {\n      temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n      config._a[YEAR] = temp.year;\n      config._dayOfYear = temp.dayOfYear;\n    }\n  } // constant that refers to the ISO standard\n\n\n  hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form\n\n\n  hooks.RFC_2822 = function () {}; // date from string and format string\n\n\n  function configFromStringAndFormat(config) {\n    // TODO: Move this to another part of the creation flow to prevent circular deps\n    if (config._f === hooks.ISO_8601) {\n      configFromISO(config);\n      return;\n    }\n\n    if (config._f === hooks.RFC_2822) {\n      configFromRFC2822(config);\n      return;\n    }\n\n    config._a = [];\n    getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n    var string = '' + config._i,\n        i,\n        parsedInput,\n        tokens,\n        token,\n        skipped,\n        stringLength = string.length,\n        totalParsedInputLength = 0,\n        era,\n        tokenLen;\n    tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n    tokenLen = tokens.length;\n\n    for (i = 0; i < tokenLen; i++) {\n      token = tokens[i];\n      parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n\n      if (parsedInput) {\n        skipped = string.substr(0, string.indexOf(parsedInput));\n\n        if (skipped.length > 0) {\n          getParsingFlags(config).unusedInput.push(skipped);\n        }\n\n        string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n        totalParsedInputLength += parsedInput.length;\n      } // don't parse if it's not a known token\n\n\n      if (formatTokenFunctions[token]) {\n        if (parsedInput) {\n          getParsingFlags(config).empty = false;\n        } else {\n          getParsingFlags(config).unusedTokens.push(token);\n        }\n\n        addTimeToArrayFromToken(token, parsedInput, config);\n      } else if (config._strict && !parsedInput) {\n        getParsingFlags(config).unusedTokens.push(token);\n      }\n    } // add remaining unparsed input length to the string\n\n\n    getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n\n    if (string.length > 0) {\n      getParsingFlags(config).unusedInput.push(string);\n    } // clear _12h flag if hour is <= 12\n\n\n    if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n      getParsingFlags(config).bigHour = undefined;\n    }\n\n    getParsingFlags(config).parsedDateParts = config._a.slice(0);\n    getParsingFlags(config).meridiem = config._meridiem; // handle meridiem\n\n    config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); // handle era\n\n    era = getParsingFlags(config).era;\n\n    if (era !== null) {\n      config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n    }\n\n    configFromArray(config);\n    checkOverflow(config);\n  }\n\n  function meridiemFixWrap(locale, hour, meridiem) {\n    var isPm;\n\n    if (meridiem == null) {\n      // nothing to do\n      return hour;\n    }\n\n    if (locale.meridiemHour != null) {\n      return locale.meridiemHour(hour, meridiem);\n    } else if (locale.isPM != null) {\n      // Fallback\n      isPm = locale.isPM(meridiem);\n\n      if (isPm && hour < 12) {\n        hour += 12;\n      }\n\n      if (!isPm && hour === 12) {\n        hour = 0;\n      }\n\n      return hour;\n    } else {\n      // this is not supposed to happen\n      return hour;\n    }\n  } // date from string and array of format strings\n\n\n  function configFromStringAndArray(config) {\n    var tempConfig,\n        bestMoment,\n        scoreToBeat,\n        i,\n        currentScore,\n        validFormatFound,\n        bestFormatIsValid = false,\n        configfLen = config._f.length;\n\n    if (configfLen === 0) {\n      getParsingFlags(config).invalidFormat = true;\n      config._d = new Date(NaN);\n      return;\n    }\n\n    for (i = 0; i < configfLen; i++) {\n      currentScore = 0;\n      validFormatFound = false;\n      tempConfig = copyConfig({}, config);\n\n      if (config._useUTC != null) {\n        tempConfig._useUTC = config._useUTC;\n      }\n\n      tempConfig._f = config._f[i];\n      configFromStringAndFormat(tempConfig);\n\n      if (isValid(tempConfig)) {\n        validFormatFound = true;\n      } // if there is any input that was not parsed add a penalty for that format\n\n\n      currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens\n\n      currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n      getParsingFlags(tempConfig).score = currentScore;\n\n      if (!bestFormatIsValid) {\n        if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n          scoreToBeat = currentScore;\n          bestMoment = tempConfig;\n\n          if (validFormatFound) {\n            bestFormatIsValid = true;\n          }\n        }\n      } else {\n        if (currentScore < scoreToBeat) {\n          scoreToBeat = currentScore;\n          bestMoment = tempConfig;\n        }\n      }\n    }\n\n    extend(config, bestMoment || tempConfig);\n  }\n\n  function configFromObject(config) {\n    if (config._d) {\n      return;\n    }\n\n    var i = normalizeObjectUnits(config._i),\n        dayOrDate = i.day === undefined ? i.date : i.day;\n    config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n      return obj && parseInt(obj, 10);\n    });\n    configFromArray(config);\n  }\n\n  function createFromConfig(config) {\n    var res = new Moment(checkOverflow(prepareConfig(config)));\n\n    if (res._nextDay) {\n      // Adding is smart enough around DST\n      res.add(1, 'd');\n      res._nextDay = undefined;\n    }\n\n    return res;\n  }\n\n  function prepareConfig(config) {\n    var input = config._i,\n        format = config._f;\n    config._locale = config._locale || getLocale(config._l);\n\n    if (input === null || format === undefined && input === '') {\n      return createInvalid({\n        nullInput: true\n      });\n    }\n\n    if (typeof input === 'string') {\n      config._i = input = config._locale.preparse(input);\n    }\n\n    if (isMoment(input)) {\n      return new Moment(checkOverflow(input));\n    } else if (isDate(input)) {\n      config._d = input;\n    } else if (isArray(format)) {\n      configFromStringAndArray(config);\n    } else if (format) {\n      configFromStringAndFormat(config);\n    } else {\n      configFromInput(config);\n    }\n\n    if (!isValid(config)) {\n      config._d = null;\n    }\n\n    return config;\n  }\n\n  function configFromInput(config) {\n    var input = config._i;\n\n    if (isUndefined(input)) {\n      config._d = new Date(hooks.now());\n    } else if (isDate(input)) {\n      config._d = new Date(input.valueOf());\n    } else if (typeof input === 'string') {\n      configFromString(config);\n    } else if (isArray(input)) {\n      config._a = map(input.slice(0), function (obj) {\n        return parseInt(obj, 10);\n      });\n      configFromArray(config);\n    } else if (isObject(input)) {\n      configFromObject(config);\n    } else if (isNumber(input)) {\n      // from milliseconds\n      config._d = new Date(input);\n    } else {\n      hooks.createFromInputFallback(config);\n    }\n  }\n\n  function createLocalOrUTC(input, format, locale, strict, isUTC) {\n    var c = {};\n\n    if (format === true || format === false) {\n      strict = format;\n      format = undefined;\n    }\n\n    if (locale === true || locale === false) {\n      strict = locale;\n      locale = undefined;\n    }\n\n    if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n      input = undefined;\n    } // object construction must be done this way.\n    // https://github.com/moment/moment/issues/1423\n\n\n    c._isAMomentObject = true;\n    c._useUTC = c._isUTC = isUTC;\n    c._l = locale;\n    c._i = input;\n    c._f = format;\n    c._strict = strict;\n    return createFromConfig(c);\n  }\n\n  function createLocal(input, format, locale, strict) {\n    return createLocalOrUTC(input, format, locale, strict, false);\n  }\n\n  var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n    var other = createLocal.apply(null, arguments);\n\n    if (this.isValid() && other.isValid()) {\n      return other < this ? this : other;\n    } else {\n      return createInvalid();\n    }\n  }),\n      prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n    var other = createLocal.apply(null, arguments);\n\n    if (this.isValid() && other.isValid()) {\n      return other > this ? this : other;\n    } else {\n      return createInvalid();\n    }\n  }); // Pick a moment m from moments so that m[fn](other) is true for all\n  // other. This relies on the function fn to be transitive.\n  //\n  // moments should either be an array of moment objects or an array, whose\n  // first element is an array of moment objects.\n\n  function pickBy(fn, moments) {\n    var res, i;\n\n    if (moments.length === 1 && isArray(moments[0])) {\n      moments = moments[0];\n    }\n\n    if (!moments.length) {\n      return createLocal();\n    }\n\n    res = moments[0];\n\n    for (i = 1; i < moments.length; ++i) {\n      if (!moments[i].isValid() || moments[i][fn](res)) {\n        res = moments[i];\n      }\n    }\n\n    return res;\n  } // TODO: Use [].sort instead?\n\n\n  function min() {\n    var args = [].slice.call(arguments, 0);\n    return pickBy('isBefore', args);\n  }\n\n  function max() {\n    var args = [].slice.call(arguments, 0);\n    return pickBy('isAfter', args);\n  }\n\n  var now = function () {\n    return Date.now ? Date.now() : +new Date();\n  };\n\n  var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n  function isDurationValid(m) {\n    var key,\n        unitHasDecimal = false,\n        i,\n        orderLen = ordering.length;\n\n    for (key in m) {\n      if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n        return false;\n      }\n    }\n\n    for (i = 0; i < orderLen; ++i) {\n      if (m[ordering[i]]) {\n        if (unitHasDecimal) {\n          return false; // only allow non-integers for smallest unit\n        }\n\n        if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n          unitHasDecimal = true;\n        }\n      }\n    }\n\n    return true;\n  }\n\n  function isValid$1() {\n    return this._isValid;\n  }\n\n  function createInvalid$1() {\n    return createDuration(NaN);\n  }\n\n  function Duration(duration) {\n    var normalizedInput = normalizeObjectUnits(duration),\n        years = normalizedInput.year || 0,\n        quarters = normalizedInput.quarter || 0,\n        months = normalizedInput.month || 0,\n        weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n        days = normalizedInput.day || 0,\n        hours = normalizedInput.hour || 0,\n        minutes = normalizedInput.minute || 0,\n        seconds = normalizedInput.second || 0,\n        milliseconds = normalizedInput.millisecond || 0;\n    this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove\n\n    this._milliseconds = +milliseconds + seconds * 1e3 + // 1000\n    minutes * 6e4 + // 1000 * 60\n    hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n    // Because of dateAddRemove treats 24 hours as different from a\n    // day when working around DST, we need to store them separately\n\n    this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing\n    // which months you are are talking about, so we have to store\n    // it separately.\n\n    this._months = +months + quarters * 3 + years * 12;\n    this._data = {};\n    this._locale = getLocale();\n\n    this._bubble();\n  }\n\n  function isDuration(obj) {\n    return obj instanceof Duration;\n  }\n\n  function absRound(number) {\n    if (number < 0) {\n      return Math.round(-1 * number) * -1;\n    } else {\n      return Math.round(number);\n    }\n  } // compare two arrays, return the number of differences\n\n\n  function compareArrays(array1, array2, dontConvert) {\n    var len = Math.min(array1.length, array2.length),\n        lengthDiff = Math.abs(array1.length - array2.length),\n        diffs = 0,\n        i;\n\n    for (i = 0; i < len; i++) {\n      if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n        diffs++;\n      }\n    }\n\n    return diffs + lengthDiff;\n  } // FORMATTING\n\n\n  function offset(token, separator) {\n    addFormatToken(token, 0, 0, function () {\n      var offset = this.utcOffset(),\n          sign = '+';\n\n      if (offset < 0) {\n        offset = -offset;\n        sign = '-';\n      }\n\n      return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n    });\n  }\n\n  offset('Z', ':');\n  offset('ZZ', ''); // PARSING\n\n  addRegexToken('Z', matchShortOffset);\n  addRegexToken('ZZ', matchShortOffset);\n  addParseToken(['Z', 'ZZ'], function (input, array, config) {\n    config._useUTC = true;\n    config._tzm = offsetFromString(matchShortOffset, input);\n  }); // HELPERS\n  // timezone chunker\n  // '+10:00' > ['10',  '00']\n  // '-1530'  > ['-15', '30']\n\n  var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n  function offsetFromString(matcher, string) {\n    var matches = (string || '').match(matcher),\n        chunk,\n        parts,\n        minutes;\n\n    if (matches === null) {\n      return null;\n    }\n\n    chunk = matches[matches.length - 1] || [];\n    parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n    minutes = +(parts[1] * 60) + toInt(parts[2]);\n    return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n  } // Return a moment from input, that is local/utc/zone equivalent to model.\n\n\n  function cloneWithOffset(input, model) {\n    var res, diff;\n\n    if (model._isUTC) {\n      res = model.clone();\n      diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api.\n\n      res._d.setTime(res._d.valueOf() + diff);\n\n      hooks.updateOffset(res, false);\n      return res;\n    } else {\n      return createLocal(input).local();\n    }\n  }\n\n  function getDateOffset(m) {\n    // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n    // https://github.com/moment/moment/pull/1871\n    return -Math.round(m._d.getTimezoneOffset());\n  } // HOOKS\n  // This function will be called whenever a moment is mutated.\n  // It is intended to keep the offset in sync with the timezone.\n\n\n  hooks.updateOffset = function () {}; // MOMENTS\n  // keepLocalTime = true means only change the timezone, without\n  // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n  // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n  // +0200, so we adjust the time as needed, to be valid.\n  //\n  // Keeping the time actually adds/subtracts (one hour)\n  // from the actual represented time. That is why we call updateOffset\n  // a second time. In case it wants us to change the offset again\n  // _changeInProgress == true case, then we have to adjust, because\n  // there is no such time in the given timezone.\n\n\n  function getSetOffset(input, keepLocalTime, keepMinutes) {\n    var offset = this._offset || 0,\n        localAdjust;\n\n    if (!this.isValid()) {\n      return input != null ? this : NaN;\n    }\n\n    if (input != null) {\n      if (typeof input === 'string') {\n        input = offsetFromString(matchShortOffset, input);\n\n        if (input === null) {\n          return this;\n        }\n      } else if (Math.abs(input) < 16 && !keepMinutes) {\n        input = input * 60;\n      }\n\n      if (!this._isUTC && keepLocalTime) {\n        localAdjust = getDateOffset(this);\n      }\n\n      this._offset = input;\n      this._isUTC = true;\n\n      if (localAdjust != null) {\n        this.add(localAdjust, 'm');\n      }\n\n      if (offset !== input) {\n        if (!keepLocalTime || this._changeInProgress) {\n          addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n        } else if (!this._changeInProgress) {\n          this._changeInProgress = true;\n          hooks.updateOffset(this, true);\n          this._changeInProgress = null;\n        }\n      }\n\n      return this;\n    } else {\n      return this._isUTC ? offset : getDateOffset(this);\n    }\n  }\n\n  function getSetZone(input, keepLocalTime) {\n    if (input != null) {\n      if (typeof input !== 'string') {\n        input = -input;\n      }\n\n      this.utcOffset(input, keepLocalTime);\n      return this;\n    } else {\n      return -this.utcOffset();\n    }\n  }\n\n  function setOffsetToUTC(keepLocalTime) {\n    return this.utcOffset(0, keepLocalTime);\n  }\n\n  function setOffsetToLocal(keepLocalTime) {\n    if (this._isUTC) {\n      this.utcOffset(0, keepLocalTime);\n      this._isUTC = false;\n\n      if (keepLocalTime) {\n        this.subtract(getDateOffset(this), 'm');\n      }\n    }\n\n    return this;\n  }\n\n  function setOffsetToParsedOffset() {\n    if (this._tzm != null) {\n      this.utcOffset(this._tzm, false, true);\n    } else if (typeof this._i === 'string') {\n      var tZone = offsetFromString(matchOffset, this._i);\n\n      if (tZone != null) {\n        this.utcOffset(tZone);\n      } else {\n        this.utcOffset(0, true);\n      }\n    }\n\n    return this;\n  }\n\n  function hasAlignedHourOffset(input) {\n    if (!this.isValid()) {\n      return false;\n    }\n\n    input = input ? createLocal(input).utcOffset() : 0;\n    return (this.utcOffset() - input) % 60 === 0;\n  }\n\n  function isDaylightSavingTime() {\n    return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n  }\n\n  function isDaylightSavingTimeShifted() {\n    if (!isUndefined(this._isDSTShifted)) {\n      return this._isDSTShifted;\n    }\n\n    var c = {},\n        other;\n    copyConfig(c, this);\n    c = prepareConfig(c);\n\n    if (c._a) {\n      other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n      this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n    } else {\n      this._isDSTShifted = false;\n    }\n\n    return this._isDSTShifted;\n  }\n\n  function isLocal() {\n    return this.isValid() ? !this._isUTC : false;\n  }\n\n  function isUtcOffset() {\n    return this.isValid() ? this._isUTC : false;\n  }\n\n  function isUtc() {\n    return this.isValid() ? this._isUTC && this._offset === 0 : false;\n  } // ASP.NET json date format regex\n\n\n  var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n      // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n  // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n  // and further modified to allow for strings containing both week and day\n  isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n  function createDuration(input, key) {\n    var duration = input,\n        // matching against regexp is expensive, do it on demand\n    match = null,\n        sign,\n        ret,\n        diffRes;\n\n    if (isDuration(input)) {\n      duration = {\n        ms: input._milliseconds,\n        d: input._days,\n        M: input._months\n      };\n    } else if (isNumber(input) || !isNaN(+input)) {\n      duration = {};\n\n      if (key) {\n        duration[key] = +input;\n      } else {\n        duration.milliseconds = +input;\n      }\n    } else if (match = aspNetRegex.exec(input)) {\n      sign = match[1] === '-' ? -1 : 1;\n      duration = {\n        y: 0,\n        d: toInt(match[DATE]) * sign,\n        h: toInt(match[HOUR]) * sign,\n        m: toInt(match[MINUTE]) * sign,\n        s: toInt(match[SECOND]) * sign,\n        ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n\n      };\n    } else if (match = isoRegex.exec(input)) {\n      sign = match[1] === '-' ? -1 : 1;\n      duration = {\n        y: parseIso(match[2], sign),\n        M: parseIso(match[3], sign),\n        w: parseIso(match[4], sign),\n        d: parseIso(match[5], sign),\n        h: parseIso(match[6], sign),\n        m: parseIso(match[7], sign),\n        s: parseIso(match[8], sign)\n      };\n    } else if (duration == null) {\n      // checks for null or undefined\n      duration = {};\n    } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n      diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n      duration = {};\n      duration.ms = diffRes.milliseconds;\n      duration.M = diffRes.months;\n    }\n\n    ret = new Duration(duration);\n\n    if (isDuration(input) && hasOwnProp(input, '_locale')) {\n      ret._locale = input._locale;\n    }\n\n    if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n      ret._isValid = input._isValid;\n    }\n\n    return ret;\n  }\n\n  createDuration.fn = Duration.prototype;\n  createDuration.invalid = createInvalid$1;\n\n  function parseIso(inp, sign) {\n    // We'd normally use ~~inp for this, but unfortunately it also\n    // converts floats to ints.\n    // inp may be undefined, so careful calling replace on it.\n    var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it\n\n    return (isNaN(res) ? 0 : res) * sign;\n  }\n\n  function positiveMomentsDifference(base, other) {\n    var res = {};\n    res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n\n    if (base.clone().add(res.months, 'M').isAfter(other)) {\n      --res.months;\n    }\n\n    res.milliseconds = +other - +base.clone().add(res.months, 'M');\n    return res;\n  }\n\n  function momentsDifference(base, other) {\n    var res;\n\n    if (!(base.isValid() && other.isValid())) {\n      return {\n        milliseconds: 0,\n        months: 0\n      };\n    }\n\n    other = cloneWithOffset(other, base);\n\n    if (base.isBefore(other)) {\n      res = positiveMomentsDifference(base, other);\n    } else {\n      res = positiveMomentsDifference(other, base);\n      res.milliseconds = -res.milliseconds;\n      res.months = -res.months;\n    }\n\n    return res;\n  } // TODO: remove 'name' arg after deprecation is removed\n\n\n  function createAdder(direction, name) {\n    return function (val, period) {\n      var dur, tmp; //invert the arguments, but complain about it\n\n      if (period !== null && !isNaN(+period)) {\n        deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n        tmp = val;\n        val = period;\n        period = tmp;\n      }\n\n      dur = createDuration(val, period);\n      addSubtract(this, dur, direction);\n      return this;\n    };\n  }\n\n  function addSubtract(mom, duration, isAdding, updateOffset) {\n    var milliseconds = duration._milliseconds,\n        days = absRound(duration._days),\n        months = absRound(duration._months);\n\n    if (!mom.isValid()) {\n      // No op\n      return;\n    }\n\n    updateOffset = updateOffset == null ? true : updateOffset;\n\n    if (months) {\n      setMonth(mom, get(mom, 'Month') + months * isAdding);\n    }\n\n    if (days) {\n      set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n    }\n\n    if (milliseconds) {\n      mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n    }\n\n    if (updateOffset) {\n      hooks.updateOffset(mom, days || months);\n    }\n  }\n\n  var add = createAdder(1, 'add'),\n      subtract = createAdder(-1, 'subtract');\n\n  function isString(input) {\n    return typeof input === 'string' || input instanceof String;\n  } // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n\n\n  function isMomentInput(input) {\n    return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n  }\n\n  function isMomentInputObject(input) {\n    var objectTest = isObject(input) && !isObjectEmpty(input),\n        propertyTest = false,\n        properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n        i,\n        property,\n        propertyLen = properties.length;\n\n    for (i = 0; i < propertyLen; i += 1) {\n      property = properties[i];\n      propertyTest = propertyTest || hasOwnProp(input, property);\n    }\n\n    return objectTest && propertyTest;\n  }\n\n  function isNumberOrStringArray(input) {\n    var arrayTest = isArray(input),\n        dataTypeTest = false;\n\n    if (arrayTest) {\n      dataTypeTest = input.filter(function (item) {\n        return !isNumber(item) && isString(input);\n      }).length === 0;\n    }\n\n    return arrayTest && dataTypeTest;\n  }\n\n  function isCalendarSpec(input) {\n    var objectTest = isObject(input) && !isObjectEmpty(input),\n        propertyTest = false,\n        properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n        i,\n        property;\n\n    for (i = 0; i < properties.length; i += 1) {\n      property = properties[i];\n      propertyTest = propertyTest || hasOwnProp(input, property);\n    }\n\n    return objectTest && propertyTest;\n  }\n\n  function getCalendarFormat(myMoment, now) {\n    var diff = myMoment.diff(now, 'days', true);\n    return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n  }\n\n  function calendar$1(time, formats) {\n    // Support for single parameter, formats only overload to the calendar function\n    if (arguments.length === 1) {\n      if (!arguments[0]) {\n        time = undefined;\n        formats = undefined;\n      } else if (isMomentInput(arguments[0])) {\n        time = arguments[0];\n        formats = undefined;\n      } else if (isCalendarSpec(arguments[0])) {\n        formats = arguments[0];\n        time = undefined;\n      }\n    } // We want to compare the start of today, vs this.\n    // Getting start-of-today depends on whether we're local/utc/offset or not.\n\n\n    var now = time || createLocal(),\n        sod = cloneWithOffset(now, this).startOf('day'),\n        format = hooks.calendarFormat(this, sod) || 'sameElse',\n        output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n    return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n  }\n\n  function clone() {\n    return new Moment(this);\n  }\n\n  function isAfter(input, units) {\n    var localInput = isMoment(input) ? input : createLocal(input);\n\n    if (!(this.isValid() && localInput.isValid())) {\n      return false;\n    }\n\n    units = normalizeUnits(units) || 'millisecond';\n\n    if (units === 'millisecond') {\n      return this.valueOf() > localInput.valueOf();\n    } else {\n      return localInput.valueOf() < this.clone().startOf(units).valueOf();\n    }\n  }\n\n  function isBefore(input, units) {\n    var localInput = isMoment(input) ? input : createLocal(input);\n\n    if (!(this.isValid() && localInput.isValid())) {\n      return false;\n    }\n\n    units = normalizeUnits(units) || 'millisecond';\n\n    if (units === 'millisecond') {\n      return this.valueOf() < localInput.valueOf();\n    } else {\n      return this.clone().endOf(units).valueOf() < localInput.valueOf();\n    }\n  }\n\n  function isBetween(from, to, units, inclusivity) {\n    var localFrom = isMoment(from) ? from : createLocal(from),\n        localTo = isMoment(to) ? to : createLocal(to);\n\n    if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n      return false;\n    }\n\n    inclusivity = inclusivity || '()';\n    return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n  }\n\n  function isSame(input, units) {\n    var localInput = isMoment(input) ? input : createLocal(input),\n        inputMs;\n\n    if (!(this.isValid() && localInput.isValid())) {\n      return false;\n    }\n\n    units = normalizeUnits(units) || 'millisecond';\n\n    if (units === 'millisecond') {\n      return this.valueOf() === localInput.valueOf();\n    } else {\n      inputMs = localInput.valueOf();\n      return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n    }\n  }\n\n  function isSameOrAfter(input, units) {\n    return this.isSame(input, units) || this.isAfter(input, units);\n  }\n\n  function isSameOrBefore(input, units) {\n    return this.isSame(input, units) || this.isBefore(input, units);\n  }\n\n  function diff(input, units, asFloat) {\n    var that, zoneDelta, output;\n\n    if (!this.isValid()) {\n      return NaN;\n    }\n\n    that = cloneWithOffset(input, this);\n\n    if (!that.isValid()) {\n      return NaN;\n    }\n\n    zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n    units = normalizeUnits(units);\n\n    switch (units) {\n      case 'year':\n        output = monthDiff(this, that) / 12;\n        break;\n\n      case 'month':\n        output = monthDiff(this, that);\n        break;\n\n      case 'quarter':\n        output = monthDiff(this, that) / 3;\n        break;\n\n      case 'second':\n        output = (this - that) / 1e3;\n        break;\n      // 1000\n\n      case 'minute':\n        output = (this - that) / 6e4;\n        break;\n      // 1000 * 60\n\n      case 'hour':\n        output = (this - that) / 36e5;\n        break;\n      // 1000 * 60 * 60\n\n      case 'day':\n        output = (this - that - zoneDelta) / 864e5;\n        break;\n      // 1000 * 60 * 60 * 24, negate dst\n\n      case 'week':\n        output = (this - that - zoneDelta) / 6048e5;\n        break;\n      // 1000 * 60 * 60 * 24 * 7, negate dst\n\n      default:\n        output = this - that;\n    }\n\n    return asFloat ? output : absFloor(output);\n  }\n\n  function monthDiff(a, b) {\n    if (a.date() < b.date()) {\n      // end-of-month calculations work correct when the start month has more\n      // days than the end month.\n      return -monthDiff(b, a);\n    } // difference in months\n\n\n    var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n        // b is in (anchor - 1 month, anchor + 1 month)\n    anchor = a.clone().add(wholeMonthDiff, 'months'),\n        anchor2,\n        adjust;\n\n    if (b - anchor < 0) {\n      anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month\n\n      adjust = (b - anchor) / (anchor - anchor2);\n    } else {\n      anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month\n\n      adjust = (b - anchor) / (anchor2 - anchor);\n    } //check for negative zero, return zero if negative zero\n\n\n    return -(wholeMonthDiff + adjust) || 0;\n  }\n\n  hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n  hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n  function toString() {\n    return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n  }\n\n  function toISOString(keepOffset) {\n    if (!this.isValid()) {\n      return null;\n    }\n\n    var utc = keepOffset !== true,\n        m = utc ? this.clone().utc() : this;\n\n    if (m.year() < 0 || m.year() > 9999) {\n      return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n    }\n\n    if (isFunction(Date.prototype.toISOString)) {\n      // native implementation is ~50x faster, use it when we can\n      if (utc) {\n        return this.toDate().toISOString();\n      } else {\n        return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n      }\n    }\n\n    return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n  }\n  /**\n   * Return a human readable representation of a moment that can\n   * also be evaluated to get a new moment which is the same\n   *\n   * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n   */\n\n\n  function inspect() {\n    if (!this.isValid()) {\n      return 'moment.invalid(/* ' + this._i + ' */)';\n    }\n\n    var func = 'moment',\n        zone = '',\n        prefix,\n        year,\n        datetime,\n        suffix;\n\n    if (!this.isLocal()) {\n      func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n      zone = 'Z';\n    }\n\n    prefix = '[' + func + '(\"]';\n    year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n    datetime = '-MM-DD[T]HH:mm:ss.SSS';\n    suffix = zone + '[\")]';\n    return this.format(prefix + year + datetime + suffix);\n  }\n\n  function format(inputString) {\n    if (!inputString) {\n      inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n    }\n\n    var output = formatMoment(this, inputString);\n    return this.localeData().postformat(output);\n  }\n\n  function from(time, withoutSuffix) {\n    if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n      return createDuration({\n        to: this,\n        from: time\n      }).locale(this.locale()).humanize(!withoutSuffix);\n    } else {\n      return this.localeData().invalidDate();\n    }\n  }\n\n  function fromNow(withoutSuffix) {\n    return this.from(createLocal(), withoutSuffix);\n  }\n\n  function to(time, withoutSuffix) {\n    if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n      return createDuration({\n        from: this,\n        to: time\n      }).locale(this.locale()).humanize(!withoutSuffix);\n    } else {\n      return this.localeData().invalidDate();\n    }\n  }\n\n  function toNow(withoutSuffix) {\n    return this.to(createLocal(), withoutSuffix);\n  } // If passed a locale key, it will set the locale for this\n  // instance.  Otherwise, it will return the locale configuration\n  // variables for this instance.\n\n\n  function locale(key) {\n    var newLocaleData;\n\n    if (key === undefined) {\n      return this._locale._abbr;\n    } else {\n      newLocaleData = getLocale(key);\n\n      if (newLocaleData != null) {\n        this._locale = newLocaleData;\n      }\n\n      return this;\n    }\n  }\n\n  var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n    if (key === undefined) {\n      return this.localeData();\n    } else {\n      return this.locale(key);\n    }\n  });\n\n  function localeData() {\n    return this._locale;\n  }\n\n  var MS_PER_SECOND = 1000,\n      MS_PER_MINUTE = 60 * MS_PER_SECOND,\n      MS_PER_HOUR = 60 * MS_PER_MINUTE,\n      MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970):\n\n  function mod$1(dividend, divisor) {\n    return (dividend % divisor + divisor) % divisor;\n  }\n\n  function localStartOfDate(y, m, d) {\n    // the date constructor remaps years 0-99 to 1900-1999\n    if (y < 100 && y >= 0) {\n      // preserve leap years using a full 400 year cycle, then reset\n      return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n    } else {\n      return new Date(y, m, d).valueOf();\n    }\n  }\n\n  function utcStartOfDate(y, m, d) {\n    // Date.UTC remaps years 0-99 to 1900-1999\n    if (y < 100 && y >= 0) {\n      // preserve leap years using a full 400 year cycle, then reset\n      return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n    } else {\n      return Date.UTC(y, m, d);\n    }\n  }\n\n  function startOf(units) {\n    var time, startOfDate;\n    units = normalizeUnits(units);\n\n    if (units === undefined || units === 'millisecond' || !this.isValid()) {\n      return this;\n    }\n\n    startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n    switch (units) {\n      case 'year':\n        time = startOfDate(this.year(), 0, 1);\n        break;\n\n      case 'quarter':\n        time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n        break;\n\n      case 'month':\n        time = startOfDate(this.year(), this.month(), 1);\n        break;\n\n      case 'week':\n        time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n        break;\n\n      case 'isoWeek':\n        time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n        break;\n\n      case 'day':\n      case 'date':\n        time = startOfDate(this.year(), this.month(), this.date());\n        break;\n\n      case 'hour':\n        time = this._d.valueOf();\n        time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n        break;\n\n      case 'minute':\n        time = this._d.valueOf();\n        time -= mod$1(time, MS_PER_MINUTE);\n        break;\n\n      case 'second':\n        time = this._d.valueOf();\n        time -= mod$1(time, MS_PER_SECOND);\n        break;\n    }\n\n    this._d.setTime(time);\n\n    hooks.updateOffset(this, true);\n    return this;\n  }\n\n  function endOf(units) {\n    var time, startOfDate;\n    units = normalizeUnits(units);\n\n    if (units === undefined || units === 'millisecond' || !this.isValid()) {\n      return this;\n    }\n\n    startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n    switch (units) {\n      case 'year':\n        time = startOfDate(this.year() + 1, 0, 1) - 1;\n        break;\n\n      case 'quarter':\n        time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n        break;\n\n      case 'month':\n        time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n        break;\n\n      case 'week':\n        time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n        break;\n\n      case 'isoWeek':\n        time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n        break;\n\n      case 'day':\n      case 'date':\n        time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n        break;\n\n      case 'hour':\n        time = this._d.valueOf();\n        time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n        break;\n\n      case 'minute':\n        time = this._d.valueOf();\n        time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n        break;\n\n      case 'second':\n        time = this._d.valueOf();\n        time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n        break;\n    }\n\n    this._d.setTime(time);\n\n    hooks.updateOffset(this, true);\n    return this;\n  }\n\n  function valueOf() {\n    return this._d.valueOf() - (this._offset || 0) * 60000;\n  }\n\n  function unix() {\n    return Math.floor(this.valueOf() / 1000);\n  }\n\n  function toDate() {\n    return new Date(this.valueOf());\n  }\n\n  function toArray() {\n    var m = this;\n    return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n  }\n\n  function toObject() {\n    var m = this;\n    return {\n      years: m.year(),\n      months: m.month(),\n      date: m.date(),\n      hours: m.hours(),\n      minutes: m.minutes(),\n      seconds: m.seconds(),\n      milliseconds: m.milliseconds()\n    };\n  }\n\n  function toJSON() {\n    // new Date(NaN).toJSON() === null\n    return this.isValid() ? this.toISOString() : null;\n  }\n\n  function isValid$2() {\n    return isValid(this);\n  }\n\n  function parsingFlags() {\n    return extend({}, getParsingFlags(this));\n  }\n\n  function invalidAt() {\n    return getParsingFlags(this).overflow;\n  }\n\n  function creationData() {\n    return {\n      input: this._i,\n      format: this._f,\n      locale: this._locale,\n      isUTC: this._isUTC,\n      strict: this._strict\n    };\n  }\n\n  addFormatToken('N', 0, 0, 'eraAbbr');\n  addFormatToken('NN', 0, 0, 'eraAbbr');\n  addFormatToken('NNN', 0, 0, 'eraAbbr');\n  addFormatToken('NNNN', 0, 0, 'eraName');\n  addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n  addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n  addFormatToken('y', ['yy', 2], 0, 'eraYear');\n  addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n  addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n  addRegexToken('N', matchEraAbbr);\n  addRegexToken('NN', matchEraAbbr);\n  addRegexToken('NNN', matchEraAbbr);\n  addRegexToken('NNNN', matchEraName);\n  addRegexToken('NNNNN', matchEraNarrow);\n  addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n    var era = config._locale.erasParse(input, token, config._strict);\n\n    if (era) {\n      getParsingFlags(config).era = era;\n    } else {\n      getParsingFlags(config).invalidEra = input;\n    }\n  });\n  addRegexToken('y', matchUnsigned);\n  addRegexToken('yy', matchUnsigned);\n  addRegexToken('yyy', matchUnsigned);\n  addRegexToken('yyyy', matchUnsigned);\n  addRegexToken('yo', matchEraYearOrdinal);\n  addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n  addParseToken(['yo'], function (input, array, config, token) {\n    var match;\n\n    if (config._locale._eraYearOrdinalRegex) {\n      match = input.match(config._locale._eraYearOrdinalRegex);\n    }\n\n    if (config._locale.eraYearOrdinalParse) {\n      array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n    } else {\n      array[YEAR] = parseInt(input, 10);\n    }\n  });\n\n  function localeEras(m, format) {\n    var i,\n        l,\n        date,\n        eras = this._eras || getLocale('en')._eras;\n\n    for (i = 0, l = eras.length; i < l; ++i) {\n      switch (typeof eras[i].since) {\n        case 'string':\n          // truncate time\n          date = hooks(eras[i].since).startOf('day');\n          eras[i].since = date.valueOf();\n          break;\n      }\n\n      switch (typeof eras[i].until) {\n        case 'undefined':\n          eras[i].until = +Infinity;\n          break;\n\n        case 'string':\n          // truncate time\n          date = hooks(eras[i].until).startOf('day').valueOf();\n          eras[i].until = date.valueOf();\n          break;\n      }\n    }\n\n    return eras;\n  }\n\n  function localeErasParse(eraName, format, strict) {\n    var i,\n        l,\n        eras = this.eras(),\n        name,\n        abbr,\n        narrow;\n    eraName = eraName.toUpperCase();\n\n    for (i = 0, l = eras.length; i < l; ++i) {\n      name = eras[i].name.toUpperCase();\n      abbr = eras[i].abbr.toUpperCase();\n      narrow = eras[i].narrow.toUpperCase();\n\n      if (strict) {\n        switch (format) {\n          case 'N':\n          case 'NN':\n          case 'NNN':\n            if (abbr === eraName) {\n              return eras[i];\n            }\n\n            break;\n\n          case 'NNNN':\n            if (name === eraName) {\n              return eras[i];\n            }\n\n            break;\n\n          case 'NNNNN':\n            if (narrow === eraName) {\n              return eras[i];\n            }\n\n            break;\n        }\n      } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n        return eras[i];\n      }\n    }\n  }\n\n  function localeErasConvertYear(era, year) {\n    var dir = era.since <= era.until ? +1 : -1;\n\n    if (year === undefined) {\n      return hooks(era.since).year();\n    } else {\n      return hooks(era.since).year() + (year - era.offset) * dir;\n    }\n  }\n\n  function getEraName() {\n    var i,\n        l,\n        val,\n        eras = this.localeData().eras();\n\n    for (i = 0, l = eras.length; i < l; ++i) {\n      // truncate time\n      val = this.clone().startOf('day').valueOf();\n\n      if (eras[i].since <= val && val <= eras[i].until) {\n        return eras[i].name;\n      }\n\n      if (eras[i].until <= val && val <= eras[i].since) {\n        return eras[i].name;\n      }\n    }\n\n    return '';\n  }\n\n  function getEraNarrow() {\n    var i,\n        l,\n        val,\n        eras = this.localeData().eras();\n\n    for (i = 0, l = eras.length; i < l; ++i) {\n      // truncate time\n      val = this.clone().startOf('day').valueOf();\n\n      if (eras[i].since <= val && val <= eras[i].until) {\n        return eras[i].narrow;\n      }\n\n      if (eras[i].until <= val && val <= eras[i].since) {\n        return eras[i].narrow;\n      }\n    }\n\n    return '';\n  }\n\n  function getEraAbbr() {\n    var i,\n        l,\n        val,\n        eras = this.localeData().eras();\n\n    for (i = 0, l = eras.length; i < l; ++i) {\n      // truncate time\n      val = this.clone().startOf('day').valueOf();\n\n      if (eras[i].since <= val && val <= eras[i].until) {\n        return eras[i].abbr;\n      }\n\n      if (eras[i].until <= val && val <= eras[i].since) {\n        return eras[i].abbr;\n      }\n    }\n\n    return '';\n  }\n\n  function getEraYear() {\n    var i,\n        l,\n        dir,\n        val,\n        eras = this.localeData().eras();\n\n    for (i = 0, l = eras.length; i < l; ++i) {\n      dir = eras[i].since <= eras[i].until ? +1 : -1; // truncate time\n\n      val = this.clone().startOf('day').valueOf();\n\n      if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n        return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n      }\n    }\n\n    return this.year();\n  }\n\n  function erasNameRegex(isStrict) {\n    if (!hasOwnProp(this, '_erasNameRegex')) {\n      computeErasParse.call(this);\n    }\n\n    return isStrict ? this._erasNameRegex : this._erasRegex;\n  }\n\n  function erasAbbrRegex(isStrict) {\n    if (!hasOwnProp(this, '_erasAbbrRegex')) {\n      computeErasParse.call(this);\n    }\n\n    return isStrict ? this._erasAbbrRegex : this._erasRegex;\n  }\n\n  function erasNarrowRegex(isStrict) {\n    if (!hasOwnProp(this, '_erasNarrowRegex')) {\n      computeErasParse.call(this);\n    }\n\n    return isStrict ? this._erasNarrowRegex : this._erasRegex;\n  }\n\n  function matchEraAbbr(isStrict, locale) {\n    return locale.erasAbbrRegex(isStrict);\n  }\n\n  function matchEraName(isStrict, locale) {\n    return locale.erasNameRegex(isStrict);\n  }\n\n  function matchEraNarrow(isStrict, locale) {\n    return locale.erasNarrowRegex(isStrict);\n  }\n\n  function matchEraYearOrdinal(isStrict, locale) {\n    return locale._eraYearOrdinalRegex || matchUnsigned;\n  }\n\n  function computeErasParse() {\n    var abbrPieces = [],\n        namePieces = [],\n        narrowPieces = [],\n        mixedPieces = [],\n        i,\n        l,\n        eras = this.eras();\n\n    for (i = 0, l = eras.length; i < l; ++i) {\n      namePieces.push(regexEscape(eras[i].name));\n      abbrPieces.push(regexEscape(eras[i].abbr));\n      narrowPieces.push(regexEscape(eras[i].narrow));\n      mixedPieces.push(regexEscape(eras[i].name));\n      mixedPieces.push(regexEscape(eras[i].abbr));\n      mixedPieces.push(regexEscape(eras[i].narrow));\n    }\n\n    this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n    this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n    this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n    this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n  } // FORMATTING\n\n\n  addFormatToken(0, ['gg', 2], 0, function () {\n    return this.weekYear() % 100;\n  });\n  addFormatToken(0, ['GG', 2], 0, function () {\n    return this.isoWeekYear() % 100;\n  });\n\n  function addWeekYearFormatToken(token, getter) {\n    addFormatToken(0, [token, token.length], 0, getter);\n  }\n\n  addWeekYearFormatToken('gggg', 'weekYear');\n  addWeekYearFormatToken('ggggg', 'weekYear');\n  addWeekYearFormatToken('GGGG', 'isoWeekYear');\n  addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES\n\n  addUnitAlias('weekYear', 'gg');\n  addUnitAlias('isoWeekYear', 'GG'); // PRIORITY\n\n  addUnitPriority('weekYear', 1);\n  addUnitPriority('isoWeekYear', 1); // PARSING\n\n  addRegexToken('G', matchSigned);\n  addRegexToken('g', matchSigned);\n  addRegexToken('GG', match1to2, match2);\n  addRegexToken('gg', match1to2, match2);\n  addRegexToken('GGGG', match1to4, match4);\n  addRegexToken('gggg', match1to4, match4);\n  addRegexToken('GGGGG', match1to6, match6);\n  addRegexToken('ggggg', match1to6, match6);\n  addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n    week[token.substr(0, 2)] = toInt(input);\n  });\n  addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n    week[token] = hooks.parseTwoDigitYear(input);\n  }); // MOMENTS\n\n  function getSetWeekYear(input) {\n    return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n  }\n\n  function getSetISOWeekYear(input) {\n    return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n  }\n\n  function getISOWeeksInYear() {\n    return weeksInYear(this.year(), 1, 4);\n  }\n\n  function getISOWeeksInISOWeekYear() {\n    return weeksInYear(this.isoWeekYear(), 1, 4);\n  }\n\n  function getWeeksInYear() {\n    var weekInfo = this.localeData()._week;\n\n    return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n  }\n\n  function getWeeksInWeekYear() {\n    var weekInfo = this.localeData()._week;\n\n    return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n  }\n\n  function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n    var weeksTarget;\n\n    if (input == null) {\n      return weekOfYear(this, dow, doy).year;\n    } else {\n      weeksTarget = weeksInYear(input, dow, doy);\n\n      if (week > weeksTarget) {\n        week = weeksTarget;\n      }\n\n      return setWeekAll.call(this, input, week, weekday, dow, doy);\n    }\n  }\n\n  function setWeekAll(weekYear, week, weekday, dow, doy) {\n    var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n        date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n    this.year(date.getUTCFullYear());\n    this.month(date.getUTCMonth());\n    this.date(date.getUTCDate());\n    return this;\n  } // FORMATTING\n\n\n  addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES\n\n  addUnitAlias('quarter', 'Q'); // PRIORITY\n\n  addUnitPriority('quarter', 7); // PARSING\n\n  addRegexToken('Q', match1);\n  addParseToken('Q', function (input, array) {\n    array[MONTH] = (toInt(input) - 1) * 3;\n  }); // MOMENTS\n\n  function getSetQuarter(input) {\n    return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n  } // FORMATTING\n\n\n  addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES\n\n  addUnitAlias('date', 'D'); // PRIORITY\n\n  addUnitPriority('date', 9); // PARSING\n\n  addRegexToken('D', match1to2);\n  addRegexToken('DD', match1to2, match2);\n  addRegexToken('Do', function (isStrict, locale) {\n    // TODO: Remove \"ordinalParse\" fallback in next major release.\n    return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n  });\n  addParseToken(['D', 'DD'], DATE);\n  addParseToken('Do', function (input, array) {\n    array[DATE] = toInt(input.match(match1to2)[0]);\n  }); // MOMENTS\n\n  var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING\n\n  addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES\n\n  addUnitAlias('dayOfYear', 'DDD'); // PRIORITY\n\n  addUnitPriority('dayOfYear', 4); // PARSING\n\n  addRegexToken('DDD', match1to3);\n  addRegexToken('DDDD', match3);\n  addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n    config._dayOfYear = toInt(input);\n  }); // HELPERS\n  // MOMENTS\n\n  function getSetDayOfYear(input) {\n    var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n    return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n  } // FORMATTING\n\n\n  addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES\n\n  addUnitAlias('minute', 'm'); // PRIORITY\n\n  addUnitPriority('minute', 14); // PARSING\n\n  addRegexToken('m', match1to2);\n  addRegexToken('mm', match1to2, match2);\n  addParseToken(['m', 'mm'], MINUTE); // MOMENTS\n\n  var getSetMinute = makeGetSet('Minutes', false); // FORMATTING\n\n  addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES\n\n  addUnitAlias('second', 's'); // PRIORITY\n\n  addUnitPriority('second', 15); // PARSING\n\n  addRegexToken('s', match1to2);\n  addRegexToken('ss', match1to2, match2);\n  addParseToken(['s', 'ss'], SECOND); // MOMENTS\n\n  var getSetSecond = makeGetSet('Seconds', false); // FORMATTING\n\n  addFormatToken('S', 0, 0, function () {\n    return ~~(this.millisecond() / 100);\n  });\n  addFormatToken(0, ['SS', 2], 0, function () {\n    return ~~(this.millisecond() / 10);\n  });\n  addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n  addFormatToken(0, ['SSSS', 4], 0, function () {\n    return this.millisecond() * 10;\n  });\n  addFormatToken(0, ['SSSSS', 5], 0, function () {\n    return this.millisecond() * 100;\n  });\n  addFormatToken(0, ['SSSSSS', 6], 0, function () {\n    return this.millisecond() * 1000;\n  });\n  addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n    return this.millisecond() * 10000;\n  });\n  addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n    return this.millisecond() * 100000;\n  });\n  addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n    return this.millisecond() * 1000000;\n  }); // ALIASES\n\n  addUnitAlias('millisecond', 'ms'); // PRIORITY\n\n  addUnitPriority('millisecond', 16); // PARSING\n\n  addRegexToken('S', match1to3, match1);\n  addRegexToken('SS', match1to3, match2);\n  addRegexToken('SSS', match1to3, match3);\n  var token, getSetMillisecond;\n\n  for (token = 'SSSS'; token.length <= 9; token += 'S') {\n    addRegexToken(token, matchUnsigned);\n  }\n\n  function parseMs(input, array) {\n    array[MILLISECOND] = toInt(('0.' + input) * 1000);\n  }\n\n  for (token = 'S'; token.length <= 9; token += 'S') {\n    addParseToken(token, parseMs);\n  }\n\n  getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING\n\n  addFormatToken('z', 0, 0, 'zoneAbbr');\n  addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS\n\n  function getZoneAbbr() {\n    return this._isUTC ? 'UTC' : '';\n  }\n\n  function getZoneName() {\n    return this._isUTC ? 'Coordinated Universal Time' : '';\n  }\n\n  var proto = Moment.prototype;\n  proto.add = add;\n  proto.calendar = calendar$1;\n  proto.clone = clone;\n  proto.diff = diff;\n  proto.endOf = endOf;\n  proto.format = format;\n  proto.from = from;\n  proto.fromNow = fromNow;\n  proto.to = to;\n  proto.toNow = toNow;\n  proto.get = stringGet;\n  proto.invalidAt = invalidAt;\n  proto.isAfter = isAfter;\n  proto.isBefore = isBefore;\n  proto.isBetween = isBetween;\n  proto.isSame = isSame;\n  proto.isSameOrAfter = isSameOrAfter;\n  proto.isSameOrBefore = isSameOrBefore;\n  proto.isValid = isValid$2;\n  proto.lang = lang;\n  proto.locale = locale;\n  proto.localeData = localeData;\n  proto.max = prototypeMax;\n  proto.min = prototypeMin;\n  proto.parsingFlags = parsingFlags;\n  proto.set = stringSet;\n  proto.startOf = startOf;\n  proto.subtract = subtract;\n  proto.toArray = toArray;\n  proto.toObject = toObject;\n  proto.toDate = toDate;\n  proto.toISOString = toISOString;\n  proto.inspect = inspect;\n\n  if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n    proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n      return 'Moment<' + this.format() + '>';\n    };\n  }\n\n  proto.toJSON = toJSON;\n  proto.toString = toString;\n  proto.unix = unix;\n  proto.valueOf = valueOf;\n  proto.creationData = creationData;\n  proto.eraName = getEraName;\n  proto.eraNarrow = getEraNarrow;\n  proto.eraAbbr = getEraAbbr;\n  proto.eraYear = getEraYear;\n  proto.year = getSetYear;\n  proto.isLeapYear = getIsLeapYear;\n  proto.weekYear = getSetWeekYear;\n  proto.isoWeekYear = getSetISOWeekYear;\n  proto.quarter = proto.quarters = getSetQuarter;\n  proto.month = getSetMonth;\n  proto.daysInMonth = getDaysInMonth;\n  proto.week = proto.weeks = getSetWeek;\n  proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n  proto.weeksInYear = getWeeksInYear;\n  proto.weeksInWeekYear = getWeeksInWeekYear;\n  proto.isoWeeksInYear = getISOWeeksInYear;\n  proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n  proto.date = getSetDayOfMonth;\n  proto.day = proto.days = getSetDayOfWeek;\n  proto.weekday = getSetLocaleDayOfWeek;\n  proto.isoWeekday = getSetISODayOfWeek;\n  proto.dayOfYear = getSetDayOfYear;\n  proto.hour = proto.hours = getSetHour;\n  proto.minute = proto.minutes = getSetMinute;\n  proto.second = proto.seconds = getSetSecond;\n  proto.millisecond = proto.milliseconds = getSetMillisecond;\n  proto.utcOffset = getSetOffset;\n  proto.utc = setOffsetToUTC;\n  proto.local = setOffsetToLocal;\n  proto.parseZone = setOffsetToParsedOffset;\n  proto.hasAlignedHourOffset = hasAlignedHourOffset;\n  proto.isDST = isDaylightSavingTime;\n  proto.isLocal = isLocal;\n  proto.isUtcOffset = isUtcOffset;\n  proto.isUtc = isUtc;\n  proto.isUTC = isUtc;\n  proto.zoneAbbr = getZoneAbbr;\n  proto.zoneName = getZoneName;\n  proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n  proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n  proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n  proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n  proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n  function createUnix(input) {\n    return createLocal(input * 1000);\n  }\n\n  function createInZone() {\n    return createLocal.apply(null, arguments).parseZone();\n  }\n\n  function preParsePostFormat(string) {\n    return string;\n  }\n\n  var proto$1 = Locale.prototype;\n  proto$1.calendar = calendar;\n  proto$1.longDateFormat = longDateFormat;\n  proto$1.invalidDate = invalidDate;\n  proto$1.ordinal = ordinal;\n  proto$1.preparse = preParsePostFormat;\n  proto$1.postformat = preParsePostFormat;\n  proto$1.relativeTime = relativeTime;\n  proto$1.pastFuture = pastFuture;\n  proto$1.set = set;\n  proto$1.eras = localeEras;\n  proto$1.erasParse = localeErasParse;\n  proto$1.erasConvertYear = localeErasConvertYear;\n  proto$1.erasAbbrRegex = erasAbbrRegex;\n  proto$1.erasNameRegex = erasNameRegex;\n  proto$1.erasNarrowRegex = erasNarrowRegex;\n  proto$1.months = localeMonths;\n  proto$1.monthsShort = localeMonthsShort;\n  proto$1.monthsParse = localeMonthsParse;\n  proto$1.monthsRegex = monthsRegex;\n  proto$1.monthsShortRegex = monthsShortRegex;\n  proto$1.week = localeWeek;\n  proto$1.firstDayOfYear = localeFirstDayOfYear;\n  proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n  proto$1.weekdays = localeWeekdays;\n  proto$1.weekdaysMin = localeWeekdaysMin;\n  proto$1.weekdaysShort = localeWeekdaysShort;\n  proto$1.weekdaysParse = localeWeekdaysParse;\n  proto$1.weekdaysRegex = weekdaysRegex;\n  proto$1.weekdaysShortRegex = weekdaysShortRegex;\n  proto$1.weekdaysMinRegex = weekdaysMinRegex;\n  proto$1.isPM = localeIsPM;\n  proto$1.meridiem = localeMeridiem;\n\n  function get$1(format, index, field, setter) {\n    var locale = getLocale(),\n        utc = createUTC().set(setter, index);\n    return locale[field](utc, format);\n  }\n\n  function listMonthsImpl(format, index, field) {\n    if (isNumber(format)) {\n      index = format;\n      format = undefined;\n    }\n\n    format = format || '';\n\n    if (index != null) {\n      return get$1(format, index, field, 'month');\n    }\n\n    var i,\n        out = [];\n\n    for (i = 0; i < 12; i++) {\n      out[i] = get$1(format, i, field, 'month');\n    }\n\n    return out;\n  } // ()\n  // (5)\n  // (fmt, 5)\n  // (fmt)\n  // (true)\n  // (true, 5)\n  // (true, fmt, 5)\n  // (true, fmt)\n\n\n  function listWeekdaysImpl(localeSorted, format, index, field) {\n    if (typeof localeSorted === 'boolean') {\n      if (isNumber(format)) {\n        index = format;\n        format = undefined;\n      }\n\n      format = format || '';\n    } else {\n      format = localeSorted;\n      index = format;\n      localeSorted = false;\n\n      if (isNumber(format)) {\n        index = format;\n        format = undefined;\n      }\n\n      format = format || '';\n    }\n\n    var locale = getLocale(),\n        shift = localeSorted ? locale._week.dow : 0,\n        i,\n        out = [];\n\n    if (index != null) {\n      return get$1(format, (index + shift) % 7, field, 'day');\n    }\n\n    for (i = 0; i < 7; i++) {\n      out[i] = get$1(format, (i + shift) % 7, field, 'day');\n    }\n\n    return out;\n  }\n\n  function listMonths(format, index) {\n    return listMonthsImpl(format, index, 'months');\n  }\n\n  function listMonthsShort(format, index) {\n    return listMonthsImpl(format, index, 'monthsShort');\n  }\n\n  function listWeekdays(localeSorted, format, index) {\n    return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n  }\n\n  function listWeekdaysShort(localeSorted, format, index) {\n    return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n  }\n\n  function listWeekdaysMin(localeSorted, format, index) {\n    return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n  }\n\n  getSetGlobalLocale('en', {\n    eras: [{\n      since: '0001-01-01',\n      until: +Infinity,\n      offset: 1,\n      name: 'Anno Domini',\n      narrow: 'AD',\n      abbr: 'AD'\n    }, {\n      since: '0000-12-31',\n      until: -Infinity,\n      offset: 1,\n      name: 'Before Christ',\n      narrow: 'BC',\n      abbr: 'BC'\n    }],\n    dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n    ordinal: function (number) {\n      var b = number % 10,\n          output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    }\n  }); // Side effect imports\n\n  hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n  hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n  var mathAbs = Math.abs;\n\n  function abs() {\n    var data = this._data;\n    this._milliseconds = mathAbs(this._milliseconds);\n    this._days = mathAbs(this._days);\n    this._months = mathAbs(this._months);\n    data.milliseconds = mathAbs(data.milliseconds);\n    data.seconds = mathAbs(data.seconds);\n    data.minutes = mathAbs(data.minutes);\n    data.hours = mathAbs(data.hours);\n    data.months = mathAbs(data.months);\n    data.years = mathAbs(data.years);\n    return this;\n  }\n\n  function addSubtract$1(duration, input, value, direction) {\n    var other = createDuration(input, value);\n    duration._milliseconds += direction * other._milliseconds;\n    duration._days += direction * other._days;\n    duration._months += direction * other._months;\n    return duration._bubble();\n  } // supports only 2.0-style add(1, 's') or add(duration)\n\n\n  function add$1(input, value) {\n    return addSubtract$1(this, input, value, 1);\n  } // supports only 2.0-style subtract(1, 's') or subtract(duration)\n\n\n  function subtract$1(input, value) {\n    return addSubtract$1(this, input, value, -1);\n  }\n\n  function absCeil(number) {\n    if (number < 0) {\n      return Math.floor(number);\n    } else {\n      return Math.ceil(number);\n    }\n  }\n\n  function bubble() {\n    var milliseconds = this._milliseconds,\n        days = this._days,\n        months = this._months,\n        data = this._data,\n        seconds,\n        minutes,\n        hours,\n        years,\n        monthsFromDays; // if we have a mix of positive and negative values, bubble down first\n    // check: https://github.com/moment/moment/issues/2166\n\n    if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n      milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n      days = 0;\n      months = 0;\n    } // The following code bubbles up values, see the tests for\n    // examples of what that means.\n\n\n    data.milliseconds = milliseconds % 1000;\n    seconds = absFloor(milliseconds / 1000);\n    data.seconds = seconds % 60;\n    minutes = absFloor(seconds / 60);\n    data.minutes = minutes % 60;\n    hours = absFloor(minutes / 60);\n    data.hours = hours % 24;\n    days += absFloor(hours / 24); // convert days to months\n\n    monthsFromDays = absFloor(daysToMonths(days));\n    months += monthsFromDays;\n    days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year\n\n    years = absFloor(months / 12);\n    months %= 12;\n    data.days = days;\n    data.months = months;\n    data.years = years;\n    return this;\n  }\n\n  function daysToMonths(days) {\n    // 400 years have 146097 days (taking into account leap year rules)\n    // 400 years have 12 months === 4800\n    return days * 4800 / 146097;\n  }\n\n  function monthsToDays(months) {\n    // the reverse of daysToMonths\n    return months * 146097 / 4800;\n  }\n\n  function as(units) {\n    if (!this.isValid()) {\n      return NaN;\n    }\n\n    var days,\n        months,\n        milliseconds = this._milliseconds;\n    units = normalizeUnits(units);\n\n    if (units === 'month' || units === 'quarter' || units === 'year') {\n      days = this._days + milliseconds / 864e5;\n      months = this._months + daysToMonths(days);\n\n      switch (units) {\n        case 'month':\n          return months;\n\n        case 'quarter':\n          return months / 3;\n\n        case 'year':\n          return months / 12;\n      }\n    } else {\n      // handle milliseconds separately because of floating point math errors (issue #1867)\n      days = this._days + Math.round(monthsToDays(this._months));\n\n      switch (units) {\n        case 'week':\n          return days / 7 + milliseconds / 6048e5;\n\n        case 'day':\n          return days + milliseconds / 864e5;\n\n        case 'hour':\n          return days * 24 + milliseconds / 36e5;\n\n        case 'minute':\n          return days * 1440 + milliseconds / 6e4;\n\n        case 'second':\n          return days * 86400 + milliseconds / 1000;\n        // Math.floor prevents floating point math errors here\n\n        case 'millisecond':\n          return Math.floor(days * 864e5) + milliseconds;\n\n        default:\n          throw new Error('Unknown unit ' + units);\n      }\n    }\n  } // TODO: Use this.as('ms')?\n\n\n  function valueOf$1() {\n    if (!this.isValid()) {\n      return NaN;\n    }\n\n    return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n  }\n\n  function makeAs(alias) {\n    return function () {\n      return this.as(alias);\n    };\n  }\n\n  var asMilliseconds = makeAs('ms'),\n      asSeconds = makeAs('s'),\n      asMinutes = makeAs('m'),\n      asHours = makeAs('h'),\n      asDays = makeAs('d'),\n      asWeeks = makeAs('w'),\n      asMonths = makeAs('M'),\n      asQuarters = makeAs('Q'),\n      asYears = makeAs('y');\n\n  function clone$1() {\n    return createDuration(this);\n  }\n\n  function get$2(units) {\n    units = normalizeUnits(units);\n    return this.isValid() ? this[units + 's']() : NaN;\n  }\n\n  function makeGetter(name) {\n    return function () {\n      return this.isValid() ? this._data[name] : NaN;\n    };\n  }\n\n  var milliseconds = makeGetter('milliseconds'),\n      seconds = makeGetter('seconds'),\n      minutes = makeGetter('minutes'),\n      hours = makeGetter('hours'),\n      days = makeGetter('days'),\n      months = makeGetter('months'),\n      years = makeGetter('years');\n\n  function weeks() {\n    return absFloor(this.days() / 7);\n  }\n\n  var round = Math.round,\n      thresholds = {\n    ss: 44,\n    // a few seconds to seconds\n    s: 45,\n    // seconds to minute\n    m: 45,\n    // minutes to hour\n    h: 22,\n    // hours to day\n    d: 26,\n    // days to month/week\n    w: null,\n    // weeks to month\n    M: 11 // months to year\n\n  }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n\n  function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n    return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n  }\n\n  function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n    var duration = createDuration(posNegDuration).abs(),\n        seconds = round(duration.as('s')),\n        minutes = round(duration.as('m')),\n        hours = round(duration.as('h')),\n        days = round(duration.as('d')),\n        months = round(duration.as('M')),\n        weeks = round(duration.as('w')),\n        years = round(duration.as('y')),\n        a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n\n    if (thresholds.w != null) {\n      a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n    }\n\n    a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n    a[2] = withoutSuffix;\n    a[3] = +posNegDuration > 0;\n    a[4] = locale;\n    return substituteTimeAgo.apply(null, a);\n  } // This function allows you to set the rounding function for relative time strings\n\n\n  function getSetRelativeTimeRounding(roundingFunction) {\n    if (roundingFunction === undefined) {\n      return round;\n    }\n\n    if (typeof roundingFunction === 'function') {\n      round = roundingFunction;\n      return true;\n    }\n\n    return false;\n  } // This function allows you to set a threshold for relative time strings\n\n\n  function getSetRelativeTimeThreshold(threshold, limit) {\n    if (thresholds[threshold] === undefined) {\n      return false;\n    }\n\n    if (limit === undefined) {\n      return thresholds[threshold];\n    }\n\n    thresholds[threshold] = limit;\n\n    if (threshold === 's') {\n      thresholds.ss = limit - 1;\n    }\n\n    return true;\n  }\n\n  function humanize(argWithSuffix, argThresholds) {\n    if (!this.isValid()) {\n      return this.localeData().invalidDate();\n    }\n\n    var withSuffix = false,\n        th = thresholds,\n        locale,\n        output;\n\n    if (typeof argWithSuffix === 'object') {\n      argThresholds = argWithSuffix;\n      argWithSuffix = false;\n    }\n\n    if (typeof argWithSuffix === 'boolean') {\n      withSuffix = argWithSuffix;\n    }\n\n    if (typeof argThresholds === 'object') {\n      th = Object.assign({}, thresholds, argThresholds);\n\n      if (argThresholds.s != null && argThresholds.ss == null) {\n        th.ss = argThresholds.s - 1;\n      }\n    }\n\n    locale = this.localeData();\n    output = relativeTime$1(this, !withSuffix, th, locale);\n\n    if (withSuffix) {\n      output = locale.pastFuture(+this, output);\n    }\n\n    return locale.postformat(output);\n  }\n\n  var abs$1 = Math.abs;\n\n  function sign(x) {\n    return (x > 0) - (x < 0) || +x;\n  }\n\n  function toISOString$1() {\n    // for ISO strings we do not use the normal bubbling rules:\n    //  * milliseconds bubble up until they become hours\n    //  * days do not bubble at all\n    //  * months bubble up until they become years\n    // This is because there is no context-free conversion between hours and days\n    // (think of clock changes)\n    // and also not between days and months (28-31 days per month)\n    if (!this.isValid()) {\n      return this.localeData().invalidDate();\n    }\n\n    var seconds = abs$1(this._milliseconds) / 1000,\n        days = abs$1(this._days),\n        months = abs$1(this._months),\n        minutes,\n        hours,\n        years,\n        s,\n        total = this.asSeconds(),\n        totalSign,\n        ymSign,\n        daysSign,\n        hmsSign;\n\n    if (!total) {\n      // this is the same as C#'s (Noda) and python (isodate)...\n      // but not other JS (goog.date)\n      return 'P0D';\n    } // 3600 seconds -> 60 minutes -> 1 hour\n\n\n    minutes = absFloor(seconds / 60);\n    hours = absFloor(minutes / 60);\n    seconds %= 60;\n    minutes %= 60; // 12 months -> 1 year\n\n    years = absFloor(months / 12);\n    months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n\n    s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n    totalSign = total < 0 ? '-' : '';\n    ymSign = sign(this._months) !== sign(total) ? '-' : '';\n    daysSign = sign(this._days) !== sign(total) ? '-' : '';\n    hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n    return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n  }\n\n  var proto$2 = Duration.prototype;\n  proto$2.isValid = isValid$1;\n  proto$2.abs = abs;\n  proto$2.add = add$1;\n  proto$2.subtract = subtract$1;\n  proto$2.as = as;\n  proto$2.asMilliseconds = asMilliseconds;\n  proto$2.asSeconds = asSeconds;\n  proto$2.asMinutes = asMinutes;\n  proto$2.asHours = asHours;\n  proto$2.asDays = asDays;\n  proto$2.asWeeks = asWeeks;\n  proto$2.asMonths = asMonths;\n  proto$2.asQuarters = asQuarters;\n  proto$2.asYears = asYears;\n  proto$2.valueOf = valueOf$1;\n  proto$2._bubble = bubble;\n  proto$2.clone = clone$1;\n  proto$2.get = get$2;\n  proto$2.milliseconds = milliseconds;\n  proto$2.seconds = seconds;\n  proto$2.minutes = minutes;\n  proto$2.hours = hours;\n  proto$2.days = days;\n  proto$2.weeks = weeks;\n  proto$2.months = months;\n  proto$2.years = years;\n  proto$2.humanize = humanize;\n  proto$2.toISOString = toISOString$1;\n  proto$2.toString = toISOString$1;\n  proto$2.toJSON = toISOString$1;\n  proto$2.locale = locale;\n  proto$2.localeData = localeData;\n  proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n  proto$2.lang = lang; // FORMATTING\n\n  addFormatToken('X', 0, 0, 'unix');\n  addFormatToken('x', 0, 0, 'valueOf'); // PARSING\n\n  addRegexToken('x', matchSigned);\n  addRegexToken('X', matchTimestamp);\n  addParseToken('X', function (input, array, config) {\n    config._d = new Date(parseFloat(input) * 1000);\n  });\n  addParseToken('x', function (input, array, config) {\n    config._d = new Date(toInt(input));\n  }); //! moment.js\n\n  hooks.version = '2.29.4';\n  setHookCallback(createLocal);\n  hooks.fn = proto;\n  hooks.min = min;\n  hooks.max = max;\n  hooks.now = now;\n  hooks.utc = createUTC;\n  hooks.unix = createUnix;\n  hooks.months = listMonths;\n  hooks.isDate = isDate;\n  hooks.locale = getSetGlobalLocale;\n  hooks.invalid = createInvalid;\n  hooks.duration = createDuration;\n  hooks.isMoment = isMoment;\n  hooks.weekdays = listWeekdays;\n  hooks.parseZone = createInZone;\n  hooks.localeData = getLocale;\n  hooks.isDuration = isDuration;\n  hooks.monthsShort = listMonthsShort;\n  hooks.weekdaysMin = listWeekdaysMin;\n  hooks.defineLocale = defineLocale;\n  hooks.updateLocale = updateLocale;\n  hooks.locales = listLocales;\n  hooks.weekdaysShort = listWeekdaysShort;\n  hooks.normalizeUnits = normalizeUnits;\n  hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n  hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n  hooks.calendarFormat = getCalendarFormat;\n  hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats\n\n  hooks.HTML5_FMT = {\n    DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n    // <input type=\"datetime-local\" />\n    DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n    // <input type=\"datetime-local\" step=\"1\" />\n    DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n    // <input type=\"datetime-local\" step=\"0.001\" />\n    DATE: 'YYYY-MM-DD',\n    // <input type=\"date\" />\n    TIME: 'HH:mm',\n    // <input type=\"time\" />\n    TIME_SECONDS: 'HH:mm:ss',\n    // <input type=\"time\" step=\"1\" />\n    TIME_MS: 'HH:mm:ss.SSS',\n    // <input type=\"time\" step=\"0.001\" />\n    WEEK: 'GGGG-[W]WW',\n    // <input type=\"week\" />\n    MONTH: 'YYYY-MM' // <input type=\"month\" />\n\n  };\n  return hooks;\n});\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/moment/moment.js?");

/***/ }),

/***/ "./node_modules/node-libs-browser/mock/empty.js":
/*!******************************************************!*\
  !*** ./node_modules/node-libs-browser/mock/empty.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("\n\n//# sourceURL=webpack:///./node_modules/node-libs-browser/mock/empty.js?");

/***/ }),

/***/ "./node_modules/parse-asn1/aesid.json":
/*!********************************************!*\
  !*** ./node_modules/parse-asn1/aesid.json ***!
  \********************************************/
/*! exports provided: 2.16.840.1.101.3.4.1.1, 2.16.840.1.101.3.4.1.2, 2.16.840.1.101.3.4.1.3, 2.16.840.1.101.3.4.1.4, 2.16.840.1.101.3.4.1.21, 2.16.840.1.101.3.4.1.22, 2.16.840.1.101.3.4.1.23, 2.16.840.1.101.3.4.1.24, 2.16.840.1.101.3.4.1.41, 2.16.840.1.101.3.4.1.42, 2.16.840.1.101.3.4.1.43, 2.16.840.1.101.3.4.1.44, default */
/***/ (function(module) {

eval("module.exports = JSON.parse(\"{\\\"2.16.840.1.101.3.4.1.1\\\":\\\"aes-128-ecb\\\",\\\"2.16.840.1.101.3.4.1.2\\\":\\\"aes-128-cbc\\\",\\\"2.16.840.1.101.3.4.1.3\\\":\\\"aes-128-ofb\\\",\\\"2.16.840.1.101.3.4.1.4\\\":\\\"aes-128-cfb\\\",\\\"2.16.840.1.101.3.4.1.21\\\":\\\"aes-192-ecb\\\",\\\"2.16.840.1.101.3.4.1.22\\\":\\\"aes-192-cbc\\\",\\\"2.16.840.1.101.3.4.1.23\\\":\\\"aes-192-ofb\\\",\\\"2.16.840.1.101.3.4.1.24\\\":\\\"aes-192-cfb\\\",\\\"2.16.840.1.101.3.4.1.41\\\":\\\"aes-256-ecb\\\",\\\"2.16.840.1.101.3.4.1.42\\\":\\\"aes-256-cbc\\\",\\\"2.16.840.1.101.3.4.1.43\\\":\\\"aes-256-ofb\\\",\\\"2.16.840.1.101.3.4.1.44\\\":\\\"aes-256-cfb\\\"}\");\n\n//# sourceURL=webpack:///./node_modules/parse-asn1/aesid.json?");

/***/ }),

/***/ "./node_modules/parse-asn1/asn1.js":
/*!*****************************************!*\
  !*** ./node_modules/parse-asn1/asn1.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n\n\nvar asn1 = __webpack_require__(/*! asn1.js */ \"./node_modules/asn1.js/lib/asn1.js\");\n\nexports.certificate = __webpack_require__(/*! ./certificate */ \"./node_modules/parse-asn1/certificate.js\");\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n  this.seq().obj(this.key('version').int(), this.key('modulus').int(), this.key('publicExponent').int(), this.key('privateExponent').int(), this.key('prime1').int(), this.key('prime2').int(), this.key('exponent1').int(), this.key('exponent2').int(), this.key('coefficient').int());\n});\nexports.RSAPrivateKey = RSAPrivateKey;\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n  this.seq().obj(this.key('modulus').int(), this.key('publicExponent').int());\n});\nexports.RSAPublicKey = RSAPublicKey;\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n  this.seq().obj(this.key('algorithm').use(AlgorithmIdentifier), this.key('subjectPublicKey').bitstr());\n});\nexports.PublicKey = PublicKey;\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n  this.seq().obj(this.key('algorithm').objid(), this.key('none').null_().optional(), this.key('curve').objid().optional(), this.key('params').seq().obj(this.key('p').int(), this.key('q').int(), this.key('g').int()).optional());\n});\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n  this.seq().obj(this.key('version').int(), this.key('algorithm').use(AlgorithmIdentifier), this.key('subjectPrivateKey').octstr());\n});\nexports.PrivateKey = PrivateKeyInfo;\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n  this.seq().obj(this.key('algorithm').seq().obj(this.key('id').objid(), this.key('decrypt').seq().obj(this.key('kde').seq().obj(this.key('id').objid(), this.key('kdeparams').seq().obj(this.key('salt').octstr(), this.key('iters').int())), this.key('cipher').seq().obj(this.key('algo').objid(), this.key('iv').octstr()))), this.key('subjectPrivateKey').octstr());\n});\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n  this.seq().obj(this.key('version').int(), this.key('p').int(), this.key('q').int(), this.key('g').int(), this.key('pub_key').int(), this.key('priv_key').int());\n});\nexports.DSAPrivateKey = DSAPrivateKey;\nexports.DSAparam = asn1.define('DSAparam', function () {\n  this.int();\n});\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n  this.seq().obj(this.key('version').int(), this.key('privateKey').octstr(), this.key('parameters').optional().explicit(0).use(ECParameters), this.key('publicKey').optional().explicit(1).bitstr());\n});\nexports.ECPrivateKey = ECPrivateKey;\nvar ECParameters = asn1.define('ECParameters', function () {\n  this.choice({\n    namedCurve: this.objid()\n  });\n});\nexports.signature = asn1.define('signature', function () {\n  this.seq().obj(this.key('r').int(), this.key('s').int());\n});\n\n//# sourceURL=webpack:///./node_modules/parse-asn1/asn1.js?");

/***/ }),

/***/ "./node_modules/parse-asn1/certificate.js":
/*!************************************************!*\
  !*** ./node_modules/parse-asn1/certificate.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n\nvar asn = __webpack_require__(/*! asn1.js */ \"./node_modules/asn1.js/lib/asn1.js\");\n\nvar Time = asn.define('Time', function () {\n  this.choice({\n    utcTime: this.utctime(),\n    generalTime: this.gentime()\n  });\n});\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n  this.seq().obj(this.key('type').objid(), this.key('value').any());\n});\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n  this.seq().obj(this.key('algorithm').objid(), this.key('parameters').optional(), this.key('curve').objid().optional());\n});\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n  this.seq().obj(this.key('algorithm').use(AlgorithmIdentifier), this.key('subjectPublicKey').bitstr());\n});\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n  this.setof(AttributeTypeValue);\n});\nvar RDNSequence = asn.define('RDNSequence', function () {\n  this.seqof(RelativeDistinguishedName);\n});\nvar Name = asn.define('Name', function () {\n  this.choice({\n    rdnSequence: this.use(RDNSequence)\n  });\n});\nvar Validity = asn.define('Validity', function () {\n  this.seq().obj(this.key('notBefore').use(Time), this.key('notAfter').use(Time));\n});\nvar Extension = asn.define('Extension', function () {\n  this.seq().obj(this.key('extnID').objid(), this.key('critical').bool().def(false), this.key('extnValue').octstr());\n});\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n  this.seq().obj(this.key('version').explicit(0).int().optional(), this.key('serialNumber').int(), this.key('signature').use(AlgorithmIdentifier), this.key('issuer').use(Name), this.key('validity').use(Validity), this.key('subject').use(Name), this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo), this.key('issuerUniqueID').implicit(1).bitstr().optional(), this.key('subjectUniqueID').implicit(2).bitstr().optional(), this.key('extensions').explicit(3).seqof(Extension).optional());\n});\nvar X509Certificate = asn.define('X509Certificate', function () {\n  this.seq().obj(this.key('tbsCertificate').use(TBSCertificate), this.key('signatureAlgorithm').use(AlgorithmIdentifier), this.key('signatureValue').bitstr());\n});\nmodule.exports = X509Certificate;\n\n//# sourceURL=webpack:///./node_modules/parse-asn1/certificate.js?");

/***/ }),

/***/ "./node_modules/parse-asn1/fixProc.js":
/*!********************************************!*\
  !*** ./node_modules/parse-asn1/fixProc.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m;\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m;\n\nvar evp = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\");\n\nvar ciphers = __webpack_require__(/*! browserify-aes */ \"./node_modules/browserify-aes/browser.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nmodule.exports = function (okey, password) {\n  var key = okey.toString();\n  var match = key.match(findProc);\n  var decrypted;\n\n  if (!match) {\n    var match2 = key.match(fullRegex);\n    decrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64');\n  } else {\n    var suite = 'aes' + match[1];\n    var iv = Buffer.from(match[2], 'hex');\n    var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64');\n    var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;\n    var out = [];\n    var cipher = ciphers.createDecipheriv(suite, cipherKey, iv);\n    out.push(cipher.update(cipherText));\n    out.push(cipher.final());\n    decrypted = Buffer.concat(out);\n  }\n\n  var tag = key.match(startRegex)[1];\n  return {\n    tag: tag,\n    data: decrypted\n  };\n};\n\n//# sourceURL=webpack:///./node_modules/parse-asn1/fixProc.js?");

/***/ }),

/***/ "./node_modules/parse-asn1/index.js":
/*!******************************************!*\
  !*** ./node_modules/parse-asn1/index.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var asn1 = __webpack_require__(/*! ./asn1 */ \"./node_modules/parse-asn1/asn1.js\");\n\nvar aesid = __webpack_require__(/*! ./aesid.json */ \"./node_modules/parse-asn1/aesid.json\");\n\nvar fixProc = __webpack_require__(/*! ./fixProc */ \"./node_modules/parse-asn1/fixProc.js\");\n\nvar ciphers = __webpack_require__(/*! browserify-aes */ \"./node_modules/browserify-aes/browser.js\");\n\nvar compat = __webpack_require__(/*! pbkdf2 */ \"./node_modules/pbkdf2/browser.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nmodule.exports = parseKeys;\n\nfunction parseKeys(buffer) {\n  var password;\n\n  if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n    password = buffer.passphrase;\n    buffer = buffer.key;\n  }\n\n  if (typeof buffer === 'string') {\n    buffer = Buffer.from(buffer);\n  }\n\n  var stripped = fixProc(buffer, password);\n  var type = stripped.tag;\n  var data = stripped.data;\n  var subtype, ndata;\n\n  switch (type) {\n    case 'CERTIFICATE':\n      ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n    // falls through\n\n    case 'PUBLIC KEY':\n      if (!ndata) {\n        ndata = asn1.PublicKey.decode(data, 'der');\n      }\n\n      subtype = ndata.algorithm.algorithm.join('.');\n\n      switch (subtype) {\n        case '1.2.840.113549.1.1.1':\n          return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\n        case '1.2.840.10045.2.1':\n          ndata.subjectPrivateKey = ndata.subjectPublicKey;\n          return {\n            type: 'ec',\n            data: ndata\n          };\n\n        case '1.2.840.10040.4.1':\n          ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n          return {\n            type: 'dsa',\n            data: ndata.algorithm.params\n          };\n\n        default:\n          throw new Error('unknown key id ' + subtype);\n      }\n\n    // throw new Error('unknown key type ' + type)\n\n    case 'ENCRYPTED PRIVATE KEY':\n      data = asn1.EncryptedPrivateKey.decode(data, 'der');\n      data = decrypt(data, password);\n    // falls through\n\n    case 'PRIVATE KEY':\n      ndata = asn1.PrivateKey.decode(data, 'der');\n      subtype = ndata.algorithm.algorithm.join('.');\n\n      switch (subtype) {\n        case '1.2.840.113549.1.1.1':\n          return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\n        case '1.2.840.10045.2.1':\n          return {\n            curve: ndata.algorithm.curve,\n            privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n          };\n\n        case '1.2.840.10040.4.1':\n          ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n          return {\n            type: 'dsa',\n            params: ndata.algorithm.params\n          };\n\n        default:\n          throw new Error('unknown key id ' + subtype);\n      }\n\n    // throw new Error('unknown key type ' + type)\n\n    case 'RSA PUBLIC KEY':\n      return asn1.RSAPublicKey.decode(data, 'der');\n\n    case 'RSA PRIVATE KEY':\n      return asn1.RSAPrivateKey.decode(data, 'der');\n\n    case 'DSA PRIVATE KEY':\n      return {\n        type: 'dsa',\n        params: asn1.DSAPrivateKey.decode(data, 'der')\n      };\n\n    case 'EC PRIVATE KEY':\n      data = asn1.ECPrivateKey.decode(data, 'der');\n      return {\n        curve: data.parameters.value,\n        privateKey: data.privateKey\n      };\n\n    default:\n      throw new Error('unknown key type ' + type);\n  }\n}\n\nparseKeys.signature = asn1.signature;\n\nfunction decrypt(data, password) {\n  var salt = data.algorithm.decrypt.kde.kdeparams.salt;\n  var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n  var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n  var iv = data.algorithm.decrypt.cipher.iv;\n  var cipherText = data.subjectPrivateKey;\n  var keylen = parseInt(algo.split('-')[1], 10) / 8;\n  var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n  var cipher = ciphers.createDecipheriv(algo, key, iv);\n  var out = [];\n  out.push(cipher.update(cipherText));\n  out.push(cipher.final());\n  return Buffer.concat(out);\n}\n\n//# sourceURL=webpack:///./node_modules/parse-asn1/index.js?");

/***/ }),

/***/ "./node_modules/path-browserify/index.js":
/*!***********************************************!*\
  !*** ./node_modules/path-browserify/index.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(process) {// .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};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/path-browserify/index.js?");

/***/ }),

/***/ "./node_modules/pbkdf2/browser.js":
/*!****************************************!*\
  !*** ./node_modules/pbkdf2/browser.js ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("exports.pbkdf2 = __webpack_require__(/*! ./lib/async */ \"./node_modules/pbkdf2/lib/async.js\");\nexports.pbkdf2Sync = __webpack_require__(/*! ./lib/sync */ \"./node_modules/pbkdf2/lib/sync-browser.js\");\n\n//# sourceURL=webpack:///./node_modules/pbkdf2/browser.js?");

/***/ }),

/***/ "./node_modules/pbkdf2/lib/async.js":
/*!******************************************!*\
  !*** ./node_modules/pbkdf2/lib/async.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(global) {var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar checkParameters = __webpack_require__(/*! ./precondition */ \"./node_modules/pbkdf2/lib/precondition.js\");\n\nvar defaultEncoding = __webpack_require__(/*! ./default-encoding */ \"./node_modules/pbkdf2/lib/default-encoding.js\");\n\nvar sync = __webpack_require__(/*! ./sync */ \"./node_modules/pbkdf2/lib/sync-browser.js\");\n\nvar toBuffer = __webpack_require__(/*! ./to-buffer */ \"./node_modules/pbkdf2/lib/to-buffer.js\");\n\nvar ZERO_BUF;\nvar subtle = global.crypto && global.crypto.subtle;\nvar toBrowser = {\n  sha: 'SHA-1',\n  'sha-1': 'SHA-1',\n  sha1: 'SHA-1',\n  sha256: 'SHA-256',\n  'sha-256': 'SHA-256',\n  sha384: 'SHA-384',\n  'sha-384': 'SHA-384',\n  'sha-512': 'SHA-512',\n  sha512: 'SHA-512'\n};\nvar checks = [];\n\nfunction checkNative(algo) {\n  if (global.process && !global.process.browser) {\n    return Promise.resolve(false);\n  }\n\n  if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n    return Promise.resolve(false);\n  }\n\n  if (checks[algo] !== undefined) {\n    return checks[algo];\n  }\n\n  ZERO_BUF = ZERO_BUF || Buffer.alloc(8);\n  var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo).then(function () {\n    return true;\n  }).catch(function () {\n    return false;\n  });\n  checks[algo] = prom;\n  return prom;\n}\n\nvar nextTick;\n\nfunction getNextTick() {\n  if (nextTick) {\n    return nextTick;\n  }\n\n  if (global.process && global.process.nextTick) {\n    nextTick = global.process.nextTick;\n  } else if (global.queueMicrotask) {\n    nextTick = global.queueMicrotask;\n  } else if (global.setImmediate) {\n    nextTick = global.setImmediate;\n  } else {\n    nextTick = global.setTimeout;\n  }\n\n  return nextTick;\n}\n\nfunction browserPbkdf2(password, salt, iterations, length, algo) {\n  return subtle.importKey('raw', password, {\n    name: 'PBKDF2'\n  }, false, ['deriveBits']).then(function (key) {\n    return subtle.deriveBits({\n      name: 'PBKDF2',\n      salt: salt,\n      iterations: iterations,\n      hash: {\n        name: algo\n      }\n    }, key, length << 3);\n  }).then(function (res) {\n    return Buffer.from(res);\n  });\n}\n\nfunction resolvePromise(promise, callback) {\n  promise.then(function (out) {\n    getNextTick()(function () {\n      callback(null, out);\n    });\n  }, function (e) {\n    getNextTick()(function () {\n      callback(e);\n    });\n  });\n}\n\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n  if (typeof digest === 'function') {\n    callback = digest;\n    digest = undefined;\n  }\n\n  digest = digest || 'sha1';\n  var algo = toBrowser[digest.toLowerCase()];\n\n  if (!algo || typeof global.Promise !== 'function') {\n    getNextTick()(function () {\n      var out;\n\n      try {\n        out = sync(password, salt, iterations, keylen, digest);\n      } catch (e) {\n        return callback(e);\n      }\n\n      callback(null, out);\n    });\n    return;\n  }\n\n  checkParameters(iterations, keylen);\n  password = toBuffer(password, defaultEncoding, 'Password');\n  salt = toBuffer(salt, defaultEncoding, 'Salt');\n  if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2');\n  resolvePromise(checkNative(algo).then(function (resp) {\n    if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo);\n    return sync(password, salt, iterations, keylen, digest);\n  }), callback);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/pbkdf2/lib/async.js?");

/***/ }),

/***/ "./node_modules/pbkdf2/lib/default-encoding.js":
/*!*****************************************************!*\
  !*** ./node_modules/pbkdf2/lib/default-encoding.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(global, process) {var defaultEncoding;\n/* istanbul ignore next */\n\nif (global.process && global.process.browser) {\n  defaultEncoding = 'utf-8';\n} else if (global.process && global.process.version) {\n  var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10);\n  defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary';\n} else {\n  defaultEncoding = 'utf-8';\n}\n\nmodule.exports = defaultEncoding;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/pbkdf2/lib/default-encoding.js?");

/***/ }),

/***/ "./node_modules/pbkdf2/lib/precondition.js":
/*!*************************************************!*\
  !*** ./node_modules/pbkdf2/lib/precondition.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var MAX_ALLOC = Math.pow(2, 30) - 1; // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n  if (typeof iterations !== 'number') {\n    throw new TypeError('Iterations not a number');\n  }\n\n  if (iterations < 0) {\n    throw new TypeError('Bad iterations');\n  }\n\n  if (typeof keylen !== 'number') {\n    throw new TypeError('Key length not a number');\n  }\n\n  if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) {\n    /* eslint no-self-compare: 0 */\n    throw new TypeError('Bad key length');\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/pbkdf2/lib/precondition.js?");

/***/ }),

/***/ "./node_modules/pbkdf2/lib/sync-browser.js":
/*!*************************************************!*\
  !*** ./node_modules/pbkdf2/lib/sync-browser.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var md5 = __webpack_require__(/*! create-hash/md5 */ \"./node_modules/create-hash/md5.js\");\n\nvar RIPEMD160 = __webpack_require__(/*! ripemd160 */ \"./node_modules/ripemd160/index.js\");\n\nvar sha = __webpack_require__(/*! sha.js */ \"./node_modules/sha.js/index.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar checkParameters = __webpack_require__(/*! ./precondition */ \"./node_modules/pbkdf2/lib/precondition.js\");\n\nvar defaultEncoding = __webpack_require__(/*! ./default-encoding */ \"./node_modules/pbkdf2/lib/default-encoding.js\");\n\nvar toBuffer = __webpack_require__(/*! ./to-buffer */ \"./node_modules/pbkdf2/lib/to-buffer.js\");\n\nvar ZEROS = Buffer.alloc(128);\nvar sizes = {\n  md5: 16,\n  sha1: 20,\n  sha224: 28,\n  sha256: 32,\n  sha384: 48,\n  sha512: 64,\n  rmd160: 20,\n  ripemd160: 20\n};\n\nfunction Hmac(alg, key, saltLen) {\n  var hash = getDigest(alg);\n  var blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64;\n\n  if (key.length > blocksize) {\n    key = hash(key);\n  } else if (key.length < blocksize) {\n    key = Buffer.concat([key, ZEROS], blocksize);\n  }\n\n  var ipad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n  var opad = Buffer.allocUnsafe(blocksize + sizes[alg]);\n\n  for (var i = 0; i < blocksize; i++) {\n    ipad[i] = key[i] ^ 0x36;\n    opad[i] = key[i] ^ 0x5C;\n  }\n\n  var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4);\n  ipad.copy(ipad1, 0, 0, blocksize);\n  this.ipad1 = ipad1;\n  this.ipad2 = ipad;\n  this.opad = opad;\n  this.alg = alg;\n  this.blocksize = blocksize;\n  this.hash = hash;\n  this.size = sizes[alg];\n}\n\nHmac.prototype.run = function (data, ipad) {\n  data.copy(ipad, this.blocksize);\n  var h = this.hash(ipad);\n  h.copy(this.opad, this.blocksize);\n  return this.hash(this.opad);\n};\n\nfunction getDigest(alg) {\n  function shaFunc(data) {\n    return sha(alg).update(data).digest();\n  }\n\n  function rmd160Func(data) {\n    return new RIPEMD160().update(data).digest();\n  }\n\n  if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func;\n  if (alg === 'md5') return md5;\n  return shaFunc;\n}\n\nfunction pbkdf2(password, salt, iterations, keylen, digest) {\n  checkParameters(iterations, keylen);\n  password = toBuffer(password, defaultEncoding, 'Password');\n  salt = toBuffer(salt, defaultEncoding, 'Salt');\n  digest = digest || 'sha1';\n  var hmac = new Hmac(digest, password, salt.length);\n  var DK = Buffer.allocUnsafe(keylen);\n  var block1 = Buffer.allocUnsafe(salt.length + 4);\n  salt.copy(block1, 0, 0, salt.length);\n  var destPos = 0;\n  var hLen = sizes[digest];\n  var l = Math.ceil(keylen / hLen);\n\n  for (var i = 1; i <= l; i++) {\n    block1.writeUInt32BE(i, salt.length);\n    var T = hmac.run(block1, hmac.ipad1);\n    var U = T;\n\n    for (var j = 1; j < iterations; j++) {\n      U = hmac.run(U, hmac.ipad2);\n\n      for (var k = 0; k < hLen; k++) T[k] ^= U[k];\n    }\n\n    T.copy(DK, destPos);\n    destPos += hLen;\n  }\n\n  return DK;\n}\n\nmodule.exports = pbkdf2;\n\n//# sourceURL=webpack:///./node_modules/pbkdf2/lib/sync-browser.js?");

/***/ }),

/***/ "./node_modules/pbkdf2/lib/to-buffer.js":
/*!**********************************************!*\
  !*** ./node_modules/pbkdf2/lib/to-buffer.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nmodule.exports = function (thing, encoding, name) {\n  if (Buffer.isBuffer(thing)) {\n    return thing;\n  } else if (typeof thing === 'string') {\n    return Buffer.from(thing, encoding);\n  } else if (ArrayBuffer.isView(thing)) {\n    return Buffer.from(thing.buffer);\n  } else {\n    throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView');\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/pbkdf2/lib/to-buffer.js?");

/***/ }),

/***/ "./node_modules/popper.js/dist/esm/popper.js":
/*!***************************************************!*\
  !*** ./node_modules/popper.js/dist/esm/popper.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n\n  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\n\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\n\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\n\n\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  } // NOTE: 1 DOM access here\n\n\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\n\n\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n\n  return element.parentNode || element.host;\n}\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\n\n\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n\n    case '#document':\n      return element.body;\n  } // Firefox want us to check `-x` and `-y` variations as well\n\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\n\n\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\n\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n\n  if (version === 10) {\n    return isIE10;\n  }\n\n  return isIE11 || isIE10;\n}\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\n\n\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null; // NOTE: 1 DOM access here\n\n  var offsetParent = element.offsetParent || null; // Skip hidden elements which don't have an offsetParent\n\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  } // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n\n\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\n\n\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\n\n\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  } // Here we make sure to give as \"start\" the element that comes first in the DOM\n\n\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1; // Get common ancestor container\n\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer; // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  } // one of the nodes is inside shadowDOM, find which one\n\n\n  var element1root = getRoot(element1);\n\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\n\n\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\n\n\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n  return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\n\n\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\n\n\nfunction getBoundingClientRect(element) {\n  var rect = {}; // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  }; // subtract scrollbar size from sizes\n\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.width;\n  var height = sizes.height || element.clientHeight || result.height;\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height; // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth); // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0; // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop);\n    var marginLeft = parseFloat(styles.marginLeft);\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft; // Attach marginTop and marginLeft because in some circumstances we may need them\n\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n  return getClientRect(offset);\n}\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\n\n\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n\n  var parentNode = getParentNode(element);\n\n  if (!parentNode) {\n    return false;\n  }\n\n  return isFixed(parentNode);\n}\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n\n  var el = element.parentElement;\n\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n\n  return el || document.documentElement;\n}\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\n\n\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; // NOTE: 1 DOM access here\n\n  var boundaries = {\n    top: 0,\n    left: 0\n  };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); // Handle viewport case\n\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); // In case of HTML, we need a different computation\n\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  } // Add paddings\n\n\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n  return width * height;\n}\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n  var variation = placement.split('-')[1];\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\n\n\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\n\n\nfunction getOppositePlacement(placement) {\n  var hash = {\n    left: 'right',\n    right: 'left',\n    bottom: 'top',\n    top: 'bottom'\n  };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0]; // Get popper node sizes\n\n  var popperRect = getOuterSizes(popper); // Add position, width and height to our offsets object\n\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  }; // depending by the popper placement we have to compute its offsets slightly differently\n\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  } // use `filter` to obtain the same behavior of `find`\n\n\n  return arr.filter(check)[0];\n}\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  } // use `find` + `indexOf` if `findIndex` isn't supported\n\n\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\n\n\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n      data = fn(data, modifier);\n    }\n  });\n  return data;\n}\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\n\n\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  }; // compute reference element offsets\n\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); // store the computed placement inside `originalPlacement`\n\n  data.originalPlacement = data.placement;\n  data.positionFixed = this.options.positionFixed; // compute the popper offsets\n\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; // run the modifiers\n\n  data = runModifiers(this.modifiers, data); // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\n\n\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\n\n\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n\n  return null;\n}\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\n\n\nfunction destroy() {\n  this.state.isDestroyed = true; // touch DOM only if `applyStyle` modifier is enabled\n\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners(); // remove the popper if user explicitly asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n\n  return this;\n}\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\n\n\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, {\n    passive: true\n  });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n\n  scrollParents.push(target);\n}\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, {\n    passive: true\n  }); // Scroll event listener on scroll parents\n\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n  return state;\n}\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\n\n\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound); // Remove scroll event listener on scroll parents\n\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  }); // Reset state\n\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\n\n\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\n\n\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = ''; // add unit if the value is numeric and is one of the following\n\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\n\n\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles); // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n\n  setAttributes(data.instance.popper, data.attributes); // if arrowElement is defined and arrowStyles has some properties\n\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\n\n\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n  popper.setAttribute('x-placement', placement); // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n\n  setStyles(popper, {\n    position: options.positionFixed ? 'fixed' : 'absolute'\n  });\n  return options;\n}\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\n\n\nfunction getRoundedOffsets(data, shouldRound) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var round = Math.round,\n      floor = Math.floor;\n\n  var noRound = function noRound(v) {\n    return v;\n  };\n\n  var referenceWidth = round(reference.width);\n  var popperWidth = round(popper.width);\n  var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n  var isVariation = data.placement.indexOf('-') !== -1;\n  var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n  var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n  var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n  var verticalToInteger = !shouldRound ? noRound : round;\n  return {\n    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n    top: verticalToInteger(popper.top),\n    bottom: verticalToInteger(popper.bottom),\n    right: horizontalToInteger(popper.right)\n  };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper; // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent); // Styles\n\n  var styles = {\n    position: popper.position\n  };\n  var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right'; // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n\n  var prefixedProperty = getSupportedPropertyName('transform'); // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n\n  var left = void 0,\n      top = void 0;\n\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  } // Attributes\n\n\n  var attributes = {\n    'x-placement': data.placement\n  }; // Update `data` attributes, styles and arrowStyles\n\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n  return data;\n}\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\n\n\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n\n  return isRequired;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction arrow(data, options) {\n  var _data$offsets$arrow; // arrow depends on keepTogether in order to work\n\n\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element; // if arrowElement is a string, suppose it's a CSS selector\n\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement); // if arrowElement is not found, don't run the modifier\n\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len]; //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n  // top/left side\n\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  } // bottom/right side\n\n\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n\n  data.offsets.popper = getClientRect(data.offsets.popper); // compute center of the popper\n\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper\n\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n  return data;\n}\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\n\n\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n\n  return variation;\n}\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\n\n\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; // Get rid of `auto` `auto-start` and `auto-end`\n\nvar validPlacements = placements.slice(3);\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\n\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference; // using floor because the reference offsets may contain decimals we are not going to consider here\n\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; // flip the variation if required\n\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; // flips variation if reference element overflows boundaries\n\n    var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); // flips variation if popper content overflows boundaries\n\n    var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n    var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : ''); // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\n\n\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2]; // If it's not a number it's an operator, I guess\n\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\n\n\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0]; // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  }); // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  } // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n\n\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; // Convert the values with units to absolute pixels to allow our computations\n\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, []) // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  }); // Loop trough the offsets arrays and execute the operations\n\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var basePlacement = placement.split('-')[0];\n  var offsets = void 0;\n\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  } // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n\n\n  var transformProp = getSupportedPropertyName('transform');\n  var popperStyles = data.instance.popper.style; // assignment to help minification\n\n  var top = popperStyles.top,\n      left = popperStyles.left,\n      transform = popperStyles[transformProp];\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n  options.boundaries = boundaries;\n  var order = options.priority;\n  var popper = data.offsets.popper;\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n\n      return defineProperty({}, mainSide, value);\n    }\n  };\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n  data.offsets.popper = popper;\n  return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1]; // if shift shiftvariation is specified, run the modifier\n\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n  return data;\n}\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\n\n\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n\n    /** @prop {ModifierFn} */\n    fn: offset,\n\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n\n    /** @prop {ModifierFn} */\n    fn: arrow,\n\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n\n    /** @prop {ModifierFn} */\n    fn: flip,\n\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n\n    /**\n     * @prop {Boolean} flipVariations=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the reference element overlaps its boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariations: false,\n\n    /**\n     * @prop {Boolean} flipVariationsByContent=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the popper element overlaps its reference boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariationsByContent: false\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined\n  }\n};\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\n\nvar Defaults = {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n// Utils\n// Methods\n\nvar Popper = function () {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {Element|referenceObject} reference - The reference element used to position the popper\n   * @param {Element} popper - The HTML / XML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    }; // make update() debounced, so that it only runs at most once-per-tick\n\n\n    this.update = debounce(this.update.bind(this)); // with {} we create a new object with the options inside it\n\n    this.options = _extends({}, Popper.Defaults, options); // init state\n\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    }; // get reference and popper elements (allow jQuery wrappers)\n\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper; // Deep merge modifiers options\n\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    }); // Refactoring modifiers' list (Object => Array)\n\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    }) // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    }); // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    }); // fire the first update to position the popper in the right place\n\n    this.update();\n    var eventsEnabled = this.options.eventsEnabled;\n\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  } // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n    /**\n     * Schedules an update. It will run on the next UI update available.\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Popper);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/popper.js/dist/esm/popper.js?");

/***/ }),

/***/ "./node_modules/process-nextick-args/index.js":
/*!****************************************************!*\
  !*** ./node_modules/process-nextick-args/index.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nif (typeof process === 'undefined' || !process.version || process.version.indexOf('v0.') === 0 || process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n  module.exports = {\n    nextTick: nextTick\n  };\n} else {\n  module.exports = process;\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('\"callback\" argument must be a function');\n  }\n\n  var len = arguments.length;\n  var args, i;\n\n  switch (len) {\n    case 0:\n    case 1:\n      return process.nextTick(fn);\n\n    case 2:\n      return process.nextTick(function afterTickOne() {\n        fn.call(null, arg1);\n      });\n\n    case 3:\n      return process.nextTick(function afterTickTwo() {\n        fn.call(null, arg1, arg2);\n      });\n\n    case 4:\n      return process.nextTick(function afterTickThree() {\n        fn.call(null, arg1, arg2, arg3);\n      });\n\n    default:\n      args = new Array(len - 1);\n      i = 0;\n\n      while (i < args.length) {\n        args[i++] = arguments[i];\n      }\n\n      return process.nextTick(function afterTick() {\n        fn.apply(null, args);\n      });\n  }\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/process-nextick-args/index.js?");

/***/ }),

/***/ "./node_modules/process/browser.js":
/*!*****************************************!*\
  !*** ./node_modules/process/browser.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n  throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n  throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n  try {\n    if (typeof setTimeout === 'function') {\n      cachedSetTimeout = setTimeout;\n    } else {\n      cachedSetTimeout = defaultSetTimout;\n    }\n  } catch (e) {\n    cachedSetTimeout = defaultSetTimout;\n  }\n\n  try {\n    if (typeof clearTimeout === 'function') {\n      cachedClearTimeout = clearTimeout;\n    } else {\n      cachedClearTimeout = defaultClearTimeout;\n    }\n  } catch (e) {\n    cachedClearTimeout = defaultClearTimeout;\n  }\n})();\n\nfunction runTimeout(fun) {\n  if (cachedSetTimeout === setTimeout) {\n    //normal enviroments in sane situations\n    return setTimeout(fun, 0);\n  } // if setTimeout wasn't available but was latter defined\n\n\n  if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n    cachedSetTimeout = setTimeout;\n    return setTimeout(fun, 0);\n  }\n\n  try {\n    // when when somebody has screwed with setTimeout but no I.E. maddness\n    return cachedSetTimeout(fun, 0);\n  } catch (e) {\n    try {\n      // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n      return cachedSetTimeout.call(null, fun, 0);\n    } catch (e) {\n      // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n      return cachedSetTimeout.call(this, fun, 0);\n    }\n  }\n}\n\nfunction runClearTimeout(marker) {\n  if (cachedClearTimeout === clearTimeout) {\n    //normal enviroments in sane situations\n    return clearTimeout(marker);\n  } // if clearTimeout wasn't available but was latter defined\n\n\n  if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n    cachedClearTimeout = clearTimeout;\n    return clearTimeout(marker);\n  }\n\n  try {\n    // when when somebody has screwed with setTimeout but no I.E. maddness\n    return cachedClearTimeout(marker);\n  } catch (e) {\n    try {\n      // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n      return cachedClearTimeout.call(null, marker);\n    } catch (e) {\n      // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n      // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n      return cachedClearTimeout.call(this, marker);\n    }\n  }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n  if (!draining || !currentQueue) {\n    return;\n  }\n\n  draining = false;\n\n  if (currentQueue.length) {\n    queue = currentQueue.concat(queue);\n  } else {\n    queueIndex = -1;\n  }\n\n  if (queue.length) {\n    drainQueue();\n  }\n}\n\nfunction drainQueue() {\n  if (draining) {\n    return;\n  }\n\n  var timeout = runTimeout(cleanUpNextTick);\n  draining = true;\n  var len = queue.length;\n\n  while (len) {\n    currentQueue = queue;\n    queue = [];\n\n    while (++queueIndex < len) {\n      if (currentQueue) {\n        currentQueue[queueIndex].run();\n      }\n    }\n\n    queueIndex = -1;\n    len = queue.length;\n  }\n\n  currentQueue = null;\n  draining = false;\n  runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n  var args = new Array(arguments.length - 1);\n\n  if (arguments.length > 1) {\n    for (var i = 1; i < arguments.length; i++) {\n      args[i - 1] = arguments[i];\n    }\n  }\n\n  queue.push(new Item(fun, args));\n\n  if (queue.length === 1 && !draining) {\n    runTimeout(drainQueue);\n  }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n  this.fun = fun;\n  this.array = array;\n}\n\nItem.prototype.run = function () {\n  this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n  return [];\n};\n\nprocess.binding = function (name) {\n  throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n  return '/';\n};\n\nprocess.chdir = function (dir) {\n  throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n  return 0;\n};\n\n//# sourceURL=webpack:///./node_modules/process/browser.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/browser.js":
/*!************************************************!*\
  !*** ./node_modules/public-encrypt/browser.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("exports.publicEncrypt = __webpack_require__(/*! ./publicEncrypt */ \"./node_modules/public-encrypt/publicEncrypt.js\");\nexports.privateDecrypt = __webpack_require__(/*! ./privateDecrypt */ \"./node_modules/public-encrypt/privateDecrypt.js\");\n\nexports.privateEncrypt = function privateEncrypt(key, buf) {\n  return exports.publicEncrypt(key, buf, true);\n};\n\nexports.publicDecrypt = function publicDecrypt(key, buf) {\n  return exports.privateDecrypt(key, buf, true);\n};\n\n//# sourceURL=webpack:///./node_modules/public-encrypt/browser.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/mgf.js":
/*!********************************************!*\
  !*** ./node_modules/public-encrypt/mgf.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var createHash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nmodule.exports = function (seed, len) {\n  var t = Buffer.alloc(0);\n  var i = 0;\n  var c;\n\n  while (t.length < len) {\n    c = i2ops(i++);\n    t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()]);\n  }\n\n  return t.slice(0, len);\n};\n\nfunction i2ops(c) {\n  var out = Buffer.allocUnsafe(4);\n  out.writeUInt32BE(c, 0);\n  return out;\n}\n\n//# sourceURL=webpack:///./node_modules/public-encrypt/mgf.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js":
/*!******************************************************************!*\
  !*** ./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n  'use strict'; // Utils\n\n  function assert(val, msg) {\n    if (!val) throw new Error(msg || 'Assertion failed');\n  } // Could use `inherits` module, but don't want to move from single file\n  // architecture yet.\n\n\n  function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor;\n\n    var TempCtor = function () {};\n\n    TempCtor.prototype = superCtor.prototype;\n    ctor.prototype = new TempCtor();\n    ctor.prototype.constructor = ctor;\n  } // BN\n\n\n  function BN(number, base, endian) {\n    if (BN.isBN(number)) {\n      return number;\n    }\n\n    this.negative = 0;\n    this.words = null;\n    this.length = 0; // Reduction context\n\n    this.red = null;\n\n    if (number !== null) {\n      if (base === 'le' || base === 'be') {\n        endian = base;\n        base = 10;\n      }\n\n      this._init(number || 0, base || 10, endian || 'be');\n    }\n  }\n\n  if (typeof module === 'object') {\n    module.exports = BN;\n  } else {\n    exports.BN = BN;\n  }\n\n  BN.BN = BN;\n  BN.wordSize = 26;\n  var Buffer;\n\n  try {\n    if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n      Buffer = window.Buffer;\n    } else {\n      Buffer = __webpack_require__(/*! buffer */ 14).Buffer;\n    }\n  } catch (e) {}\n\n  BN.isBN = function isBN(num) {\n    if (num instanceof BN) {\n      return true;\n    }\n\n    return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n  };\n\n  BN.max = function max(left, right) {\n    if (left.cmp(right) > 0) return left;\n    return right;\n  };\n\n  BN.min = function min(left, right) {\n    if (left.cmp(right) < 0) return left;\n    return right;\n  };\n\n  BN.prototype._init = function init(number, base, endian) {\n    if (typeof number === 'number') {\n      return this._initNumber(number, base, endian);\n    }\n\n    if (typeof number === 'object') {\n      return this._initArray(number, base, endian);\n    }\n\n    if (base === 'hex') {\n      base = 16;\n    }\n\n    assert(base === (base | 0) && base >= 2 && base <= 36);\n    number = number.toString().replace(/\\s+/g, '');\n    var start = 0;\n\n    if (number[0] === '-') {\n      start++;\n      this.negative = 1;\n    }\n\n    if (start < number.length) {\n      if (base === 16) {\n        this._parseHex(number, start, endian);\n      } else {\n        this._parseBase(number, base, start);\n\n        if (endian === 'le') {\n          this._initArray(this.toArray(), base, endian);\n        }\n      }\n    }\n  };\n\n  BN.prototype._initNumber = function _initNumber(number, base, endian) {\n    if (number < 0) {\n      this.negative = 1;\n      number = -number;\n    }\n\n    if (number < 0x4000000) {\n      this.words = [number & 0x3ffffff];\n      this.length = 1;\n    } else if (number < 0x10000000000000) {\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n      this.length = 2;\n    } else {\n      assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n      this.length = 3;\n    }\n\n    if (endian !== 'le') return; // Reverse the bytes\n\n    this._initArray(this.toArray(), base, endian);\n  };\n\n  BN.prototype._initArray = function _initArray(number, base, endian) {\n    // Perhaps a Uint8Array\n    assert(typeof number.length === 'number');\n\n    if (number.length <= 0) {\n      this.words = [0];\n      this.length = 1;\n      return this;\n    }\n\n    this.length = Math.ceil(number.length / 3);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    }\n\n    var j, w;\n    var off = 0;\n\n    if (endian === 'be') {\n      for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n        w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    } else if (endian === 'le') {\n      for (i = 0, j = 0; i < number.length; i += 3) {\n        w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n        this.words[j] |= w << off & 0x3ffffff;\n        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;\n        off += 24;\n\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    }\n\n    return this.strip();\n  };\n\n  function parseHex4Bits(string, index) {\n    var c = string.charCodeAt(index); // 'A' - 'F'\n\n    if (c >= 65 && c <= 70) {\n      return c - 55; // 'a' - 'f'\n    } else if (c >= 97 && c <= 102) {\n      return c - 87; // '0' - '9'\n    } else {\n      return c - 48 & 0xf;\n    }\n  }\n\n  function parseHexByte(string, lowerBound, index) {\n    var r = parseHex4Bits(string, index);\n\n    if (index - 1 >= lowerBound) {\n      r |= parseHex4Bits(string, index - 1) << 4;\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseHex = function _parseHex(number, start, endian) {\n    // Create possibly bigger array to ensure that it fits the number\n    this.length = Math.ceil((number.length - start) / 6);\n    this.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    } // 24-bits chunks\n\n\n    var off = 0;\n    var j = 0;\n    var w;\n\n    if (endian === 'be') {\n      for (i = number.length - 1; i >= start; i -= 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    } else {\n      var parseLength = number.length - start;\n\n      for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    }\n\n    this.strip();\n  };\n\n  function parseBase(str, start, end, mul) {\n    var r = 0;\n    var len = Math.min(str.length, end);\n\n    for (var i = start; i < len; i++) {\n      var c = str.charCodeAt(i) - 48;\n      r *= mul; // 'a'\n\n      if (c >= 49) {\n        r += c - 49 + 0xa; // 'A'\n      } else if (c >= 17) {\n        r += c - 17 + 0xa; // '0' - '9'\n      } else {\n        r += c;\n      }\n    }\n\n    return r;\n  }\n\n  BN.prototype._parseBase = function _parseBase(number, base, start) {\n    // Initialize as zero\n    this.words = [0];\n    this.length = 1; // Find length of limb in base\n\n    for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n      limbLen++;\n    }\n\n    limbLen--;\n    limbPow = limbPow / base | 0;\n    var total = number.length - start;\n    var mod = total % limbLen;\n    var end = Math.min(total, total - mod) + start;\n    var word = 0;\n\n    for (var i = start; i < end; i += limbLen) {\n      word = parseBase(number, i, i + limbLen, base);\n      this.imuln(limbPow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    if (mod !== 0) {\n      var pow = 1;\n      word = parseBase(number, i, number.length, base);\n\n      for (i = 0; i < mod; i++) {\n        pow *= base;\n      }\n\n      this.imuln(pow);\n\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    this.strip();\n  };\n\n  BN.prototype.copy = function copy(dest) {\n    dest.words = new Array(this.length);\n\n    for (var i = 0; i < this.length; i++) {\n      dest.words[i] = this.words[i];\n    }\n\n    dest.length = this.length;\n    dest.negative = this.negative;\n    dest.red = this.red;\n  };\n\n  BN.prototype.clone = function clone() {\n    var r = new BN(null);\n    this.copy(r);\n    return r;\n  };\n\n  BN.prototype._expand = function _expand(size) {\n    while (this.length < size) {\n      this.words[this.length++] = 0;\n    }\n\n    return this;\n  }; // Remove leading `0` from `this`\n\n\n  BN.prototype.strip = function strip() {\n    while (this.length > 1 && this.words[this.length - 1] === 0) {\n      this.length--;\n    }\n\n    return this._normSign();\n  };\n\n  BN.prototype._normSign = function _normSign() {\n    // -0 = 0\n    if (this.length === 1 && this.words[0] === 0) {\n      this.negative = 0;\n    }\n\n    return this;\n  };\n\n  BN.prototype.inspect = function inspect() {\n    return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  };\n  /*\n   var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n   var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n   */\n\n\n  var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n  var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n  var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n  BN.prototype.toString = function toString(base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n    var out;\n\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = ((w << off | carry) & 0xffffff).toString(16);\n        carry = w >>> 24 - off & 0xffffff;\n\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n\n        off += 2;\n\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n      }\n\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);\n\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n\n      while (!c.isZero()) {\n        var r = c.modn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber() {\n    var ret = this.words[0];\n\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + this.words[1] * 0x4000000;\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n\n    return this.negative !== 0 ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON() {\n    return this.toString(16);\n  };\n\n  BN.prototype.toBuffer = function toBuffer(endian, length) {\n    assert(typeof Buffer !== 'undefined');\n    return this.toArrayLike(Buffer, endian, length);\n  };\n\n  BN.prototype.toArray = function toArray(endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n    this.strip();\n    var littleEndian = endian === 'le';\n    var res = new ArrayType(reqLength);\n    var b, i;\n    var q = this.clone();\n\n    if (!littleEndian) {\n      // Assume big-endian\n      for (i = 0; i < reqLength - byteLength; i++) {\n        res[i] = 0;\n      }\n\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n        res[reqLength - i - 1] = b;\n      }\n    } else {\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n        res[i] = b;\n      }\n\n      for (; i < reqLength; i++) {\n        res[i] = 0;\n      }\n    }\n\n    return res;\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits(w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits(w) {\n      var t = w;\n      var r = 0;\n\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits(w) {\n    // Short-cut\n    if (w === 0) return 26;\n    var t = w;\n    var r = 0;\n\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n\n    return r;\n  }; // Return number of used bits in a BN\n\n\n  BN.prototype.bitLength = function bitLength() {\n    var w = this.words[this.length - 1];\n\n    var hi = this._countBits(w);\n\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray(num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = bit / 26 | 0;\n      var wbit = bit % 26;\n      w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n    }\n\n    return w;\n  } // Number of trailing zero bits\n\n\n  BN.prototype.zeroBits = function zeroBits() {\n    if (this.isZero()) return 0;\n    var r = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n\n      r += b;\n      if (b !== 26) break;\n    }\n\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength() {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos(width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos(width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg() {\n    return this.negative !== 0;\n  }; // Return negative clone of `this`\n\n\n  BN.prototype.neg = function neg() {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg() {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  }; // Or `num` with `this` in-place\n\n\n  BN.prototype.iuor = function iuor(num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ior = function ior(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  }; // Or `num` with `this`\n\n\n  BN.prototype.or = function or(num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor(num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  }; // And `num` with `this` in-place\n\n\n  BN.prototype.iuand = function iuand(num) {\n    // b = min-length(num, this)\n    var b;\n\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n    return this.strip();\n  };\n\n  BN.prototype.iand = function iand(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  }; // And `num` with `this`\n\n\n  BN.prototype.and = function and(num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand(num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  }; // Xor `num` with `this` in-place\n\n\n  BN.prototype.iuxor = function iuxor(num) {\n    // a.length > b.length\n    var a;\n    var b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n    return this.strip();\n  };\n\n  BN.prototype.ixor = function ixor(num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  }; // Xor `num` with `this`\n\n\n  BN.prototype.xor = function xor(num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor(num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  }; // Not ``this`` with ``width`` bitwidth\n\n\n  BN.prototype.inotn = function inotn(width) {\n    assert(typeof width === 'number' && width >= 0);\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    } // Handle complete words\n\n\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    } // Handle the residue\n\n\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n    } // And remove leading zeroes\n\n\n    return this.strip();\n  };\n\n  BN.prototype.notn = function notn(width) {\n    return this.clone().inotn(width);\n  }; // Set `bit` of `this`\n\n\n  BN.prototype.setn = function setn(bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var off = bit / 26 | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | 1 << wbit;\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this.strip();\n  }; // Add `num` to `this` in-place\n\n\n  BN.prototype.iadd = function iadd(num) {\n    var r; // negative + positive\n\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign(); // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    } // a.length > b.length\n\n\n    var a, b;\n\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++; // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  }; // Add `num` to `this`\n\n\n  BN.prototype.add = function add(num) {\n    var res;\n\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n    return num.clone().iadd(this);\n  }; // Subtract `num` from `this` in-place\n\n\n  BN.prototype.isub = function isub(num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign(); // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    } // At this point both numbers are positive\n\n\n    var cmp = this.cmp(num); // Optimization - zeroify\n\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    } // a > b\n\n\n    var a, b;\n\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    } // Copy rest of the words\n\n\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this.strip();\n  }; // Subtract `num` from `this`\n\n\n  BN.prototype.sub = function sub(num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = self.length + num.length | 0;\n    out.length = len;\n    len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)\n\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n    var lo = r & 0x3ffffff;\n    var carry = r / 0x4000000 | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += r / 0x4000000 | 0;\n        rword = r & 0x3ffffff;\n      }\n\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  } // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n\n\n  var comb10MulTo = function comb10MulTo(self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = mid + Math.imul(ah0, bl0) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = mid + Math.imul(ah1, bl0) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = lo + Math.imul(al0, bl1) | 0;\n    mid = mid + Math.imul(al0, bh1) | 0;\n    mid = mid + Math.imul(ah0, bl1) | 0;\n    hi = hi + Math.imul(ah0, bh1) | 0;\n    var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = mid + Math.imul(ah2, bl0) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = lo + Math.imul(al1, bl1) | 0;\n    mid = mid + Math.imul(al1, bh1) | 0;\n    mid = mid + Math.imul(ah1, bl1) | 0;\n    hi = hi + Math.imul(ah1, bh1) | 0;\n    lo = lo + Math.imul(al0, bl2) | 0;\n    mid = mid + Math.imul(al0, bh2) | 0;\n    mid = mid + Math.imul(ah0, bl2) | 0;\n    hi = hi + Math.imul(ah0, bh2) | 0;\n    var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = mid + Math.imul(ah3, bl0) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = lo + Math.imul(al2, bl1) | 0;\n    mid = mid + Math.imul(al2, bh1) | 0;\n    mid = mid + Math.imul(ah2, bl1) | 0;\n    hi = hi + Math.imul(ah2, bh1) | 0;\n    lo = lo + Math.imul(al1, bl2) | 0;\n    mid = mid + Math.imul(al1, bh2) | 0;\n    mid = mid + Math.imul(ah1, bl2) | 0;\n    hi = hi + Math.imul(ah1, bh2) | 0;\n    lo = lo + Math.imul(al0, bl3) | 0;\n    mid = mid + Math.imul(al0, bh3) | 0;\n    mid = mid + Math.imul(ah0, bl3) | 0;\n    hi = hi + Math.imul(ah0, bh3) | 0;\n    var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = mid + Math.imul(ah4, bl0) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = lo + Math.imul(al3, bl1) | 0;\n    mid = mid + Math.imul(al3, bh1) | 0;\n    mid = mid + Math.imul(ah3, bl1) | 0;\n    hi = hi + Math.imul(ah3, bh1) | 0;\n    lo = lo + Math.imul(al2, bl2) | 0;\n    mid = mid + Math.imul(al2, bh2) | 0;\n    mid = mid + Math.imul(ah2, bl2) | 0;\n    hi = hi + Math.imul(ah2, bh2) | 0;\n    lo = lo + Math.imul(al1, bl3) | 0;\n    mid = mid + Math.imul(al1, bh3) | 0;\n    mid = mid + Math.imul(ah1, bl3) | 0;\n    hi = hi + Math.imul(ah1, bh3) | 0;\n    lo = lo + Math.imul(al0, bl4) | 0;\n    mid = mid + Math.imul(al0, bh4) | 0;\n    mid = mid + Math.imul(ah0, bl4) | 0;\n    hi = hi + Math.imul(ah0, bh4) | 0;\n    var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = mid + Math.imul(ah5, bl0) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = lo + Math.imul(al4, bl1) | 0;\n    mid = mid + Math.imul(al4, bh1) | 0;\n    mid = mid + Math.imul(ah4, bl1) | 0;\n    hi = hi + Math.imul(ah4, bh1) | 0;\n    lo = lo + Math.imul(al3, bl2) | 0;\n    mid = mid + Math.imul(al3, bh2) | 0;\n    mid = mid + Math.imul(ah3, bl2) | 0;\n    hi = hi + Math.imul(ah3, bh2) | 0;\n    lo = lo + Math.imul(al2, bl3) | 0;\n    mid = mid + Math.imul(al2, bh3) | 0;\n    mid = mid + Math.imul(ah2, bl3) | 0;\n    hi = hi + Math.imul(ah2, bh3) | 0;\n    lo = lo + Math.imul(al1, bl4) | 0;\n    mid = mid + Math.imul(al1, bh4) | 0;\n    mid = mid + Math.imul(ah1, bl4) | 0;\n    hi = hi + Math.imul(ah1, bh4) | 0;\n    lo = lo + Math.imul(al0, bl5) | 0;\n    mid = mid + Math.imul(al0, bh5) | 0;\n    mid = mid + Math.imul(ah0, bl5) | 0;\n    hi = hi + Math.imul(ah0, bh5) | 0;\n    var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = mid + Math.imul(ah6, bl0) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = lo + Math.imul(al5, bl1) | 0;\n    mid = mid + Math.imul(al5, bh1) | 0;\n    mid = mid + Math.imul(ah5, bl1) | 0;\n    hi = hi + Math.imul(ah5, bh1) | 0;\n    lo = lo + Math.imul(al4, bl2) | 0;\n    mid = mid + Math.imul(al4, bh2) | 0;\n    mid = mid + Math.imul(ah4, bl2) | 0;\n    hi = hi + Math.imul(ah4, bh2) | 0;\n    lo = lo + Math.imul(al3, bl3) | 0;\n    mid = mid + Math.imul(al3, bh3) | 0;\n    mid = mid + Math.imul(ah3, bl3) | 0;\n    hi = hi + Math.imul(ah3, bh3) | 0;\n    lo = lo + Math.imul(al2, bl4) | 0;\n    mid = mid + Math.imul(al2, bh4) | 0;\n    mid = mid + Math.imul(ah2, bl4) | 0;\n    hi = hi + Math.imul(ah2, bh4) | 0;\n    lo = lo + Math.imul(al1, bl5) | 0;\n    mid = mid + Math.imul(al1, bh5) | 0;\n    mid = mid + Math.imul(ah1, bl5) | 0;\n    hi = hi + Math.imul(ah1, bh5) | 0;\n    lo = lo + Math.imul(al0, bl6) | 0;\n    mid = mid + Math.imul(al0, bh6) | 0;\n    mid = mid + Math.imul(ah0, bl6) | 0;\n    hi = hi + Math.imul(ah0, bh6) | 0;\n    var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = mid + Math.imul(ah7, bl0) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = lo + Math.imul(al6, bl1) | 0;\n    mid = mid + Math.imul(al6, bh1) | 0;\n    mid = mid + Math.imul(ah6, bl1) | 0;\n    hi = hi + Math.imul(ah6, bh1) | 0;\n    lo = lo + Math.imul(al5, bl2) | 0;\n    mid = mid + Math.imul(al5, bh2) | 0;\n    mid = mid + Math.imul(ah5, bl2) | 0;\n    hi = hi + Math.imul(ah5, bh2) | 0;\n    lo = lo + Math.imul(al4, bl3) | 0;\n    mid = mid + Math.imul(al4, bh3) | 0;\n    mid = mid + Math.imul(ah4, bl3) | 0;\n    hi = hi + Math.imul(ah4, bh3) | 0;\n    lo = lo + Math.imul(al3, bl4) | 0;\n    mid = mid + Math.imul(al3, bh4) | 0;\n    mid = mid + Math.imul(ah3, bl4) | 0;\n    hi = hi + Math.imul(ah3, bh4) | 0;\n    lo = lo + Math.imul(al2, bl5) | 0;\n    mid = mid + Math.imul(al2, bh5) | 0;\n    mid = mid + Math.imul(ah2, bl5) | 0;\n    hi = hi + Math.imul(ah2, bh5) | 0;\n    lo = lo + Math.imul(al1, bl6) | 0;\n    mid = mid + Math.imul(al1, bh6) | 0;\n    mid = mid + Math.imul(ah1, bl6) | 0;\n    hi = hi + Math.imul(ah1, bh6) | 0;\n    lo = lo + Math.imul(al0, bl7) | 0;\n    mid = mid + Math.imul(al0, bh7) | 0;\n    mid = mid + Math.imul(ah0, bl7) | 0;\n    hi = hi + Math.imul(ah0, bh7) | 0;\n    var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = mid + Math.imul(ah8, bl0) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = lo + Math.imul(al7, bl1) | 0;\n    mid = mid + Math.imul(al7, bh1) | 0;\n    mid = mid + Math.imul(ah7, bl1) | 0;\n    hi = hi + Math.imul(ah7, bh1) | 0;\n    lo = lo + Math.imul(al6, bl2) | 0;\n    mid = mid + Math.imul(al6, bh2) | 0;\n    mid = mid + Math.imul(ah6, bl2) | 0;\n    hi = hi + Math.imul(ah6, bh2) | 0;\n    lo = lo + Math.imul(al5, bl3) | 0;\n    mid = mid + Math.imul(al5, bh3) | 0;\n    mid = mid + Math.imul(ah5, bl3) | 0;\n    hi = hi + Math.imul(ah5, bh3) | 0;\n    lo = lo + Math.imul(al4, bl4) | 0;\n    mid = mid + Math.imul(al4, bh4) | 0;\n    mid = mid + Math.imul(ah4, bl4) | 0;\n    hi = hi + Math.imul(ah4, bh4) | 0;\n    lo = lo + Math.imul(al3, bl5) | 0;\n    mid = mid + Math.imul(al3, bh5) | 0;\n    mid = mid + Math.imul(ah3, bl5) | 0;\n    hi = hi + Math.imul(ah3, bh5) | 0;\n    lo = lo + Math.imul(al2, bl6) | 0;\n    mid = mid + Math.imul(al2, bh6) | 0;\n    mid = mid + Math.imul(ah2, bl6) | 0;\n    hi = hi + Math.imul(ah2, bh6) | 0;\n    lo = lo + Math.imul(al1, bl7) | 0;\n    mid = mid + Math.imul(al1, bh7) | 0;\n    mid = mid + Math.imul(ah1, bl7) | 0;\n    hi = hi + Math.imul(ah1, bh7) | 0;\n    lo = lo + Math.imul(al0, bl8) | 0;\n    mid = mid + Math.imul(al0, bh8) | 0;\n    mid = mid + Math.imul(ah0, bl8) | 0;\n    hi = hi + Math.imul(ah0, bh8) | 0;\n    var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = mid + Math.imul(ah9, bl0) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = lo + Math.imul(al8, bl1) | 0;\n    mid = mid + Math.imul(al8, bh1) | 0;\n    mid = mid + Math.imul(ah8, bl1) | 0;\n    hi = hi + Math.imul(ah8, bh1) | 0;\n    lo = lo + Math.imul(al7, bl2) | 0;\n    mid = mid + Math.imul(al7, bh2) | 0;\n    mid = mid + Math.imul(ah7, bl2) | 0;\n    hi = hi + Math.imul(ah7, bh2) | 0;\n    lo = lo + Math.imul(al6, bl3) | 0;\n    mid = mid + Math.imul(al6, bh3) | 0;\n    mid = mid + Math.imul(ah6, bl3) | 0;\n    hi = hi + Math.imul(ah6, bh3) | 0;\n    lo = lo + Math.imul(al5, bl4) | 0;\n    mid = mid + Math.imul(al5, bh4) | 0;\n    mid = mid + Math.imul(ah5, bl4) | 0;\n    hi = hi + Math.imul(ah5, bh4) | 0;\n    lo = lo + Math.imul(al4, bl5) | 0;\n    mid = mid + Math.imul(al4, bh5) | 0;\n    mid = mid + Math.imul(ah4, bl5) | 0;\n    hi = hi + Math.imul(ah4, bh5) | 0;\n    lo = lo + Math.imul(al3, bl6) | 0;\n    mid = mid + Math.imul(al3, bh6) | 0;\n    mid = mid + Math.imul(ah3, bl6) | 0;\n    hi = hi + Math.imul(ah3, bh6) | 0;\n    lo = lo + Math.imul(al2, bl7) | 0;\n    mid = mid + Math.imul(al2, bh7) | 0;\n    mid = mid + Math.imul(ah2, bl7) | 0;\n    hi = hi + Math.imul(ah2, bh7) | 0;\n    lo = lo + Math.imul(al1, bl8) | 0;\n    mid = mid + Math.imul(al1, bh8) | 0;\n    mid = mid + Math.imul(ah1, bl8) | 0;\n    hi = hi + Math.imul(ah1, bh8) | 0;\n    lo = lo + Math.imul(al0, bl9) | 0;\n    mid = mid + Math.imul(al0, bh9) | 0;\n    mid = mid + Math.imul(ah0, bl9) | 0;\n    hi = hi + Math.imul(ah0, bh9) | 0;\n    var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = mid + Math.imul(ah9, bl1) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = lo + Math.imul(al8, bl2) | 0;\n    mid = mid + Math.imul(al8, bh2) | 0;\n    mid = mid + Math.imul(ah8, bl2) | 0;\n    hi = hi + Math.imul(ah8, bh2) | 0;\n    lo = lo + Math.imul(al7, bl3) | 0;\n    mid = mid + Math.imul(al7, bh3) | 0;\n    mid = mid + Math.imul(ah7, bl3) | 0;\n    hi = hi + Math.imul(ah7, bh3) | 0;\n    lo = lo + Math.imul(al6, bl4) | 0;\n    mid = mid + Math.imul(al6, bh4) | 0;\n    mid = mid + Math.imul(ah6, bl4) | 0;\n    hi = hi + Math.imul(ah6, bh4) | 0;\n    lo = lo + Math.imul(al5, bl5) | 0;\n    mid = mid + Math.imul(al5, bh5) | 0;\n    mid = mid + Math.imul(ah5, bl5) | 0;\n    hi = hi + Math.imul(ah5, bh5) | 0;\n    lo = lo + Math.imul(al4, bl6) | 0;\n    mid = mid + Math.imul(al4, bh6) | 0;\n    mid = mid + Math.imul(ah4, bl6) | 0;\n    hi = hi + Math.imul(ah4, bh6) | 0;\n    lo = lo + Math.imul(al3, bl7) | 0;\n    mid = mid + Math.imul(al3, bh7) | 0;\n    mid = mid + Math.imul(ah3, bl7) | 0;\n    hi = hi + Math.imul(ah3, bh7) | 0;\n    lo = lo + Math.imul(al2, bl8) | 0;\n    mid = mid + Math.imul(al2, bh8) | 0;\n    mid = mid + Math.imul(ah2, bl8) | 0;\n    hi = hi + Math.imul(ah2, bh8) | 0;\n    lo = lo + Math.imul(al1, bl9) | 0;\n    mid = mid + Math.imul(al1, bh9) | 0;\n    mid = mid + Math.imul(ah1, bl9) | 0;\n    hi = hi + Math.imul(ah1, bh9) | 0;\n    var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = mid + Math.imul(ah9, bl2) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = lo + Math.imul(al8, bl3) | 0;\n    mid = mid + Math.imul(al8, bh3) | 0;\n    mid = mid + Math.imul(ah8, bl3) | 0;\n    hi = hi + Math.imul(ah8, bh3) | 0;\n    lo = lo + Math.imul(al7, bl4) | 0;\n    mid = mid + Math.imul(al7, bh4) | 0;\n    mid = mid + Math.imul(ah7, bl4) | 0;\n    hi = hi + Math.imul(ah7, bh4) | 0;\n    lo = lo + Math.imul(al6, bl5) | 0;\n    mid = mid + Math.imul(al6, bh5) | 0;\n    mid = mid + Math.imul(ah6, bl5) | 0;\n    hi = hi + Math.imul(ah6, bh5) | 0;\n    lo = lo + Math.imul(al5, bl6) | 0;\n    mid = mid + Math.imul(al5, bh6) | 0;\n    mid = mid + Math.imul(ah5, bl6) | 0;\n    hi = hi + Math.imul(ah5, bh6) | 0;\n    lo = lo + Math.imul(al4, bl7) | 0;\n    mid = mid + Math.imul(al4, bh7) | 0;\n    mid = mid + Math.imul(ah4, bl7) | 0;\n    hi = hi + Math.imul(ah4, bh7) | 0;\n    lo = lo + Math.imul(al3, bl8) | 0;\n    mid = mid + Math.imul(al3, bh8) | 0;\n    mid = mid + Math.imul(ah3, bl8) | 0;\n    hi = hi + Math.imul(ah3, bh8) | 0;\n    lo = lo + Math.imul(al2, bl9) | 0;\n    mid = mid + Math.imul(al2, bh9) | 0;\n    mid = mid + Math.imul(ah2, bl9) | 0;\n    hi = hi + Math.imul(ah2, bh9) | 0;\n    var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = mid + Math.imul(ah9, bl3) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = lo + Math.imul(al8, bl4) | 0;\n    mid = mid + Math.imul(al8, bh4) | 0;\n    mid = mid + Math.imul(ah8, bl4) | 0;\n    hi = hi + Math.imul(ah8, bh4) | 0;\n    lo = lo + Math.imul(al7, bl5) | 0;\n    mid = mid + Math.imul(al7, bh5) | 0;\n    mid = mid + Math.imul(ah7, bl5) | 0;\n    hi = hi + Math.imul(ah7, bh5) | 0;\n    lo = lo + Math.imul(al6, bl6) | 0;\n    mid = mid + Math.imul(al6, bh6) | 0;\n    mid = mid + Math.imul(ah6, bl6) | 0;\n    hi = hi + Math.imul(ah6, bh6) | 0;\n    lo = lo + Math.imul(al5, bl7) | 0;\n    mid = mid + Math.imul(al5, bh7) | 0;\n    mid = mid + Math.imul(ah5, bl7) | 0;\n    hi = hi + Math.imul(ah5, bh7) | 0;\n    lo = lo + Math.imul(al4, bl8) | 0;\n    mid = mid + Math.imul(al4, bh8) | 0;\n    mid = mid + Math.imul(ah4, bl8) | 0;\n    hi = hi + Math.imul(ah4, bh8) | 0;\n    lo = lo + Math.imul(al3, bl9) | 0;\n    mid = mid + Math.imul(al3, bh9) | 0;\n    mid = mid + Math.imul(ah3, bl9) | 0;\n    hi = hi + Math.imul(ah3, bh9) | 0;\n    var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = mid + Math.imul(ah9, bl4) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = lo + Math.imul(al8, bl5) | 0;\n    mid = mid + Math.imul(al8, bh5) | 0;\n    mid = mid + Math.imul(ah8, bl5) | 0;\n    hi = hi + Math.imul(ah8, bh5) | 0;\n    lo = lo + Math.imul(al7, bl6) | 0;\n    mid = mid + Math.imul(al7, bh6) | 0;\n    mid = mid + Math.imul(ah7, bl6) | 0;\n    hi = hi + Math.imul(ah7, bh6) | 0;\n    lo = lo + Math.imul(al6, bl7) | 0;\n    mid = mid + Math.imul(al6, bh7) | 0;\n    mid = mid + Math.imul(ah6, bl7) | 0;\n    hi = hi + Math.imul(ah6, bh7) | 0;\n    lo = lo + Math.imul(al5, bl8) | 0;\n    mid = mid + Math.imul(al5, bh8) | 0;\n    mid = mid + Math.imul(ah5, bl8) | 0;\n    hi = hi + Math.imul(ah5, bh8) | 0;\n    lo = lo + Math.imul(al4, bl9) | 0;\n    mid = mid + Math.imul(al4, bh9) | 0;\n    mid = mid + Math.imul(ah4, bl9) | 0;\n    hi = hi + Math.imul(ah4, bh9) | 0;\n    var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = mid + Math.imul(ah9, bl5) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = lo + Math.imul(al8, bl6) | 0;\n    mid = mid + Math.imul(al8, bh6) | 0;\n    mid = mid + Math.imul(ah8, bl6) | 0;\n    hi = hi + Math.imul(ah8, bh6) | 0;\n    lo = lo + Math.imul(al7, bl7) | 0;\n    mid = mid + Math.imul(al7, bh7) | 0;\n    mid = mid + Math.imul(ah7, bl7) | 0;\n    hi = hi + Math.imul(ah7, bh7) | 0;\n    lo = lo + Math.imul(al6, bl8) | 0;\n    mid = mid + Math.imul(al6, bh8) | 0;\n    mid = mid + Math.imul(ah6, bl8) | 0;\n    hi = hi + Math.imul(ah6, bh8) | 0;\n    lo = lo + Math.imul(al5, bl9) | 0;\n    mid = mid + Math.imul(al5, bh9) | 0;\n    mid = mid + Math.imul(ah5, bl9) | 0;\n    hi = hi + Math.imul(ah5, bh9) | 0;\n    var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = mid + Math.imul(ah9, bl6) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = lo + Math.imul(al8, bl7) | 0;\n    mid = mid + Math.imul(al8, bh7) | 0;\n    mid = mid + Math.imul(ah8, bl7) | 0;\n    hi = hi + Math.imul(ah8, bh7) | 0;\n    lo = lo + Math.imul(al7, bl8) | 0;\n    mid = mid + Math.imul(al7, bh8) | 0;\n    mid = mid + Math.imul(ah7, bl8) | 0;\n    hi = hi + Math.imul(ah7, bh8) | 0;\n    lo = lo + Math.imul(al6, bl9) | 0;\n    mid = mid + Math.imul(al6, bh9) | 0;\n    mid = mid + Math.imul(ah6, bl9) | 0;\n    hi = hi + Math.imul(ah6, bh9) | 0;\n    var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = mid + Math.imul(ah9, bl7) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = lo + Math.imul(al8, bl8) | 0;\n    mid = mid + Math.imul(al8, bh8) | 0;\n    mid = mid + Math.imul(ah8, bl8) | 0;\n    hi = hi + Math.imul(ah8, bh8) | 0;\n    lo = lo + Math.imul(al7, bl9) | 0;\n    mid = mid + Math.imul(al7, bh9) | 0;\n    mid = mid + Math.imul(ah7, bl9) | 0;\n    hi = hi + Math.imul(ah7, bh9) | 0;\n    var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = mid + Math.imul(ah9, bl8) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = lo + Math.imul(al8, bl9) | 0;\n    mid = mid + Math.imul(al8, bh9) | 0;\n    mid = mid + Math.imul(ah8, bl9) | 0;\n    hi = hi + Math.imul(ah8, bh9) | 0;\n    var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = mid + Math.imul(ah9, bl9) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;\n    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n\n    return out;\n  }; // Polyfill comb\n\n\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo(self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n    var carry = 0;\n    var hncarry = 0;\n\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n        var lo = r & 0x3ffffff;\n        ncarry = ncarry + (r / 0x4000000 | 0) | 0;\n        lo = lo + rword | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = ncarry + (lo >>> 26) | 0;\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  function jumboMulTo(self, num, out) {\n    var fftm = new FFTM();\n    return fftm.mulp(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo(num, out) {\n    var res;\n    var len = this.length + num.length;\n\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  }; // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n\n  function FFTM(x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT(N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  }; // Returns binary-reversed representation of `x`\n\n\n  FFTM.prototype.revBin = function revBin(x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n    var rb = 0;\n\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << l - i - 1;\n      x >>= 1;\n    }\n\n    return rb;\n  }; // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n\n\n  FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n          var rx = rtwdf_ * ro - itwdf_ * io;\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n          /* jshint maxdepth : false */\n\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n      t = iws[i];\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n    var carry = 0;\n\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n      rws[2 * i] = carry & 0x1fff;\n      carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff;\n      carry = carry >>> 13;\n    } // Pad with zeroes\n\n\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub(N) {\n    var ph = new Array(N);\n\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp(x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n    var rmws = out.words;\n    rmws.length = N;\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out.strip();\n  }; // Multiply `this` by `num`\n\n\n  BN.prototype.mul = function mul(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  }; // Multiply employing FFT\n\n\n  BN.prototype.mulf = function mulf(num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  }; // In-place Multiplication\n\n\n  BN.prototype.imul = function imul(num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000); // Carry\n\n    var carry = 0;\n\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum\n\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.muln = function muln(num) {\n    return this.clone().imuln(num);\n  }; // `this` * `this`\n\n\n  BN.prototype.sqr = function sqr() {\n    return this.mul(this);\n  }; // `this` * `this` in-place\n\n\n  BN.prototype.isqr = function isqr() {\n    return this.imul(this.clone());\n  }; // Math.pow(`this`, `num`)\n\n\n  BN.prototype.pow = function pow(num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n    var res = this;\n\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  }; // Shift-left in-place\n\n\n  BN.prototype.iushln = function iushln(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = 0x3ffffff >>> 26 - r << 26 - r;\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = (this.words[i] | 0) - newCarry << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> 26 - r;\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishln = function ishln(bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  }; // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n\n\n  BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n\n    if (hint) {\n      h = (hint - hint % 26) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n    var maskedWords = extended;\n    h -= s;\n    h = Math.max(0, h); // Extended mode, copy masked part\n\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {// No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = carry << 26 - r | word >>> r;\n      carry = word & mask;\n    } // Push carried bits as a mask\n\n\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  }; // Shift-left\n\n\n  BN.prototype.shln = function shln(bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln(bits) {\n    return this.clone().iushln(bits);\n  }; // Shift-right\n\n\n  BN.prototype.shrn = function shrn(bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn(bits) {\n    return this.clone().iushrn(bits);\n  }; // Test if n bit is set\n\n\n  BN.prototype.testn = function testn(bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) return false; // Check bit and return\n\n    var w = this.words[s];\n    return !!(w & q);\n  }; // Return only lowers bits of number (in-place)\n\n\n  BN.prototype.imaskn = function imaskn(bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this.strip();\n  }; // Return only lowers bits of number\n\n\n  BN.prototype.maskn = function maskn(bits) {\n    return this.clone().imaskn(bits);\n  }; // Add plain number `num` to `this`\n\n\n  BN.prototype.iaddn = function iaddn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num); // Possible sign change\n\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) < num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    } // Add without checks\n\n\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn(num) {\n    this.words[0] += num; // Carry\n\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n\n    this.length = Math.max(this.length, i + 1);\n    return this;\n  }; // Subtract plain number `num` from `this`\n\n\n  BN.prototype.isubn = function isubn(num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.addn = function addn(num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn(num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs() {\n    this.negative = 0;\n    return this;\n  };\n\n  BN.prototype.abs = function abs() {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - (right / 0x4000000 | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this.strip(); // Subtraction overflow\n\n    assert(carry === -1);\n    carry = 0;\n\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n\n    this.negative = 1;\n    return this.strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv(num, mode) {\n    var shift = this.length - num.length;\n    var a = this.clone();\n    var b = num; // Normalize\n\n    var bhi = b.words[b.length - 1] | 0;\n\n    var bhiBits = this._countBits(bhi);\n\n    shift = 26 - bhiBits;\n\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    } // Initialize quotient\n\n\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n\n    if (diff.negative === 0) {\n      a = diff;\n\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n\n      qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n\n        a._ishlnsubmul(b, 1, j);\n\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n\n    if (q) {\n      q.strip();\n    }\n\n    a.strip(); // Denormalize\n\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  }; // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n\n\n  BN.prototype.divmod = function divmod(num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    } // Both numbers are positive at this point\n    // Strip both numbers to approximate shift value\n\n\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    } // Very short reduction\n\n\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  }; // Find `this` / `num`\n\n\n  BN.prototype.div = function div(num) {\n    return this.divmod(num, 'div', false).div;\n  }; // Find `this` % `num`\n\n\n  BN.prototype.mod = function mod(num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod(num) {\n    return this.divmod(num, 'mod', true).mod;\n  }; // Find Round(`this` / `num`)\n\n\n  BN.prototype.divRound = function divRound(num) {\n    var dm = this.divmod(num); // Fast case - exact division\n\n    if (dm.mod.isZero()) return dm.div;\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half); // Round down\n\n    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modn = function modn(num) {\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n    var acc = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return acc;\n  }; // In-place division by number\n\n\n  BN.prototype.idivn = function idivn(num) {\n    assert(num <= 0x3ffffff);\n    var carry = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = w / num | 0;\n      carry = w % num;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.divn = function divn(num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    } // A * x + B * y = x\n\n\n    var A = new BN(1);\n    var B = new BN(0); // C * x + D * y = y\n\n    var C = new BN(0);\n    var D = new BN(1);\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        x.iushrn(i);\n\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        y.iushrn(j);\n\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  }; // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n\n\n  BN.prototype._invmp = function _invmp(p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n\n      if (i > 0) {\n        a.iushrn(i);\n\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n\n      if (j > 0) {\n        b.iushrn(j);\n\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd(num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0; // Remove common factor of two\n\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  }; // Invert number in the field F(num)\n\n\n  BN.prototype.invm = function invm(num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven() {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd() {\n    return (this.words[0] & 1) === 1;\n  }; // And first word and num\n\n\n  BN.prototype.andln = function andln(num) {\n    return this.words[0] & num;\n  }; // Increment at the bit position in-line\n\n\n  BN.prototype.bincn = function bincn(bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r; // Fast case: bit is much higher than all existing words\n\n    if (this.length <= s) {\n      this._expand(s + 1);\n\n      this.words[s] |= q;\n      return this;\n    } // Add bit and propagate, if needed\n\n\n    var carry = q;\n\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero() {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn(num) {\n    var negative = num < 0;\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n    this.strip();\n    var res;\n\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n\n\n  BN.prototype.cmp = function cmp(num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  }; // Unsigned comparison\n\n\n  BN.prototype.ucmp = function ucmp(num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n    var res = 0;\n\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n      if (a === b) continue;\n\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n\n      break;\n    }\n\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn(num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt(num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten(num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte(num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn(num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt(num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten(num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte(num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn(num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq(num) {\n    return this.cmp(num) === 0;\n  }; //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n\n\n  BN.red = function red(num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed() {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed(ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed(ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd(num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd(num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub(num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub(num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl(num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul(num) {\n    assert(this.red, 'redMul works only with red numbers');\n\n    this.red._verify2(this, num);\n\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr() {\n    assert(this.red, 'redSqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr() {\n    assert(this.red, 'redISqr works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.isqr(this);\n  }; // Square root over p\n\n\n  BN.prototype.redSqrt = function redSqrt() {\n    assert(this.red, 'redSqrt works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm() {\n    assert(this.red, 'redInvm works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.invm(this);\n  }; // Return negative clone of `this` % `red modulo`\n\n\n  BN.prototype.redNeg = function redNeg() {\n    assert(this.red, 'redNeg works only with red numbers');\n\n    this.red._verify1(this);\n\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow(num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n\n    this.red._verify1(this);\n\n    return this.red.pow(this, num);\n  }; // Prime numbers with efficient reduction\n\n\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  }; // Pseudo-Mersenne prime\n\n  function MPrime(name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp() {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce(num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is BN v4 instance\n        r.strip();\n      } else {\n        // r is BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split(input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK(num) {\n    return num.imul(this.k);\n  };\n\n  function K256() {\n    MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split(input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n    var outLen = Math.min(input.length, 9);\n\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    } // Shift by 9 limbs\n\n\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n      prev = next;\n    }\n\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK(num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n    var lo = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + (lo / 0x4000000 | 0);\n    } // Fast length reduction\n\n\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n\n    return num;\n  };\n\n  function P224() {\n    MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n\n  inherits(P224, MPrime);\n\n  function P192() {\n    MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n\n  inherits(P192, MPrime);\n\n  function P25519() {\n    // 2 ^ 255 - 19\n    MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK(num) {\n    // K = 0x13\n    var carry = 0;\n\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n      num.words[i] = lo;\n      carry = hi;\n    }\n\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n\n    return num;\n  }; // Exported mostly for testing purposes, use plain name instead\n\n\n  BN._prime = function prime(name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n    var prime;\n\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n\n    primes[name] = prime;\n    return prime;\n  }; //\n  // Base reduction engine\n  //\n\n\n  function Red(m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1(a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2(a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red, 'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod(a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n    return a.umod(this.m)._forceRed(this);\n  };\n\n  Red.prototype.neg = function neg(a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add(a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd(a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.sub = function sub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub(a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n\n    return res;\n  };\n\n  Red.prototype.shl = function shl(a, num) {\n    this._verify1(a);\n\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul(a, b) {\n    this._verify2(a, b);\n\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr(a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr(a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt(a) {\n    if (a.isZero()) return a.clone();\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1); // Fast case\n\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n    var q = this.m.subn(1);\n    var s = 0;\n\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n\n    assert(!q.isZero());\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg(); // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm(a) {\n    var inv = a._invmp(this.m);\n\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow(a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = word >> j & 1;\n\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo(num) {\n    var r = num.umod(this.m);\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom(num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  }; //\n  // Montgomery method engine\n  //\n\n\n  BN.mont = function mont(num) {\n    return new Mont(num);\n  };\n\n  function Mont(m) {\n    Red.call(this, m);\n    this.shift = this.m.bitLength();\n\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - this.shift % 26;\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo(num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom(num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul(a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul(a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm(a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack:///./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/privateDecrypt.js":
/*!*******************************************************!*\
  !*** ./node_modules/public-encrypt/privateDecrypt.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\");\n\nvar mgf = __webpack_require__(/*! ./mgf */ \"./node_modules/public-encrypt/mgf.js\");\n\nvar xor = __webpack_require__(/*! ./xor */ \"./node_modules/public-encrypt/xor.js\");\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js\");\n\nvar crt = __webpack_require__(/*! browserify-rsa */ \"./node_modules/browserify-rsa/index.js\");\n\nvar createHash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\");\n\nvar withPublic = __webpack_require__(/*! ./withPublic */ \"./node_modules/public-encrypt/withPublic.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nmodule.exports = function privateDecrypt(privateKey, enc, reverse) {\n  var padding;\n\n  if (privateKey.padding) {\n    padding = privateKey.padding;\n  } else if (reverse) {\n    padding = 1;\n  } else {\n    padding = 4;\n  }\n\n  var key = parseKeys(privateKey);\n  var k = key.modulus.byteLength();\n\n  if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n    throw new Error('decryption error');\n  }\n\n  var msg;\n\n  if (reverse) {\n    msg = withPublic(new BN(enc), key);\n  } else {\n    msg = crt(enc, key);\n  }\n\n  var zBuffer = Buffer.alloc(k - msg.length);\n  msg = Buffer.concat([zBuffer, msg], k);\n\n  if (padding === 4) {\n    return oaep(key, msg);\n  } else if (padding === 1) {\n    return pkcs1(key, msg, reverse);\n  } else if (padding === 3) {\n    return msg;\n  } else {\n    throw new Error('unknown padding');\n  }\n};\n\nfunction oaep(key, msg) {\n  var k = key.modulus.byteLength();\n  var iHash = createHash('sha1').update(Buffer.alloc(0)).digest();\n  var hLen = iHash.length;\n\n  if (msg[0] !== 0) {\n    throw new Error('decryption error');\n  }\n\n  var maskedSeed = msg.slice(1, hLen + 1);\n  var maskedDb = msg.slice(hLen + 1);\n  var seed = xor(maskedSeed, mgf(maskedDb, hLen));\n  var db = xor(maskedDb, mgf(seed, k - hLen - 1));\n\n  if (compare(iHash, db.slice(0, hLen))) {\n    throw new Error('decryption error');\n  }\n\n  var i = hLen;\n\n  while (db[i] === 0) {\n    i++;\n  }\n\n  if (db[i++] !== 1) {\n    throw new Error('decryption error');\n  }\n\n  return db.slice(i);\n}\n\nfunction pkcs1(key, msg, reverse) {\n  var p1 = msg.slice(0, 2);\n  var i = 2;\n  var status = 0;\n\n  while (msg[i++] !== 0) {\n    if (i >= msg.length) {\n      status++;\n      break;\n    }\n  }\n\n  var ps = msg.slice(2, i - 1);\n\n  if (p1.toString('hex') !== '0002' && !reverse || p1.toString('hex') !== '0001' && reverse) {\n    status++;\n  }\n\n  if (ps.length < 8) {\n    status++;\n  }\n\n  if (status) {\n    throw new Error('decryption error');\n  }\n\n  return msg.slice(i);\n}\n\nfunction compare(a, b) {\n  a = Buffer.from(a);\n  b = Buffer.from(b);\n  var dif = 0;\n  var len = a.length;\n\n  if (a.length !== b.length) {\n    dif++;\n    len = Math.min(a.length, b.length);\n  }\n\n  var i = -1;\n\n  while (++i < len) {\n    dif += a[i] ^ b[i];\n  }\n\n  return dif;\n}\n\n//# sourceURL=webpack:///./node_modules/public-encrypt/privateDecrypt.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/publicEncrypt.js":
/*!******************************************************!*\
  !*** ./node_modules/public-encrypt/publicEncrypt.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\");\n\nvar randomBytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\n\nvar createHash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\");\n\nvar mgf = __webpack_require__(/*! ./mgf */ \"./node_modules/public-encrypt/mgf.js\");\n\nvar xor = __webpack_require__(/*! ./xor */ \"./node_modules/public-encrypt/xor.js\");\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js\");\n\nvar withPublic = __webpack_require__(/*! ./withPublic */ \"./node_modules/public-encrypt/withPublic.js\");\n\nvar crt = __webpack_require__(/*! browserify-rsa */ \"./node_modules/browserify-rsa/index.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nmodule.exports = function publicEncrypt(publicKey, msg, reverse) {\n  var padding;\n\n  if (publicKey.padding) {\n    padding = publicKey.padding;\n  } else if (reverse) {\n    padding = 1;\n  } else {\n    padding = 4;\n  }\n\n  var key = parseKeys(publicKey);\n  var paddedMsg;\n\n  if (padding === 4) {\n    paddedMsg = oaep(key, msg);\n  } else if (padding === 1) {\n    paddedMsg = pkcs1(key, msg, reverse);\n  } else if (padding === 3) {\n    paddedMsg = new BN(msg);\n\n    if (paddedMsg.cmp(key.modulus) >= 0) {\n      throw new Error('data too long for modulus');\n    }\n  } else {\n    throw new Error('unknown padding');\n  }\n\n  if (reverse) {\n    return crt(paddedMsg, key);\n  } else {\n    return withPublic(paddedMsg, key);\n  }\n};\n\nfunction oaep(key, msg) {\n  var k = key.modulus.byteLength();\n  var mLen = msg.length;\n  var iHash = createHash('sha1').update(Buffer.alloc(0)).digest();\n  var hLen = iHash.length;\n  var hLen2 = 2 * hLen;\n\n  if (mLen > k - hLen2 - 2) {\n    throw new Error('message too long');\n  }\n\n  var ps = Buffer.alloc(k - mLen - hLen2 - 2);\n  var dblen = k - hLen - 1;\n  var seed = randomBytes(hLen);\n  var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen));\n  var maskedSeed = xor(seed, mgf(maskedDb, hLen));\n  return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k));\n}\n\nfunction pkcs1(key, msg, reverse) {\n  var mLen = msg.length;\n  var k = key.modulus.byteLength();\n\n  if (mLen > k - 11) {\n    throw new Error('message too long');\n  }\n\n  var ps;\n\n  if (reverse) {\n    ps = Buffer.alloc(k - mLen - 3, 0xff);\n  } else {\n    ps = nonZero(k - mLen - 3);\n  }\n\n  return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k));\n}\n\nfunction nonZero(len) {\n  var out = Buffer.allocUnsafe(len);\n  var i = 0;\n  var cache = randomBytes(len * 2);\n  var cur = 0;\n  var num;\n\n  while (i < len) {\n    if (cur === cache.length) {\n      cache = randomBytes(len * 2);\n      cur = 0;\n    }\n\n    num = cache[cur++];\n\n    if (num) {\n      out[i++] = num;\n    }\n  }\n\n  return out;\n}\n\n//# sourceURL=webpack:///./node_modules/public-encrypt/publicEncrypt.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/withPublic.js":
/*!***************************************************!*\
  !*** ./node_modules/public-encrypt/withPublic.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var BN = __webpack_require__(/*! bn.js */ \"./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nfunction withPublic(paddedMsg, key) {\n  return Buffer.from(paddedMsg.toRed(BN.mont(key.modulus)).redPow(new BN(key.publicExponent)).fromRed().toArray());\n}\n\nmodule.exports = withPublic;\n\n//# sourceURL=webpack:///./node_modules/public-encrypt/withPublic.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/xor.js":
/*!********************************************!*\
  !*** ./node_modules/public-encrypt/xor.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = function xor(a, b) {\n  var len = a.length;\n  var i = -1;\n\n  while (++i < len) {\n    a[i] ^= b[i];\n  }\n\n  return a;\n};\n\n//# sourceURL=webpack:///./node_modules/public-encrypt/xor.js?");

/***/ }),

/***/ "./node_modules/randombytes/browser.js":
/*!*********************************************!*\
  !*** ./node_modules/randombytes/browser.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global, process) { // limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\n\nvar MAX_BYTES = 65536; // Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\n\nvar MAX_UINT32 = 4294967295;\n\nfunction oldBrowser() {\n  throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11');\n}\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar crypto = global.crypto || global.msCrypto;\n\nif (crypto && crypto.getRandomValues) {\n  module.exports = randomBytes;\n} else {\n  module.exports = oldBrowser;\n}\n\nfunction randomBytes(size, cb) {\n  // phantomjs needs to throw\n  if (size > MAX_UINT32) throw new RangeError('requested too many random bytes');\n  var bytes = Buffer.allocUnsafe(size);\n\n  if (size > 0) {\n    // getRandomValues fails on IE if size == 0\n    if (size > MAX_BYTES) {\n      // this is the max bytes crypto.getRandomValues\n      // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n      for (var generated = 0; generated < size; generated += MAX_BYTES) {\n        // buffer.slice automatically checks if the end is past the end of\n        // the buffer so we don't have to here\n        crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES));\n      }\n    } else {\n      crypto.getRandomValues(bytes);\n    }\n  }\n\n  if (typeof cb === 'function') {\n    return process.nextTick(function () {\n      cb(null, bytes);\n    });\n  }\n\n  return bytes;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/randombytes/browser.js?");

/***/ }),

/***/ "./node_modules/randomfill/browser.js":
/*!********************************************!*\
  !*** ./node_modules/randomfill/browser.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global, process) {\n\nfunction oldBrowser() {\n  throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11');\n}\n\nvar safeBuffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\");\n\nvar randombytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\n\nvar Buffer = safeBuffer.Buffer;\nvar kBufferMaxLength = safeBuffer.kMaxLength;\nvar crypto = global.crypto || global.msCrypto;\nvar kMaxUint32 = Math.pow(2, 32) - 1;\n\nfunction assertOffset(offset, length) {\n  if (typeof offset !== 'number' || offset !== offset) {\n    // eslint-disable-line no-self-compare\n    throw new TypeError('offset must be a number');\n  }\n\n  if (offset > kMaxUint32 || offset < 0) {\n    throw new TypeError('offset must be a uint32');\n  }\n\n  if (offset > kBufferMaxLength || offset > length) {\n    throw new RangeError('offset out of range');\n  }\n}\n\nfunction assertSize(size, offset, length) {\n  if (typeof size !== 'number' || size !== size) {\n    // eslint-disable-line no-self-compare\n    throw new TypeError('size must be a number');\n  }\n\n  if (size > kMaxUint32 || size < 0) {\n    throw new TypeError('size must be a uint32');\n  }\n\n  if (size + offset > length || size > kBufferMaxLength) {\n    throw new RangeError('buffer too small');\n  }\n}\n\nif (crypto && crypto.getRandomValues || !process.browser) {\n  exports.randomFill = randomFill;\n  exports.randomFillSync = randomFillSync;\n} else {\n  exports.randomFill = oldBrowser;\n  exports.randomFillSync = oldBrowser;\n}\n\nfunction randomFill(buf, offset, size, cb) {\n  if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n    throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array');\n  }\n\n  if (typeof offset === 'function') {\n    cb = offset;\n    offset = 0;\n    size = buf.length;\n  } else if (typeof size === 'function') {\n    cb = size;\n    size = buf.length - offset;\n  } else if (typeof cb !== 'function') {\n    throw new TypeError('\"cb\" argument must be a function');\n  }\n\n  assertOffset(offset, buf.length);\n  assertSize(size, offset, buf.length);\n  return actualFill(buf, offset, size, cb);\n}\n\nfunction actualFill(buf, offset, size, cb) {\n  if (process.browser) {\n    var ourBuf = buf.buffer;\n    var uint = new Uint8Array(ourBuf, offset, size);\n    crypto.getRandomValues(uint);\n\n    if (cb) {\n      process.nextTick(function () {\n        cb(null, buf);\n      });\n      return;\n    }\n\n    return buf;\n  }\n\n  if (cb) {\n    randombytes(size, function (err, bytes) {\n      if (err) {\n        return cb(err);\n      }\n\n      bytes.copy(buf, offset);\n      cb(null, buf);\n    });\n    return;\n  }\n\n  var bytes = randombytes(size);\n  bytes.copy(buf, offset);\n  return buf;\n}\n\nfunction randomFillSync(buf, offset, size) {\n  if (typeof offset === 'undefined') {\n    offset = 0;\n  }\n\n  if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n    throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array');\n  }\n\n  assertOffset(offset, buf.length);\n  if (size === undefined) size = buf.length - offset;\n  assertSize(size, offset, buf.length);\n  return actualFill(buf, offset, size);\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/randomfill/browser.js?");

/***/ }),

/***/ "./node_modules/readable-stream/duplex-browser.js":
/*!********************************************************!*\
  !*** ./node_modules/readable-stream/duplex-browser.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n//# sourceURL=webpack:///./node_modules/readable-stream/duplex-browser.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/_stream_duplex.js":
/*!************************************************************!*\
  !*** ./node_modules/readable-stream/lib/_stream_duplex.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// 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// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n\n  for (var key in obj) {\n    keys.push(key);\n  }\n\n  return keys;\n};\n/*</replacement>*/\n\n\nmodule.exports = Duplex;\n/*<replacement>*/\n\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./node_modules/readable-stream/lib/_stream_readable.js\");\n\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./node_modules/readable-stream/lib/_stream_writable.js\");\n\nutil.inherits(Duplex, Readable);\n{\n  // avoid scope creep, the keys array can then be collected\n  var keys = objectKeys(Writable.prototype);\n\n  for (var v = 0; v < keys.length; v++) {\n    var method = keys[v];\n    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n  }\n}\n\nfunction Duplex(options) {\n  if (!(this instanceof Duplex)) return new Duplex(options);\n  Readable.call(this, options);\n  Writable.call(this, options);\n  if (options && options.readable === false) this.readable = false;\n  if (options && options.writable === false) this.writable = false;\n  this.allowHalfOpen = true;\n  if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n  this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._writableState.highWaterMark;\n  }\n}); // the no-half-open enforcer\n\nfunction onend() {\n  // if we allow half-open state, or if the writable side ended,\n  // then we're ok.\n  if (this.allowHalfOpen || this._writableState.ended) return; // no more data can be written.\n  // But allow more writes to happen in this tick.\n\n  pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n  self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n  get: function () {\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return false;\n    }\n\n    return this._readableState.destroyed && this._writableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return;\n    } // backward compatibility, the user is explicitly\n    // managing destroyed\n\n\n    this._readableState.destroyed = value;\n    this._writableState.destroyed = value;\n  }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n  this.push(null);\n  this.end();\n  pna.nextTick(cb, err);\n};\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/_stream_duplex.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/_stream_passthrough.js":
/*!*****************************************************************!*\
  !*** ./node_modules/readable-stream/lib/_stream_passthrough.js ***!
  \*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// 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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\nmodule.exports = PassThrough;\n\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \"./node_modules/readable-stream/lib/_stream_transform.js\");\n/*<replacement>*/\n\n\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n  if (!(this instanceof PassThrough)) return new PassThrough(options);\n  Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n  cb(null, chunk);\n};\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/_stream_readable.js":
/*!**************************************************************!*\
  !*** ./node_modules/readable-stream/lib/_stream_readable.js ***!
  \**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\n\nmodule.exports = Readable;\n/*<replacement>*/\n\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n/*<replacement>*/\n\nvar EE = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n  return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar debugUtil = __webpack_require__(/*! util */ 3);\n\nvar debug = void 0;\n\nif (debugUtil && debugUtil.debuglog) {\n  debug = debugUtil.debuglog('stream');\n} else {\n  debug = function () {};\n}\n/*</replacement>*/\n\n\nvar BufferList = __webpack_require__(/*! ./internal/streams/BufferList */ \"./node_modules/readable-stream/lib/internal/streams/BufferList.js\");\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nvar StringDecoder;\nutil.inherits(Readable, Stream);\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n  // Sadly this is not cacheable as some libraries bundle their own\n  // event emitter implementation with them.\n  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n  // userland ones.  NEVER DO THIS. This is here only because this code needs\n  // to continue to work with older versions of Node.js that do not include\n  // the prependListener() method. The goal is to eventually remove this hack.\n\n  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n  options = options || {}; // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n\n  var isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n  // make all the buffer merging and length checks go away\n\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n  // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n  var hwm = options.highWaterMark;\n  var readableHwm = options.readableHighWaterMark;\n  var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; // cast to ints.\n\n  this.highWaterMark = Math.floor(this.highWaterMark); // A linked list is used to store data chunks instead of an array because the\n  // linked list can remove elements from the beginning faster than\n  // array.shift()\n\n  this.buffer = new BufferList();\n  this.length = 0;\n  this.pipes = null;\n  this.pipesCount = 0;\n  this.flowing = null;\n  this.ended = false;\n  this.endEmitted = false;\n  this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n  // immediately, or on a later tick.  We set this to true at first, because\n  // any actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first read call.\n\n  this.sync = true; // whenever we return null, then we set a flag to say\n  // that we're awaiting a 'readable' event emission.\n\n  this.needReadable = false;\n  this.emittedReadable = false;\n  this.readableListening = false;\n  this.resumeScheduled = false; // has it been destroyed\n\n  this.destroyed = false; // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n\n  this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n  this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n  this.readingMore = false;\n  this.decoder = null;\n  this.encoding = null;\n\n  if (options.encoding) {\n    if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n    this.decoder = new StringDecoder(options.encoding);\n    this.encoding = options.encoding;\n  }\n}\n\nfunction Readable(options) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n  if (!(this instanceof Readable)) return new Readable(options);\n  this._readableState = new ReadableState(options, this); // legacy\n\n  this.readable = true;\n\n  if (options) {\n    if (typeof options.read === 'function') this._read = options.read;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n  }\n\n  Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n  get: function () {\n    if (this._readableState === undefined) {\n      return false;\n    }\n\n    return this._readableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._readableState) {\n      return;\n    } // backward compatibility, the user is explicitly\n    // managing destroyed\n\n\n    this._readableState.destroyed = value;\n  }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n  this.push(null);\n  cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n  var state = this._readableState;\n  var skipChunkCheck;\n\n  if (!state.objectMode) {\n    if (typeof chunk === 'string') {\n      encoding = encoding || state.defaultEncoding;\n\n      if (encoding !== state.encoding) {\n        chunk = Buffer.from(chunk, encoding);\n        encoding = '';\n      }\n\n      skipChunkCheck = true;\n    }\n  } else {\n    skipChunkCheck = true;\n  }\n\n  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n  return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n  var state = stream._readableState;\n\n  if (chunk === null) {\n    state.reading = false;\n    onEofChunk(stream, state);\n  } else {\n    var er;\n    if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n    if (er) {\n      stream.emit('error', er);\n    } else if (state.objectMode || chunk && chunk.length > 0) {\n      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n        chunk = _uint8ArrayToBuffer(chunk);\n      }\n\n      if (addToFront) {\n        if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n      } else if (state.ended) {\n        stream.emit('error', new Error('stream.push() after EOF'));\n      } else {\n        state.reading = false;\n\n        if (state.decoder && !encoding) {\n          chunk = state.decoder.write(chunk);\n          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n        } else {\n          addChunk(stream, state, chunk, false);\n        }\n      }\n    } else if (!addToFront) {\n      state.reading = false;\n    }\n  }\n\n  return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n  if (state.flowing && state.length === 0 && !state.sync) {\n    stream.emit('data', chunk);\n    stream.read(0);\n  } else {\n    // update the buffer info.\n    state.length += state.objectMode ? 1 : chunk.length;\n    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n    if (state.needReadable) emitReadable(stream);\n  }\n\n  maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n  var er;\n\n  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new TypeError('Invalid non-string/buffer chunk');\n  }\n\n  return er;\n} // if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes.  This is to work around cases where hwm=0,\n// such as the repl.  Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\n\n\nfunction needMoreData(state) {\n  return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n  return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n  if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n  this._readableState.decoder = new StringDecoder(enc);\n  this._readableState.encoding = enc;\n  return this;\n}; // Don't raise the hwm > 8MB\n\n\nvar MAX_HWM = 0x800000;\n\nfunction computeNewHighWaterMark(n) {\n  if (n >= MAX_HWM) {\n    n = MAX_HWM;\n  } else {\n    // Get the next highest power of 2 to prevent increasing hwm excessively in\n    // tiny amounts\n    n--;\n    n |= n >>> 1;\n    n |= n >>> 2;\n    n |= n >>> 4;\n    n |= n >>> 8;\n    n |= n >>> 16;\n    n++;\n  }\n\n  return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n  if (n <= 0 || state.length === 0 && state.ended) return 0;\n  if (state.objectMode) return 1;\n\n  if (n !== n) {\n    // Only flow one buffer at a time\n    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n  } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n  if (n <= state.length) return n; // Don't have enough\n\n  if (!state.ended) {\n    state.needReadable = true;\n    return 0;\n  }\n\n  return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n  debug('read', n);\n  n = parseInt(n, 10);\n  var state = this._readableState;\n  var nOrig = n;\n  if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n  // already have a bunch of data in the buffer, then just trigger\n  // the 'readable' event and move on.\n\n  if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n    debug('read: emitReadable', state.length, state.ended);\n    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n    return null;\n  }\n\n  n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n  if (n === 0 && state.ended) {\n    if (state.length === 0) endReadable(this);\n    return null;\n  } // All the actual chunk generation logic needs to be\n  // *below* the call to _read.  The reason is that in certain\n  // synthetic stream cases, such as passthrough streams, _read\n  // may be a completely synchronous operation which may change\n  // the state of the read buffer, providing enough data when\n  // before there was *not* enough.\n  //\n  // So, the steps are:\n  // 1. Figure out what the state of things will be after we do\n  // a read from the buffer.\n  //\n  // 2. If that resulting state will trigger a _read, then call _read.\n  // Note that this may be asynchronous, or synchronous.  Yes, it is\n  // deeply ugly to write APIs this way, but that still doesn't mean\n  // that the Readable class should behave improperly, as streams are\n  // designed to be sync/async agnostic.\n  // Take note if the _read call is sync or async (ie, if the read call\n  // has returned yet), so that we know whether or not it's safe to emit\n  // 'readable' etc.\n  //\n  // 3. Actually pull the requested chunks out of the buffer and return.\n  // if we need a readable event, then we need to do some reading.\n\n\n  var doRead = state.needReadable;\n  debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\n    doRead = true;\n    debug('length less than watermark', doRead);\n  } // however, if we've ended, then there's no point, and if we're already\n  // reading, then it's unnecessary.\n\n\n  if (state.ended || state.reading) {\n    doRead = false;\n    debug('reading or ended', doRead);\n  } else if (doRead) {\n    debug('do read');\n    state.reading = true;\n    state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n    if (state.length === 0) state.needReadable = true; // call internal read method\n\n    this._read(state.highWaterMark);\n\n    state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n    // and we need to re-evaluate how much data we can return to the user.\n\n    if (!state.reading) n = howMuchToRead(nOrig, state);\n  }\n\n  var ret;\n  if (n > 0) ret = fromList(n, state);else ret = null;\n\n  if (ret === null) {\n    state.needReadable = true;\n    n = 0;\n  } else {\n    state.length -= n;\n  }\n\n  if (state.length === 0) {\n    // If we have nothing in the buffer, then we want to know\n    // as soon as we *do* get something into the buffer.\n    if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n    if (nOrig !== n && state.ended) endReadable(this);\n  }\n\n  if (ret !== null) this.emit('data', ret);\n  return ret;\n};\n\nfunction onEofChunk(stream, state) {\n  if (state.ended) return;\n\n  if (state.decoder) {\n    var chunk = state.decoder.end();\n\n    if (chunk && chunk.length) {\n      state.buffer.push(chunk);\n      state.length += state.objectMode ? 1 : chunk.length;\n    }\n  }\n\n  state.ended = true; // emit 'readable' now to make sure it gets picked up.\n\n  emitReadable(stream);\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n  var state = stream._readableState;\n  state.needReadable = false;\n\n  if (!state.emittedReadable) {\n    debug('emitReadable', state.flowing);\n    state.emittedReadable = true;\n    if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n  }\n}\n\nfunction emitReadable_(stream) {\n  debug('emit readable');\n  stream.emit('readable');\n  flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n  if (!state.readingMore) {\n    state.readingMore = true;\n    pna.nextTick(maybeReadMore_, stream, state);\n  }\n}\n\nfunction maybeReadMore_(stream, state) {\n  var len = state.length;\n\n  while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n    debug('maybeReadMore read 0');\n    stream.read(0);\n    if (len === state.length) // didn't get any data, stop spinning.\n      break;else len = state.length;\n  }\n\n  state.readingMore = false;\n} // abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n  this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n  var src = this;\n  var state = this._readableState;\n\n  switch (state.pipesCount) {\n    case 0:\n      state.pipes = dest;\n      break;\n\n    case 1:\n      state.pipes = [state.pipes, dest];\n      break;\n\n    default:\n      state.pipes.push(dest);\n      break;\n  }\n\n  state.pipesCount += 1;\n  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n  var endFn = doEnd ? onend : unpipe;\n  if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n  dest.on('unpipe', onunpipe);\n\n  function onunpipe(readable, unpipeInfo) {\n    debug('onunpipe');\n\n    if (readable === src) {\n      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n        unpipeInfo.hasUnpiped = true;\n        cleanup();\n      }\n    }\n  }\n\n  function onend() {\n    debug('onend');\n    dest.end();\n  } // when the dest drains, it reduces the awaitDrain counter\n  // on the source.  This would be more elegant with a .once()\n  // handler in flow(), but adding and removing repeatedly is\n  // too slow.\n\n\n  var ondrain = pipeOnDrain(src);\n  dest.on('drain', ondrain);\n  var cleanedUp = false;\n\n  function cleanup() {\n    debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n    dest.removeListener('close', onclose);\n    dest.removeListener('finish', onfinish);\n    dest.removeListener('drain', ondrain);\n    dest.removeListener('error', onerror);\n    dest.removeListener('unpipe', onunpipe);\n    src.removeListener('end', onend);\n    src.removeListener('end', unpipe);\n    src.removeListener('data', ondata);\n    cleanedUp = true; // if the reader is waiting for a drain event from this\n    // specific writer, then it would cause it to never start\n    // flowing again.\n    // So, if this is awaiting a drain, then we just call it now.\n    // If we don't know, then assume that we are waiting for one.\n\n    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n  } // If the user pushes more data while we're writing to dest then we'll end up\n  // in ondata again. However, we only want to increase awaitDrain once because\n  // dest will only emit one 'drain' event for the multiple writes.\n  // => Introduce a guard on increasing awaitDrain.\n\n\n  var increasedAwaitDrain = false;\n  src.on('data', ondata);\n\n  function ondata(chunk) {\n    debug('ondata');\n    increasedAwaitDrain = false;\n    var ret = dest.write(chunk);\n\n    if (false === ret && !increasedAwaitDrain) {\n      // If the user unpiped during `dest.write()`, it is possible\n      // to get stuck in a permanently paused state if that write\n      // also returned false.\n      // => Check whether `dest` is still a piping destination.\n      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n        debug('false write response, pause', src._readableState.awaitDrain);\n        src._readableState.awaitDrain++;\n        increasedAwaitDrain = true;\n      }\n\n      src.pause();\n    }\n  } // if the dest has an error, then stop piping into it.\n  // however, don't suppress the throwing behavior for this.\n\n\n  function onerror(er) {\n    debug('onerror', er);\n    unpipe();\n    dest.removeListener('error', onerror);\n    if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n  } // Make sure our error handler is attached before userland ones.\n\n\n  prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n  function onclose() {\n    dest.removeListener('finish', onfinish);\n    unpipe();\n  }\n\n  dest.once('close', onclose);\n\n  function onfinish() {\n    debug('onfinish');\n    dest.removeListener('close', onclose);\n    unpipe();\n  }\n\n  dest.once('finish', onfinish);\n\n  function unpipe() {\n    debug('unpipe');\n    src.unpipe(dest);\n  } // tell the dest that it's being piped to\n\n\n  dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n  if (!state.flowing) {\n    debug('pipe resume');\n    src.resume();\n  }\n\n  return dest;\n};\n\nfunction pipeOnDrain(src) {\n  return function () {\n    var state = src._readableState;\n    debug('pipeOnDrain', state.awaitDrain);\n    if (state.awaitDrain) state.awaitDrain--;\n\n    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n      state.flowing = true;\n      flow(src);\n    }\n  };\n}\n\nReadable.prototype.unpipe = function (dest) {\n  var state = this._readableState;\n  var unpipeInfo = {\n    hasUnpiped: false\n  }; // if we're not piping anywhere, then do nothing.\n\n  if (state.pipesCount === 0) return this; // just one destination.  most common case.\n\n  if (state.pipesCount === 1) {\n    // passed in one, but it's not the right one.\n    if (dest && dest !== state.pipes) return this;\n    if (!dest) dest = state.pipes; // got a match.\n\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    if (dest) dest.emit('unpipe', this, unpipeInfo);\n    return this;\n  } // slow case. multiple pipe destinations.\n\n\n  if (!dest) {\n    // remove all.\n    var dests = state.pipes;\n    var len = state.pipesCount;\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n\n    for (var i = 0; i < len; i++) {\n      dests[i].emit('unpipe', this, unpipeInfo);\n    }\n\n    return this;\n  } // try to find the right one.\n\n\n  var index = indexOf(state.pipes, dest);\n  if (index === -1) return this;\n  state.pipes.splice(index, 1);\n  state.pipesCount -= 1;\n  if (state.pipesCount === 1) state.pipes = state.pipes[0];\n  dest.emit('unpipe', this, unpipeInfo);\n  return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n  var res = Stream.prototype.on.call(this, ev, fn);\n\n  if (ev === 'data') {\n    // Start flowing on next tick if stream isn't explicitly paused\n    if (this._readableState.flowing !== false) this.resume();\n  } else if (ev === 'readable') {\n    var state = this._readableState;\n\n    if (!state.endEmitted && !state.readableListening) {\n      state.readableListening = state.needReadable = true;\n      state.emittedReadable = false;\n\n      if (!state.reading) {\n        pna.nextTick(nReadingNextTick, this);\n      } else if (state.length) {\n        emitReadable(this);\n      }\n    }\n  }\n\n  return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n  debug('readable nexttick read 0');\n  self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n  var state = this._readableState;\n\n  if (!state.flowing) {\n    debug('resume');\n    state.flowing = true;\n    resume(this, state);\n  }\n\n  return this;\n};\n\nfunction resume(stream, state) {\n  if (!state.resumeScheduled) {\n    state.resumeScheduled = true;\n    pna.nextTick(resume_, stream, state);\n  }\n}\n\nfunction resume_(stream, state) {\n  if (!state.reading) {\n    debug('resume read 0');\n    stream.read(0);\n  }\n\n  state.resumeScheduled = false;\n  state.awaitDrain = 0;\n  stream.emit('resume');\n  flow(stream);\n  if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n  debug('call pause flowing=%j', this._readableState.flowing);\n\n  if (false !== this._readableState.flowing) {\n    debug('pause');\n    this._readableState.flowing = false;\n    this.emit('pause');\n  }\n\n  return this;\n};\n\nfunction flow(stream) {\n  var state = stream._readableState;\n  debug('flow', state.flowing);\n\n  while (state.flowing && stream.read() !== null) {}\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n  var _this = this;\n\n  var state = this._readableState;\n  var paused = false;\n  stream.on('end', function () {\n    debug('wrapped end');\n\n    if (state.decoder && !state.ended) {\n      var chunk = state.decoder.end();\n      if (chunk && chunk.length) _this.push(chunk);\n    }\n\n    _this.push(null);\n  });\n  stream.on('data', function (chunk) {\n    debug('wrapped data');\n    if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n    var ret = _this.push(chunk);\n\n    if (!ret) {\n      paused = true;\n      stream.pause();\n    }\n  }); // proxy all the other methods.\n  // important when wrapping filters and duplexes.\n\n  for (var i in stream) {\n    if (this[i] === undefined && typeof stream[i] === 'function') {\n      this[i] = function (method) {\n        return function () {\n          return stream[method].apply(stream, arguments);\n        };\n      }(i);\n    }\n  } // proxy certain important events.\n\n\n  for (var n = 0; n < kProxyEvents.length; n++) {\n    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n  } // when we try to consume some more bytes, simply unpause the\n  // underlying stream.\n\n\n  this._read = function (n) {\n    debug('wrapped _read', n);\n\n    if (paused) {\n      paused = false;\n      stream.resume();\n    }\n  };\n\n  return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._readableState.highWaterMark;\n  }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList; // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n  // nothing buffered\n  if (state.length === 0) return null;\n  var ret;\n  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n    // read it all, truncate the list\n    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n    state.buffer.clear();\n  } else {\n    // read part of list\n    ret = fromListPartial(n, state.buffer, state.decoder);\n  }\n  return ret;\n} // Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction fromListPartial(n, list, hasStrings) {\n  var ret;\n\n  if (n < list.head.data.length) {\n    // slice is the same for buffers and strings\n    ret = list.head.data.slice(0, n);\n    list.head.data = list.head.data.slice(n);\n  } else if (n === list.head.data.length) {\n    // first chunk is a perfect match\n    ret = list.shift();\n  } else {\n    // result spans more than one buffer\n    ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n  }\n\n  return ret;\n} // Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction copyFromBufferString(n, list) {\n  var p = list.head;\n  var c = 1;\n  var ret = p.data;\n  n -= ret.length;\n\n  while (p = p.next) {\n    var str = p.data;\n    var nb = n > str.length ? str.length : n;\n    if (nb === str.length) ret += str;else ret += str.slice(0, n);\n    n -= nb;\n\n    if (n === 0) {\n      if (nb === str.length) {\n        ++c;\n        if (p.next) list.head = p.next;else list.head = list.tail = null;\n      } else {\n        list.head = p;\n        p.data = str.slice(nb);\n      }\n\n      break;\n    }\n\n    ++c;\n  }\n\n  list.length -= c;\n  return ret;\n} // Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction copyFromBuffer(n, list) {\n  var ret = Buffer.allocUnsafe(n);\n  var p = list.head;\n  var c = 1;\n  p.data.copy(ret);\n  n -= p.data.length;\n\n  while (p = p.next) {\n    var buf = p.data;\n    var nb = n > buf.length ? buf.length : n;\n    buf.copy(ret, ret.length - n, 0, nb);\n    n -= nb;\n\n    if (n === 0) {\n      if (nb === buf.length) {\n        ++c;\n        if (p.next) list.head = p.next;else list.head = list.tail = null;\n      } else {\n        list.head = p;\n        p.data = buf.slice(nb);\n      }\n\n      break;\n    }\n\n    ++c;\n  }\n\n  list.length -= c;\n  return ret;\n}\n\nfunction endReadable(stream) {\n  var state = stream._readableState; // If we get here before consuming all the bytes, then that is a\n  // bug in node.  Should never happen.\n\n  if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n  if (!state.endEmitted) {\n    state.ended = true;\n    pna.nextTick(endReadableNT, state, stream);\n  }\n}\n\nfunction endReadableNT(state, stream) {\n  // Check that we didn't get one last unshift.\n  if (!state.endEmitted && state.length === 0) {\n    state.endEmitted = true;\n    stream.readable = false;\n    stream.emit('end');\n  }\n}\n\nfunction indexOf(xs, x) {\n  for (var i = 0, l = xs.length; i < l; i++) {\n    if (xs[i] === x) return i;\n  }\n\n  return -1;\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/_stream_readable.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/_stream_transform.js":
/*!***************************************************************!*\
  !*** ./node_modules/readable-stream/lib/_stream_transform.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// 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// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nmodule.exports = Transform;\n\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n/*<replacement>*/\n\n\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n  var ts = this._transformState;\n  ts.transforming = false;\n  var cb = ts.writecb;\n\n  if (!cb) {\n    return this.emit('error', new Error('write callback called multiple times'));\n  }\n\n  ts.writechunk = null;\n  ts.writecb = null;\n  if (data != null) // single equals check for both `null` and `undefined`\n    this.push(data);\n  cb(er);\n  var rs = this._readableState;\n  rs.reading = false;\n\n  if (rs.needReadable || rs.length < rs.highWaterMark) {\n    this._read(rs.highWaterMark);\n  }\n}\n\nfunction Transform(options) {\n  if (!(this instanceof Transform)) return new Transform(options);\n  Duplex.call(this, options);\n  this._transformState = {\n    afterTransform: afterTransform.bind(this),\n    needTransform: false,\n    transforming: false,\n    writecb: null,\n    writechunk: null,\n    writeencoding: null\n  }; // start out asking for a readable event once data is transformed.\n\n  this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n  // that Readable wants before the first _read call, so unset the\n  // sync guard flag.\n\n  this._readableState.sync = false;\n\n  if (options) {\n    if (typeof options.transform === 'function') this._transform = options.transform;\n    if (typeof options.flush === 'function') this._flush = options.flush;\n  } // When the writable side finishes, then flush out anything remaining.\n\n\n  this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n  var _this = this;\n\n  if (typeof this._flush === 'function') {\n    this._flush(function (er, data) {\n      done(_this, er, data);\n    });\n  } else {\n    done(this, null, null);\n  }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n  this._transformState.needTransform = false;\n  return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side.  You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk.  If you pass\n// an error, then that'll put the hurt on the whole operation.  If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n  throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n  var ts = this._transformState;\n  ts.writecb = cb;\n  ts.writechunk = chunk;\n  ts.writeencoding = encoding;\n\n  if (!ts.transforming) {\n    var rs = this._readableState;\n    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n  }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n  var ts = this._transformState;\n\n  if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n    ts.transforming = true;\n\n    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n  } else {\n    // mark that we need a transform, so that any data that comes in\n    // will get processed, now that we've asked for it.\n    ts.needTransform = true;\n  }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n  var _this2 = this;\n\n  Duplex.prototype._destroy.call(this, err, function (err2) {\n    cb(err2);\n\n    _this2.emit('close');\n  });\n};\n\nfunction done(stream, er, data) {\n  if (er) return stream.emit('error', er);\n  if (data != null) // single equals check for both `null` and `undefined`\n    stream.push(data); // if there's nothing in the write buffer, then that means\n  // that nothing more will ever be provided\n\n  if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n  if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n  return stream.push(null);\n}\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/_stream_transform.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/_stream_writable.js":
/*!**************************************************************!*\
  !*** ./node_modules/readable-stream/lib/_stream_writable.js ***!
  \**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// 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// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\n\nmodule.exports = Writable;\n/* <replacement> */\n\nfunction WriteReq(chunk, encoding, cb) {\n  this.chunk = chunk;\n  this.encoding = encoding;\n  this.callback = cb;\n  this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n  var _this = this;\n\n  this.next = null;\n  this.entry = null;\n\n  this.finish = function () {\n    onCorkedFinish(_this, state);\n  };\n}\n/* </replacement> */\n\n/*<replacement>*/\n\n\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n/*<replacement>*/\n\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar internalUtil = {\n  deprecate: __webpack_require__(/*! util-deprecate */ \"./node_modules/util-deprecate/browser.js\")\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/*</replacement>*/\n\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n  options = options || {}; // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n\n  var isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n  // contains buffers or objects.\n\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n  // Note: 0 is a valid value, means that we always return false if\n  // the entire buffer is not flushed immediately on write()\n\n  var hwm = options.highWaterMark;\n  var writableHwm = options.writableHighWaterMark;\n  var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; // cast to ints.\n\n  this.highWaterMark = Math.floor(this.highWaterMark); // if _final has been called\n\n  this.finalCalled = false; // drain event flag.\n\n  this.needDrain = false; // at the start of calling end()\n\n  this.ending = false; // when end() has been called, and returned\n\n  this.ended = false; // when 'finish' is emitted\n\n  this.finished = false; // has it been destroyed\n\n  this.destroyed = false; // should we decode strings into buffers before passing to _write?\n  // this is here so that some node-core streams can optimize string\n  // handling at a lower level.\n\n  var noDecode = options.decodeStrings === false;\n  this.decodeStrings = !noDecode; // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n\n  this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n  // of how much we're waiting to get pushed to some underlying\n  // socket or file.\n\n  this.length = 0; // a flag to see when we're in the middle of a write.\n\n  this.writing = false; // when true all writes will be buffered until .uncork() call\n\n  this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n  // or on a later tick.  We set this to true at first, because any\n  // actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first write call.\n\n  this.sync = true; // a flag to know if we're processing previously buffered items, which\n  // may call the _write() callback in the same tick, so that we don't\n  // end up in an overlapped onwrite situation.\n\n  this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n  this.onwrite = function (er) {\n    onwrite(stream, er);\n  }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n  this.writecb = null; // the amount that is being written when _write is called.\n\n  this.writelen = 0;\n  this.bufferedRequest = null;\n  this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n  // this must be 0 before 'finish' can be emitted\n\n  this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n  // This is relevant for synchronous Transform streams\n\n  this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n  this.errorEmitted = false; // count buffered requests\n\n  this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n  // one allocated and free to use, and we maintain at most two\n\n  this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n  var current = this.bufferedRequest;\n  var out = [];\n\n  while (current) {\n    out.push(current);\n    current = current.next;\n  }\n\n  return out;\n};\n\n(function () {\n  try {\n    Object.defineProperty(WritableState.prototype, 'buffer', {\n      get: internalUtil.deprecate(function () {\n        return this.getBuffer();\n      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n    });\n  } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n  realHasInstance = Function.prototype[Symbol.hasInstance];\n  Object.defineProperty(Writable, Symbol.hasInstance, {\n    value: function (object) {\n      if (realHasInstance.call(this, object)) return true;\n      if (this !== Writable) return false;\n      return object && object._writableState instanceof WritableState;\n    }\n  });\n} else {\n  realHasInstance = function (object) {\n    return object instanceof this;\n  };\n}\n\nfunction Writable(options) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\"); // Writable ctor is applied to Duplexes, too.\n  // `realHasInstance` is necessary because using plain `instanceof`\n  // would return false, as no `_writableState` property is attached.\n  // Trying to use the custom `instanceof` for Writable here will also break the\n  // Node.js LazyTransform implementation, which has a non-trivial getter for\n  // `_writableState` that would lead to infinite recursion.\n\n  if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n    return new Writable(options);\n  }\n\n  this._writableState = new WritableState(options, this); // legacy.\n\n  this.writable = true;\n\n  if (options) {\n    if (typeof options.write === 'function') this._write = options.write;\n    if (typeof options.writev === 'function') this._writev = options.writev;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n    if (typeof options.final === 'function') this._final = options.final;\n  }\n\n  Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n  this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n  var er = new Error('write after end'); // TODO: defer error events consistently everywhere, not just the cb\n\n  stream.emit('error', er);\n  pna.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n  var valid = true;\n  var er = false;\n\n  if (chunk === null) {\n    er = new TypeError('May not write null values to stream');\n  } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new TypeError('Invalid non-string/buffer chunk');\n  }\n\n  if (er) {\n    stream.emit('error', er);\n    pna.nextTick(cb, er);\n    valid = false;\n  }\n\n  return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  var ret = false;\n\n  var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n  if (isBuf && !Buffer.isBuffer(chunk)) {\n    chunk = _uint8ArrayToBuffer(chunk);\n  }\n\n  if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n  if (typeof cb !== 'function') cb = nop;\n  if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n    state.pendingcb++;\n    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n  }\n  return ret;\n};\n\nWritable.prototype.cork = function () {\n  var state = this._writableState;\n  state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n  var state = this._writableState;\n\n  if (state.corked) {\n    state.corked--;\n    if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n  }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n  // node::ParseEncoding() requires lower case.\n  if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n  this._writableState.defaultEncoding = encoding;\n  return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n    chunk = Buffer.from(chunk, encoding);\n  }\n\n  return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._writableState.highWaterMark;\n  }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n  if (!isBuf) {\n    var newChunk = decodeChunk(state, chunk, encoding);\n\n    if (chunk !== newChunk) {\n      isBuf = true;\n      encoding = 'buffer';\n      chunk = newChunk;\n    }\n  }\n\n  var len = state.objectMode ? 1 : chunk.length;\n  state.length += len;\n  var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n  if (!ret) state.needDrain = true;\n\n  if (state.writing || state.corked) {\n    var last = state.lastBufferedRequest;\n    state.lastBufferedRequest = {\n      chunk: chunk,\n      encoding: encoding,\n      isBuf: isBuf,\n      callback: cb,\n      next: null\n    };\n\n    if (last) {\n      last.next = state.lastBufferedRequest;\n    } else {\n      state.bufferedRequest = state.lastBufferedRequest;\n    }\n\n    state.bufferedRequestCount += 1;\n  } else {\n    doWrite(stream, state, false, len, chunk, encoding, cb);\n  }\n\n  return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n  state.writelen = len;\n  state.writecb = cb;\n  state.writing = true;\n  state.sync = true;\n  if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n  state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n  --state.pendingcb;\n\n  if (sync) {\n    // defer the callback if we are being called synchronously\n    // to avoid piling up things on the stack\n    pna.nextTick(cb, er); // this can emit finish, and it will always happen\n    // after error\n\n    pna.nextTick(finishMaybe, stream, state);\n    stream._writableState.errorEmitted = true;\n    stream.emit('error', er);\n  } else {\n    // the caller expect this to happen before if\n    // it is async\n    cb(er);\n    stream._writableState.errorEmitted = true;\n    stream.emit('error', er); // this can emit finish, but finish must\n    // always follow error\n\n    finishMaybe(stream, state);\n  }\n}\n\nfunction onwriteStateUpdate(state) {\n  state.writing = false;\n  state.writecb = null;\n  state.length -= state.writelen;\n  state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n  var state = stream._writableState;\n  var sync = state.sync;\n  var cb = state.writecb;\n  onwriteStateUpdate(state);\n  if (er) onwriteError(stream, state, sync, er, cb);else {\n    // Check if we're actually ready to finish, but don't emit yet\n    var finished = needFinish(state);\n\n    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n      clearBuffer(stream, state);\n    }\n\n    if (sync) {\n      /*<replacement>*/\n      asyncWrite(afterWrite, stream, state, finished, cb);\n      /*</replacement>*/\n    } else {\n      afterWrite(stream, state, finished, cb);\n    }\n  }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n  if (!finished) onwriteDrain(stream, state);\n  state.pendingcb--;\n  cb();\n  finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n  if (state.length === 0 && state.needDrain) {\n    state.needDrain = false;\n    stream.emit('drain');\n  }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n  state.bufferProcessing = true;\n  var entry = state.bufferedRequest;\n\n  if (stream._writev && entry && entry.next) {\n    // Fast case, write everything using _writev()\n    var l = state.bufferedRequestCount;\n    var buffer = new Array(l);\n    var holder = state.corkedRequestsFree;\n    holder.entry = entry;\n    var count = 0;\n    var allBuffers = true;\n\n    while (entry) {\n      buffer[count] = entry;\n      if (!entry.isBuf) allBuffers = false;\n      entry = entry.next;\n      count += 1;\n    }\n\n    buffer.allBuffers = allBuffers;\n    doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n    // as the hot path ends with doWrite\n\n    state.pendingcb++;\n    state.lastBufferedRequest = null;\n\n    if (holder.next) {\n      state.corkedRequestsFree = holder.next;\n      holder.next = null;\n    } else {\n      state.corkedRequestsFree = new CorkedRequest(state);\n    }\n\n    state.bufferedRequestCount = 0;\n  } else {\n    // Slow case, write chunks one-by-one\n    while (entry) {\n      var chunk = entry.chunk;\n      var encoding = entry.encoding;\n      var cb = entry.callback;\n      var len = state.objectMode ? 1 : chunk.length;\n      doWrite(stream, state, false, len, chunk, encoding, cb);\n      entry = entry.next;\n      state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n      // it means that we need to wait until it does.\n      // also, that means that the chunk and cb are currently\n      // being processed, so move the buffer counter past them.\n\n      if (state.writing) {\n        break;\n      }\n    }\n\n    if (entry === null) state.lastBufferedRequest = null;\n  }\n\n  state.bufferedRequest = entry;\n  state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n  cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n  var state = this._writableState;\n\n  if (typeof chunk === 'function') {\n    cb = chunk;\n    chunk = null;\n    encoding = null;\n  } else if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n  if (state.corked) {\n    state.corked = 1;\n    this.uncork();\n  } // ignore unnecessary end() calls.\n\n\n  if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n  stream._final(function (err) {\n    state.pendingcb--;\n\n    if (err) {\n      stream.emit('error', err);\n    }\n\n    state.prefinished = true;\n    stream.emit('prefinish');\n    finishMaybe(stream, state);\n  });\n}\n\nfunction prefinish(stream, state) {\n  if (!state.prefinished && !state.finalCalled) {\n    if (typeof stream._final === 'function') {\n      state.pendingcb++;\n      state.finalCalled = true;\n      pna.nextTick(callFinal, stream, state);\n    } else {\n      state.prefinished = true;\n      stream.emit('prefinish');\n    }\n  }\n}\n\nfunction finishMaybe(stream, state) {\n  var need = needFinish(state);\n\n  if (need) {\n    prefinish(stream, state);\n\n    if (state.pendingcb === 0) {\n      state.finished = true;\n      stream.emit('finish');\n    }\n  }\n\n  return need;\n}\n\nfunction endWritable(stream, state, cb) {\n  state.ending = true;\n  finishMaybe(stream, state);\n\n  if (cb) {\n    if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n  }\n\n  state.ended = true;\n  stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n  var entry = corkReq.entry;\n  corkReq.entry = null;\n\n  while (entry) {\n    var cb = entry.callback;\n    state.pendingcb--;\n    cb(err);\n    entry = entry.next;\n  }\n\n  if (state.corkedRequestsFree) {\n    state.corkedRequestsFree.next = corkReq;\n  } else {\n    state.corkedRequestsFree = corkReq;\n  }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n  get: function () {\n    if (this._writableState === undefined) {\n      return false;\n    }\n\n    return this._writableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._writableState) {\n      return;\n    } // backward compatibility, the user is explicitly\n    // managing destroyed\n\n\n    this._writableState.destroyed = value;\n  }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n  this.end();\n  cb(err);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\"), __webpack_require__(/*! ./../../timers-browserify/main.js */ \"./node_modules/timers-browserify/main.js\").setImmediate, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/_stream_writable.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/internal/streams/BufferList.js":
/*!*************************************************************************!*\
  !*** ./node_modules/readable-stream/lib/internal/streams/BufferList.js ***!
  \*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar util = __webpack_require__(/*! util */ 4);\n\nfunction copyBuffer(src, target, offset) {\n  src.copy(target, offset);\n}\n\nmodule.exports = function () {\n  function BufferList() {\n    _classCallCheck(this, BufferList);\n\n    this.head = null;\n    this.tail = null;\n    this.length = 0;\n  }\n\n  BufferList.prototype.push = function push(v) {\n    var entry = {\n      data: v,\n      next: null\n    };\n    if (this.length > 0) this.tail.next = entry;else this.head = entry;\n    this.tail = entry;\n    ++this.length;\n  };\n\n  BufferList.prototype.unshift = function unshift(v) {\n    var entry = {\n      data: v,\n      next: this.head\n    };\n    if (this.length === 0) this.tail = entry;\n    this.head = entry;\n    ++this.length;\n  };\n\n  BufferList.prototype.shift = function shift() {\n    if (this.length === 0) return;\n    var ret = this.head.data;\n    if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n    --this.length;\n    return ret;\n  };\n\n  BufferList.prototype.clear = function clear() {\n    this.head = this.tail = null;\n    this.length = 0;\n  };\n\n  BufferList.prototype.join = function join(s) {\n    if (this.length === 0) return '';\n    var p = this.head;\n    var ret = '' + p.data;\n\n    while (p = p.next) {\n      ret += s + p.data;\n    }\n\n    return ret;\n  };\n\n  BufferList.prototype.concat = function concat(n) {\n    if (this.length === 0) return Buffer.alloc(0);\n    if (this.length === 1) return this.head.data;\n    var ret = Buffer.allocUnsafe(n >>> 0);\n    var p = this.head;\n    var i = 0;\n\n    while (p) {\n      copyBuffer(p.data, ret, i);\n      i += p.data.length;\n      p = p.next;\n    }\n\n    return ret;\n  };\n\n  return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n  module.exports.prototype[util.inspect.custom] = function () {\n    var obj = util.inspect({\n      length: this.length\n    });\n    return this.constructor.name + ' ' + obj;\n  };\n}\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/internal/streams/destroy.js":
/*!**********************************************************************!*\
  !*** ./node_modules/readable-stream/lib/internal/streams/destroy.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n// undocumented cb() API, needed for core, not for public API\n\n\nfunction destroy(err, cb) {\n  var _this = this;\n\n  var readableDestroyed = this._readableState && this._readableState.destroyed;\n  var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n  if (readableDestroyed || writableDestroyed) {\n    if (cb) {\n      cb(err);\n    } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n      pna.nextTick(emitErrorNT, this, err);\n    }\n\n    return this;\n  } // we set destroyed to true before firing error callbacks in order\n  // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n  if (this._readableState) {\n    this._readableState.destroyed = true;\n  } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n  if (this._writableState) {\n    this._writableState.destroyed = true;\n  }\n\n  this._destroy(err || null, function (err) {\n    if (!cb && err) {\n      pna.nextTick(emitErrorNT, _this, err);\n\n      if (_this._writableState) {\n        _this._writableState.errorEmitted = true;\n      }\n    } else if (cb) {\n      cb(err);\n    }\n  });\n\n  return this;\n}\n\nfunction undestroy() {\n  if (this._readableState) {\n    this._readableState.destroyed = false;\n    this._readableState.reading = false;\n    this._readableState.ended = false;\n    this._readableState.endEmitted = false;\n  }\n\n  if (this._writableState) {\n    this._writableState.destroyed = false;\n    this._writableState.ended = false;\n    this._writableState.ending = false;\n    this._writableState.finished = false;\n    this._writableState.errorEmitted = false;\n  }\n}\n\nfunction emitErrorNT(self, err) {\n  self.emit('error', err);\n}\n\nmodule.exports = {\n  destroy: destroy,\n  undestroy: undestroy\n};\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js?");

/***/ }),

/***/ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/readable-stream/lib/internal/streams/stream-browser.js ***!
  \*****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\n//# sourceURL=webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js?");

/***/ }),

/***/ "./node_modules/readable-stream/passthrough.js":
/*!*****************************************************!*\
  !*** ./node_modules/readable-stream/passthrough.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = __webpack_require__(/*! ./readable */ \"./node_modules/readable-stream/readable-browser.js\").PassThrough;\n\n//# sourceURL=webpack:///./node_modules/readable-stream/passthrough.js?");

/***/ }),

/***/ "./node_modules/readable-stream/readable-browser.js":
/*!**********************************************************!*\
  !*** ./node_modules/readable-stream/readable-browser.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ \"./node_modules/readable-stream/lib/_stream_readable.js\");\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/readable-stream/lib/_stream_writable.js\");\nexports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\nexports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ \"./node_modules/readable-stream/lib/_stream_transform.js\");\nexports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ \"./node_modules/readable-stream/lib/_stream_passthrough.js\");\n\n//# sourceURL=webpack:///./node_modules/readable-stream/readable-browser.js?");

/***/ }),

/***/ "./node_modules/readable-stream/transform.js":
/*!***************************************************!*\
  !*** ./node_modules/readable-stream/transform.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = __webpack_require__(/*! ./readable */ \"./node_modules/readable-stream/readable-browser.js\").Transform;\n\n//# sourceURL=webpack:///./node_modules/readable-stream/transform.js?");

/***/ }),

/***/ "./node_modules/readable-stream/writable-browser.js":
/*!**********************************************************!*\
  !*** ./node_modules/readable-stream/writable-browser.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/readable-stream/lib/_stream_writable.js\");\n\n//# sourceURL=webpack:///./node_modules/readable-stream/writable-browser.js?");

/***/ }),

/***/ "./node_modules/ripemd160/index.js":
/*!*****************************************!*\
  !*** ./node_modules/ripemd160/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer;\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar HashBase = __webpack_require__(/*! hash-base */ \"./node_modules/hash-base/index.js\");\n\nvar ARRAY16 = new Array(16);\nvar zl = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13];\nvar zr = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11];\nvar sl = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6];\nvar sr = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11];\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e];\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000];\n\nfunction RIPEMD160() {\n  HashBase.call(this, 64); // state\n\n  this._a = 0x67452301;\n  this._b = 0xefcdab89;\n  this._c = 0x98badcfe;\n  this._d = 0x10325476;\n  this._e = 0xc3d2e1f0;\n}\n\ninherits(RIPEMD160, HashBase);\n\nRIPEMD160.prototype._update = function () {\n  var words = ARRAY16;\n\n  for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4);\n\n  var al = this._a | 0;\n  var bl = this._b | 0;\n  var cl = this._c | 0;\n  var dl = this._d | 0;\n  var el = this._e | 0;\n  var ar = this._a | 0;\n  var br = this._b | 0;\n  var cr = this._c | 0;\n  var dr = this._d | 0;\n  var er = this._e | 0; // computation\n\n  for (var i = 0; i < 80; i += 1) {\n    var tl;\n    var tr;\n\n    if (i < 16) {\n      tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i]);\n      tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i]);\n    } else if (i < 32) {\n      tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i]);\n      tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i]);\n    } else if (i < 48) {\n      tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i]);\n      tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i]);\n    } else if (i < 64) {\n      tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i]);\n      tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i]);\n    } else {\n      // if (i<80) {\n      tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i]);\n      tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i]);\n    }\n\n    al = el;\n    el = dl;\n    dl = rotl(cl, 10);\n    cl = bl;\n    bl = tl;\n    ar = er;\n    er = dr;\n    dr = rotl(cr, 10);\n    cr = br;\n    br = tr;\n  } // update state\n\n\n  var t = this._b + cl + dr | 0;\n  this._b = this._c + dl + er | 0;\n  this._c = this._d + el + ar | 0;\n  this._d = this._e + al + br | 0;\n  this._e = this._a + bl + cr | 0;\n  this._a = t;\n};\n\nRIPEMD160.prototype._digest = function () {\n  // create padding and handle blocks\n  this._block[this._blockOffset++] = 0x80;\n\n  if (this._blockOffset > 56) {\n    this._block.fill(0, this._blockOffset, 64);\n\n    this._update();\n\n    this._blockOffset = 0;\n  }\n\n  this._block.fill(0, this._blockOffset, 56);\n\n  this._block.writeUInt32LE(this._length[0], 56);\n\n  this._block.writeUInt32LE(this._length[1], 60);\n\n  this._update(); // produce result\n\n\n  var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20);\n  buffer.writeInt32LE(this._a, 0);\n  buffer.writeInt32LE(this._b, 4);\n  buffer.writeInt32LE(this._c, 8);\n  buffer.writeInt32LE(this._d, 12);\n  buffer.writeInt32LE(this._e, 16);\n  return buffer;\n};\n\nfunction rotl(x, n) {\n  return x << n | x >>> 32 - n;\n}\n\nfunction fn1(a, b, c, d, e, m, k, s) {\n  return rotl(a + (b ^ c ^ d) + m + k | 0, s) + e | 0;\n}\n\nfunction fn2(a, b, c, d, e, m, k, s) {\n  return rotl(a + (b & c | ~b & d) + m + k | 0, s) + e | 0;\n}\n\nfunction fn3(a, b, c, d, e, m, k, s) {\n  return rotl(a + ((b | ~c) ^ d) + m + k | 0, s) + e | 0;\n}\n\nfunction fn4(a, b, c, d, e, m, k, s) {\n  return rotl(a + (b & d | c & ~d) + m + k | 0, s) + e | 0;\n}\n\nfunction fn5(a, b, c, d, e, m, k, s) {\n  return rotl(a + (b ^ (c | ~d)) + m + k | 0, s) + e | 0;\n}\n\nmodule.exports = RIPEMD160;\n\n//# sourceURL=webpack:///./node_modules/ripemd160/index.js?");

/***/ }),

/***/ "./node_modules/safe-buffer/index.js":
/*!*******************************************!*\
  !*** ./node_modules/safe-buffer/index.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\");\n\nvar Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers\n\nfunction copyProps(src, dst) {\n  for (var key in src) {\n    dst[key] = src[key];\n  }\n}\n\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n  module.exports = buffer;\n} else {\n  // Copy properties from require('buffer')\n  copyProps(buffer, exports);\n  exports.Buffer = SafeBuffer;\n}\n\nfunction SafeBuffer(arg, encodingOrOffset, length) {\n  return Buffer(arg, encodingOrOffset, length);\n} // Copy static methods from Buffer\n\n\ncopyProps(Buffer, SafeBuffer);\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n  if (typeof arg === 'number') {\n    throw new TypeError('Argument must not be a number');\n  }\n\n  return Buffer(arg, encodingOrOffset, length);\n};\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number');\n  }\n\n  var buf = Buffer(size);\n\n  if (fill !== undefined) {\n    if (typeof encoding === 'string') {\n      buf.fill(fill, encoding);\n    } else {\n      buf.fill(fill);\n    }\n  } else {\n    buf.fill(0);\n  }\n\n  return buf;\n};\n\nSafeBuffer.allocUnsafe = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number');\n  }\n\n  return Buffer(size);\n};\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number');\n  }\n\n  return buffer.SlowBuffer(size);\n};\n\n//# sourceURL=webpack:///./node_modules/safe-buffer/index.js?");

/***/ }),

/***/ "./node_modules/safer-buffer/safer.js":
/*!********************************************!*\
  !*** ./node_modules/safer-buffer/safer.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(process) {/* eslint-disable node/no-deprecated-api */\n\n\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\");\n\nvar Buffer = buffer.Buffer;\nvar safer = {};\nvar key;\n\nfor (key in buffer) {\n  if (!buffer.hasOwnProperty(key)) continue;\n  if (key === 'SlowBuffer' || key === 'Buffer') continue;\n  safer[key] = buffer[key];\n}\n\nvar Safer = safer.Buffer = {};\n\nfor (key in Buffer) {\n  if (!Buffer.hasOwnProperty(key)) continue;\n  if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue;\n  Safer[key] = Buffer[key];\n}\n\nsafer.Buffer.prototype = Buffer.prototype;\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n  Safer.from = function (value, encodingOrOffset, length) {\n    if (typeof value === 'number') {\n      throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value);\n    }\n\n    if (value && typeof value.length === 'undefined') {\n      throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value);\n    }\n\n    return Buffer(value, encodingOrOffset, length);\n  };\n}\n\nif (!Safer.alloc) {\n  Safer.alloc = function (size, fill, encoding) {\n    if (typeof size !== 'number') {\n      throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size);\n    }\n\n    if (size < 0 || size >= 2 * (1 << 30)) {\n      throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"');\n    }\n\n    var buf = Buffer(size);\n\n    if (!fill || fill.length === 0) {\n      buf.fill(0);\n    } else if (typeof encoding === 'string') {\n      buf.fill(fill, encoding);\n    } else {\n      buf.fill(fill);\n    }\n\n    return buf;\n  };\n}\n\nif (!safer.kStringMaxLength) {\n  try {\n    safer.kStringMaxLength = process.binding('buffer').kStringMaxLength;\n  } catch (e) {// we can't determine kStringMaxLength in environments where process.binding\n    // is unsupported, so let's not set it\n  }\n}\n\nif (!safer.constants) {\n  safer.constants = {\n    MAX_LENGTH: safer.kMaxLength\n  };\n\n  if (safer.kStringMaxLength) {\n    safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;\n  }\n}\n\nmodule.exports = safer;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/safer-buffer/safer.js?");

/***/ }),

/***/ "./node_modules/setimmediate/setImmediate.js":
/*!***************************************************!*\
  !*** ./node_modules/setimmediate/setImmediate.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {\n  \"use strict\";\n\n  if (global.setImmediate) {\n    return;\n  }\n\n  var nextHandle = 1; // Spec says greater than zero\n\n  var tasksByHandle = {};\n  var currentlyRunningATask = false;\n  var doc = global.document;\n  var registerImmediate;\n\n  function setImmediate(callback) {\n    // Callback can either be a function or a string\n    if (typeof callback !== \"function\") {\n      callback = new Function(\"\" + callback);\n    } // Copy function arguments\n\n\n    var args = new Array(arguments.length - 1);\n\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i + 1];\n    } // Store and register the task\n\n\n    var task = {\n      callback: callback,\n      args: args\n    };\n    tasksByHandle[nextHandle] = task;\n    registerImmediate(nextHandle);\n    return nextHandle++;\n  }\n\n  function clearImmediate(handle) {\n    delete tasksByHandle[handle];\n  }\n\n  function run(task) {\n    var callback = task.callback;\n    var args = task.args;\n\n    switch (args.length) {\n      case 0:\n        callback();\n        break;\n\n      case 1:\n        callback(args[0]);\n        break;\n\n      case 2:\n        callback(args[0], args[1]);\n        break;\n\n      case 3:\n        callback(args[0], args[1], args[2]);\n        break;\n\n      default:\n        callback.apply(undefined, args);\n        break;\n    }\n  }\n\n  function runIfPresent(handle) {\n    // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n    // So if we're currently running a task, we'll need to delay this invocation.\n    if (currentlyRunningATask) {\n      // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n      // \"too much recursion\" error.\n      setTimeout(runIfPresent, 0, handle);\n    } else {\n      var task = tasksByHandle[handle];\n\n      if (task) {\n        currentlyRunningATask = true;\n\n        try {\n          run(task);\n        } finally {\n          clearImmediate(handle);\n          currentlyRunningATask = false;\n        }\n      }\n    }\n  }\n\n  function installNextTickImplementation() {\n    registerImmediate = function (handle) {\n      process.nextTick(function () {\n        runIfPresent(handle);\n      });\n    };\n  }\n\n  function canUsePostMessage() {\n    // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n    // where `global.postMessage` means something completely different and can't be used for this purpose.\n    if (global.postMessage && !global.importScripts) {\n      var postMessageIsAsynchronous = true;\n      var oldOnMessage = global.onmessage;\n\n      global.onmessage = function () {\n        postMessageIsAsynchronous = false;\n      };\n\n      global.postMessage(\"\", \"*\");\n      global.onmessage = oldOnMessage;\n      return postMessageIsAsynchronous;\n    }\n  }\n\n  function installPostMessageImplementation() {\n    // Installs an event handler on `global` for the `message` event: see\n    // * https://developer.mozilla.org/en/DOM/window.postMessage\n    // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n    var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n    var onGlobalMessage = function (event) {\n      if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n        runIfPresent(+event.data.slice(messagePrefix.length));\n      }\n    };\n\n    if (global.addEventListener) {\n      global.addEventListener(\"message\", onGlobalMessage, false);\n    } else {\n      global.attachEvent(\"onmessage\", onGlobalMessage);\n    }\n\n    registerImmediate = function (handle) {\n      global.postMessage(messagePrefix + handle, \"*\");\n    };\n  }\n\n  function installMessageChannelImplementation() {\n    var channel = new MessageChannel();\n\n    channel.port1.onmessage = function (event) {\n      var handle = event.data;\n      runIfPresent(handle);\n    };\n\n    registerImmediate = function (handle) {\n      channel.port2.postMessage(handle);\n    };\n  }\n\n  function installReadyStateChangeImplementation() {\n    var html = doc.documentElement;\n\n    registerImmediate = function (handle) {\n      // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n      // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n      var script = doc.createElement(\"script\");\n\n      script.onreadystatechange = function () {\n        runIfPresent(handle);\n        script.onreadystatechange = null;\n        html.removeChild(script);\n        script = null;\n      };\n\n      html.appendChild(script);\n    };\n  }\n\n  function installSetTimeoutImplementation() {\n    registerImmediate = function (handle) {\n      setTimeout(runIfPresent, 0, handle);\n    };\n  } // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n\n\n  var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n  attachTo = attachTo && attachTo.setTimeout ? attachTo : global; // Don't get fooled by e.g. browserify environments.\n\n  if ({}.toString.call(global.process) === \"[object process]\") {\n    // For Node.js before 0.9\n    installNextTickImplementation();\n  } else if (canUsePostMessage()) {\n    // For non-IE10 modern browsers\n    installPostMessageImplementation();\n  } else if (global.MessageChannel) {\n    // For web workers, where supported\n    installMessageChannelImplementation();\n  } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n    // For IE 6–8\n    installReadyStateChangeImplementation();\n  } else {\n    // For older browsers\n    installSetTimeoutImplementation();\n  }\n\n  attachTo.setImmediate = setImmediate;\n  attachTo.clearImmediate = clearImmediate;\n})(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/setimmediate/setImmediate.js?");

/***/ }),

/***/ "./node_modules/sha.js/hash.js":
/*!*************************************!*\
  !*** ./node_modules/sha.js/hash.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer; // prototype class for hash functions\n\n\nfunction Hash(blockSize, finalSize) {\n  this._block = Buffer.alloc(blockSize);\n  this._finalSize = finalSize;\n  this._blockSize = blockSize;\n  this._len = 0;\n}\n\nHash.prototype.update = function (data, enc) {\n  if (typeof data === 'string') {\n    enc = enc || 'utf8';\n    data = Buffer.from(data, enc);\n  }\n\n  var block = this._block;\n  var blockSize = this._blockSize;\n  var length = data.length;\n  var accum = this._len;\n\n  for (var offset = 0; offset < length;) {\n    var assigned = accum % blockSize;\n    var remainder = Math.min(length - offset, blockSize - assigned);\n\n    for (var i = 0; i < remainder; i++) {\n      block[assigned + i] = data[offset + i];\n    }\n\n    accum += remainder;\n    offset += remainder;\n\n    if (accum % blockSize === 0) {\n      this._update(block);\n    }\n  }\n\n  this._len += length;\n  return this;\n};\n\nHash.prototype.digest = function (enc) {\n  var rem = this._len % this._blockSize;\n  this._block[rem] = 0x80; // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n  // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n\n  this._block.fill(0, rem + 1);\n\n  if (rem >= this._finalSize) {\n    this._update(this._block);\n\n    this._block.fill(0);\n  }\n\n  var bits = this._len * 8; // uint32\n\n  if (bits <= 0xffffffff) {\n    this._block.writeUInt32BE(bits, this._blockSize - 4); // uint64\n\n  } else {\n    var lowBits = (bits & 0xffffffff) >>> 0;\n    var highBits = (bits - lowBits) / 0x100000000;\n\n    this._block.writeUInt32BE(highBits, this._blockSize - 8);\n\n    this._block.writeUInt32BE(lowBits, this._blockSize - 4);\n  }\n\n  this._update(this._block);\n\n  var hash = this._hash();\n\n  return enc ? hash.toString(enc) : hash;\n};\n\nHash.prototype._update = function () {\n  throw new Error('_update must be implemented by subclass');\n};\n\nmodule.exports = Hash;\n\n//# sourceURL=webpack:///./node_modules/sha.js/hash.js?");

/***/ }),

/***/ "./node_modules/sha.js/index.js":
/*!**************************************!*\
  !*** ./node_modules/sha.js/index.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var exports = module.exports = function SHA(algorithm) {\n  algorithm = algorithm.toLowerCase();\n  var Algorithm = exports[algorithm];\n  if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)');\n  return new Algorithm();\n};\n\nexports.sha = __webpack_require__(/*! ./sha */ \"./node_modules/sha.js/sha.js\");\nexports.sha1 = __webpack_require__(/*! ./sha1 */ \"./node_modules/sha.js/sha1.js\");\nexports.sha224 = __webpack_require__(/*! ./sha224 */ \"./node_modules/sha.js/sha224.js\");\nexports.sha256 = __webpack_require__(/*! ./sha256 */ \"./node_modules/sha.js/sha256.js\");\nexports.sha384 = __webpack_require__(/*! ./sha384 */ \"./node_modules/sha.js/sha384.js\");\nexports.sha512 = __webpack_require__(/*! ./sha512 */ \"./node_modules/sha.js/sha512.js\");\n\n//# sourceURL=webpack:///./node_modules/sha.js/index.js?");

/***/ }),

/***/ "./node_modules/sha.js/sha.js":
/*!************************************!*\
  !*** ./node_modules/sha.js/sha.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0];\nvar W = new Array(80);\n\nfunction Sha() {\n  this.init();\n  this._w = W;\n  Hash.call(this, 64, 56);\n}\n\ninherits(Sha, Hash);\n\nSha.prototype.init = function () {\n  this._a = 0x67452301;\n  this._b = 0xefcdab89;\n  this._c = 0x98badcfe;\n  this._d = 0x10325476;\n  this._e = 0xc3d2e1f0;\n  return this;\n};\n\nfunction rotl5(num) {\n  return num << 5 | num >>> 27;\n}\n\nfunction rotl30(num) {\n  return num << 30 | num >>> 2;\n}\n\nfunction ft(s, b, c, d) {\n  if (s === 0) return b & c | ~b & d;\n  if (s === 2) return b & c | b & d | c & d;\n  return b ^ c ^ d;\n}\n\nSha.prototype._update = function (M) {\n  var W = this._w;\n  var a = this._a | 0;\n  var b = this._b | 0;\n  var c = this._c | 0;\n  var d = this._d | 0;\n  var e = this._e | 0;\n\n  for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4);\n\n  for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\n  for (var j = 0; j < 80; ++j) {\n    var s = ~~(j / 20);\n    var t = rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s] | 0;\n    e = d;\n    d = c;\n    c = rotl30(b);\n    b = a;\n    a = t;\n  }\n\n  this._a = a + this._a | 0;\n  this._b = b + this._b | 0;\n  this._c = c + this._c | 0;\n  this._d = d + this._d | 0;\n  this._e = e + this._e | 0;\n};\n\nSha.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(20);\n  H.writeInt32BE(this._a | 0, 0);\n  H.writeInt32BE(this._b | 0, 4);\n  H.writeInt32BE(this._c | 0, 8);\n  H.writeInt32BE(this._d | 0, 12);\n  H.writeInt32BE(this._e | 0, 16);\n  return H;\n};\n\nmodule.exports = Sha;\n\n//# sourceURL=webpack:///./node_modules/sha.js/sha.js?");

/***/ }),

/***/ "./node_modules/sha.js/sha1.js":
/*!*************************************!*\
  !*** ./node_modules/sha.js/sha1.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0];\nvar W = new Array(80);\n\nfunction Sha1() {\n  this.init();\n  this._w = W;\n  Hash.call(this, 64, 56);\n}\n\ninherits(Sha1, Hash);\n\nSha1.prototype.init = function () {\n  this._a = 0x67452301;\n  this._b = 0xefcdab89;\n  this._c = 0x98badcfe;\n  this._d = 0x10325476;\n  this._e = 0xc3d2e1f0;\n  return this;\n};\n\nfunction rotl1(num) {\n  return num << 1 | num >>> 31;\n}\n\nfunction rotl5(num) {\n  return num << 5 | num >>> 27;\n}\n\nfunction rotl30(num) {\n  return num << 30 | num >>> 2;\n}\n\nfunction ft(s, b, c, d) {\n  if (s === 0) return b & c | ~b & d;\n  if (s === 2) return b & c | b & d | c & d;\n  return b ^ c ^ d;\n}\n\nSha1.prototype._update = function (M) {\n  var W = this._w;\n  var a = this._a | 0;\n  var b = this._b | 0;\n  var c = this._c | 0;\n  var d = this._d | 0;\n  var e = this._e | 0;\n\n  for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4);\n\n  for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]);\n\n  for (var j = 0; j < 80; ++j) {\n    var s = ~~(j / 20);\n    var t = rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s] | 0;\n    e = d;\n    d = c;\n    c = rotl30(b);\n    b = a;\n    a = t;\n  }\n\n  this._a = a + this._a | 0;\n  this._b = b + this._b | 0;\n  this._c = c + this._c | 0;\n  this._d = d + this._d | 0;\n  this._e = e + this._e | 0;\n};\n\nSha1.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(20);\n  H.writeInt32BE(this._a | 0, 0);\n  H.writeInt32BE(this._b | 0, 4);\n  H.writeInt32BE(this._c | 0, 8);\n  H.writeInt32BE(this._d | 0, 12);\n  H.writeInt32BE(this._e | 0, 16);\n  return H;\n};\n\nmodule.exports = Sha1;\n\n//# sourceURL=webpack:///./node_modules/sha.js/sha1.js?");

/***/ }),

/***/ "./node_modules/sha.js/sha224.js":
/*!***************************************!*\
  !*** ./node_modules/sha.js/sha224.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Sha256 = __webpack_require__(/*! ./sha256 */ \"./node_modules/sha.js/sha256.js\");\n\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar W = new Array(64);\n\nfunction Sha224() {\n  this.init();\n  this._w = W; // new Array(64)\n\n  Hash.call(this, 64, 56);\n}\n\ninherits(Sha224, Sha256);\n\nSha224.prototype.init = function () {\n  this._a = 0xc1059ed8;\n  this._b = 0x367cd507;\n  this._c = 0x3070dd17;\n  this._d = 0xf70e5939;\n  this._e = 0xffc00b31;\n  this._f = 0x68581511;\n  this._g = 0x64f98fa7;\n  this._h = 0xbefa4fa4;\n  return this;\n};\n\nSha224.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(28);\n  H.writeInt32BE(this._a, 0);\n  H.writeInt32BE(this._b, 4);\n  H.writeInt32BE(this._c, 8);\n  H.writeInt32BE(this._d, 12);\n  H.writeInt32BE(this._e, 16);\n  H.writeInt32BE(this._f, 20);\n  H.writeInt32BE(this._g, 24);\n  return H;\n};\n\nmodule.exports = Sha224;\n\n//# sourceURL=webpack:///./node_modules/sha.js/sha224.js?");

/***/ }),

/***/ "./node_modules/sha.js/sha256.js":
/*!***************************************!*\
  !*** ./node_modules/sha.js/sha256.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar K = [0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2];\nvar W = new Array(64);\n\nfunction Sha256() {\n  this.init();\n  this._w = W; // new Array(64)\n\n  Hash.call(this, 64, 56);\n}\n\ninherits(Sha256, Hash);\n\nSha256.prototype.init = function () {\n  this._a = 0x6a09e667;\n  this._b = 0xbb67ae85;\n  this._c = 0x3c6ef372;\n  this._d = 0xa54ff53a;\n  this._e = 0x510e527f;\n  this._f = 0x9b05688c;\n  this._g = 0x1f83d9ab;\n  this._h = 0x5be0cd19;\n  return this;\n};\n\nfunction ch(x, y, z) {\n  return z ^ x & (y ^ z);\n}\n\nfunction maj(x, y, z) {\n  return x & y | z & (x | y);\n}\n\nfunction sigma0(x) {\n  return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10);\n}\n\nfunction sigma1(x) {\n  return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7);\n}\n\nfunction gamma0(x) {\n  return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ x >>> 3;\n}\n\nfunction gamma1(x) {\n  return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ x >>> 10;\n}\n\nSha256.prototype._update = function (M) {\n  var W = this._w;\n  var a = this._a | 0;\n  var b = this._b | 0;\n  var c = this._c | 0;\n  var d = this._d | 0;\n  var e = this._e | 0;\n  var f = this._f | 0;\n  var g = this._g | 0;\n  var h = this._h | 0;\n\n  for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4);\n\n  for (; i < 64; ++i) W[i] = gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16] | 0;\n\n  for (var j = 0; j < 64; ++j) {\n    var T1 = h + sigma1(e) + ch(e, f, g) + K[j] + W[j] | 0;\n    var T2 = sigma0(a) + maj(a, b, c) | 0;\n    h = g;\n    g = f;\n    f = e;\n    e = d + T1 | 0;\n    d = c;\n    c = b;\n    b = a;\n    a = T1 + T2 | 0;\n  }\n\n  this._a = a + this._a | 0;\n  this._b = b + this._b | 0;\n  this._c = c + this._c | 0;\n  this._d = d + this._d | 0;\n  this._e = e + this._e | 0;\n  this._f = f + this._f | 0;\n  this._g = g + this._g | 0;\n  this._h = h + this._h | 0;\n};\n\nSha256.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(32);\n  H.writeInt32BE(this._a, 0);\n  H.writeInt32BE(this._b, 4);\n  H.writeInt32BE(this._c, 8);\n  H.writeInt32BE(this._d, 12);\n  H.writeInt32BE(this._e, 16);\n  H.writeInt32BE(this._f, 20);\n  H.writeInt32BE(this._g, 24);\n  H.writeInt32BE(this._h, 28);\n  return H;\n};\n\nmodule.exports = Sha256;\n\n//# sourceURL=webpack:///./node_modules/sha.js/sha256.js?");

/***/ }),

/***/ "./node_modules/sha.js/sha384.js":
/*!***************************************!*\
  !*** ./node_modules/sha.js/sha384.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar SHA512 = __webpack_require__(/*! ./sha512 */ \"./node_modules/sha.js/sha512.js\");\n\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar W = new Array(160);\n\nfunction Sha384() {\n  this.init();\n  this._w = W;\n  Hash.call(this, 128, 112);\n}\n\ninherits(Sha384, SHA512);\n\nSha384.prototype.init = function () {\n  this._ah = 0xcbbb9d5d;\n  this._bh = 0x629a292a;\n  this._ch = 0x9159015a;\n  this._dh = 0x152fecd8;\n  this._eh = 0x67332667;\n  this._fh = 0x8eb44a87;\n  this._gh = 0xdb0c2e0d;\n  this._hh = 0x47b5481d;\n  this._al = 0xc1059ed8;\n  this._bl = 0x367cd507;\n  this._cl = 0x3070dd17;\n  this._dl = 0xf70e5939;\n  this._el = 0xffc00b31;\n  this._fl = 0x68581511;\n  this._gl = 0x64f98fa7;\n  this._hl = 0xbefa4fa4;\n  return this;\n};\n\nSha384.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(48);\n\n  function writeInt64BE(h, l, offset) {\n    H.writeInt32BE(h, offset);\n    H.writeInt32BE(l, offset + 4);\n  }\n\n  writeInt64BE(this._ah, this._al, 0);\n  writeInt64BE(this._bh, this._bl, 8);\n  writeInt64BE(this._ch, this._cl, 16);\n  writeInt64BE(this._dh, this._dl, 24);\n  writeInt64BE(this._eh, this._el, 32);\n  writeInt64BE(this._fh, this._fl, 40);\n  return H;\n};\n\nmodule.exports = Sha384;\n\n//# sourceURL=webpack:///./node_modules/sha.js/sha384.js?");

/***/ }),

/***/ "./node_modules/sha.js/sha512.js":
/*!***************************************!*\
  !*** ./node_modules/sha.js/sha512.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\");\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n\nvar K = [0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817];\nvar W = new Array(160);\n\nfunction Sha512() {\n  this.init();\n  this._w = W;\n  Hash.call(this, 128, 112);\n}\n\ninherits(Sha512, Hash);\n\nSha512.prototype.init = function () {\n  this._ah = 0x6a09e667;\n  this._bh = 0xbb67ae85;\n  this._ch = 0x3c6ef372;\n  this._dh = 0xa54ff53a;\n  this._eh = 0x510e527f;\n  this._fh = 0x9b05688c;\n  this._gh = 0x1f83d9ab;\n  this._hh = 0x5be0cd19;\n  this._al = 0xf3bcc908;\n  this._bl = 0x84caa73b;\n  this._cl = 0xfe94f82b;\n  this._dl = 0x5f1d36f1;\n  this._el = 0xade682d1;\n  this._fl = 0x2b3e6c1f;\n  this._gl = 0xfb41bd6b;\n  this._hl = 0x137e2179;\n  return this;\n};\n\nfunction Ch(x, y, z) {\n  return z ^ x & (y ^ z);\n}\n\nfunction maj(x, y, z) {\n  return x & y | z & (x | y);\n}\n\nfunction sigma0(x, xl) {\n  return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25);\n}\n\nfunction sigma1(x, xl) {\n  return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23);\n}\n\nfunction Gamma0(x, xl) {\n  return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ x >>> 7;\n}\n\nfunction Gamma0l(x, xl) {\n  return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25);\n}\n\nfunction Gamma1(x, xl) {\n  return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ x >>> 6;\n}\n\nfunction Gamma1l(x, xl) {\n  return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26);\n}\n\nfunction getCarry(a, b) {\n  return a >>> 0 < b >>> 0 ? 1 : 0;\n}\n\nSha512.prototype._update = function (M) {\n  var W = this._w;\n  var ah = this._ah | 0;\n  var bh = this._bh | 0;\n  var ch = this._ch | 0;\n  var dh = this._dh | 0;\n  var eh = this._eh | 0;\n  var fh = this._fh | 0;\n  var gh = this._gh | 0;\n  var hh = this._hh | 0;\n  var al = this._al | 0;\n  var bl = this._bl | 0;\n  var cl = this._cl | 0;\n  var dl = this._dl | 0;\n  var el = this._el | 0;\n  var fl = this._fl | 0;\n  var gl = this._gl | 0;\n  var hl = this._hl | 0;\n\n  for (var i = 0; i < 32; i += 2) {\n    W[i] = M.readInt32BE(i * 4);\n    W[i + 1] = M.readInt32BE(i * 4 + 4);\n  }\n\n  for (; i < 160; i += 2) {\n    var xh = W[i - 15 * 2];\n    var xl = W[i - 15 * 2 + 1];\n    var gamma0 = Gamma0(xh, xl);\n    var gamma0l = Gamma0l(xl, xh);\n    xh = W[i - 2 * 2];\n    xl = W[i - 2 * 2 + 1];\n    var gamma1 = Gamma1(xh, xl);\n    var gamma1l = Gamma1l(xl, xh); // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\n    var Wi7h = W[i - 7 * 2];\n    var Wi7l = W[i - 7 * 2 + 1];\n    var Wi16h = W[i - 16 * 2];\n    var Wi16l = W[i - 16 * 2 + 1];\n    var Wil = gamma0l + Wi7l | 0;\n    var Wih = gamma0 + Wi7h + getCarry(Wil, gamma0l) | 0;\n    Wil = Wil + gamma1l | 0;\n    Wih = Wih + gamma1 + getCarry(Wil, gamma1l) | 0;\n    Wil = Wil + Wi16l | 0;\n    Wih = Wih + Wi16h + getCarry(Wil, Wi16l) | 0;\n    W[i] = Wih;\n    W[i + 1] = Wil;\n  }\n\n  for (var j = 0; j < 160; j += 2) {\n    Wih = W[j];\n    Wil = W[j + 1];\n    var majh = maj(ah, bh, ch);\n    var majl = maj(al, bl, cl);\n    var sigma0h = sigma0(ah, al);\n    var sigma0l = sigma0(al, ah);\n    var sigma1h = sigma1(eh, el);\n    var sigma1l = sigma1(el, eh); // t1 = h + sigma1 + ch + K[j] + W[j]\n\n    var Kih = K[j];\n    var Kil = K[j + 1];\n    var chh = Ch(eh, fh, gh);\n    var chl = Ch(el, fl, gl);\n    var t1l = hl + sigma1l | 0;\n    var t1h = hh + sigma1h + getCarry(t1l, hl) | 0;\n    t1l = t1l + chl | 0;\n    t1h = t1h + chh + getCarry(t1l, chl) | 0;\n    t1l = t1l + Kil | 0;\n    t1h = t1h + Kih + getCarry(t1l, Kil) | 0;\n    t1l = t1l + Wil | 0;\n    t1h = t1h + Wih + getCarry(t1l, Wil) | 0; // t2 = sigma0 + maj\n\n    var t2l = sigma0l + majl | 0;\n    var t2h = sigma0h + majh + getCarry(t2l, sigma0l) | 0;\n    hh = gh;\n    hl = gl;\n    gh = fh;\n    gl = fl;\n    fh = eh;\n    fl = el;\n    el = dl + t1l | 0;\n    eh = dh + t1h + getCarry(el, dl) | 0;\n    dh = ch;\n    dl = cl;\n    ch = bh;\n    cl = bl;\n    bh = ah;\n    bl = al;\n    al = t1l + t2l | 0;\n    ah = t1h + t2h + getCarry(al, t1l) | 0;\n  }\n\n  this._al = this._al + al | 0;\n  this._bl = this._bl + bl | 0;\n  this._cl = this._cl + cl | 0;\n  this._dl = this._dl + dl | 0;\n  this._el = this._el + el | 0;\n  this._fl = this._fl + fl | 0;\n  this._gl = this._gl + gl | 0;\n  this._hl = this._hl + hl | 0;\n  this._ah = this._ah + ah + getCarry(this._al, al) | 0;\n  this._bh = this._bh + bh + getCarry(this._bl, bl) | 0;\n  this._ch = this._ch + ch + getCarry(this._cl, cl) | 0;\n  this._dh = this._dh + dh + getCarry(this._dl, dl) | 0;\n  this._eh = this._eh + eh + getCarry(this._el, el) | 0;\n  this._fh = this._fh + fh + getCarry(this._fl, fl) | 0;\n  this._gh = this._gh + gh + getCarry(this._gl, gl) | 0;\n  this._hh = this._hh + hh + getCarry(this._hl, hl) | 0;\n};\n\nSha512.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(64);\n\n  function writeInt64BE(h, l, offset) {\n    H.writeInt32BE(h, offset);\n    H.writeInt32BE(l, offset + 4);\n  }\n\n  writeInt64BE(this._ah, this._al, 0);\n  writeInt64BE(this._bh, this._bl, 8);\n  writeInt64BE(this._ch, this._cl, 16);\n  writeInt64BE(this._dh, this._dl, 24);\n  writeInt64BE(this._eh, this._el, 32);\n  writeInt64BE(this._fh, this._fl, 40);\n  writeInt64BE(this._gh, this._gl, 48);\n  writeInt64BE(this._hh, this._hl, 56);\n  return H;\n};\n\nmodule.exports = Sha512;\n\n//# sourceURL=webpack:///./node_modules/sha.js/sha512.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/index.js":
/*!*************************************************!*\
  !*** ./node_modules/stream-browserify/index.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// 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.\nmodule.exports = Stream;\n\nvar EE = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\ninherits(Stream, EE);\nStream.Readable = __webpack_require__(/*! readable-stream/readable.js */ \"./node_modules/readable-stream/readable-browser.js\");\nStream.Writable = __webpack_require__(/*! readable-stream/writable.js */ \"./node_modules/readable-stream/writable-browser.js\");\nStream.Duplex = __webpack_require__(/*! readable-stream/duplex.js */ \"./node_modules/readable-stream/duplex-browser.js\");\nStream.Transform = __webpack_require__(/*! readable-stream/transform.js */ \"./node_modules/readable-stream/transform.js\");\nStream.PassThrough = __webpack_require__(/*! readable-stream/passthrough.js */ \"./node_modules/readable-stream/passthrough.js\"); // Backwards-compat with node 0.4.x\n\nStream.Stream = Stream; // old-style streams.  Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n  EE.call(this);\n}\n\nStream.prototype.pipe = function (dest, options) {\n  var source = this;\n\n  function ondata(chunk) {\n    if (dest.writable) {\n      if (false === dest.write(chunk) && source.pause) {\n        source.pause();\n      }\n    }\n  }\n\n  source.on('data', ondata);\n\n  function ondrain() {\n    if (source.readable && source.resume) {\n      source.resume();\n    }\n  }\n\n  dest.on('drain', ondrain); // If the 'end' option is not supplied, dest.end() will be called when\n  // source gets the 'end' or 'close' events.  Only dest.end() once.\n\n  if (!dest._isStdio && (!options || options.end !== false)) {\n    source.on('end', onend);\n    source.on('close', onclose);\n  }\n\n  var didOnEnd = false;\n\n  function onend() {\n    if (didOnEnd) return;\n    didOnEnd = true;\n    dest.end();\n  }\n\n  function onclose() {\n    if (didOnEnd) return;\n    didOnEnd = true;\n    if (typeof dest.destroy === 'function') dest.destroy();\n  } // don't leave dangling pipes when there are errors.\n\n\n  function onerror(er) {\n    cleanup();\n\n    if (EE.listenerCount(this, 'error') === 0) {\n      throw er; // Unhandled stream error in pipe.\n    }\n  }\n\n  source.on('error', onerror);\n  dest.on('error', onerror); // remove all the event listeners that were added.\n\n  function cleanup() {\n    source.removeListener('data', ondata);\n    dest.removeListener('drain', ondrain);\n    source.removeListener('end', onend);\n    source.removeListener('close', onclose);\n    source.removeListener('error', onerror);\n    dest.removeListener('error', onerror);\n    source.removeListener('end', cleanup);\n    source.removeListener('close', cleanup);\n    dest.removeListener('close', cleanup);\n  }\n\n  source.on('end', cleanup);\n  source.on('close', cleanup);\n  dest.on('close', cleanup);\n  dest.emit('pipe', source); // Allow for unix-like usage: A.pipe(B).pipe(C)\n\n  return dest;\n};\n\n//# sourceURL=webpack:///./node_modules/stream-browserify/index.js?");

/***/ }),

/***/ "./node_modules/string_decoder/lib/string_decoder.js":
/*!***********************************************************!*\
  !*** ./node_modules/string_decoder/lib/string_decoder.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n/*<replacement>*/\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n/*</replacement>*/\n\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n  encoding = '' + encoding;\n\n  switch (encoding && encoding.toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n    case 'raw':\n      return true;\n\n    default:\n      return false;\n  }\n};\n\nfunction _normalizeEncoding(enc) {\n  if (!enc) return 'utf8';\n  var retried;\n\n  while (true) {\n    switch (enc) {\n      case 'utf8':\n      case 'utf-8':\n        return 'utf8';\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return 'utf16le';\n\n      case 'latin1':\n      case 'binary':\n        return 'latin1';\n\n      case 'base64':\n      case 'ascii':\n      case 'hex':\n        return enc;\n\n      default:\n        if (retried) return; // undefined\n\n        enc = ('' + enc).toLowerCase();\n        retried = true;\n    }\n  }\n}\n\n; // Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\n\nfunction normalizeEncoding(enc) {\n  var nenc = _normalizeEncoding(enc);\n\n  if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n  return nenc || enc;\n} // StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\n\n\nexports.StringDecoder = StringDecoder;\n\nfunction StringDecoder(encoding) {\n  this.encoding = normalizeEncoding(encoding);\n  var nb;\n\n  switch (this.encoding) {\n    case 'utf16le':\n      this.text = utf16Text;\n      this.end = utf16End;\n      nb = 4;\n      break;\n\n    case 'utf8':\n      this.fillLast = utf8FillLast;\n      nb = 4;\n      break;\n\n    case 'base64':\n      this.text = base64Text;\n      this.end = base64End;\n      nb = 3;\n      break;\n\n    default:\n      this.write = simpleWrite;\n      this.end = simpleEnd;\n      return;\n  }\n\n  this.lastNeed = 0;\n  this.lastTotal = 0;\n  this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n  if (buf.length === 0) return '';\n  var r;\n  var i;\n\n  if (this.lastNeed) {\n    r = this.fillLast(buf);\n    if (r === undefined) return '';\n    i = this.lastNeed;\n    this.lastNeed = 0;\n  } else {\n    i = 0;\n  }\n\n  if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n  return r || '';\n};\n\nStringDecoder.prototype.end = utf8End; // Returns only complete characters in a Buffer\n\nStringDecoder.prototype.text = utf8Text; // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\n\nStringDecoder.prototype.fillLast = function (buf) {\n  if (this.lastNeed <= buf.length) {\n    buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n    return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n  }\n\n  buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n  this.lastNeed -= buf.length;\n}; // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\n\n\nfunction utf8CheckByte(byte) {\n  if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n  return byte >> 6 === 0x02 ? -1 : -2;\n} // Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\n\n\nfunction utf8CheckIncomplete(self, buf, i) {\n  var j = buf.length - 1;\n  if (j < i) return 0;\n  var nb = utf8CheckByte(buf[j]);\n\n  if (nb >= 0) {\n    if (nb > 0) self.lastNeed = nb - 1;\n    return nb;\n  }\n\n  if (--j < i || nb === -2) return 0;\n  nb = utf8CheckByte(buf[j]);\n\n  if (nb >= 0) {\n    if (nb > 0) self.lastNeed = nb - 2;\n    return nb;\n  }\n\n  if (--j < i || nb === -2) return 0;\n  nb = utf8CheckByte(buf[j]);\n\n  if (nb >= 0) {\n    if (nb > 0) {\n      if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n    }\n\n    return nb;\n  }\n\n  return 0;\n} // Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\n\n\nfunction utf8CheckExtraBytes(self, buf, p) {\n  if ((buf[0] & 0xC0) !== 0x80) {\n    self.lastNeed = 0;\n    return '\\ufffd';\n  }\n\n  if (self.lastNeed > 1 && buf.length > 1) {\n    if ((buf[1] & 0xC0) !== 0x80) {\n      self.lastNeed = 1;\n      return '\\ufffd';\n    }\n\n    if (self.lastNeed > 2 && buf.length > 2) {\n      if ((buf[2] & 0xC0) !== 0x80) {\n        self.lastNeed = 2;\n        return '\\ufffd';\n      }\n    }\n  }\n} // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\n\n\nfunction utf8FillLast(buf) {\n  var p = this.lastTotal - this.lastNeed;\n  var r = utf8CheckExtraBytes(this, buf, p);\n  if (r !== undefined) return r;\n\n  if (this.lastNeed <= buf.length) {\n    buf.copy(this.lastChar, p, 0, this.lastNeed);\n    return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n  }\n\n  buf.copy(this.lastChar, p, 0, buf.length);\n  this.lastNeed -= buf.length;\n} // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\n\n\nfunction utf8Text(buf, i) {\n  var total = utf8CheckIncomplete(this, buf, i);\n  if (!this.lastNeed) return buf.toString('utf8', i);\n  this.lastTotal = total;\n  var end = buf.length - (total - this.lastNeed);\n  buf.copy(this.lastChar, 0, end);\n  return buf.toString('utf8', i, end);\n} // For UTF-8, a replacement character is added when ending on a partial\n// character.\n\n\nfunction utf8End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) return r + '\\ufffd';\n  return r;\n} // UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\n\n\nfunction utf16Text(buf, i) {\n  if ((buf.length - i) % 2 === 0) {\n    var r = buf.toString('utf16le', i);\n\n    if (r) {\n      var c = r.charCodeAt(r.length - 1);\n\n      if (c >= 0xD800 && c <= 0xDBFF) {\n        this.lastNeed = 2;\n        this.lastTotal = 4;\n        this.lastChar[0] = buf[buf.length - 2];\n        this.lastChar[1] = buf[buf.length - 1];\n        return r.slice(0, -1);\n      }\n    }\n\n    return r;\n  }\n\n  this.lastNeed = 1;\n  this.lastTotal = 2;\n  this.lastChar[0] = buf[buf.length - 1];\n  return buf.toString('utf16le', i, buf.length - 1);\n} // For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\n\n\nfunction utf16End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n\n  if (this.lastNeed) {\n    var end = this.lastTotal - this.lastNeed;\n    return r + this.lastChar.toString('utf16le', 0, end);\n  }\n\n  return r;\n}\n\nfunction base64Text(buf, i) {\n  var n = (buf.length - i) % 3;\n  if (n === 0) return buf.toString('base64', i);\n  this.lastNeed = 3 - n;\n  this.lastTotal = 3;\n\n  if (n === 1) {\n    this.lastChar[0] = buf[buf.length - 1];\n  } else {\n    this.lastChar[0] = buf[buf.length - 2];\n    this.lastChar[1] = buf[buf.length - 1];\n  }\n\n  return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n  return r;\n} // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\n\n\nfunction simpleWrite(buf) {\n  return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n  return buf && buf.length ? this.write(buf) : '';\n}\n\n//# sourceURL=webpack:///./node_modules/string_decoder/lib/string_decoder.js?");

/***/ }),

/***/ "./node_modules/style-loader/index.js":
/*!********************************************!*\
  !*** ./node_modules/style-loader/index.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(__dirname) {/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nvar path = __webpack_require__(/*! path */ \"./node_modules/path-browserify/index.js\");\n\nvar loaderUtils = __webpack_require__(/*! loader-utils */ \"./node_modules/style-loader/node_modules/loader-utils/lib/index.js\");\n\nvar validateOptions = __webpack_require__(/*! schema-utils */ \"./node_modules/style-loader/node_modules/schema-utils/src/index.js\");\n\nmodule.exports = function () {};\n\nmodule.exports.pitch = function (request) {\n  if (this.cacheable) this.cacheable();\n  var options = loaderUtils.getOptions(this) || {};\n  validateOptions(__webpack_require__(/*! ./options.json */ \"./node_modules/style-loader/options.json\"), options, 'Style Loader');\n  options.hmr = typeof options.hmr === 'undefined' ? true : options.hmr; // The variable is needed, because the function should be inlined.\n  // If is just stored it in options, JSON.stringify will quote\n  // the function and it would be just a string at runtime\n\n  var insertInto;\n\n  if (typeof options.insertInto === \"function\") {\n    insertInto = options.insertInto.toString();\n  } // We need to check if it a string, or variable will be \"undefined\"\n  // and the loader crashes\n\n\n  if (typeof options.insertInto === \"string\") {\n    insertInto = '\"' + options.insertInto + '\"';\n  }\n\n  var hmr = [// Hot Module Replacement,\n  \"if(module.hot) {\", // When the styles change, update the <style> tags\n  \"\tmodule.hot.accept(\" + loaderUtils.stringifyRequest(this, \"!!\" + request) + \", function() {\", \"\t\tvar newContent = require(\" + loaderUtils.stringifyRequest(this, \"!!\" + request) + \");\", \"\", \"\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\", \"\", \"\t\tvar locals = (function(a, b) {\", \"\t\t\tvar key, idx = 0;\", \"\", \"\t\t\tfor(key in a) {\", \"\t\t\t\tif(!b || a[key] !== b[key]) return false;\", \"\t\t\t\tidx++;\", \"\t\t\t}\", \"\", \"\t\t\tfor(key in b) idx--;\", \"\", \"\t\t\treturn idx === 0;\", \"\t\t}(content.locals, newContent.locals));\", \"\", // This error is caught and not shown and causes a full reload\n  \"\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\", \"\", \"\t\tupdate(newContent);\", \"\t});\", \"\", // When the module is disposed, remove the <style> tags\n  \"\tmodule.hot.dispose(function() { update(); });\", \"}\"].join(\"\\n\");\n  return [// Style Loader\n  // Adds CSS to the DOM by adding a <style> tag\n  \"\", // Load styles\n  \"var content = require(\" + loaderUtils.stringifyRequest(this, \"!!\" + request) + \");\", \"\", \"if(typeof content === 'string') content = [[module.id, content, '']];\", \"\", // Transform styles\",\n  \"var transform;\", \"var insertInto;\", \"\", options.transform ? \"transform = require(\" + loaderUtils.stringifyRequest(this, \"!\" + path.resolve(options.transform)) + \");\" : \"\", \"\", \"var options = \" + JSON.stringify(options), \"\", \"options.transform = transform\", \"options.insertInto = \" + insertInto + \";\", \"\", // Add styles to the DOM\n  \"var update = require(\" + loaderUtils.stringifyRequest(this, \"!\" + path.join(__dirname, \"lib\", \"addStyles.js\")) + \")(content, options);\", \"\", \"if(content.locals) module.exports = content.locals;\", \"\", options.hmr ? hmr : \"\"].join(\"\\n\");\n};\n/* WEBPACK VAR INJECTION */}.call(this, \"/\"))\n\n//# sourceURL=webpack:///./node_modules/style-loader/index.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/json5/dist/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/json5/dist/index.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("!function (u, D) {\n   true ? module.exports = D() : undefined;\n}(this, function () {\n  \"use strict\";\n\n  var u,\n      D,\n      e = (function (u, D) {\n    Object.defineProperty(D, \"__esModule\", {\n      value: !0\n    });\n    D.Space_Separator = /[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/, D.ID_Start = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/, D.ID_Continue = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/;\n  }(u = {\n    exports: {}\n  }, u.exports), u.exports);\n  (D = e) && D.__esModule && Object.prototype.hasOwnProperty.call(D, \"default\") && D.default;\n  var F = e.Space_Separator,\n      C = e.ID_Start,\n      A = e.ID_Continue;\n\n  function r(u) {\n    return u >= \"a\" && u <= \"z\" || u >= \"A\" && u <= \"Z\" || \"$\" === u || \"_\" === u || C.test(u);\n  }\n\n  function t(u) {\n    return u >= \"a\" && u <= \"z\" || u >= \"A\" && u <= \"Z\" || u >= \"0\" && u <= \"9\" || \"$\" === u || \"_\" === u || \"‌\" === u || \"‍\" === u || A.test(u);\n  }\n\n  function n(u) {\n    return /[0-9]/.test(u);\n  }\n\n  function E(u) {\n    return /[0-9A-Fa-f]/.test(u);\n  }\n\n  var i = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (u) {\n    return typeof u;\n  } : function (u) {\n    return u && \"function\" == typeof Symbol && u.constructor === Symbol && u !== Symbol.prototype ? \"symbol\" : typeof u;\n  },\n      a = void 0,\n      o = void 0,\n      B = void 0,\n      c = void 0,\n      s = void 0,\n      f = void 0,\n      l = void 0,\n      d = void 0,\n      v = void 0;\n  var m = void 0,\n      p = void 0,\n      y = void 0,\n      h = void 0,\n      b = void 0;\n\n  function w() {\n    for (m = \"default\", p = \"\", y = !1, h = 1;;) {\n      b = g();\n      var u = x[m]();\n      if (u) return u;\n    }\n  }\n\n  function g() {\n    if (a[c]) return String.fromCodePoint(a.codePointAt(c));\n  }\n\n  function S() {\n    var u = g();\n    return \"\\n\" === u ? (s++, f = 0) : u ? f += u.length : f++, u && (c += u.length), u;\n  }\n\n  var x = {\n    default: function () {\n      switch (b) {\n        case \"\\t\":\n        case \"\\v\":\n        case \"\\f\":\n        case \" \":\n        case \" \":\n        case \"\\ufeff\":\n        case \"\\n\":\n        case \"\\r\":\n        case \"\\u2028\":\n        case \"\\u2029\":\n          return void S();\n\n        case \"/\":\n          return S(), void (m = \"comment\");\n\n        case void 0:\n          return S(), N(\"eof\");\n      }\n\n      if (!function (u) {\n        return F.test(u);\n      }(b)) return x[o]();\n      S();\n    },\n    comment: function () {\n      switch (b) {\n        case \"*\":\n          return S(), void (m = \"multiLineComment\");\n\n        case \"/\":\n          return S(), void (m = \"singleLineComment\");\n      }\n\n      throw V(S());\n    },\n    multiLineComment: function () {\n      switch (b) {\n        case \"*\":\n          return S(), void (m = \"multiLineCommentAsterisk\");\n\n        case void 0:\n          throw V(S());\n      }\n\n      S();\n    },\n    multiLineCommentAsterisk: function () {\n      switch (b) {\n        case \"*\":\n          return void S();\n\n        case \"/\":\n          return S(), void (m = \"default\");\n\n        case void 0:\n          throw V(S());\n      }\n\n      S(), m = \"multiLineComment\";\n    },\n    singleLineComment: function () {\n      switch (b) {\n        case \"\\n\":\n        case \"\\r\":\n        case \"\\u2028\":\n        case \"\\u2029\":\n          return S(), void (m = \"default\");\n\n        case void 0:\n          return S(), N(\"eof\");\n      }\n\n      S();\n    },\n    value: function () {\n      switch (b) {\n        case \"{\":\n        case \"[\":\n          return N(\"punctuator\", S());\n\n        case \"n\":\n          return S(), P(\"ull\"), N(\"null\", null);\n\n        case \"t\":\n          return S(), P(\"rue\"), N(\"boolean\", !0);\n\n        case \"f\":\n          return S(), P(\"alse\"), N(\"boolean\", !1);\n\n        case \"-\":\n        case \"+\":\n          return \"-\" === S() && (h = -1), void (m = \"sign\");\n\n        case \".\":\n          return p = S(), void (m = \"decimalPointLeading\");\n\n        case \"0\":\n          return p = S(), void (m = \"zero\");\n\n        case \"1\":\n        case \"2\":\n        case \"3\":\n        case \"4\":\n        case \"5\":\n        case \"6\":\n        case \"7\":\n        case \"8\":\n        case \"9\":\n          return p = S(), void (m = \"decimalInteger\");\n\n        case \"I\":\n          return S(), P(\"nfinity\"), N(\"numeric\", 1 / 0);\n\n        case \"N\":\n          return S(), P(\"aN\"), N(\"numeric\", NaN);\n\n        case '\"':\n        case \"'\":\n          return y = '\"' === S(), p = \"\", void (m = \"string\");\n      }\n\n      throw V(S());\n    },\n    identifierNameStartEscape: function () {\n      if (\"u\" !== b) throw V(S());\n      S();\n      var u = O();\n\n      switch (u) {\n        case \"$\":\n        case \"_\":\n          break;\n\n        default:\n          if (!r(u)) throw L();\n      }\n\n      p += u, m = \"identifierName\";\n    },\n    identifierName: function () {\n      switch (b) {\n        case \"$\":\n        case \"_\":\n        case \"‌\":\n        case \"‍\":\n          return void (p += S());\n\n        case \"\\\\\":\n          return S(), void (m = \"identifierNameEscape\");\n      }\n\n      if (!t(b)) return N(\"identifier\", p);\n      p += S();\n    },\n    identifierNameEscape: function () {\n      if (\"u\" !== b) throw V(S());\n      S();\n      var u = O();\n\n      switch (u) {\n        case \"$\":\n        case \"_\":\n        case \"‌\":\n        case \"‍\":\n          break;\n\n        default:\n          if (!t(u)) throw L();\n      }\n\n      p += u, m = \"identifierName\";\n    },\n    sign: function () {\n      switch (b) {\n        case \".\":\n          return p = S(), void (m = \"decimalPointLeading\");\n\n        case \"0\":\n          return p = S(), void (m = \"zero\");\n\n        case \"1\":\n        case \"2\":\n        case \"3\":\n        case \"4\":\n        case \"5\":\n        case \"6\":\n        case \"7\":\n        case \"8\":\n        case \"9\":\n          return p = S(), void (m = \"decimalInteger\");\n\n        case \"I\":\n          return S(), P(\"nfinity\"), N(\"numeric\", h * (1 / 0));\n\n        case \"N\":\n          return S(), P(\"aN\"), N(\"numeric\", NaN);\n      }\n\n      throw V(S());\n    },\n    zero: function () {\n      switch (b) {\n        case \".\":\n          return p += S(), void (m = \"decimalPoint\");\n\n        case \"e\":\n        case \"E\":\n          return p += S(), void (m = \"decimalExponent\");\n\n        case \"x\":\n        case \"X\":\n          return p += S(), void (m = \"hexadecimal\");\n      }\n\n      return N(\"numeric\", 0 * h);\n    },\n    decimalInteger: function () {\n      switch (b) {\n        case \".\":\n          return p += S(), void (m = \"decimalPoint\");\n\n        case \"e\":\n        case \"E\":\n          return p += S(), void (m = \"decimalExponent\");\n      }\n\n      if (!n(b)) return N(\"numeric\", h * Number(p));\n      p += S();\n    },\n    decimalPointLeading: function () {\n      if (n(b)) return p += S(), void (m = \"decimalFraction\");\n      throw V(S());\n    },\n    decimalPoint: function () {\n      switch (b) {\n        case \"e\":\n        case \"E\":\n          return p += S(), void (m = \"decimalExponent\");\n      }\n\n      return n(b) ? (p += S(), void (m = \"decimalFraction\")) : N(\"numeric\", h * Number(p));\n    },\n    decimalFraction: function () {\n      switch (b) {\n        case \"e\":\n        case \"E\":\n          return p += S(), void (m = \"decimalExponent\");\n      }\n\n      if (!n(b)) return N(\"numeric\", h * Number(p));\n      p += S();\n    },\n    decimalExponent: function () {\n      switch (b) {\n        case \"+\":\n        case \"-\":\n          return p += S(), void (m = \"decimalExponentSign\");\n      }\n\n      if (n(b)) return p += S(), void (m = \"decimalExponentInteger\");\n      throw V(S());\n    },\n    decimalExponentSign: function () {\n      if (n(b)) return p += S(), void (m = \"decimalExponentInteger\");\n      throw V(S());\n    },\n    decimalExponentInteger: function () {\n      if (!n(b)) return N(\"numeric\", h * Number(p));\n      p += S();\n    },\n    hexadecimal: function () {\n      if (E(b)) return p += S(), void (m = \"hexadecimalInteger\");\n      throw V(S());\n    },\n    hexadecimalInteger: function () {\n      if (!E(b)) return N(\"numeric\", h * Number(p));\n      p += S();\n    },\n    string: function () {\n      switch (b) {\n        case \"\\\\\":\n          return S(), void (p += function () {\n            switch (g()) {\n              case \"b\":\n                return S(), \"\\b\";\n\n              case \"f\":\n                return S(), \"\\f\";\n\n              case \"n\":\n                return S(), \"\\n\";\n\n              case \"r\":\n                return S(), \"\\r\";\n\n              case \"t\":\n                return S(), \"\\t\";\n\n              case \"v\":\n                return S(), \"\\v\";\n\n              case \"0\":\n                if (S(), n(g())) throw V(S());\n                return \"\\0\";\n\n              case \"x\":\n                return S(), function () {\n                  var u = \"\",\n                      D = g();\n                  if (!E(D)) throw V(S());\n                  if (u += S(), !E(D = g())) throw V(S());\n                  return u += S(), String.fromCodePoint(parseInt(u, 16));\n                }();\n\n              case \"u\":\n                return S(), O();\n\n              case \"\\n\":\n              case \"\\u2028\":\n              case \"\\u2029\":\n                return S(), \"\";\n\n              case \"\\r\":\n                return S(), \"\\n\" === g() && S(), \"\";\n\n              case \"1\":\n              case \"2\":\n              case \"3\":\n              case \"4\":\n              case \"5\":\n              case \"6\":\n              case \"7\":\n              case \"8\":\n              case \"9\":\n              case void 0:\n                throw V(S());\n            }\n\n            return S();\n          }());\n\n        case '\"':\n          return y ? (S(), N(\"string\", p)) : void (p += S());\n\n        case \"'\":\n          return y ? void (p += S()) : (S(), N(\"string\", p));\n\n        case \"\\n\":\n        case \"\\r\":\n          throw V(S());\n\n        case \"\\u2028\":\n        case \"\\u2029\":\n          !function (u) {\n            console.warn(\"JSON5: '\" + u + \"' is not valid ECMAScript; consider escaping\");\n          }(b);\n          break;\n\n        case void 0:\n          throw V(S());\n      }\n\n      p += S();\n    },\n    start: function () {\n      switch (b) {\n        case \"{\":\n        case \"[\":\n          return N(\"punctuator\", S());\n      }\n\n      m = \"value\";\n    },\n    beforePropertyName: function () {\n      switch (b) {\n        case \"$\":\n        case \"_\":\n          return p = S(), void (m = \"identifierName\");\n\n        case \"\\\\\":\n          return S(), void (m = \"identifierNameStartEscape\");\n\n        case \"}\":\n          return N(\"punctuator\", S());\n\n        case '\"':\n        case \"'\":\n          return y = '\"' === S(), void (m = \"string\");\n      }\n\n      if (r(b)) return p += S(), void (m = \"identifierName\");\n      throw V(S());\n    },\n    afterPropertyName: function () {\n      if (\":\" === b) return N(\"punctuator\", S());\n      throw V(S());\n    },\n    beforePropertyValue: function () {\n      m = \"value\";\n    },\n    afterPropertyValue: function () {\n      switch (b) {\n        case \",\":\n        case \"}\":\n          return N(\"punctuator\", S());\n      }\n\n      throw V(S());\n    },\n    beforeArrayValue: function () {\n      if (\"]\" === b) return N(\"punctuator\", S());\n      m = \"value\";\n    },\n    afterArrayValue: function () {\n      switch (b) {\n        case \",\":\n        case \"]\":\n          return N(\"punctuator\", S());\n      }\n\n      throw V(S());\n    },\n    end: function () {\n      throw V(S());\n    }\n  };\n\n  function N(u, D) {\n    return {\n      type: u,\n      value: D,\n      line: s,\n      column: f\n    };\n  }\n\n  function P(u) {\n    var D = !0,\n        e = !1,\n        F = void 0;\n\n    try {\n      for (var C, A = u[Symbol.iterator](); !(D = (C = A.next()).done); D = !0) {\n        var r = C.value;\n        if (g() !== r) throw V(S());\n        S();\n      }\n    } catch (u) {\n      e = !0, F = u;\n    } finally {\n      try {\n        !D && A.return && A.return();\n      } finally {\n        if (e) throw F;\n      }\n    }\n  }\n\n  function O() {\n    for (var u = \"\", D = 4; D-- > 0;) {\n      if (!E(g())) throw V(S());\n      u += S();\n    }\n\n    return String.fromCodePoint(parseInt(u, 16));\n  }\n\n  var j = {\n    start: function () {\n      if (\"eof\" === l.type) throw J();\n      I();\n    },\n    beforePropertyName: function () {\n      switch (l.type) {\n        case \"identifier\":\n        case \"string\":\n          return d = l.value, void (o = \"afterPropertyName\");\n\n        case \"punctuator\":\n          return void _();\n\n        case \"eof\":\n          throw J();\n      }\n    },\n    afterPropertyName: function () {\n      if (\"eof\" === l.type) throw J();\n      o = \"beforePropertyValue\";\n    },\n    beforePropertyValue: function () {\n      if (\"eof\" === l.type) throw J();\n      I();\n    },\n    beforeArrayValue: function () {\n      if (\"eof\" === l.type) throw J();\n      \"punctuator\" !== l.type || \"]\" !== l.value ? I() : _();\n    },\n    afterPropertyValue: function () {\n      if (\"eof\" === l.type) throw J();\n\n      switch (l.value) {\n        case \",\":\n          return void (o = \"beforePropertyName\");\n\n        case \"}\":\n          _();\n\n      }\n    },\n    afterArrayValue: function () {\n      if (\"eof\" === l.type) throw J();\n\n      switch (l.value) {\n        case \",\":\n          return void (o = \"beforeArrayValue\");\n\n        case \"]\":\n          _();\n\n      }\n    },\n    end: function () {}\n  };\n\n  function I() {\n    var u = void 0;\n\n    switch (l.type) {\n      case \"punctuator\":\n        switch (l.value) {\n          case \"{\":\n            u = {};\n            break;\n\n          case \"[\":\n            u = [];\n        }\n\n        break;\n\n      case \"null\":\n      case \"boolean\":\n      case \"numeric\":\n      case \"string\":\n        u = l.value;\n    }\n\n    if (void 0 === v) v = u;else {\n      var D = B[B.length - 1];\n      Array.isArray(D) ? D.push(u) : Object.defineProperty(D, d, {\n        value: u,\n        writable: !0,\n        enumerable: !0,\n        configurable: !0\n      });\n    }\n    if (null !== u && \"object\" === (void 0 === u ? \"undefined\" : i(u))) B.push(u), o = Array.isArray(u) ? \"beforeArrayValue\" : \"beforePropertyName\";else {\n      var e = B[B.length - 1];\n      o = null == e ? \"end\" : Array.isArray(e) ? \"afterArrayValue\" : \"afterPropertyValue\";\n    }\n  }\n\n  function _() {\n    B.pop();\n    var u = B[B.length - 1];\n    o = null == u ? \"end\" : Array.isArray(u) ? \"afterArrayValue\" : \"afterPropertyValue\";\n  }\n\n  function V(u) {\n    return k(void 0 === u ? \"JSON5: invalid end of input at \" + s + \":\" + f : \"JSON5: invalid character '\" + function (u) {\n      var D = {\n        \"'\": \"\\\\'\",\n        '\"': '\\\\\"',\n        \"\\\\\": \"\\\\\\\\\",\n        \"\\b\": \"\\\\b\",\n        \"\\f\": \"\\\\f\",\n        \"\\n\": \"\\\\n\",\n        \"\\r\": \"\\\\r\",\n        \"\\t\": \"\\\\t\",\n        \"\\v\": \"\\\\v\",\n        \"\\0\": \"\\\\0\",\n        \"\\u2028\": \"\\\\u2028\",\n        \"\\u2029\": \"\\\\u2029\"\n      };\n      if (D[u]) return D[u];\n\n      if (u < \" \") {\n        var e = u.charCodeAt(0).toString(16);\n        return \"\\\\x\" + (\"00\" + e).substring(e.length);\n      }\n\n      return u;\n    }(u) + \"' at \" + s + \":\" + f);\n  }\n\n  function J() {\n    return k(\"JSON5: invalid end of input at \" + s + \":\" + f);\n  }\n\n  function L() {\n    return k(\"JSON5: invalid identifier character at \" + s + \":\" + (f -= 5));\n  }\n\n  function k(u) {\n    var D = new SyntaxError(u);\n    return D.lineNumber = s, D.columnNumber = f, D;\n  }\n\n  return {\n    parse: function (u, D) {\n      a = String(u), o = \"start\", B = [], c = 0, s = 1, f = 0, l = void 0, d = void 0, v = void 0;\n\n      do {\n        l = w(), j[o]();\n      } while (\"eof\" !== l.type);\n\n      return \"function\" == typeof D ? function u(D, e, F) {\n        var C = D[e];\n        if (null != C && \"object\" === (void 0 === C ? \"undefined\" : i(C))) if (Array.isArray(C)) for (var A = 0; A < C.length; A++) {\n          var r = String(A),\n              t = u(C, r, F);\n          void 0 === t ? delete C[r] : Object.defineProperty(C, r, {\n            value: t,\n            writable: !0,\n            enumerable: !0,\n            configurable: !0\n          });\n        } else for (var n in C) {\n          var E = u(C, n, F);\n          void 0 === E ? delete C[n] : Object.defineProperty(C, n, {\n            value: E,\n            writable: !0,\n            enumerable: !0,\n            configurable: !0\n          });\n        }\n        return F.call(D, e, C);\n      }({\n        \"\": v\n      }, \"\", D) : v;\n    },\n    stringify: function (u, D, e) {\n      var F = [],\n          C = \"\",\n          A = void 0,\n          n = void 0,\n          E = \"\",\n          a = void 0;\n      if (null == D || \"object\" !== (void 0 === D ? \"undefined\" : i(D)) || Array.isArray(D) || (e = D.space, a = D.quote, D = D.replacer), \"function\" == typeof D) n = D;else if (Array.isArray(D)) {\n        A = [];\n        var o = !0,\n            B = !1,\n            c = void 0;\n\n        try {\n          for (var s, f = D[Symbol.iterator](); !(o = (s = f.next()).done); o = !0) {\n            var l = s.value,\n                d = void 0;\n            \"string\" == typeof l ? d = l : (\"number\" == typeof l || l instanceof String || l instanceof Number) && (d = String(l)), void 0 !== d && A.indexOf(d) < 0 && A.push(d);\n          }\n        } catch (u) {\n          B = !0, c = u;\n        } finally {\n          try {\n            !o && f.return && f.return();\n          } finally {\n            if (B) throw c;\n          }\n        }\n      }\n      return e instanceof Number ? e = Number(e) : e instanceof String && (e = String(e)), \"number\" == typeof e ? e > 0 && (e = Math.min(10, Math.floor(e)), E = \"          \".substr(0, e)) : \"string\" == typeof e && (E = e.substr(0, 10)), v(\"\", {\n        \"\": u\n      });\n\n      function v(u, D) {\n        var e = D[u];\n\n        switch (null != e && (\"function\" == typeof e.toJSON5 ? e = e.toJSON5(u) : \"function\" == typeof e.toJSON && (e = e.toJSON(u))), n && (e = n.call(D, u, e)), e instanceof Number ? e = Number(e) : e instanceof String ? e = String(e) : e instanceof Boolean && (e = e.valueOf()), e) {\n          case null:\n            return \"null\";\n\n          case !0:\n            return \"true\";\n\n          case !1:\n            return \"false\";\n        }\n\n        return \"string\" == typeof e ? m(e) : \"number\" == typeof e ? String(e) : \"object\" === (void 0 === e ? \"undefined\" : i(e)) ? Array.isArray(e) ? function (u) {\n          if (F.indexOf(u) >= 0) throw TypeError(\"Converting circular structure to JSON5\");\n          F.push(u);\n          var D = C;\n          C += E;\n\n          for (var e = [], A = 0; A < u.length; A++) {\n            var r = v(String(A), u);\n            e.push(void 0 !== r ? r : \"null\");\n          }\n\n          var t = void 0;\n          if (0 === e.length) t = \"[]\";else if (\"\" === E) {\n            var n = e.join(\",\");\n            t = \"[\" + n + \"]\";\n          } else {\n            var i = \",\\n\" + C,\n                a = e.join(i);\n            t = \"[\\n\" + C + a + \",\\n\" + D + \"]\";\n          }\n          return F.pop(), C = D, t;\n        }(e) : function (u) {\n          if (F.indexOf(u) >= 0) throw TypeError(\"Converting circular structure to JSON5\");\n          F.push(u);\n          var D = C;\n          C += E;\n          var e = A || Object.keys(u),\n              r = [],\n              t = !0,\n              n = !1,\n              i = void 0;\n\n          try {\n            for (var a, o = e[Symbol.iterator](); !(t = (a = o.next()).done); t = !0) {\n              var B = a.value,\n                  c = v(B, u);\n\n              if (void 0 !== c) {\n                var s = p(B) + \":\";\n                \"\" !== E && (s += \" \"), s += c, r.push(s);\n              }\n            }\n          } catch (u) {\n            n = !0, i = u;\n          } finally {\n            try {\n              !t && o.return && o.return();\n            } finally {\n              if (n) throw i;\n            }\n          }\n\n          var f = void 0;\n          if (0 === r.length) f = \"{}\";else {\n            var l = void 0;\n            if (\"\" === E) l = r.join(\",\"), f = \"{\" + l + \"}\";else {\n              var d = \",\\n\" + C;\n              l = r.join(d), f = \"{\\n\" + C + l + \",\\n\" + D + \"}\";\n            }\n          }\n          return F.pop(), C = D, f;\n        }(e) : void 0;\n      }\n\n      function m(u) {\n        var D = {\n          \"'\": .1,\n          '\"': .2\n        },\n            e = {\n          \"'\": \"\\\\'\",\n          '\"': '\\\\\"',\n          \"\\\\\": \"\\\\\\\\\",\n          \"\\b\": \"\\\\b\",\n          \"\\f\": \"\\\\f\",\n          \"\\n\": \"\\\\n\",\n          \"\\r\": \"\\\\r\",\n          \"\\t\": \"\\\\t\",\n          \"\\v\": \"\\\\v\",\n          \"\\0\": \"\\\\0\",\n          \"\\u2028\": \"\\\\u2028\",\n          \"\\u2029\": \"\\\\u2029\"\n        },\n            F = \"\",\n            C = !0,\n            A = !1,\n            r = void 0;\n\n        try {\n          for (var t, n = u[Symbol.iterator](); !(C = (t = n.next()).done); C = !0) {\n            var E = t.value;\n\n            switch (E) {\n              case \"'\":\n              case '\"':\n                D[E]++, F += E;\n                continue;\n            }\n\n            if (e[E]) F += e[E];else if (E < \" \") {\n              var i = E.charCodeAt(0).toString(16);\n              F += \"\\\\x\" + (\"00\" + i).substring(i.length);\n            } else F += E;\n          }\n        } catch (u) {\n          A = !0, r = u;\n        } finally {\n          try {\n            !C && n.return && n.return();\n          } finally {\n            if (A) throw r;\n          }\n        }\n\n        var o = a || Object.keys(D).reduce(function (u, e) {\n          return D[u] < D[e] ? u : e;\n        });\n        return o + (F = F.replace(new RegExp(o, \"g\"), e[o])) + o;\n      }\n\n      function p(u) {\n        if (0 === u.length) return m(u);\n        var D = String.fromCodePoint(u.codePointAt(0));\n        if (!r(D)) return m(u);\n\n        for (var e = D.length; e < u.length; e++) if (!t(String.fromCodePoint(u.codePointAt(e)))) return m(u);\n\n        return u;\n      }\n    }\n  };\n});\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/json5/dist/index.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/loader-utils/lib/getCurrentRequest.js":
/*!**************************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/loader-utils/lib/getCurrentRequest.js ***!
  \**************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nfunction getCurrentRequest(loaderContext) {\n  if (loaderContext.currentRequest) {\n    return loaderContext.currentRequest;\n  }\n\n  const request = loaderContext.loaders.slice(loaderContext.loaderIndex).map(obj => obj.request).concat([loaderContext.resource]);\n  return request.join('!');\n}\n\nmodule.exports = getCurrentRequest;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/loader-utils/lib/getCurrentRequest.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/loader-utils/lib/getHashDigest.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/loader-utils/lib/getHashDigest.js ***!
  \**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst baseEncodeTables = {\n  26: 'abcdefghijklmnopqrstuvwxyz',\n  32: '123456789abcdefghjkmnpqrstuvwxyz',\n  // no 0lio\n  36: '0123456789abcdefghijklmnopqrstuvwxyz',\n  49: 'abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ',\n  // no lIO\n  52: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',\n  58: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ',\n  // no 0lIO\n  62: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',\n  64: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_'\n};\n\nfunction encodeBufferToBase(buffer, base) {\n  const encodeTable = baseEncodeTables[base];\n\n  if (!encodeTable) {\n    throw new Error('Unknown encoding base' + base);\n  }\n\n  const readLength = buffer.length;\n\n  const Big = __webpack_require__(/*! big.js */ \"./node_modules/big.js/big.js\");\n\n  Big.RM = Big.DP = 0;\n  let b = new Big(0);\n\n  for (let i = readLength - 1; i >= 0; i--) {\n    b = b.times(256).plus(buffer[i]);\n  }\n\n  let output = '';\n\n  while (b.gt(0)) {\n    output = encodeTable[b.mod(base)] + output;\n    b = b.div(base);\n  }\n\n  Big.DP = 20;\n  Big.RM = 1;\n  return output;\n}\n\nfunction getHashDigest(buffer, hashType, digestType, maxLength) {\n  hashType = hashType || 'md5';\n  maxLength = maxLength || 9999;\n\n  const hash = __webpack_require__(/*! crypto */ \"./node_modules/crypto-browserify/index.js\").createHash(hashType);\n\n  hash.update(buffer);\n\n  if (digestType === 'base26' || digestType === 'base32' || digestType === 'base36' || digestType === 'base49' || digestType === 'base52' || digestType === 'base58' || digestType === 'base62' || digestType === 'base64') {\n    return encodeBufferToBase(hash.digest(), digestType.substr(4)).substr(0, maxLength);\n  } else {\n    return hash.digest(digestType || 'hex').substr(0, maxLength);\n  }\n}\n\nmodule.exports = getHashDigest;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/loader-utils/lib/getHashDigest.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/loader-utils/lib/getOptions.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/loader-utils/lib/getOptions.js ***!
  \*******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst parseQuery = __webpack_require__(/*! ./parseQuery */ \"./node_modules/style-loader/node_modules/loader-utils/lib/parseQuery.js\");\n\nfunction getOptions(loaderContext) {\n  const query = loaderContext.query;\n\n  if (typeof query === 'string' && query !== '') {\n    return parseQuery(loaderContext.query);\n  }\n\n  if (!query || typeof query !== 'object') {\n    // Not object-like queries are not supported.\n    return null;\n  }\n\n  return query;\n}\n\nmodule.exports = getOptions;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/loader-utils/lib/getOptions.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/loader-utils/lib/getRemainingRequest.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/loader-utils/lib/getRemainingRequest.js ***!
  \****************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nfunction getRemainingRequest(loaderContext) {\n  if (loaderContext.remainingRequest) {\n    return loaderContext.remainingRequest;\n  }\n\n  const request = loaderContext.loaders.slice(loaderContext.loaderIndex + 1).map(obj => obj.request).concat([loaderContext.resource]);\n  return request.join('!');\n}\n\nmodule.exports = getRemainingRequest;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/loader-utils/lib/getRemainingRequest.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/loader-utils/lib/index.js":
/*!**************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/loader-utils/lib/index.js ***!
  \**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst getOptions = __webpack_require__(/*! ./getOptions */ \"./node_modules/style-loader/node_modules/loader-utils/lib/getOptions.js\");\n\nconst parseQuery = __webpack_require__(/*! ./parseQuery */ \"./node_modules/style-loader/node_modules/loader-utils/lib/parseQuery.js\");\n\nconst stringifyRequest = __webpack_require__(/*! ./stringifyRequest */ \"./node_modules/style-loader/node_modules/loader-utils/lib/stringifyRequest.js\");\n\nconst getRemainingRequest = __webpack_require__(/*! ./getRemainingRequest */ \"./node_modules/style-loader/node_modules/loader-utils/lib/getRemainingRequest.js\");\n\nconst getCurrentRequest = __webpack_require__(/*! ./getCurrentRequest */ \"./node_modules/style-loader/node_modules/loader-utils/lib/getCurrentRequest.js\");\n\nconst isUrlRequest = __webpack_require__(/*! ./isUrlRequest */ \"./node_modules/style-loader/node_modules/loader-utils/lib/isUrlRequest.js\");\n\nconst urlToRequest = __webpack_require__(/*! ./urlToRequest */ \"./node_modules/style-loader/node_modules/loader-utils/lib/urlToRequest.js\");\n\nconst parseString = __webpack_require__(/*! ./parseString */ \"./node_modules/style-loader/node_modules/loader-utils/lib/parseString.js\");\n\nconst getHashDigest = __webpack_require__(/*! ./getHashDigest */ \"./node_modules/style-loader/node_modules/loader-utils/lib/getHashDigest.js\");\n\nconst interpolateName = __webpack_require__(/*! ./interpolateName */ \"./node_modules/style-loader/node_modules/loader-utils/lib/interpolateName.js\");\n\nexports.getOptions = getOptions;\nexports.parseQuery = parseQuery;\nexports.stringifyRequest = stringifyRequest;\nexports.getRemainingRequest = getRemainingRequest;\nexports.getCurrentRequest = getCurrentRequest;\nexports.isUrlRequest = isUrlRequest;\nexports.urlToRequest = urlToRequest;\nexports.parseString = parseString;\nexports.getHashDigest = getHashDigest;\nexports.interpolateName = interpolateName;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/loader-utils/lib/index.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/loader-utils/lib/interpolateName.js":
/*!************************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/loader-utils/lib/interpolateName.js ***!
  \************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst path = __webpack_require__(/*! path */ \"./node_modules/path-browserify/index.js\");\n\nconst emojisList = __webpack_require__(/*! emojis-list */ \"./node_modules/emojis-list/index.js\");\n\nconst getHashDigest = __webpack_require__(/*! ./getHashDigest */ \"./node_modules/style-loader/node_modules/loader-utils/lib/getHashDigest.js\");\n\nconst emojiRegex = /[\\uD800-\\uDFFF]./;\nconst emojiList = emojisList.filter(emoji => emojiRegex.test(emoji));\nconst emojiCache = {};\n\nfunction encodeStringToEmoji(content, length) {\n  if (emojiCache[content]) {\n    return emojiCache[content];\n  }\n\n  length = length || 1;\n  const emojis = [];\n\n  do {\n    if (!emojiList.length) {\n      throw new Error('Ran out of emoji');\n    }\n\n    const index = Math.floor(Math.random() * emojiList.length);\n    emojis.push(emojiList[index]);\n    emojiList.splice(index, 1);\n  } while (--length > 0);\n\n  const emojiEncoding = emojis.join('');\n  emojiCache[content] = emojiEncoding;\n  return emojiEncoding;\n}\n\nfunction interpolateName(loaderContext, name, options) {\n  let filename;\n  const hasQuery = loaderContext.resourceQuery && loaderContext.resourceQuery.length > 1;\n\n  if (typeof name === 'function') {\n    filename = name(loaderContext.resourcePath, hasQuery ? loaderContext.resourceQuery : undefined);\n  } else {\n    filename = name || '[hash].[ext]';\n  }\n\n  const context = options.context;\n  const content = options.content;\n  const regExp = options.regExp;\n  let ext = 'bin';\n  let basename = 'file';\n  let directory = '';\n  let folder = '';\n  let query = '';\n\n  if (loaderContext.resourcePath) {\n    const parsed = path.parse(loaderContext.resourcePath);\n    let resourcePath = loaderContext.resourcePath;\n\n    if (parsed.ext) {\n      ext = parsed.ext.substr(1);\n    }\n\n    if (parsed.dir) {\n      basename = parsed.name;\n      resourcePath = parsed.dir + path.sep;\n    }\n\n    if (typeof context !== 'undefined') {\n      directory = path.relative(context, resourcePath + '_').replace(/\\\\/g, '/').replace(/\\.\\.(\\/)?/g, '_$1');\n      directory = directory.substr(0, directory.length - 1);\n    } else {\n      directory = resourcePath.replace(/\\\\/g, '/').replace(/\\.\\.(\\/)?/g, '_$1');\n    }\n\n    if (directory.length === 1) {\n      directory = '';\n    } else if (directory.length > 1) {\n      folder = path.basename(directory);\n    }\n  }\n\n  if (loaderContext.resourceQuery && loaderContext.resourceQuery.length > 1) {\n    query = loaderContext.resourceQuery;\n    const hashIdx = query.indexOf('#');\n\n    if (hashIdx >= 0) {\n      query = query.substr(0, hashIdx);\n    }\n  }\n\n  let url = filename;\n\n  if (content) {\n    // Match hash template\n    url = url // `hash` and `contenthash` are same in `loader-utils` context\n    // let's keep `hash` for backward compatibility\n    .replace(/\\[(?:([^[:\\]]+):)?(?:hash|contenthash)(?::([a-z]+\\d*))?(?::(\\d+))?\\]/gi, (all, hashType, digestType, maxLength) => getHashDigest(content, hashType, digestType, parseInt(maxLength, 10))).replace(/\\[emoji(?::(\\d+))?\\]/gi, (all, length) => encodeStringToEmoji(content, parseInt(length, 10)));\n  }\n\n  url = url.replace(/\\[ext\\]/gi, () => ext).replace(/\\[name\\]/gi, () => basename).replace(/\\[path\\]/gi, () => directory).replace(/\\[folder\\]/gi, () => folder).replace(/\\[query\\]/gi, () => query);\n\n  if (regExp && loaderContext.resourcePath) {\n    const match = loaderContext.resourcePath.match(new RegExp(regExp));\n    match && match.forEach((matched, i) => {\n      url = url.replace(new RegExp('\\\\[' + i + '\\\\]', 'ig'), matched);\n    });\n  }\n\n  if (typeof loaderContext.options === 'object' && typeof loaderContext.options.customInterpolateName === 'function') {\n    url = loaderContext.options.customInterpolateName.call(loaderContext, url, name, options);\n  }\n\n  return url;\n}\n\nmodule.exports = interpolateName;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/loader-utils/lib/interpolateName.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/loader-utils/lib/isUrlRequest.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/loader-utils/lib/isUrlRequest.js ***!
  \*********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst path = __webpack_require__(/*! path */ \"./node_modules/path-browserify/index.js\");\n\nfunction isUrlRequest(url, root) {\n  // An URL is not an request if\n  // 1. It's an absolute url and it is not `windows` path like `C:\\dir\\file`\n  if (/^[a-z][a-z0-9+.-]*:/i.test(url) && !path.win32.isAbsolute(url)) {\n    return false;\n  } // 2. It's a protocol-relative\n\n\n  if (/^\\/\\//.test(url)) {\n    return false;\n  } // 3. It's some kind of url for a template\n\n\n  if (/^[{}[\\]#*;,'§$%&(=?`´^°<>]/.test(url)) {\n    return false;\n  } // 4. It's also not an request if root isn't set and it's a root-relative url\n\n\n  if ((root === undefined || root === false) && /^\\//.test(url)) {\n    return false;\n  }\n\n  return true;\n}\n\nmodule.exports = isUrlRequest;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/loader-utils/lib/isUrlRequest.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/loader-utils/lib/parseQuery.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/loader-utils/lib/parseQuery.js ***!
  \*******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst JSON5 = __webpack_require__(/*! json5 */ \"./node_modules/style-loader/node_modules/json5/dist/index.js\");\n\nconst specialValues = {\n  null: null,\n  true: true,\n  false: false\n};\n\nfunction parseQuery(query) {\n  if (query.substr(0, 1) !== '?') {\n    throw new Error(\"A valid query string passed to parseQuery should begin with '?'\");\n  }\n\n  query = query.substr(1);\n\n  if (!query) {\n    return {};\n  }\n\n  if (query.substr(0, 1) === '{' && query.substr(-1) === '}') {\n    return JSON5.parse(query);\n  }\n\n  const queryArgs = query.split(/[,&]/g);\n  const result = Object.create(null);\n  queryArgs.forEach(arg => {\n    const idx = arg.indexOf('=');\n\n    if (idx >= 0) {\n      let name = arg.substr(0, idx);\n      let value = decodeURIComponent(arg.substr(idx + 1));\n\n      if (specialValues.hasOwnProperty(value)) {\n        value = specialValues[value];\n      }\n\n      if (name.substr(-2) === '[]') {\n        name = decodeURIComponent(name.substr(0, name.length - 2));\n\n        if (!Array.isArray(result[name])) {\n          result[name] = [];\n        }\n\n        result[name].push(value);\n      } else {\n        name = decodeURIComponent(name);\n        result[name] = value;\n      }\n    } else {\n      if (arg.substr(0, 1) === '-') {\n        result[decodeURIComponent(arg.substr(1))] = false;\n      } else if (arg.substr(0, 1) === '+') {\n        result[decodeURIComponent(arg.substr(1))] = true;\n      } else {\n        result[decodeURIComponent(arg)] = true;\n      }\n    }\n  });\n  return result;\n}\n\nmodule.exports = parseQuery;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/loader-utils/lib/parseQuery.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/loader-utils/lib/parseString.js":
/*!********************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/loader-utils/lib/parseString.js ***!
  \********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nfunction parseString(str) {\n  try {\n    if (str[0] === '\"') {\n      return JSON.parse(str);\n    }\n\n    if (str[0] === \"'\" && str.substr(str.length - 1) === \"'\") {\n      return parseString(str.replace(/\\\\.|\"/g, x => x === '\"' ? '\\\\\"' : x).replace(/^'|'$/g, '\"'));\n    }\n\n    return JSON.parse('\"' + str + '\"');\n  } catch (e) {\n    return str;\n  }\n}\n\nmodule.exports = parseString;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/loader-utils/lib/parseString.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/loader-utils/lib/stringifyRequest.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/loader-utils/lib/stringifyRequest.js ***!
  \*************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nconst path = __webpack_require__(/*! path */ \"./node_modules/path-browserify/index.js\");\n\nconst matchRelativePath = /^\\.\\.?[/\\\\]/;\n\nfunction isAbsolutePath(str) {\n  return path.posix.isAbsolute(str) || path.win32.isAbsolute(str);\n}\n\nfunction isRelativePath(str) {\n  return matchRelativePath.test(str);\n}\n\nfunction stringifyRequest(loaderContext, request) {\n  const splitted = request.split('!');\n  const context = loaderContext.context || loaderContext.options && loaderContext.options.context;\n  return JSON.stringify(splitted.map(part => {\n    // First, separate singlePath from query, because the query might contain paths again\n    const splittedPart = part.match(/^(.*?)(\\?.*)/);\n    const query = splittedPart ? splittedPart[2] : '';\n    let singlePath = splittedPart ? splittedPart[1] : part;\n\n    if (isAbsolutePath(singlePath) && context) {\n      singlePath = path.relative(context, singlePath);\n\n      if (isAbsolutePath(singlePath)) {\n        // If singlePath still matches an absolute path, singlePath was on a different drive than context.\n        // In this case, we leave the path platform-specific without replacing any separators.\n        // @see https://github.com/webpack/loader-utils/pull/14\n        return singlePath + query;\n      }\n\n      if (isRelativePath(singlePath) === false) {\n        // Ensure that the relative path starts at least with ./ otherwise it would be a request into the modules directory (like node_modules).\n        singlePath = './' + singlePath;\n      }\n    }\n\n    return singlePath.replace(/\\\\/g, '/') + query;\n  }).join('!'));\n}\n\nmodule.exports = stringifyRequest;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/loader-utils/lib/stringifyRequest.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/loader-utils/lib/urlToRequest.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/loader-utils/lib/urlToRequest.js ***!
  \*********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval(" // we can't use path.win32.isAbsolute because it also matches paths starting with a forward slash\n\nconst matchNativeWin32Path = /^[A-Z]:[/\\\\]|^\\\\\\\\/i;\n\nfunction urlToRequest(url, root) {\n  // Do not rewrite an empty url\n  if (url === '') {\n    return '';\n  }\n\n  const moduleRequestRegex = /^[^?]*~/;\n  let request;\n\n  if (matchNativeWin32Path.test(url)) {\n    // absolute windows path, keep it\n    request = url;\n  } else if (root !== undefined && root !== false && /^\\//.test(url)) {\n    // if root is set and the url is root-relative\n    switch (typeof root) {\n      // 1. root is a string: root is prefixed to the url\n      case 'string':\n        // special case: `~` roots convert to module request\n        if (moduleRequestRegex.test(root)) {\n          request = root.replace(/([^~/])$/, '$1/') + url.slice(1);\n        } else {\n          request = root + url;\n        }\n\n        break;\n      // 2. root is `true`: absolute paths are allowed\n      //    *nix only, windows-style absolute paths are always allowed as they doesn't start with a `/`\n\n      case 'boolean':\n        request = url;\n        break;\n\n      default:\n        throw new Error(\"Unexpected parameters to loader-utils 'urlToRequest': url = \" + url + ', root = ' + root + '.');\n    }\n  } else if (/^\\.\\.?\\//.test(url)) {\n    // A relative url stays\n    request = url;\n  } else {\n    // every other url is threaded like a relative url\n    request = './' + url;\n  } // A `~` makes the url an module\n\n\n  if (moduleRequestRegex.test(request)) {\n    request = request.replace(moduleRequestRegex, '');\n  }\n\n  return request;\n}\n\nmodule.exports = urlToRequest;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/loader-utils/lib/urlToRequest.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/schema-utils/src/ValidationError.js":
/*!************************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/schema-utils/src/ValidationError.js ***!
  \************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* eslint-disable\n  strict,\n  no-param-reassign\n*/\n\n\nclass ValidationError extends Error {\n  constructor(errors, name) {\n    super();\n    this.name = 'ValidationError';\n    this.message = `${name || ''} Invalid Options\\n\\n`;\n    this.errors = errors.map(err => {\n      err.dataPath = err.dataPath.replace(/\\//g, '.');\n      return err;\n    });\n    this.errors.forEach(err => {\n      this.message += `options${err.dataPath} ${err.message}\\n`;\n    });\n    Error.captureStackTrace(this, this.constructor);\n  }\n\n}\n\nmodule.exports = ValidationError;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/schema-utils/src/ValidationError.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/schema-utils/src/index.js":
/*!**************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/schema-utils/src/index.js ***!
  \**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* eslint-disable\n  strict\n*/\n\n\nconst validateOptions = __webpack_require__(/*! ./validateOptions */ \"./node_modules/style-loader/node_modules/schema-utils/src/validateOptions.js\");\n\nmodule.exports = validateOptions;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/schema-utils/src/index.js?");

/***/ }),

/***/ "./node_modules/style-loader/node_modules/schema-utils/src/validateOptions.js":
/*!************************************************************************************!*\
  !*** ./node_modules/style-loader/node_modules/schema-utils/src/validateOptions.js ***!
  \************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* eslint-disable\n  strict,\n  no-param-reassign\n*/\n\n\nconst fs = __webpack_require__(/*! fs */ \"./node_modules/node-libs-browser/mock/empty.js\");\n\nconst path = __webpack_require__(/*! path */ \"./node_modules/path-browserify/index.js\");\n\nconst Ajv = __webpack_require__(/*! ajv */ \"./node_modules/ajv/lib/ajv.js\");\n\nconst errors = __webpack_require__(/*! ajv-errors */ \"./node_modules/ajv-errors/index.js\");\n\nconst keywords = __webpack_require__(/*! ajv-keywords */ \"./node_modules/ajv-keywords/index.js\");\n\nconst ValidationError = __webpack_require__(/*! ./ValidationError */ \"./node_modules/style-loader/node_modules/schema-utils/src/ValidationError.js\");\n\nconst ajv = new Ajv({\n  allErrors: true,\n  jsonPointers: true\n});\nerrors(ajv);\nkeywords(ajv, ['instanceof', 'typeof']);\n\nconst validateOptions = (schema, options, name) => {\n  if (typeof schema === 'string') {\n    schema = fs.readFileSync(path.resolve(schema), 'utf8');\n    schema = JSON.parse(schema);\n  }\n\n  if (!ajv.validate(schema, options)) {\n    throw new ValidationError(ajv.errors, name);\n  }\n\n  return true;\n};\n\nmodule.exports = validateOptions;\n\n//# sourceURL=webpack:///./node_modules/style-loader/node_modules/schema-utils/src/validateOptions.js?");

/***/ }),

/***/ "./node_modules/style-loader/options.json":
/*!************************************************!*\
  !*** ./node_modules/style-loader/options.json ***!
  \************************************************/
/*! exports provided: type, properties, additionalProperties, default */
/***/ (function(module) {

eval("module.exports = JSON.parse(\"{\\\"type\\\":\\\"object\\\",\\\"properties\\\":{\\\"hmr\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"base\\\":{\\\"type\\\":\\\"number\\\"},\\\"attrs\\\":{\\\"type\\\":\\\"object\\\"},\\\"insertAt\\\":{\\\"type\\\":[\\\"string\\\",\\\"object\\\"]},\\\"insertInto\\\":{\\\"anyOf\\\":[{\\\"type\\\":\\\"string\\\"},{\\\"instanceof\\\":\\\"Function\\\"}]},\\\"transform\\\":{\\\"type\\\":\\\"string\\\"},\\\"singleton\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"sourceMap\\\":{\\\"type\\\":\\\"boolean\\\"},\\\"convertToAbsoluteUrls\\\":{\\\"type\\\":\\\"boolean\\\"}},\\\"additionalProperties\\\":false}\");\n\n//# sourceURL=webpack:///./node_modules/style-loader/options.json?");

/***/ }),

/***/ "./node_modules/timers-browserify/main.js":
/*!************************************************!*\
  !*** ./node_modules/timers-browserify/main.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(global) {var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n  return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n  return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n  if (timeout) {\n    timeout.close();\n  }\n};\n\nfunction Timeout(id, clearFn) {\n  this._id = id;\n  this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n  this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n  clearTimeout(item._idleTimeoutId);\n  item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n  clearTimeout(item._idleTimeoutId);\n  item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n  clearTimeout(item._idleTimeoutId);\n  var msecs = item._idleTimeout;\n\n  if (msecs >= 0) {\n    item._idleTimeoutId = setTimeout(function onTimeout() {\n      if (item._onTimeout) item._onTimeout();\n    }, msecs);\n  }\n}; // setimmediate attaches itself to the global object\n\n\n__webpack_require__(/*! setimmediate */ \"./node_modules/setimmediate/setImmediate.js\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto.  Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/timers-browserify/main.js?");

/***/ }),

/***/ "./node_modules/uri-js/dist/es5/uri.all.js":
/*!*************************************************!*\
  !*** ./node_modules/uri-js/dist/es5/uri.all.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */\n(function (global, factory) {\n   true ? factory(exports) : undefined;\n})(this, function (exports) {\n  'use strict';\n\n  function merge() {\n    for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {\n      sets[_key] = arguments[_key];\n    }\n\n    if (sets.length > 1) {\n      sets[0] = sets[0].slice(0, -1);\n      var xl = sets.length - 1;\n\n      for (var x = 1; x < xl; ++x) {\n        sets[x] = sets[x].slice(1, -1);\n      }\n\n      sets[xl] = sets[xl].slice(1);\n      return sets.join('');\n    } else {\n      return sets[0];\n    }\n  }\n\n  function subexp(str) {\n    return \"(?:\" + str + \")\";\n  }\n\n  function typeOf(o) {\n    return o === undefined ? \"undefined\" : o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase();\n  }\n\n  function toUpperCase(str) {\n    return str.toUpperCase();\n  }\n\n  function toArray(obj) {\n    return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];\n  }\n\n  function assign(target, source) {\n    var obj = target;\n\n    if (source) {\n      for (var key in source) {\n        obj[key] = source[key];\n      }\n    }\n\n    return obj;\n  }\n\n  function buildExps(isIRI) {\n    var ALPHA$$ = \"[A-Za-z]\",\n        CR$ = \"[\\\\x0D]\",\n        DIGIT$$ = \"[0-9]\",\n        DQUOTE$$ = \"[\\\\x22]\",\n        HEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"),\n        //case-insensitive\n    LF$$ = \"[\\\\x0A]\",\n        SP$$ = \"[\\\\x20]\",\n        PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)),\n        //expanded\n    GEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n        SUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n        RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n        UCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\",\n        //subset, excludes bidi control characters\n    IPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\",\n        //subset\n    UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n        SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n        USERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n        DEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n        DEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$),\n        //relaxed parsing rules\n    IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n        H16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n        LS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n        IPV6ADDRESS1$ = subexp(subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$),\n        //                           6( h16 \":\" ) ls32\n    IPV6ADDRESS2$ = subexp(\"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$),\n        //                      \"::\" 5( h16 \":\" ) ls32\n    IPV6ADDRESS3$ = subexp(subexp(H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$),\n        //[               h16 ] \"::\" 4( h16 \":\" ) ls32\n    IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$),\n        //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n    IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$),\n        //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n    IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$),\n        //[ *3( h16 \":\" ) h16 ] \"::\"    h16 \":\"   ls32\n    IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$),\n        //[ *4( h16 \":\" ) h16 ] \"::\"              ls32\n    IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$),\n        //[ *5( h16 \":\" ) h16 ] \"::\"              h16\n    IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\"),\n        //[ *6( h16 \":\" ) h16 ] \"::\"\n    IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n        ZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"),\n        //RFC 6874\n    IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$),\n        //RFC 6874\n    IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$),\n        //RFC 6874, with relaxed parsing rules\n    IPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n        IP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"),\n        //RFC 6874\n    REG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n        HOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n        PORT$ = subexp(DIGIT$$ + \"*\"),\n        AUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n        PCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n        SEGMENT$ = subexp(PCHAR$ + \"*\"),\n        SEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n        SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n        PATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n        PATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"),\n        //simplified\n    PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),\n        //simplified\n    PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),\n        //simplified\n    PATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n        PATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n        QUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n        FRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n        HIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n        URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n        RELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n        RELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n        URI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n        ABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n        GENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n        RELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n        ABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n        SAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n        AUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\";\n    return {\n      NOT_SCHEME: new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n      NOT_USERINFO: new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n      NOT_HOST: new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n      NOT_PATH: new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n      NOT_PATH_NOSCHEME: new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n      NOT_QUERY: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n      NOT_FRAGMENT: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n      ESCAPE: new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n      UNRESERVED: new RegExp(UNRESERVED$$, \"g\"),\n      OTHER_CHARS: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n      PCT_ENCODED: new RegExp(PCT_ENCODED$, \"g\"),\n      IPV4ADDRESS: new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n      IPV6ADDRESS: new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\n    };\n  }\n\n  var URI_PROTOCOL = buildExps(false);\n  var IRI_PROTOCOL = buildExps(true);\n\n  var slicedToArray = function () {\n    function sliceIterator(arr, i) {\n      var _arr = [];\n      var _n = true;\n      var _d = false;\n      var _e = undefined;\n\n      try {\n        for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n          _arr.push(_s.value);\n\n          if (i && _arr.length === i) break;\n        }\n      } catch (err) {\n        _d = true;\n        _e = err;\n      } finally {\n        try {\n          if (!_n && _i[\"return\"]) _i[\"return\"]();\n        } finally {\n          if (_d) throw _e;\n        }\n      }\n\n      return _arr;\n    }\n\n    return function (arr, i) {\n      if (Array.isArray(arr)) {\n        return arr;\n      } else if (Symbol.iterator in Object(arr)) {\n        return sliceIterator(arr, i);\n      } else {\n        throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n      }\n    };\n  }();\n\n  var toConsumableArray = function (arr) {\n    if (Array.isArray(arr)) {\n      for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n      return arr2;\n    } else {\n      return Array.from(arr);\n    }\n  };\n  /** Highest positive signed 32-bit float value */\n\n\n  var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n  /** Bootstring parameters */\n\n  var base = 36;\n  var tMin = 1;\n  var tMax = 26;\n  var skew = 38;\n  var damp = 700;\n  var initialBias = 72;\n  var initialN = 128; // 0x80\n\n  var delimiter = '-'; // '\\x2D'\n\n  /** Regular expressions */\n\n  var regexPunycode = /^xn--/;\n  var regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\n\n  var regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n  /** Error messages */\n\n  var errors = {\n    'overflow': 'Overflow: input needs wider integers to process',\n    'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n    'invalid-input': 'Invalid input'\n  };\n  /** Convenience shortcuts */\n\n  var baseMinusTMin = base - tMin;\n  var floor = Math.floor;\n  var stringFromCharCode = String.fromCharCode;\n  /*--------------------------------------------------------------------------*/\n\n  /**\n   * A generic error utility function.\n   * @private\n   * @param {String} type The error type.\n   * @returns {Error} Throws a `RangeError` with the applicable error message.\n   */\n\n  function error$1(type) {\n    throw new RangeError(errors[type]);\n  }\n  /**\n   * A generic `Array#map` utility function.\n   * @private\n   * @param {Array} array The array to iterate over.\n   * @param {Function} callback The function that gets called for every array\n   * item.\n   * @returns {Array} A new array of values returned by the callback function.\n   */\n\n\n  function map(array, fn) {\n    var result = [];\n    var length = array.length;\n\n    while (length--) {\n      result[length] = fn(array[length]);\n    }\n\n    return result;\n  }\n  /**\n   * A simple `Array#map`-like wrapper to work with domain name strings or email\n   * addresses.\n   * @private\n   * @param {String} domain The domain name or email address.\n   * @param {Function} callback The function that gets called for every\n   * character.\n   * @returns {Array} A new string of characters returned by the callback\n   * function.\n   */\n\n\n  function mapDomain(string, fn) {\n    var parts = string.split('@');\n    var result = '';\n\n    if (parts.length > 1) {\n      // In email addresses, only the domain name should be punycoded. Leave\n      // the local part (i.e. everything up to `@`) intact.\n      result = parts[0] + '@';\n      string = parts[1];\n    } // Avoid `split(regex)` for IE8 compatibility. See #17.\n\n\n    string = string.replace(regexSeparators, '\\x2E');\n    var labels = string.split('.');\n    var encoded = map(labels, fn).join('.');\n    return result + encoded;\n  }\n  /**\n   * Creates an array containing the numeric code points of each Unicode\n   * character in the string. While JavaScript uses UCS-2 internally,\n   * this function will convert a pair of surrogate halves (each of which\n   * UCS-2 exposes as separate characters) into a single code point,\n   * matching UTF-16.\n   * @see `punycode.ucs2.encode`\n   * @see <https://mathiasbynens.be/notes/javascript-encoding>\n   * @memberOf punycode.ucs2\n   * @name decode\n   * @param {String} string The Unicode input string (UCS-2).\n   * @returns {Array} The new array of code points.\n   */\n\n\n  function ucs2decode(string) {\n    var output = [];\n    var counter = 0;\n    var length = string.length;\n\n    while (counter < length) {\n      var value = string.charCodeAt(counter++);\n\n      if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n        // It's a high surrogate, and there is a next character.\n        var extra = string.charCodeAt(counter++);\n\n        if ((extra & 0xFC00) == 0xDC00) {\n          // Low surrogate.\n          output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n        } else {\n          // It's an unmatched surrogate; only append this code unit, in case the\n          // next code unit is the high surrogate of a surrogate pair.\n          output.push(value);\n          counter--;\n        }\n      } else {\n        output.push(value);\n      }\n    }\n\n    return output;\n  }\n  /**\n   * Creates a string based on an array of numeric code points.\n   * @see `punycode.ucs2.decode`\n   * @memberOf punycode.ucs2\n   * @name encode\n   * @param {Array} codePoints The array of numeric code points.\n   * @returns {String} The new Unicode string (UCS-2).\n   */\n\n\n  var ucs2encode = function ucs2encode(array) {\n    return String.fromCodePoint.apply(String, toConsumableArray(array));\n  };\n  /**\n   * Converts a basic code point into a digit/integer.\n   * @see `digitToBasic()`\n   * @private\n   * @param {Number} codePoint The basic numeric code point value.\n   * @returns {Number} The numeric value of a basic code point (for use in\n   * representing integers) in the range `0` to `base - 1`, or `base` if\n   * the code point does not represent a value.\n   */\n\n\n  var basicToDigit = function basicToDigit(codePoint) {\n    if (codePoint - 0x30 < 0x0A) {\n      return codePoint - 0x16;\n    }\n\n    if (codePoint - 0x41 < 0x1A) {\n      return codePoint - 0x41;\n    }\n\n    if (codePoint - 0x61 < 0x1A) {\n      return codePoint - 0x61;\n    }\n\n    return base;\n  };\n  /**\n   * Converts a digit/integer into a basic code point.\n   * @see `basicToDigit()`\n   * @private\n   * @param {Number} digit The numeric value of a basic code point.\n   * @returns {Number} The basic code point whose value (when used for\n   * representing integers) is `digit`, which needs to be in the range\n   * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n   * used; else, the lowercase form is used. The behavior is undefined\n   * if `flag` is non-zero and `digit` has no uppercase form.\n   */\n\n\n  var digitToBasic = function digitToBasic(digit, flag) {\n    //  0..25 map to ASCII a..z or A..Z\n    // 26..35 map to ASCII 0..9\n    return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n  };\n  /**\n   * Bias adaptation function as per section 3.4 of RFC 3492.\n   * https://tools.ietf.org/html/rfc3492#section-3.4\n   * @private\n   */\n\n\n  var adapt = function adapt(delta, numPoints, firstTime) {\n    var k = 0;\n    delta = firstTime ? floor(delta / damp) : delta >> 1;\n    delta += floor(delta / numPoints);\n\n    for (;\n    /* no initialization */\n    delta > baseMinusTMin * tMax >> 1; k += base) {\n      delta = floor(delta / baseMinusTMin);\n    }\n\n    return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n  };\n  /**\n   * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n   * symbols.\n   * @memberOf punycode\n   * @param {String} input The Punycode string of ASCII-only symbols.\n   * @returns {String} The resulting string of Unicode symbols.\n   */\n\n\n  var decode = function decode(input) {\n    // Don't use UCS-2.\n    var output = [];\n    var inputLength = input.length;\n    var i = 0;\n    var n = initialN;\n    var bias = initialBias; // Handle the basic code points: let `basic` be the number of input code\n    // points before the last delimiter, or `0` if there is none, then copy\n    // the first basic code points to the output.\n\n    var basic = input.lastIndexOf(delimiter);\n\n    if (basic < 0) {\n      basic = 0;\n    }\n\n    for (var j = 0; j < basic; ++j) {\n      // if it's not a basic code point\n      if (input.charCodeAt(j) >= 0x80) {\n        error$1('not-basic');\n      }\n\n      output.push(input.charCodeAt(j));\n    } // Main decoding loop: start just after the last delimiter if any basic code\n    // points were copied; start at the beginning otherwise.\n\n\n    for (var index = basic > 0 ? basic + 1 : 0; index < inputLength;)\n    /* no final expression */\n    {\n      // `index` is the index of the next character to be consumed.\n      // Decode a generalized variable-length integer into `delta`,\n      // which gets added to `i`. The overflow checking is easier\n      // if we increase `i` as we go, then subtract off its starting\n      // value at the end to obtain `delta`.\n      var oldi = i;\n\n      for (var w = 1, k = base;;\n      /* no condition */\n      k += base) {\n        if (index >= inputLength) {\n          error$1('invalid-input');\n        }\n\n        var digit = basicToDigit(input.charCodeAt(index++));\n\n        if (digit >= base || digit > floor((maxInt - i) / w)) {\n          error$1('overflow');\n        }\n\n        i += digit * w;\n        var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n        if (digit < t) {\n          break;\n        }\n\n        var baseMinusT = base - t;\n\n        if (w > floor(maxInt / baseMinusT)) {\n          error$1('overflow');\n        }\n\n        w *= baseMinusT;\n      }\n\n      var out = output.length + 1;\n      bias = adapt(i - oldi, out, oldi == 0); // `i` was supposed to wrap around from `out` to `0`,\n      // incrementing `n` each time, so we'll fix that now:\n\n      if (floor(i / out) > maxInt - n) {\n        error$1('overflow');\n      }\n\n      n += floor(i / out);\n      i %= out; // Insert `n` at position `i` of the output.\n\n      output.splice(i++, 0, n);\n    }\n\n    return String.fromCodePoint.apply(String, output);\n  };\n  /**\n   * Converts a string of Unicode symbols (e.g. a domain name label) to a\n   * Punycode string of ASCII-only symbols.\n   * @memberOf punycode\n   * @param {String} input The string of Unicode symbols.\n   * @returns {String} The resulting Punycode string of ASCII-only symbols.\n   */\n\n\n  var encode = function encode(input) {\n    var output = []; // Convert the input in UCS-2 to an array of Unicode code points.\n\n    input = ucs2decode(input); // Cache the length.\n\n    var inputLength = input.length; // Initialize the state.\n\n    var n = initialN;\n    var delta = 0;\n    var bias = initialBias; // Handle the basic code points.\n\n    var _iteratorNormalCompletion = true;\n    var _didIteratorError = false;\n    var _iteratorError = undefined;\n\n    try {\n      for (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n        var _currentValue2 = _step.value;\n\n        if (_currentValue2 < 0x80) {\n          output.push(stringFromCharCode(_currentValue2));\n        }\n      }\n    } catch (err) {\n      _didIteratorError = true;\n      _iteratorError = err;\n    } finally {\n      try {\n        if (!_iteratorNormalCompletion && _iterator.return) {\n          _iterator.return();\n        }\n      } finally {\n        if (_didIteratorError) {\n          throw _iteratorError;\n        }\n      }\n    }\n\n    var basicLength = output.length;\n    var handledCPCount = basicLength; // `handledCPCount` is the number of code points that have been handled;\n    // `basicLength` is the number of basic code points.\n    // Finish the basic string with a delimiter unless it's empty.\n\n    if (basicLength) {\n      output.push(delimiter);\n    } // Main encoding loop:\n\n\n    while (handledCPCount < inputLength) {\n      // All non-basic code points < n have been handled already. Find the next\n      // larger one:\n      var m = maxInt;\n      var _iteratorNormalCompletion2 = true;\n      var _didIteratorError2 = false;\n      var _iteratorError2 = undefined;\n\n      try {\n        for (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n          var currentValue = _step2.value;\n\n          if (currentValue >= n && currentValue < m) {\n            m = currentValue;\n          }\n        } // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n        // but guard against overflow.\n\n      } catch (err) {\n        _didIteratorError2 = true;\n        _iteratorError2 = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion2 && _iterator2.return) {\n            _iterator2.return();\n          }\n        } finally {\n          if (_didIteratorError2) {\n            throw _iteratorError2;\n          }\n        }\n      }\n\n      var handledCPCountPlusOne = handledCPCount + 1;\n\n      if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n        error$1('overflow');\n      }\n\n      delta += (m - n) * handledCPCountPlusOne;\n      n = m;\n      var _iteratorNormalCompletion3 = true;\n      var _didIteratorError3 = false;\n      var _iteratorError3 = undefined;\n\n      try {\n        for (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n          var _currentValue = _step3.value;\n\n          if (_currentValue < n && ++delta > maxInt) {\n            error$1('overflow');\n          }\n\n          if (_currentValue == n) {\n            // Represent delta as a generalized variable-length integer.\n            var q = delta;\n\n            for (var k = base;;\n            /* no condition */\n            k += base) {\n              var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n              if (q < t) {\n                break;\n              }\n\n              var qMinusT = q - t;\n              var baseMinusT = base - t;\n              output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n              q = floor(qMinusT / baseMinusT);\n            }\n\n            output.push(stringFromCharCode(digitToBasic(q, 0)));\n            bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n            delta = 0;\n            ++handledCPCount;\n          }\n        }\n      } catch (err) {\n        _didIteratorError3 = true;\n        _iteratorError3 = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion3 && _iterator3.return) {\n            _iterator3.return();\n          }\n        } finally {\n          if (_didIteratorError3) {\n            throw _iteratorError3;\n          }\n        }\n      }\n\n      ++delta;\n      ++n;\n    }\n\n    return output.join('');\n  };\n  /**\n   * Converts a Punycode string representing a domain name or an email address\n   * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n   * it doesn't matter if you call it on a string that has already been\n   * converted to Unicode.\n   * @memberOf punycode\n   * @param {String} input The Punycoded domain name or email address to\n   * convert to Unicode.\n   * @returns {String} The Unicode representation of the given Punycode\n   * string.\n   */\n\n\n  var toUnicode = function toUnicode(input) {\n    return mapDomain(input, function (string) {\n      return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n    });\n  };\n  /**\n   * Converts a Unicode string representing a domain name or an email address to\n   * Punycode. Only the non-ASCII parts of the domain name will be converted,\n   * i.e. it doesn't matter if you call it with a domain that's already in\n   * ASCII.\n   * @memberOf punycode\n   * @param {String} input The domain name or email address to convert, as a\n   * Unicode string.\n   * @returns {String} The Punycode representation of the given domain name or\n   * email address.\n   */\n\n\n  var toASCII = function toASCII(input) {\n    return mapDomain(input, function (string) {\n      return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n    });\n  };\n  /*--------------------------------------------------------------------------*/\n\n  /** Define the public API */\n\n\n  var punycode = {\n    /**\n     * A string representing the current Punycode.js version number.\n     * @memberOf punycode\n     * @type String\n     */\n    'version': '2.1.0',\n\n    /**\n     * An object of methods to convert from JavaScript's internal character\n     * representation (UCS-2) to Unicode code points, and back.\n     * @see <https://mathiasbynens.be/notes/javascript-encoding>\n     * @memberOf punycode\n     * @type Object\n     */\n    'ucs2': {\n      'decode': ucs2decode,\n      'encode': ucs2encode\n    },\n    'decode': decode,\n    'encode': encode,\n    'toASCII': toASCII,\n    'toUnicode': toUnicode\n  };\n  /**\n   * URI.js\n   *\n   * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n   * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n   * @see http://github.com/garycourt/uri-js\n   */\n\n  /**\n   * Copyright 2011 Gary Court. All rights reserved.\n   *\n   * Redistribution and use in source and binary forms, with or without modification, are\n   * permitted provided that the following conditions are met:\n   *\n   *    1. Redistributions of source code must retain the above copyright notice, this list of\n   *       conditions and the following disclaimer.\n   *\n   *    2. Redistributions in binary form must reproduce the above copyright notice, this list\n   *       of conditions and the following disclaimer in the documentation and/or other materials\n   *       provided with the distribution.\n   *\n   * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n   * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n   * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n   * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n   * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n   *\n   * The views and conclusions contained in the software and documentation are those of the\n   * authors and should not be interpreted as representing official policies, either expressed\n   * or implied, of Gary Court.\n   */\n\n  var SCHEMES = {};\n\n  function pctEncChar(chr) {\n    var c = chr.charCodeAt(0);\n    var e = void 0;\n    if (c < 16) e = \"%0\" + c.toString(16).toUpperCase();else if (c < 128) e = \"%\" + c.toString(16).toUpperCase();else if (c < 2048) e = \"%\" + (c >> 6 | 192).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();else e = \"%\" + (c >> 12 | 224).toString(16).toUpperCase() + \"%\" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();\n    return e;\n  }\n\n  function pctDecChars(str) {\n    var newStr = \"\";\n    var i = 0;\n    var il = str.length;\n\n    while (i < il) {\n      var c = parseInt(str.substr(i + 1, 2), 16);\n\n      if (c < 128) {\n        newStr += String.fromCharCode(c);\n        i += 3;\n      } else if (c >= 194 && c < 224) {\n        if (il - i >= 6) {\n          var c2 = parseInt(str.substr(i + 4, 2), 16);\n          newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);\n        } else {\n          newStr += str.substr(i, 6);\n        }\n\n        i += 6;\n      } else if (c >= 224) {\n        if (il - i >= 9) {\n          var _c = parseInt(str.substr(i + 4, 2), 16);\n\n          var c3 = parseInt(str.substr(i + 7, 2), 16);\n          newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);\n        } else {\n          newStr += str.substr(i, 9);\n        }\n\n        i += 9;\n      } else {\n        newStr += str.substr(i, 3);\n        i += 3;\n      }\n    }\n\n    return newStr;\n  }\n\n  function _normalizeComponentEncoding(components, protocol) {\n    function decodeUnreserved(str) {\n      var decStr = pctDecChars(str);\n      return !decStr.match(protocol.UNRESERVED) ? str : decStr;\n    }\n\n    if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n    if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n    if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n    if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n    if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n    if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n    return components;\n  }\n\n  function _stripLeadingZeros(str) {\n    return str.replace(/^0*(.*)/, \"$1\") || \"0\";\n  }\n\n  function _normalizeIPv4(host, protocol) {\n    var matches = host.match(protocol.IPV4ADDRESS) || [];\n\n    var _matches = slicedToArray(matches, 2),\n        address = _matches[1];\n\n    if (address) {\n      return address.split(\".\").map(_stripLeadingZeros).join(\".\");\n    } else {\n      return host;\n    }\n  }\n\n  function _normalizeIPv6(host, protocol) {\n    var matches = host.match(protocol.IPV6ADDRESS) || [];\n\n    var _matches2 = slicedToArray(matches, 3),\n        address = _matches2[1],\n        zone = _matches2[2];\n\n    if (address) {\n      var _address$toLowerCase$ = address.toLowerCase().split('::').reverse(),\n          _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2),\n          last = _address$toLowerCase$2[0],\n          first = _address$toLowerCase$2[1];\n\n      var firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n      var lastFields = last.split(\":\").map(_stripLeadingZeros);\n      var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n      var fieldCount = isLastFieldIPv4Address ? 7 : 8;\n      var lastFieldsStart = lastFields.length - fieldCount;\n      var fields = Array(fieldCount);\n\n      for (var x = 0; x < fieldCount; ++x) {\n        fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n      }\n\n      if (isLastFieldIPv4Address) {\n        fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n      }\n\n      var allZeroFields = fields.reduce(function (acc, field, index) {\n        if (!field || field === \"0\") {\n          var lastLongest = acc[acc.length - 1];\n\n          if (lastLongest && lastLongest.index + lastLongest.length === index) {\n            lastLongest.length++;\n          } else {\n            acc.push({\n              index: index,\n              length: 1\n            });\n          }\n        }\n\n        return acc;\n      }, []);\n      var longestZeroFields = allZeroFields.sort(function (a, b) {\n        return b.length - a.length;\n      })[0];\n      var newHost = void 0;\n\n      if (longestZeroFields && longestZeroFields.length > 1) {\n        var newFirst = fields.slice(0, longestZeroFields.index);\n        var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n        newHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n      } else {\n        newHost = fields.join(\":\");\n      }\n\n      if (zone) {\n        newHost += \"%\" + zone;\n      }\n\n      return newHost;\n    } else {\n      return host;\n    }\n  }\n\n  var URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\n  var NO_MATCH_IS_UNDEFINED = \"\".match(/(){0}/)[1] === undefined;\n\n  function parse(uriString) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var components = {};\n    var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n    if (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n    var matches = uriString.match(URI_PARSE);\n\n    if (matches) {\n      if (NO_MATCH_IS_UNDEFINED) {\n        //store each component\n        components.scheme = matches[1];\n        components.userinfo = matches[3];\n        components.host = matches[4];\n        components.port = parseInt(matches[5], 10);\n        components.path = matches[6] || \"\";\n        components.query = matches[7];\n        components.fragment = matches[8]; //fix port number\n\n        if (isNaN(components.port)) {\n          components.port = matches[5];\n        }\n      } else {\n        //IE FIX for improper RegExp matching\n        //store each component\n        components.scheme = matches[1] || undefined;\n        components.userinfo = uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined;\n        components.host = uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined;\n        components.port = parseInt(matches[5], 10);\n        components.path = matches[6] || \"\";\n        components.query = uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined;\n        components.fragment = uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined; //fix port number\n\n        if (isNaN(components.port)) {\n          components.port = uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined;\n        }\n      }\n\n      if (components.host) {\n        //normalize IP hosts\n        components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n      } //determine reference type\n\n\n      if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n        components.reference = \"same-document\";\n      } else if (components.scheme === undefined) {\n        components.reference = \"relative\";\n      } else if (components.fragment === undefined) {\n        components.reference = \"absolute\";\n      } else {\n        components.reference = \"uri\";\n      } //check for reference errors\n\n\n      if (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n        components.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n      } //find scheme handler\n\n\n      var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()]; //check if scheme can't handle IRIs\n\n      if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n        //if host component is a domain name\n        if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {\n          //convert Unicode IDN -> ASCII IDN\n          try {\n            components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n          } catch (e) {\n            components.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n          }\n        } //convert IRI -> URI\n\n\n        _normalizeComponentEncoding(components, URI_PROTOCOL);\n      } else {\n        //normalize encodings\n        _normalizeComponentEncoding(components, protocol);\n      } //perform scheme specific parsing\n\n\n      if (schemeHandler && schemeHandler.parse) {\n        schemeHandler.parse(components, options);\n      }\n    } else {\n      components.error = components.error || \"URI can not be parsed.\";\n    }\n\n    return components;\n  }\n\n  function _recomposeAuthority(components, options) {\n    var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n    var uriTokens = [];\n\n    if (components.userinfo !== undefined) {\n      uriTokens.push(components.userinfo);\n      uriTokens.push(\"@\");\n    }\n\n    if (components.host !== undefined) {\n      //normalize IP hosts, add brackets and escape zone separator for IPv6\n      uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function (_, $1, $2) {\n        return \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\";\n      }));\n    }\n\n    if (typeof components.port === \"number\" || typeof components.port === \"string\") {\n      uriTokens.push(\":\");\n      uriTokens.push(String(components.port));\n    }\n\n    return uriTokens.length ? uriTokens.join(\"\") : undefined;\n  }\n\n  var RDS1 = /^\\.\\.?\\//;\n  var RDS2 = /^\\/\\.(\\/|$)/;\n  var RDS3 = /^\\/\\.\\.(\\/|$)/;\n  var RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\n  function removeDotSegments(input) {\n    var output = [];\n\n    while (input.length) {\n      if (input.match(RDS1)) {\n        input = input.replace(RDS1, \"\");\n      } else if (input.match(RDS2)) {\n        input = input.replace(RDS2, \"/\");\n      } else if (input.match(RDS3)) {\n        input = input.replace(RDS3, \"/\");\n        output.pop();\n      } else if (input === \".\" || input === \"..\") {\n        input = \"\";\n      } else {\n        var im = input.match(RDS5);\n\n        if (im) {\n          var s = im[0];\n          input = input.slice(s.length);\n          output.push(s);\n        } else {\n          throw new Error(\"Unexpected dot segment condition\");\n        }\n      }\n    }\n\n    return output.join(\"\");\n  }\n\n  function serialize(components) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;\n    var uriTokens = []; //find scheme handler\n\n    var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()]; //perform scheme specific serialization\n\n    if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n    if (components.host) {\n      //if host component is an IPv6 address\n      if (protocol.IPV6ADDRESS.test(components.host)) {} //TODO: normalize IPv6 address as per RFC 5952\n      //if host component is a domain name\n      else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {\n        //convert IDN via punycode\n        try {\n          components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);\n        } catch (e) {\n          components.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n        }\n      }\n    } //normalize encoding\n\n\n    _normalizeComponentEncoding(components, protocol);\n\n    if (options.reference !== \"suffix\" && components.scheme) {\n      uriTokens.push(components.scheme);\n      uriTokens.push(\":\");\n    }\n\n    var authority = _recomposeAuthority(components, options);\n\n    if (authority !== undefined) {\n      if (options.reference !== \"suffix\") {\n        uriTokens.push(\"//\");\n      }\n\n      uriTokens.push(authority);\n\n      if (components.path && components.path.charAt(0) !== \"/\") {\n        uriTokens.push(\"/\");\n      }\n    }\n\n    if (components.path !== undefined) {\n      var s = components.path;\n\n      if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n        s = removeDotSegments(s);\n      }\n\n      if (authority === undefined) {\n        s = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n      }\n\n      uriTokens.push(s);\n    }\n\n    if (components.query !== undefined) {\n      uriTokens.push(\"?\");\n      uriTokens.push(components.query);\n    }\n\n    if (components.fragment !== undefined) {\n      uriTokens.push(\"#\");\n      uriTokens.push(components.fragment);\n    }\n\n    return uriTokens.join(\"\"); //merge tokens into a string\n  }\n\n  function resolveComponents(base, relative) {\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var skipNormalization = arguments[3];\n    var target = {};\n\n    if (!skipNormalization) {\n      base = parse(serialize(base, options), options); //normalize base components\n\n      relative = parse(serialize(relative, options), options); //normalize relative components\n    }\n\n    options = options || {};\n\n    if (!options.tolerant && relative.scheme) {\n      target.scheme = relative.scheme; //target.authority = relative.authority;\n\n      target.userinfo = relative.userinfo;\n      target.host = relative.host;\n      target.port = relative.port;\n      target.path = removeDotSegments(relative.path || \"\");\n      target.query = relative.query;\n    } else {\n      if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n        //target.authority = relative.authority;\n        target.userinfo = relative.userinfo;\n        target.host = relative.host;\n        target.port = relative.port;\n        target.path = removeDotSegments(relative.path || \"\");\n        target.query = relative.query;\n      } else {\n        if (!relative.path) {\n          target.path = base.path;\n\n          if (relative.query !== undefined) {\n            target.query = relative.query;\n          } else {\n            target.query = base.query;\n          }\n        } else {\n          if (relative.path.charAt(0) === \"/\") {\n            target.path = removeDotSegments(relative.path);\n          } else {\n            if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n              target.path = \"/\" + relative.path;\n            } else if (!base.path) {\n              target.path = relative.path;\n            } else {\n              target.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n            }\n\n            target.path = removeDotSegments(target.path);\n          }\n\n          target.query = relative.query;\n        } //target.authority = base.authority;\n\n\n        target.userinfo = base.userinfo;\n        target.host = base.host;\n        target.port = base.port;\n      }\n\n      target.scheme = base.scheme;\n    }\n\n    target.fragment = relative.fragment;\n    return target;\n  }\n\n  function resolve(baseURI, relativeURI, options) {\n    var schemelessOptions = assign({\n      scheme: 'null'\n    }, options);\n    return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n  }\n\n  function normalize(uri, options) {\n    if (typeof uri === \"string\") {\n      uri = serialize(parse(uri, options), options);\n    } else if (typeOf(uri) === \"object\") {\n      uri = parse(serialize(uri, options), options);\n    }\n\n    return uri;\n  }\n\n  function equal(uriA, uriB, options) {\n    if (typeof uriA === \"string\") {\n      uriA = serialize(parse(uriA, options), options);\n    } else if (typeOf(uriA) === \"object\") {\n      uriA = serialize(uriA, options);\n    }\n\n    if (typeof uriB === \"string\") {\n      uriB = serialize(parse(uriB, options), options);\n    } else if (typeOf(uriB) === \"object\") {\n      uriB = serialize(uriB, options);\n    }\n\n    return uriA === uriB;\n  }\n\n  function escapeComponent(str, options) {\n    return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);\n  }\n\n  function unescapeComponent(str, options) {\n    return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);\n  }\n\n  var handler = {\n    scheme: \"http\",\n    domainHost: true,\n    parse: function parse(components, options) {\n      //report missing host\n      if (!components.host) {\n        components.error = components.error || \"HTTP URIs must have a host.\";\n      }\n\n      return components;\n    },\n    serialize: function serialize(components, options) {\n      var secure = String(components.scheme).toLowerCase() === \"https\"; //normalize the default port\n\n      if (components.port === (secure ? 443 : 80) || components.port === \"\") {\n        components.port = undefined;\n      } //normalize the empty path\n\n\n      if (!components.path) {\n        components.path = \"/\";\n      } //NOTE: We do not parse query strings for HTTP URIs\n      //as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n      //and not the HTTP spec.\n\n\n      return components;\n    }\n  };\n  var handler$1 = {\n    scheme: \"https\",\n    domainHost: handler.domainHost,\n    parse: handler.parse,\n    serialize: handler.serialize\n  };\n\n  function isSecure(wsComponents) {\n    return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n  } //RFC 6455\n\n\n  var handler$2 = {\n    scheme: \"ws\",\n    domainHost: true,\n    parse: function parse(components, options) {\n      var wsComponents = components; //indicate if the secure flag is set\n\n      wsComponents.secure = isSecure(wsComponents); //construct resouce name\n\n      wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n      wsComponents.path = undefined;\n      wsComponents.query = undefined;\n      return wsComponents;\n    },\n    serialize: function serialize(wsComponents, options) {\n      //normalize the default port\n      if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n        wsComponents.port = undefined;\n      } //ensure scheme matches secure flag\n\n\n      if (typeof wsComponents.secure === 'boolean') {\n        wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws';\n        wsComponents.secure = undefined;\n      } //reconstruct path from resource name\n\n\n      if (wsComponents.resourceName) {\n        var _wsComponents$resourc = wsComponents.resourceName.split('?'),\n            _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2),\n            path = _wsComponents$resourc2[0],\n            query = _wsComponents$resourc2[1];\n\n        wsComponents.path = path && path !== '/' ? path : undefined;\n        wsComponents.query = query;\n        wsComponents.resourceName = undefined;\n      } //forbid fragment component\n\n\n      wsComponents.fragment = undefined;\n      return wsComponents;\n    }\n  };\n  var handler$3 = {\n    scheme: \"wss\",\n    domainHost: handler$2.domainHost,\n    parse: handler$2.parse,\n    serialize: handler$2.serialize\n  };\n  var O = {};\n  var isIRI = true; //RFC 3986\n\n  var UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\n  var HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\n\n  var PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n  //RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n  //const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n  //const WSP$$ = \"[\\\\x20\\\\x09]\";\n  //const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\";  //(%d1-8 / %d11-12 / %d14-31 / %d127)\n  //const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$);  //%d33 / %d35-91 / %d93-126 / obs-qtext\n  //const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n  //const WSP$$ = \"[\\\\x20\\\\x09]\";\n  //const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$));  //%d0 / CR / LF / obs-qtext\n  //const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n  //const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n  //const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\n\n  var ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n  var QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\n  var VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\n  var SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\n  var UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\n  var PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\n  var NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\n  var NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\n  var NOT_HFVALUE = NOT_HFNAME;\n\n  function decodeUnreserved(str) {\n    var decStr = pctDecChars(str);\n    return !decStr.match(UNRESERVED) ? str : decStr;\n  }\n\n  var handler$4 = {\n    scheme: \"mailto\",\n    parse: function parse$$1(components, options) {\n      var mailtoComponents = components;\n      var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(\",\") : [];\n      mailtoComponents.path = undefined;\n\n      if (mailtoComponents.query) {\n        var unknownHeaders = false;\n        var headers = {};\n        var hfields = mailtoComponents.query.split(\"&\");\n\n        for (var x = 0, xl = hfields.length; x < xl; ++x) {\n          var hfield = hfields[x].split(\"=\");\n\n          switch (hfield[0]) {\n            case \"to\":\n              var toAddrs = hfield[1].split(\",\");\n\n              for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) {\n                to.push(toAddrs[_x]);\n              }\n\n              break;\n\n            case \"subject\":\n              mailtoComponents.subject = unescapeComponent(hfield[1], options);\n              break;\n\n            case \"body\":\n              mailtoComponents.body = unescapeComponent(hfield[1], options);\n              break;\n\n            default:\n              unknownHeaders = true;\n              headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n              break;\n          }\n        }\n\n        if (unknownHeaders) mailtoComponents.headers = headers;\n      }\n\n      mailtoComponents.query = undefined;\n\n      for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) {\n        var addr = to[_x2].split(\"@\");\n\n        addr[0] = unescapeComponent(addr[0]);\n\n        if (!options.unicodeSupport) {\n          //convert Unicode IDN -> ASCII IDN\n          try {\n            addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n          } catch (e) {\n            mailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n          }\n        } else {\n          addr[1] = unescapeComponent(addr[1], options).toLowerCase();\n        }\n\n        to[_x2] = addr.join(\"@\");\n      }\n\n      return mailtoComponents;\n    },\n    serialize: function serialize$$1(mailtoComponents, options) {\n      var components = mailtoComponents;\n      var to = toArray(mailtoComponents.to);\n\n      if (to) {\n        for (var x = 0, xl = to.length; x < xl; ++x) {\n          var toAddr = String(to[x]);\n          var atIdx = toAddr.lastIndexOf(\"@\");\n          var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n          var domain = toAddr.slice(atIdx + 1); //convert IDN via punycode\n\n          try {\n            domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);\n          } catch (e) {\n            components.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n          }\n\n          to[x] = localPart + \"@\" + domain;\n        }\n\n        components.path = to.join(\",\");\n      }\n\n      var headers = mailtoComponents.headers = mailtoComponents.headers || {};\n      if (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n      if (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n      var fields = [];\n\n      for (var name in headers) {\n        if (headers[name] !== O[name]) {\n          fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + \"=\" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));\n        }\n      }\n\n      if (fields.length) {\n        components.query = fields.join(\"&\");\n      }\n\n      return components;\n    }\n  };\n  var URN_PARSE = /^([^\\:]+)\\:(.*)/; //RFC 2141\n\n  var handler$5 = {\n    scheme: \"urn\",\n    parse: function parse$$1(components, options) {\n      var matches = components.path && components.path.match(URN_PARSE);\n      var urnComponents = components;\n\n      if (matches) {\n        var scheme = options.scheme || urnComponents.scheme || \"urn\";\n        var nid = matches[1].toLowerCase();\n        var nss = matches[2];\n        var urnScheme = scheme + \":\" + (options.nid || nid);\n        var schemeHandler = SCHEMES[urnScheme];\n        urnComponents.nid = nid;\n        urnComponents.nss = nss;\n        urnComponents.path = undefined;\n\n        if (schemeHandler) {\n          urnComponents = schemeHandler.parse(urnComponents, options);\n        }\n      } else {\n        urnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n      }\n\n      return urnComponents;\n    },\n    serialize: function serialize$$1(urnComponents, options) {\n      var scheme = options.scheme || urnComponents.scheme || \"urn\";\n      var nid = urnComponents.nid;\n      var urnScheme = scheme + \":\" + (options.nid || nid);\n      var schemeHandler = SCHEMES[urnScheme];\n\n      if (schemeHandler) {\n        urnComponents = schemeHandler.serialize(urnComponents, options);\n      }\n\n      var uriComponents = urnComponents;\n      var nss = urnComponents.nss;\n      uriComponents.path = (nid || options.nid) + \":\" + nss;\n      return uriComponents;\n    }\n  };\n  var UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/; //RFC 4122\n\n  var handler$6 = {\n    scheme: \"urn:uuid\",\n    parse: function parse(urnComponents, options) {\n      var uuidComponents = urnComponents;\n      uuidComponents.uuid = uuidComponents.nss;\n      uuidComponents.nss = undefined;\n\n      if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n        uuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n      }\n\n      return uuidComponents;\n    },\n    serialize: function serialize(uuidComponents, options) {\n      var urnComponents = uuidComponents; //normalize UUID\n\n      urnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n      return urnComponents;\n    }\n  };\n  SCHEMES[handler.scheme] = handler;\n  SCHEMES[handler$1.scheme] = handler$1;\n  SCHEMES[handler$2.scheme] = handler$2;\n  SCHEMES[handler$3.scheme] = handler$3;\n  SCHEMES[handler$4.scheme] = handler$4;\n  SCHEMES[handler$5.scheme] = handler$5;\n  SCHEMES[handler$6.scheme] = handler$6;\n  exports.SCHEMES = SCHEMES;\n  exports.pctEncChar = pctEncChar;\n  exports.pctDecChars = pctDecChars;\n  exports.parse = parse;\n  exports.removeDotSegments = removeDotSegments;\n  exports.serialize = serialize;\n  exports.resolveComponents = resolveComponents;\n  exports.resolve = resolve;\n  exports.normalize = normalize;\n  exports.equal = equal;\n  exports.escapeComponent = escapeComponent;\n  exports.unescapeComponent = unescapeComponent;\n  Object.defineProperty(exports, '__esModule', {\n    value: true\n  });\n});\n\n//# sourceURL=webpack:///./node_modules/uri-js/dist/es5/uri.all.js?");

/***/ }),

/***/ "./node_modules/util-deprecate/browser.js":
/*!************************************************!*\
  !*** ./node_modules/util-deprecate/browser.js ***!
  \************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(global) {/**\n * Module exports.\n */\nmodule.exports = deprecate;\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate(fn, msg) {\n  if (config('noDeprecation')) {\n    return fn;\n  }\n\n  var warned = false;\n\n  function deprecated() {\n    if (!warned) {\n      if (config('throwDeprecation')) {\n        throw new Error(msg);\n      } else if (config('traceDeprecation')) {\n        console.trace(msg);\n      } else {\n        console.warn(msg);\n      }\n\n      warned = true;\n    }\n\n    return fn.apply(this, arguments);\n  }\n\n  return deprecated;\n}\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\n\nfunction config(name) {\n  // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n  try {\n    if (!global.localStorage) return false;\n  } catch (_) {\n    return false;\n  }\n\n  var val = global.localStorage[name];\n  if (null == val) return false;\n  return String(val).toLowerCase() === 'true';\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/util-deprecate/browser.js?");

/***/ }),

/***/ "./node_modules/v-calendar/lib/v-calendar.min.js":
/*!*******************************************************!*\
  !*** ./node_modules/v-calendar/lib/v-calendar.min.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("!function (t, e) {\n   true ? module.exports = e() : undefined;\n}(\"undefined\" != typeof self ? self : this, function () {\n  return function (t) {\n    var e = {};\n\n    function n(r) {\n      if (e[r]) return e[r].exports;\n      var i = e[r] = {\n        i: r,\n        l: !1,\n        exports: {}\n      };\n      return t[r].call(i.exports, i, i.exports, n), i.l = !0, i.exports;\n    }\n\n    return n.m = t, n.c = e, n.d = function (t, e, r) {\n      n.o(t, e) || Object.defineProperty(t, e, {\n        configurable: !1,\n        enumerable: !0,\n        get: r\n      });\n    }, n.n = function (t) {\n      var e = t && t.__esModule ? function () {\n        return t.default;\n      } : function () {\n        return t;\n      };\n      return n.d(e, \"a\", e), e;\n    }, n.o = function (t, e) {\n      return Object.prototype.hasOwnProperty.call(t, e);\n    }, n.p = \"/\", n(n.s = 59);\n  }([function (t, e, n) {\n    \"use strict\";\n\n    e.__esModule = !0;\n    var r,\n        i = n(31),\n        a = (r = i, r && r.__esModule ? r : {\n      default: r\n    });\n\n    e.default = a.default || function (t) {\n      for (var e = 1; e < arguments.length; e++) {\n        var n = arguments[e];\n\n        for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (t[r] = n[r]);\n      }\n\n      return t;\n    };\n  }, function (t, e) {\n    t.exports = function (t, e, n, r, i, a) {\n      var o,\n          s = t = t || {},\n          u = typeof t.default;\n      \"object\" !== u && \"function\" !== u || (o = t, s = t.default);\n      var c = \"function\" == typeof s ? s.options : s;\n      e && (c.render = e.render, c.staticRenderFns = e.staticRenderFns, c._compiled = !0), n && (c.functional = !0), i && (c._scopeId = i);\n      var l;\n\n      if (a ? (l = function (t) {\n        (t = t || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) || \"undefined\" == typeof __VUE_SSR_CONTEXT__ || (t = __VUE_SSR_CONTEXT__), r && r.call(this, t), t && t._registeredComponents && t._registeredComponents.add(a);\n      }, c._ssrRegister = l) : r && (l = r), l) {\n        var d = c.functional,\n            f = d ? c.render : c.beforeCreate;\n        d ? (c._injectStyles = l, c.render = function (t, e) {\n          return l.call(e), f(t, e);\n        }) : c.beforeCreate = f ? [].concat(f, l) : [l];\n      }\n\n      return {\n        esModule: o,\n        exports: s,\n        options: c\n      };\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    n.d(e, \"x\", function () {\n      return d;\n    }), n.d(e, \"n\", function () {\n      return f;\n    }), n.d(e, \"c\", function () {\n      return h;\n    }), n.d(e, \"j\", function () {\n      return p;\n    }), n.d(e, \"q\", function () {\n      return v;\n    }), n.d(e, \"i\", function () {\n      return y;\n    }), n.d(e, \"d\", function () {\n      return m;\n    }), n.d(e, \"o\", function () {\n      return b;\n    }), n.d(e, \"k\", function () {\n      return g;\n    }), n.d(e, \"w\", function () {\n      return w;\n    }), n.d(e, \"u\", function () {\n      return _;\n    }), n.d(e, \"t\", function () {\n      return O;\n    }), n.d(e, \"v\", function () {\n      return C;\n    }), n.d(e, \"h\", function () {\n      return M;\n    }), n.d(e, \"p\", function () {\n      return x;\n    }), n.d(e, \"l\", function () {\n      return k;\n    }), n.d(e, \"m\", function () {\n      return S;\n    }), n.d(e, \"f\", function () {\n      return Y;\n    }), n.d(e, \"e\", function () {\n      return j;\n    }), n.d(e, \"g\", function () {\n      return P;\n    }), n.d(e, \"a\", function () {\n      return T;\n    }), n.d(e, \"b\", function () {\n      return I;\n    }), n.d(e, \"s\", function () {\n      return A;\n    }), n.d(e, \"r\", function () {\n      return L;\n    });\n\n    var r = n(0),\n        i = n.n(r),\n        a = n(3),\n        o = n(4),\n        s = n(8),\n        u = {},\n        c = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n        l = new Date(),\n        d = {\n      year: l.getFullYear(),\n      month: l.getMonth() + 1,\n      day: l.getDate()\n    },\n        f = function (t) {\n      var e,\n          n = (e = t, Object(o.b)(e) ? new Date(e.getTime()) : Object(o.d)(e) ? new Date(e) : Object(o.f)(e) ? Object(s.b)(e, [\"L\", \"YYYY-MM-DD\", \"YYYY/MM/DD\"]) : Object(o.e)(e) ? new Date(e.year || l.getFullYear(), e.month || l.getMonth(), e.day || l.getDate()) : new Date(e));\n      return n && {\n        month: n.getMonth() + 1,\n        year: n.getFullYear()\n      };\n    },\n        h = function (t, e) {\n      return Object(o.c)(t) ? t(e) : t;\n    },\n        p = function () {\n      for (var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 2e3, e = [], n = 0; n < 12; n++) e.push(new Date(t, n, 15));\n\n      return e;\n    },\n        v = function (t) {\n      for (var e = t.firstDayOfWeek, n = void 0 === e ? 1 : e, r = t.year, i = void 0 === r ? 2e3 : r, a = t.utc, o = void 0 !== a && a, s = [], u = 1, c = 0; c < 7; u++) {\n        var l = o ? new Date(Date.UTC(i, 0, u)) : new Date(i, 0, u);\n        ((o ? l.getUTCDay() : l.getDay()) === n - 1 || c > 0) && (s.push(l), c++);\n      }\n\n      return s;\n    },\n        y = function (t, e) {\n      var n = t + \".\" + e,\n          r = u[n];\n\n      if (!r) {\n        var i = a.a.firstDayOfWeek,\n            o = e % 4 == 0 && e % 100 != 0 || e % 400 == 0,\n            s = new Date(e, t - 1, 1).getDay() + 1,\n            l = 2 === t && o ? 29 : c[t - 1];\n        r = {\n          firstDayOfWeek: i,\n          inLeapYear: o,\n          firstWeekday: s,\n          days: l,\n          weeks: Math.ceil((l + Math.abs(s - i)) / 7),\n          month: t,\n          year: e\n        }, u[n] = r;\n      }\n\n      return r;\n    },\n        m = function (t) {\n      if (t && t.getTime) return y(t.getMonth() + 1, t.getFullYear());\n    },\n        b = function (t, e) {\n      return 1 === t ? y(12, e - 1) : y(t - 1, e);\n    },\n        g = function (t, e) {\n      return 12 === t ? y(1, e + 1) : y(t + 1, e);\n    };\n\n    function D(t, e) {\n      return t && e ? t.year === e.year ? t.month === e.month ? 0 : t.month < e.month ? -1 : 1 : t.year < e.year ? -1 : 1 : 0;\n    }\n\n    var w = function (t, e) {\n      return 0 === D(t, e);\n    },\n        _ = function (t, e) {\n      return -1 === D(t, e);\n    },\n        O = function (t, e) {\n      return 1 === D(t, e);\n    },\n        C = function (t, e, n) {\n      return !!t && !_(t, e) && !O(t, n);\n    },\n        M = function () {\n      for (var t = arguments.length, e = Array(t), n = 0; n < t; n++) e[n] = arguments[n];\n\n      return e.reduce(function (t, e) {\n        return t ? e ? 1 === D(t, e) ? t : e : t : e;\n      });\n    },\n        x = function (t) {\n      if (t) {\n        var e = b(t.month, t.year);\n        return {\n          month: e.month,\n          year: e.year\n        };\n      }\n    },\n        k = function (t) {\n      if (t) {\n        var e = g(t.month, t.year);\n        return {\n          month: e.month,\n          year: e.year\n        };\n      }\n    },\n        S = function (t, e, n) {\n      if (t && !(e && -1 === D(t, e) || n && 1 === D(t, n))) return t;\n    },\n        Y = function () {\n      for (var t = arguments.length, e = Array(t), n = 0; n < t; n++) e[n] = arguments[n];\n\n      return e.find(function (t) {\n        return !!t;\n      });\n    },\n        j = function (t, e) {\n      return t && t.length ? t[0] : e;\n    },\n        P = function (t, e) {\n      return t && t.length ? t[t.length - 1] : e;\n    },\n        T = function (t) {\n      return Object(o.a)(t) && t.length;\n    },\n        I = function (t, e) {\n      return !!function t(e, n) {\n        return e ? n(e) ? e : t(e.parentElement, n) : null;\n      }(t, function (t) {\n        return t === e;\n      });\n    },\n        A = function (t) {\n      var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"key\";\n      return t && t.length ? t.reduce(function (t, n) {\n        return t[n[e]] = n, t;\n      }, {}) : {};\n    },\n        L = function (t, e, n) {\n      var r = [];\n      return n.forEach(function (n) {\n        var a = n.name || n.toString(),\n            s = n.mixin,\n            u = n.validate;\n\n        if (Object.prototype.hasOwnProperty.call(t, a)) {\n          var c = u ? u(t[a]) : t[a];\n          e[a] = s && Object(o.e)(c) ? i()({}, s, c) : c, r.push(a);\n        }\n      }), {\n        target: e,\n        assigned: r.length ? r : null\n      };\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    n.d(e, \"c\", function () {\n      return l;\n    }), n.d(e, \"b\", function () {\n      return d;\n    });\n    var r = n(31),\n        i = n.n(r),\n        a = n(0),\n        o = n.n(a),\n        s = n(47),\n        u = n(4),\n        c = {\n      componentPrefix: \"v\",\n      firstDayOfWeek: 1,\n      navVisibility: \"focus\",\n      titlePosition: \"center\",\n      titleTransition: \"slide-h\",\n      weeksTransition: \"slide-h\",\n      paneWidth: 256,\n      showLinkedButtons: !1,\n      formats: {\n        title: \"MMMM YYYY\",\n        weekdays: \"W\",\n        navMonths: \"MMM\",\n        input: [\"L\", \"YYYY-MM-DD\", \"YYYY/MM/DD\"],\n        dayPopover: \"WWW, MMM D, YYYY\",\n        data: [\"L\", \"YYYY-MM-DD\", \"YYYY/MM/DD\"]\n      },\n      datePickerInputProps: function (t) {\n        var e = t.dragValue,\n            n = t.mode,\n            r = t.format;\n        return o()({}, \"single\" === n && {\n          style: {\n            minWidth: \"100px\"\n          },\n          placeholder: r\n        }, \"multiple\" === n && {\n          style: {\n            minWidth: \"200px\"\n          },\n          placeholder: r + \", ...\"\n        }, \"range\" === n && {\n          style: o()({\n            minWidth: \"150px\"\n          }, e && {\n            color: \"rgba(0, 0, 0, 0.3)\"\n          }),\n          placeholder: r + \" - \" + r\n        });\n      },\n      datePickerUpdateOnInput: !1,\n      datePickerTintColor: \"#66B3CC\",\n      datePickerShowCaps: !1,\n      datePickerShowDayPopover: !0,\n      datePickerDisabledAttribute: {\n        contentStyle: function (t) {\n          var e = t.isHovered;\n          return o()({\n            color: \"#d98c8c\",\n            fontWeight: 600,\n            opacity: .6,\n            borderRadius: \"0\"\n          }, e && {\n            cursor: \"not-allowed\",\n            backgroundColor: \"transparent\"\n          });\n        }\n      },\n      popoverExpanded: !1,\n      popoverDirection: \"bottom\",\n      popoverAlign: \"left\",\n      popoverVisibility: s.a.HOVER,\n      popoverContentOffset: 10,\n      popoverKeepVisibleOnInput: !1,\n      maxSwipeTime: 300,\n      minHorizontalSwipeDistance: 60,\n      maxVerticalSwipeDistance: 80,\n      maxTapTolerance: 0,\n      maxTapDuration: 200,\n      highlight: {\n        animated: !0,\n        height: \"1.8rem\",\n        borderWidth: \"0\",\n        borderStyle: \"solid\",\n        opacity: 1\n      },\n      highlightCaps: {\n        animated: !0,\n        height: \"1.8rem\",\n        borderWidth: \"0\",\n        borderStyle: \"solid\",\n        opacity: 1\n      },\n      dot: {\n        diameter: \"5px\",\n        backgroundColor: \"#66b3cc\",\n        borderWidth: \"0\",\n        borderStyle: \"solid\",\n        borderRadius: \"50%\",\n        opacity: 1\n      },\n      bar: {\n        height: \"3px\",\n        backgroundColor: \"#66b3cc\",\n        borderWidth: \"0\",\n        borderStyle: \"solid\",\n        opacity: 1\n      },\n      themeStyles: {\n        wrapper: {\n          backgroundColor: \"#fafafa\",\n          border: \"1px solid #dadada\"\n        },\n        verticalDivider: {\n          borderLeft: \"1px solid #dadada\"\n        },\n        horizontalDivider: {\n          borderTop: \"1px solid #dadada\"\n        },\n        pane: null,\n        header: null,\n        headerTitle: null,\n        headerArrows: null,\n        headerHorizontalDivider: null,\n        weekdays: null,\n        weekdaysHorizontalDivider: null,\n        weeks: null,\n        dayCell: null,\n        dayCellNotInMonth: {\n          opacity: .4\n        },\n        dayContent: null,\n        dayContentHover: null,\n        dots: null,\n        bars: null,\n        dayPopoverContent: {\n          color: \"#333333\",\n          fontSize: \".8rem\",\n          whiteSpace: \"nowrap\"\n        },\n        navHeader: null,\n        navHeaderTitle: null,\n        navHeaderArrows: null,\n        navMonthCell: null,\n        navYearCell: null\n      }\n    };\n    e.a = c;\n\n    var l = function (t, e) {\n      return Object(u.e)(t) && t || Object(u.c)(t) && t(e) || t;\n    },\n        d = function () {\n      for (var t = arguments.length, e = Array(t), n = 0; n < t; n++) e[n] = arguments[n];\n\n      return i.a.apply(Object, [c].concat(e));\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    n.d(e, \"d\", function () {\n      return i;\n    }), n.d(e, \"b\", function () {\n      return a;\n    }), n.d(e, \"f\", function () {\n      return o;\n    }), n.d(e, \"a\", function () {\n      return s;\n    }), n.d(e, \"e\", function () {\n      return u;\n    }), n.d(e, \"c\", function () {\n      return c;\n    });\n\n    var r = function (t) {\n      return Object.prototype.toString.call(t).slice(8, -1);\n    },\n        i = function (t) {\n      return \"Number\" === r(t);\n    },\n        a = function (t) {\n      return \"Date\" === r(t);\n    },\n        o = function (t) {\n      return \"String\" === r(t);\n    },\n        s = function (t) {\n      return \"Array\" === r(t);\n    },\n        u = function (t) {\n      return \"Object\" === r(t);\n    },\n        c = function (t) {\n      return \"Function\" === r(t);\n    };\n  }, function (t, e) {\n    var n = t.exports = {\n      version: \"2.5.3\"\n    };\n    \"number\" == typeof __e && (__e = n);\n  }, function (t, e, n) {\n    var r = n(37)(\"wks\"),\n        i = n(38),\n        a = n(9).Symbol,\n        o = \"function\" == typeof a;\n    (t.exports = function (t) {\n      return r[t] || (r[t] = o && a[t] || (o ? a : i)(\"Symbol.\" + t));\n    }).store = r;\n  }, function (t, e, n) {\n    var r = n(9),\n        i = n(5),\n        a = n(40),\n        o = n(18),\n        s = \"prototype\",\n        u = function (t, e, n) {\n      var c,\n          l,\n          d,\n          f = t & u.F,\n          h = t & u.G,\n          p = t & u.S,\n          v = t & u.P,\n          y = t & u.B,\n          m = t & u.W,\n          b = h ? i : i[e] || (i[e] = {}),\n          g = b[s],\n          D = h ? r : p ? r[e] : (r[e] || {})[s];\n      h && (n = e);\n\n      for (c in n) (l = !f && D && void 0 !== D[c]) && c in b || (d = l ? D[c] : n[c], b[c] = h && \"function\" != typeof D[c] ? n[c] : y && l ? a(d, r) : m && D[c] == d ? function (t) {\n        var e = function (e, n, r) {\n          if (this instanceof t) {\n            switch (arguments.length) {\n              case 0:\n                return new t();\n\n              case 1:\n                return new t(e);\n\n              case 2:\n                return new t(e, n);\n            }\n\n            return new t(e, n, r);\n          }\n\n          return t.apply(this, arguments);\n        };\n\n        return e[s] = t[s], e;\n      }(d) : v && \"function\" == typeof d ? a(Function.call, d) : d, v && ((b.virtual || (b.virtual = {}))[c] = d, t & u.R && g && !g[c] && o(g, c, d)));\n    };\n\n    u.F = 1, u.G = 2, u.S = 4, u.P = 8, u.B = 16, u.W = 32, u.U = 64, u.R = 128, t.exports = u;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    n.d(e, \"a\", function () {\n      return p;\n    }), n.d(e, \"b\", function () {\n      return v;\n    });\n\n    var r = n(3),\n        i = n(4),\n        a = /d{1,2}|W{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|([HhMsDm])\\1?|[aA]|\"[^\"]*\"|'[^']*'/g,\n        o = /\\d\\d?/,\n        s = /[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i,\n        u = /\\[([^]*?)\\]/gm,\n        c = function () {};\n\n    function l(t) {\n      return function (e, n, r) {\n        var i = r[t].indexOf(n.charAt(0).toUpperCase() + n.substr(1).toLowerCase());\n        ~i && (e.month = i);\n      };\n    }\n\n    function d(t, e) {\n      for (t = String(t), e = e || 2; t.length < e;) t = \"0\" + t;\n\n      return t;\n    }\n\n    var f = {\n      D: function (t) {\n        return t.getDate();\n      },\n      DD: function (t) {\n        return d(t.getDate());\n      },\n      Do: function (t, e) {\n        return e.DoFn(t.getDate());\n      },\n      d: function (t) {\n        return t.getDay();\n      },\n      dd: function (t) {\n        return d(t.getDay());\n      },\n      W: function (t, e) {\n        return e.dayNamesNarrow[t.getDay()];\n      },\n      WW: function (t, e) {\n        return e.dayNamesShorter[t.getDay()];\n      },\n      WWW: function (t, e) {\n        return e.dayNamesShort[t.getDay()];\n      },\n      WWWW: function (t, e) {\n        return e.dayNames[t.getDay()];\n      },\n      M: function (t) {\n        return t.getMonth() + 1;\n      },\n      MM: function (t) {\n        return d(t.getMonth() + 1);\n      },\n      MMM: function (t, e) {\n        return e.monthNamesShort[t.getMonth()];\n      },\n      MMMM: function (t, e) {\n        return e.monthNames[t.getMonth()];\n      },\n      YY: function (t) {\n        return String(t.getFullYear()).substr(2);\n      },\n      YYYY: function (t) {\n        return d(t.getFullYear(), 4);\n      },\n      h: function (t) {\n        return t.getHours() % 12 || 12;\n      },\n      hh: function (t) {\n        return d(t.getHours() % 12 || 12);\n      },\n      H: function (t) {\n        return t.getHours();\n      },\n      HH: function (t) {\n        return d(t.getHours());\n      },\n      m: function (t) {\n        return t.getMinutes();\n      },\n      mm: function (t) {\n        return d(t.getMinutes());\n      },\n      s: function (t) {\n        return t.getSeconds();\n      },\n      ss: function (t) {\n        return d(t.getSeconds());\n      },\n      S: function (t) {\n        return Math.round(t.getMilliseconds() / 100);\n      },\n      SS: function (t) {\n        return d(Math.round(t.getMilliseconds() / 10), 2);\n      },\n      SSS: function (t) {\n        return d(t.getMilliseconds(), 3);\n      },\n      a: function (t, e) {\n        return t.getHours() < 12 ? e.amPm[0] : e.amPm[1];\n      },\n      A: function (t, e) {\n        return t.getHours() < 12 ? e.amPm[0].toUpperCase() : e.amPm[1].toUpperCase();\n      },\n      ZZ: function (t) {\n        var e = t.getTimezoneOffset();\n        return (e > 0 ? \"-\" : \"+\") + d(100 * Math.floor(Math.abs(e) / 60) + Math.abs(e) % 60, 4);\n      }\n    },\n        h = {\n      D: [o, function (t, e) {\n        t.day = e;\n      }],\n      Do: [new RegExp(o.source + s.source), function (t, e) {\n        t.day = parseInt(e, 10);\n      }],\n      d: [o, c],\n      W: [s, c],\n      M: [o, function (t, e) {\n        t.month = e - 1;\n      }],\n      MMM: [s, l(\"monthNamesShort\")],\n      MMMM: [s, l(\"monthNames\")],\n      YY: [o, function (t, e) {\n        var n = +new Date().getFullYear().toString().substr(0, 2);\n        t.year = \"\" + (e > 68 ? n - 1 : n) + e;\n      }],\n      YYYY: [/\\d{4}/, function (t, e) {\n        t.year = e;\n      }],\n      S: [/\\d/, function (t, e) {\n        t.millisecond = 100 * e;\n      }],\n      SS: [/\\d{2}/, function (t, e) {\n        t.millisecond = 10 * e;\n      }],\n      SSS: [/\\d{3}/, function (t, e) {\n        t.millisecond = e;\n      }],\n      h: [o, function (t, e) {\n        t.hour = e;\n      }],\n      m: [o, function (t, e) {\n        t.minute = e;\n      }],\n      s: [o, function (t, e) {\n        t.second = e;\n      }],\n      a: [s, function (t, e, n) {\n        var r = e.toLowerCase();\n        r === n.amPm[0] ? t.isPm = !1 : r === n.amPm[1] && (t.isPm = !0);\n      }],\n      ZZ: [/([\\+\\-]\\d\\d:?\\d\\d|Z)/, function (t, e) {\n        \"Z\" === e && (e = \"+00:00\");\n        var n = (\"\" + e).match(/([+-]|\\d\\d)/gi);\n\n        if (n) {\n          var r = 60 * n[1] + parseInt(n[2], 10);\n          t.timezoneOffset = \"+\" === n[0] ? r : -r;\n        }\n      }]\n    };\n    h.DD = h.D, h.dd = h.d, h.WWWW = h.WWW = h.WW = h.W, h.MM = h.M, h.mm = h.m, h.hh = h.H = h.HH = h.h, h.ss = h.s, h.A = h.a;\n\n    var p = function (t, e) {\n      if (\"number\" == typeof t && (t = new Date(t)), \"[object Date]\" !== Object.prototype.toString.call(t) || isNaN(t.getTime())) throw new Error(\"Invalid Date in fecha.format\");\n      var n = [];\n      return (e = (e = (e = r.a.masks[e] || e).replace(u, function (t, e) {\n        return n.push(e), \"??\";\n      })).replace(a, function (e) {\n        return e in f ? f[e](t, r.a) : e.slice(1, e.length - 1);\n      })).replace(/\\?\\?/g, function () {\n        return n.shift();\n      });\n    },\n        v = function (t, e) {\n      return (Object(i.a)(e) && e || [Object(i.f)(e) && e || \"YYYY-MM-DD\"]).map(function (e) {\n        return function (t, e) {\n          if (\"string\" != typeof e) throw new Error(\"Invalid mask in fecha.parse\");\n          if (e = r.a.masks[e] || e, t.length > 1e3) return !1;\n          var n = !0,\n              i = {};\n          if (e.replace(a, function (e) {\n            if (h[e]) {\n              var a = h[e],\n                  o = t.search(a[0]);\n              ~o ? t.replace(a[0], function (e) {\n                return a[1](i, e, r.a), t = t.substr(o + e.length), e;\n              }) : n = !1;\n            }\n\n            return h[e] ? \"\" : e.slice(1, e.length - 1);\n          }), !n) return !1;\n          var o = new Date();\n          !0 === i.isPm && null != i.hour && 12 != +i.hour ? i.hour = +i.hour + 12 : !1 === i.isPm && 12 == +i.hour && (i.hour = 0);\n          var s = void 0;\n          return null != i.timezoneOffset ? (i.minute = +(i.minute || 0) - +i.timezoneOffset, s = new Date(Date.UTC(i.year || o.getFullYear(), i.month || 0, i.day || 1, i.hour || 0, i.minute || 0, i.second || 0, i.millisecond || 0))) : s = new Date(i.year || o.getFullYear(), i.month || 0, i.day || 1, i.hour || 0, i.minute || 0, i.second || 0, i.millisecond || 0), s;\n        }(t, e);\n      }).find(function (t) {\n        return t;\n      }) || new Date(t);\n    };\n  }, function (t, e) {\n    var n = t.exports = \"undefined\" != typeof window && window.Math == Math ? window : \"undefined\" != typeof self && self.Math == Math ? self : Function(\"return this\")();\n    \"number\" == typeof __g && (__g = n);\n  }, function (t, e, n) {\n    var r = n(19),\n        i = n(67),\n        a = n(68),\n        o = Object.defineProperty;\n    e.f = n(11) ? Object.defineProperty : function (t, e, n) {\n      if (r(t), e = a(e, !0), r(n), i) try {\n        return o(t, e, n);\n      } catch (t) {}\n      if (\"get\" in n || \"set\" in n) throw TypeError(\"Accessors not supported!\");\n      return \"value\" in n && (t[e] = n.value), t;\n    };\n  }, function (t, e, n) {\n    t.exports = !n(20)(function () {\n      return 7 != Object.defineProperty({}, \"a\", {\n        get: function () {\n          return 7;\n        }\n      }).a;\n    });\n  }, function (t, e, n) {\n    \"use strict\";\n\n    e.__esModule = !0;\n    var r,\n        i = n(74),\n        a = (r = i, r && r.__esModule ? r : {\n      default: r\n    });\n\n    e.default = function (t) {\n      if (Array.isArray(t)) {\n        for (var e = 0, n = Array(t.length); e < t.length; e++) n[e] = t[e];\n\n        return n;\n      }\n\n      return (0, a.default)(t);\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    n.d(e, \"a\", function () {\n      return s;\n    });\n    var r = n(0),\n        i = n.n(r),\n        a = n(14),\n        o = n.n(a),\n        s = {\n      methods: {\n        mergeListeners: function (t) {\n          var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.$listeners;\n          return o()(t).reduce(function (e, n) {\n            return e[n] = e[n] ? [e[n], t[n]] : t[n], e;\n          }, i()({}, e));\n        }\n      }\n    };\n  }, function (t, e, n) {\n    t.exports = {\n      default: n(60),\n      __esModule: !0\n    };\n  }, function (t, e, n) {\n    var r = n(25);\n\n    t.exports = function (t) {\n      return Object(r(t));\n    };\n  }, function (t, e, n) {\n    var r = n(62),\n        i = n(39);\n\n    t.exports = Object.keys || function (t) {\n      return r(t, i);\n    };\n  }, function (t, e) {\n    var n = {}.hasOwnProperty;\n\n    t.exports = function (t, e) {\n      return n.call(t, e);\n    };\n  }, function (t, e, n) {\n    var r = n(10),\n        i = n(30);\n    t.exports = n(11) ? function (t, e, n) {\n      return r.f(t, e, i(1, n));\n    } : function (t, e, n) {\n      return t[e] = n, t;\n    };\n  }, function (t, e, n) {\n    var r = n(29);\n\n    t.exports = function (t) {\n      if (!r(t)) throw TypeError(t + \" is not an object!\");\n      return t;\n    };\n  }, function (t, e) {\n    t.exports = function (t) {\n      try {\n        return !!t();\n      } catch (t) {\n        return !0;\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(43);\n\n    var i = function (t) {\n      n(73);\n    },\n        a = n(1)(r.a, null, !1, i, \"data-v-bc55024c\", null);\n\n    e.a = a.exports;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(46),\n        i = n(101);\n\n    var a = function (t) {\n      n(95);\n    },\n        o = n(1)(r.a, i.a, !1, a, \"data-v-1ad2436f\", null);\n\n    e.a = o.exports;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    e.a = v;\n    var r = n(0),\n        i = n.n(r),\n        a = n(14),\n        o = n.n(a),\n        s = n(4),\n        u = n(3),\n        c = n(2),\n        l = n(8),\n        d = 864e5;\n\n    function f(t, e) {\n      var n = t.toRange(),\n          r = e.toRange(),\n          i = null,\n          a = null;\n      return n.start ? i = r.start ? n.start < r.start ? n.start : r.start : n.start : r.start && (i = r.start), n.end && (!i || n.end >= i) && (a = n.end), r.end && (!i || r.end >= i) && (!a || r.end < a) && (a = r.end), {\n        start: i,\n        end: a\n      };\n    }\n\n    function h(t, e) {\n      return t.isDate ? e.isDate ? t.dateTime === e.dateTime : !(!e.startTime || !e.endTime) && t.dateTime === e.startTime && t.dateTime === e.endTime : e.isDate ? !(t.start && e.date < t.start) && !(t.end && e.date > t.end) : !(t.start && (!e.start || e.start < t.start)) && !(t.end && (!e.end || e.end > t.end));\n    }\n\n    function p(t) {\n      if (!t) return null;\n      var e = t.getMonth() + 1,\n          n = t.getUTCFullYear(),\n          r = Object(c.i)(e, n),\n          i = t.getDate(),\n          a = r.days - i + 1,\n          o = t.getDay() + 1,\n          s = Math.floor((i - 1) / 7 + 1),\n          u = Math.floor((r.days - i) / 7 + 1),\n          l = Math.ceil((i + Math.abs(r.firstWeekday - r.firstDayOfWeek)) / 7);\n      return {\n        day: i,\n        dayFromEnd: a,\n        weekday: o,\n        weekdayOrdinal: s,\n        weekdayOrdinalFromEnd: u,\n        week: l,\n        weekFromEnd: r.weeks - l + 1,\n        month: e,\n        year: n,\n        date: t,\n        dateTime: t.getTime()\n      };\n    }\n\n    function v(t, e) {\n      var n = new Date(t);\n      return n.setDate(n.getDate() + e), n;\n    }\n\n    function y(t, e) {\n      var n = t.start,\n          r = t.end;\n      if (!n || !r || !Object(s.c)(e)) return null;\n\n      for (var i = {\n        i: 0,\n        date: n,\n        day: p(n),\n        finished: !1\n      }, a = null; !i.finished && i.date <= r; i.i++) a = e(i), i.date = v(i.date, 1), i.day = p(i.date);\n\n      return a;\n    }\n\n    function m(t) {\n      var e = t.getDay() + 1,\n          n = u.a.firstDayOfWeek;\n      return v(t, e >= n ? n - e : -(7 - (n - e)));\n    }\n\n    function b(t, e) {\n      return Math.round((e - t) / d);\n    }\n\n    function g(t, e) {\n      return b(m(t), m(e));\n    }\n\n    function D(t, e) {\n      return e.getUTCFullYear() - t.getUTCFullYear();\n    }\n\n    function w(t, e) {\n      return 12 * D(t, e) + (e.getMonth() - t.getMonth());\n    }\n\n    var _ = {\n      dailyInterval: {\n        test: function (t, e, n) {\n          return b(n.start || new Date(), t.date) % e == 0;\n        }\n      },\n      weeklyInterval: {\n        test: function (t, e, n) {\n          return g(n.start || new Date(), t.date) % e == 0;\n        }\n      },\n      monthlyInterval: {\n        test: function (t, e, n) {\n          return w(n.start || new Date(), t.date) % e == 0;\n        }\n      },\n      yearlyInterval: {\n        test: function () {\n          return function (t, e, n) {\n            return D(n.start || new Date(), t.date) % e == 0;\n          };\n        }\n      },\n      days: {\n        validate: function (t) {\n          return Object(s.a)(t) ? t : [parseInt(t, 10)];\n        },\n        test: function (t, e) {\n          return e.includes(t.day) || e.includes(-t.dayFromEnd);\n        }\n      },\n      weekdays: {\n        validate: function (t) {\n          return Object(s.a)(t) ? t : [parseInt(t, 10)];\n        },\n        test: function (t, e) {\n          return e.includes(t.weekday);\n        }\n      },\n      ordinalWeekdays: {\n        validate: function (t) {\n          return o()(t).reduce(function (e, n) {\n            var r = t[n];\n            return r ? (e[n] = Object(s.a)(r) ? r : [parseInt(r, 10)], e) : e;\n          }, {});\n        },\n        test: function (t, e) {\n          return o()(e).map(function (t) {\n            return parseInt(t, 10);\n          }).find(function (n) {\n            return e[n].includes(t.weekday) && (n === t.weekdayOrdinal || n === -t.weekdayOrdinalFromEnd);\n          });\n        }\n      },\n      weekends: {\n        validate: function (t) {\n          return t;\n        },\n        test: function (t) {\n          return 1 === t.weekday || 7 === t.weekday;\n        }\n      },\n      workweek: {\n        validate: function (t) {\n          return t;\n        },\n        test: function (t) {\n          return t.weekday >= 2 && t.weekday <= 6;\n        }\n      },\n      weeks: {\n        validate: function (t) {\n          return Object(s.a)(t) ? t : [parseInt(t, 10)];\n        },\n        test: function (t, e) {\n          return e.includes(t.week) || e.includes(-t.weekFromEnd);\n        }\n      },\n      months: {\n        validate: function (t) {\n          return Object(s.a)(t) ? t : [parseInt(t, 10)];\n        },\n        test: function (t, e) {\n          return e.includes(t.month);\n        }\n      },\n      years: {\n        validate: function (t) {\n          return Object(s.a)(t) ? t : [parseInt(t, 10)];\n        },\n        test: function (t, e) {\n          return e.includes(t.year);\n        }\n      }\n    },\n        O = o()(_).map(function (t) {\n      return {\n        name: t,\n        validate: _[t].validate\n      };\n    }),\n        C = function (t, e, n) {\n      return Object(s.c)(t) ? t(e) : Object(s.e)(t) ? o()(t).every(function (r) {\n        return _[r].test(e, t[r], n);\n      }) : null;\n    };\n\n    e.b = function t(e, n) {\n      if (!e) return null;\n      var r = {\n        isDateInfo: !0,\n        isDate: Object(s.b)(e) || Object(s.f)(e) || Object(s.d)(e),\n        isRange: Object(s.e)(e) || Object(s.c)(e),\n        order: n || 0\n      };\n\n      if (r.isDate) {\n        r.type = \"date\";\n        var a = !Object(s.f)(e) && new Date(e) || Object(l.b)(e, u.a.formats.data || [\"L\", \"YYYY-MM-DD\", \"YYYY/MM/DD\"]);\n        if (isNaN(a)) return null;\n        a.setHours(0, 0, 0, 0), r.date = a, r.dateTime = a.getTime();\n      }\n\n      if (r.isRange) {\n        if (r.type = \"range\", Object(s.c)(e)) r.on = {\n          and: e\n        };else {\n          var o = e.start && new Date(e.start),\n              d = e.end && new Date(e.end);\n\n          if (o && d && o > d) {\n            var p = o;\n            o = d, d = p;\n          } else o && e.span >= 1 && (d = v(o, e.span - 1));\n\n          o && (isNaN(o.getTime()) ? o = null : o.setHours(0, 0, 0, 0)), d && (isNaN(d.getTime()) ? d = null : d.setHours(0, 0, 0, 0)), r.start = o, r.end = d, r.startTime = o && o.getTime(), r.endTime = d && d.getTime(), o && d && (r.daySpan = b(o, d), r.weekSpan = g(o, d), r.monthSpan = w(o, d), r.yearSpan = D(o, d));\n          var m = Object(c.r)(e, {}, O);\n\n          if (m.assigned && (r.on = {\n            and: m.target\n          }), e.on) {\n            var _ = (Object(s.a)(e.on) ? e.on : [e.on]).map(function (t) {\n              if (Object(s.c)(t)) return t;\n              var e = Object(c.r)(t, {}, O);\n              return e.assigned ? e.target : null;\n            }).filter(function (t) {\n              return t;\n            });\n\n            _.length && (r.on = i()({}, r.on, {\n              or: _\n            }));\n          }\n        }\n        r.isComplex = !!r.on;\n      }\n\n      return r.shallowIntersectsDate = function (e) {\n        return n = r, i = e.isDate ? e : t(e), n.isDate ? i.isDate ? n.dateTime === i.dateTime : h(i, n) : i.isDate ? h(n, i) : !(n.start && i.end && n.start > i.end || n.end && i.start && n.end < i.start);\n        var n, i;\n      }, r.intersectsDate = function (e) {\n        var n = e.isDateInfo ? e : t(e);\n        if (!r.shallowIntersectsDate(n)) return null;\n        if (!r.on) return r;\n        var i = !1;\n        return y(f(r, n), function (t) {\n          r.matchesDay(t.day) && (i = i || n.matchesDay(t.day), t.finished = i);\n        }), i;\n      }, r.shallowIncludesDate = function (e) {\n        return h(r, e.isDate ? e : t(e));\n      }, r.includesDate = function (e) {\n        var n = e.isDateInfo ? e : t(e);\n        if (!r.shallowIncludesDate(n)) return !1;\n        if (!r.on) return !0;\n        var i = !0;\n        return y(f(r, n), function (t) {\n          r.matchesDay(t.day) && (i = i && n.matchesDay(t.day), t.finished = !i);\n        }), i;\n      }, r.includesDay = function (e) {\n        var n = t(e.date);\n        return r.shallowIncludesDate(n) && r.matchesDay(e) ? r : null;\n      }, r.matchesDay = function (t) {\n        return !(r.on && (r.on.and && !C(r.on.and, t, r) || r.on.or && !r.on.or.find(function (e) {\n          return C(e, t, r);\n        })));\n      }, r.toRange = function () {\n        return r.isDate ? t({\n          start: r.date,\n          end: r.date\n        }) : t({\n          start: r.start,\n          end: r.end\n        });\n      }, r.compare = function (t) {\n        if (r.order !== t.order) return r.order - t.order;\n        if (r.type !== t.type) return r.isDate ? 1 : -1;\n        if (r.isDate) return 0;\n        var e = r.start - t.start;\n        return 0 !== e ? e : r.end - t.end;\n      }, r;\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    n.d(e, \"e\", function () {\n      return o;\n    }), n.d(e, \"f\", function () {\n      return l;\n    }), n.d(e, \"b\", function () {\n      return h;\n    }), n.d(e, \"c\", function () {\n      return p;\n    }), n.d(e, \"d\", function () {\n      return D;\n    });\n\n    var r = n(4),\n        i = n(2),\n        a = n(23),\n        o = function (t) {\n      return Object(r.b)(t) && !isNaN(t.getTime());\n    },\n        s = function (t, e) {\n      return o(t) ? e(t) : \"\";\n    },\n        u = function (t, e) {\n      var n = e(t.trim());\n      return o(n) ? n : null;\n    },\n        c = function (t) {\n      var e = t.value,\n          n = t.isRequired,\n          r = t.disabled,\n          i = t.fallbackValue;\n      return !o(e) && n ? i : o(e) && r && r.intersectsDate(e) ? null : e;\n    },\n        l = function (t, e) {\n      return !o(t) && !o(e) || !(!o(t) || !o(e)) && t.getTime() === e.getTime();\n    },\n        d = function (t) {\n      if (!o(t)) return null;\n      var e = Object(i.d)(t);\n      return {\n        from: e,\n        to: e\n      };\n    },\n        f = function (t, e) {\n      return {\n        componentName: \"single-date-picker\",\n        hasValue: o,\n        formatValue: function (e) {\n          return s(e, t);\n        },\n        parseValue: function (t) {\n          return u(t, e);\n        },\n        normalizeValue: function (t) {\n          return (e = t) && new Date(e);\n          var e;\n        },\n        filterDisabled: c,\n        valuesAreEqual: l,\n        getPageRange: d\n      };\n    },\n        h = function (t) {\n      return Object(i.a)(t);\n    },\n        p = function (t) {\n      if (!t || !t.length) return null;\n      var e = {};\n      return t.filter(function (t) {\n        var n = t.getTime();\n        return !Object.prototype.hasOwnProperty.call(e, n) && (e[n] = !0);\n      }).sort(function (t, e) {\n        return t.getTime() - e.getTime();\n      });\n    },\n        v = function (t) {\n      var e = t.value,\n          n = t.isRequired,\n          r = t.disabled,\n          i = t.fallbackValue,\n          a = e && e.filter(function (t) {\n        return !r || !r.intersectsDate(t);\n      });\n      return !h(a) && n ? i : a;\n    },\n        y = function (t, e) {\n      var n = Object(i.a)(t),\n          r = Object(i.a)(e);\n      return !n && !r || !(!n || !r || n !== r) && t.every(function (t) {\n        return e.includes(t);\n      });\n    },\n        m = function (t) {\n      if (!h(t)) return null;\n      var e = Object(i.d)(t[0]);\n      return {\n        from: e,\n        to: Object(i.h)(Object(i.d)(Object(i.g)(t)), Object(i.l)(e))\n      };\n    },\n        b = function (t, e) {\n      return {\n        componentName: \"multiple-date-picker\",\n        hasValue: h,\n        formatValue: function (e) {\n          return r = t, h(n = e) ? n.map(function (t) {\n            return r(t);\n          }).join(\", \") : \"\";\n          var n, r;\n        },\n        parseValue: function (t) {\n          return function (t, e) {\n            var n = t && t.split(\",\").map(function (t) {\n              return u(t, e);\n            }).filter(function (t) {\n              return o(t);\n            });\n            return n && n.length ? n : null;\n          }(t, e);\n        },\n        normalizeValue: function (t) {\n          return p(t);\n        },\n        filterDisabled: v,\n        valuesAreEqual: y,\n        getPageRange: m\n      };\n    },\n        g = function (t) {\n      return t && t.start && t.end;\n    },\n        D = function (t) {\n      if (!t || !t.start || !t.end) return null;\n      var e = new a.b({\n        start: new Date(t.start),\n        end: new Date(t.end)\n      });\n      return {\n        start: e.start,\n        end: e.end\n      };\n    },\n        w = function (t) {\n      var e = t.value,\n          n = t.isRequired,\n          r = t.disabled,\n          i = t.fallbackValue;\n      return !g(e) && n ? i : g(e) && r && r.intersectsDate(e) ? null : e;\n    },\n        _ = function (t, e) {\n      return !g(t) && !g(e) || !(!g(t) || !g(e)) && l(t.start, e.start) && l(t.end, e.end);\n    },\n        O = function (t) {\n      if (!g(t)) return null;\n      var e = Object(i.d)(t.start);\n      return {\n        from: e,\n        to: Object(i.h)(Object(i.d)(t.end), Object(i.l)(e))\n      };\n    },\n        C = function (t, e) {\n      return {\n        componentName: \"date-range-picker\",\n        hasValue: g,\n        formatValue: function (e, n) {\n          return function (t, e, n) {\n            var r = void 0,\n                i = void 0;\n            return e ? (r = s(e.start, n), i = s(e.end, n)) : t && (r = s(t.start, n), i = s(t.end, n)), r || i ? i ? r + \" - \" + i : r : \"\";\n          }(e, n, t);\n        },\n        normalizeValue: function (t) {\n          return D(t);\n        },\n        parseValue: function (t) {\n          return function (t, e) {\n            var n = t.split(\"-\").map(function (t) {\n              return t.trim();\n            });\n\n            if (n.length >= 2) {\n              var r = Object(a.b)({\n                start: u(n[0], e),\n                end: u(n[1], e)\n              }),\n                  i = r.start,\n                  o = r.end;\n              return i && o && {\n                start: i,\n                end: o\n              };\n            }\n\n            return null;\n          }(t, e);\n        },\n        filterDisabled: w,\n        valuesAreEqual: _,\n        getPageRange: O\n      };\n    };\n\n    e.a = function (t, e, n) {\n      switch (t) {\n        case \"single\":\n          return f(e, n);\n\n        case \"multiple\":\n          return b(e, n);\n\n        case \"range\":\n          return C(e, n);\n\n        default:\n          return null;\n      }\n    };\n  }, function (t, e) {\n    t.exports = function (t) {\n      if (void 0 == t) throw TypeError(\"Can't call method on  \" + t);\n      return t;\n    };\n  }, function (t, e, n) {\n    var r = n(34),\n        i = n(25);\n\n    t.exports = function (t) {\n      return r(i(t));\n    };\n  }, function (t, e) {\n    var n = Math.ceil,\n        r = Math.floor;\n\n    t.exports = function (t) {\n      return isNaN(t = +t) ? 0 : (t > 0 ? r : n)(t);\n    };\n  }, function (t, e, n) {\n    var r = n(37)(\"keys\"),\n        i = n(38);\n\n    t.exports = function (t) {\n      return r[t] || (r[t] = i(t));\n    };\n  }, function (t, e) {\n    t.exports = function (t) {\n      return \"object\" == typeof t ? null !== t : \"function\" == typeof t;\n    };\n  }, function (t, e) {\n    t.exports = function (t, e) {\n      return {\n        enumerable: !(1 & t),\n        configurable: !(2 & t),\n        writable: !(4 & t),\n        value: e\n      };\n    };\n  }, function (t, e, n) {\n    t.exports = {\n      default: n(69),\n      __esModule: !0\n    };\n  }, function (t, e) {\n    t.exports = {};\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(52),\n        i = n(118);\n\n    var a = function (t) {\n      n(117);\n    },\n        o = n(1)(r.a, i.a, !1, a, \"data-v-12e91ab4\", null);\n\n    e.a = o.exports;\n  }, function (t, e, n) {\n    var r = n(35);\n    t.exports = Object(\"z\").propertyIsEnumerable(0) ? Object : function (t) {\n      return \"String\" == r(t) ? t.split(\"\") : Object(t);\n    };\n  }, function (t, e) {\n    var n = {}.toString;\n\n    t.exports = function (t) {\n      return n.call(t).slice(8, -1);\n    };\n  }, function (t, e, n) {\n    var r = n(27),\n        i = Math.min;\n\n    t.exports = function (t) {\n      return t > 0 ? i(r(t), 9007199254740991) : 0;\n    };\n  }, function (t, e, n) {\n    var r = n(9),\n        i = \"__core-js_shared__\",\n        a = r[i] || (r[i] = {});\n\n    t.exports = function (t) {\n      return a[t] || (a[t] = {});\n    };\n  }, function (t, e) {\n    var n = 0,\n        r = Math.random();\n\n    t.exports = function (t) {\n      return \"Symbol(\".concat(void 0 === t ? \"\" : t, \")_\", (++n + r).toString(36));\n    };\n  }, function (t, e) {\n    t.exports = \"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\");\n  }, function (t, e, n) {\n    var r = n(66);\n\n    t.exports = function (t, e, n) {\n      if (r(t), void 0 === e) return t;\n\n      switch (n) {\n        case 1:\n          return function (n) {\n            return t.call(e, n);\n          };\n\n        case 2:\n          return function (n, r) {\n            return t.call(e, n, r);\n          };\n\n        case 3:\n          return function (n, r, i) {\n            return t.call(e, n, r, i);\n          };\n      }\n\n      return function () {\n        return t.apply(e, arguments);\n      };\n    };\n  }, function (t, e, n) {\n    var r = n(29),\n        i = n(9).document,\n        a = r(i) && r(i.createElement);\n\n    t.exports = function (t) {\n      return a ? i.createElement(t) : {};\n    };\n  }, function (t, e) {\n    e.f = {}.propertyIsEnumerable;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(12),\n        i = n.n(r),\n        a = n(0),\n        o = n.n(a),\n        s = n(93),\n        u = n(121),\n        c = n(3),\n        l = n(13),\n        d = n(2);\n    e.a = {\n      mixins: [l.a],\n      render: function (t) {\n        var e = this,\n            n = function (n) {\n          return t(s.a, {\n            attrs: o()({}, e.$attrs, {\n              position: n,\n              page: n < 2 ? e.fromPage_ : e.toPage_,\n              minPage: n < 2 ? e.minPage_ : e.minToPage,\n              maxPage: n < 2 ? e.maxFromPage : e.maxPage_,\n              hideRightButton: !e.showLinkedButtons && 1 === n && e.isLinked && !e.isVertical,\n              hideLeftButton: !e.showLinkedButtons && 2 === n && e.isLinked && !e.isVertical,\n              paneWidth: e.paneWidth,\n              styles: e.themeStyles_,\n              attributes: e.attributes_,\n              formats: e.formats_\n            }),\n            on: e.mergeListeners({\n              \"update:page\": function (t) {\n                n < 2 ? e.fromPage_ = t : e.toPage_ = t;\n              }\n            }),\n            slots: e.$slots,\n            scopedSlots: e.$scopedSlots\n          });\n        };\n\n        return t(\"div\", {\n          class: {\n            \"c-pane-container\": !0,\n            \"is-vertical\": this.isVertical,\n            \"is-expanded\": this.isExpanded\n          },\n          style: this.wrapperStyle,\n          ref: \"root\"\n        }, [n(this.isDoublePaned_ ? 1 : 0)].concat(i()(this.isDoublePaned_ && [t(\"div\", {\n          class: \"c-pane-div\",\n          style: this.dividerStyle\n        }), n(2)])));\n      },\n      name: \"VCalendar\",\n      components: {\n        CalendarPane: s.a\n      },\n      props: {\n        minDate: Date,\n        maxDate: Date,\n        minPage: Object,\n        maxPage: Object,\n        fromPage: Object,\n        toPage: Object,\n        showLinkedButtons: {\n          type: Boolean,\n          default: function () {\n            return c.a.showLinkedButtons;\n          }\n        },\n        isDoublePaned: Boolean,\n        isLinked: Boolean,\n        isVertical: Boolean,\n        isExpanded: Boolean,\n        paneWidth: {\n          type: Number,\n          default: function () {\n            return c.a.paneWidth;\n          }\n        },\n        themeStyles: Object,\n        attributes: Array,\n        formats: Object\n      },\n      data: function () {\n        return {\n          isConstrained: !0,\n          fromPage_: null,\n          toPage_: null\n        };\n      },\n      computed: {\n        isDoublePaned_: function () {\n          return this.isDoublePaned && (this.isVertical || !this.isConstrained);\n        },\n        minPage_: function () {\n          return this.minPage || this.minDate && Object(d.n)(this.minDate) || null;\n        },\n        rightButtonHidden: function () {\n          return 1 === this.position && this.isLinked && !this.isVertical;\n        },\n        leftButtonHidden: function () {\n          return 2 === this.position && this.isLinked && !this.isVertical;\n        },\n        maxPage_: function () {\n          return this.maxPage || this.maxDate && Object(d.n)(this.maxDate) || null;\n        },\n        maxFromPage: function () {\n          return this.isDoublePaned_ ? Object(d.p)(this.maxPage_) : this.maxPage_;\n        },\n        minToPage: function () {\n          return this.isDoublePaned_ ? Object(d.l)(this.minPage_) : null;\n        },\n        themeStyles_: function () {\n          return o()({}, c.a.themeStyles, this.themeStyles);\n        },\n        wrapperStyle: function () {\n          return this.themeStyles_.wrapper;\n        },\n        dividerStyle: function () {\n          return this.isVertical ? this.themeStyles_.horizontalDivider : this.themeStyles_.verticalDivider;\n        },\n        attributes_: function () {\n          return Object(u.a)(this.attributes);\n        },\n        formats_: function () {\n          return o()({}, c.a.formats, this.formats);\n        }\n      },\n      watch: {\n        fromPage: function () {\n          this.refreshFromPage();\n        },\n        toPage: function () {\n          this.refreshToPage();\n        },\n        fromPage_: function (t, e) {\n          Object(d.w)(t, e) || (this.$emit(\"update:frompage\", t), this.$emit(\"update:fromPage\", t), this.isDoublePaned && (!this.isLinked && Object(d.u)(t, this.toPage_) || (this.toPage_ = Object(d.l)(t))));\n        },\n        toPage_: function (t, e) {\n          Object(d.w)(t, e) || (this.$emit(\"update:topage\", t), this.$emit(\"update:toPage\", t), this.isDoublePaned && (!this.isLinked && Object(d.t)(t, this.fromPage_) || (this.fromPage_ = Object(d.p)(t))));\n        },\n        isDoublePaned_: function () {\n          this.refreshIsConstrained(), this.refreshToPage();\n        },\n        isLinked: function (t) {\n          t && (this.toPage_ = Object(d.l)(this.fromPage_));\n        },\n        isExpanded: function () {\n          this.refreshIsConstrained();\n        }\n      },\n      created: function () {\n        this.refreshFromPage(), this.refreshToPage();\n      },\n      mounted: function () {\n        var t = this;\n        this.$nextTick(function () {\n          t.refreshIsConstrained(), window.addEventListener(\"resize\", t.refreshIsConstrained);\n        });\n      },\n      beforeDestroy: function () {\n        window.removeEventListener(\"resize\", this.refreshIsConstrained);\n      },\n      methods: {\n        refreshFromPage: function () {\n          var t = this;\n          this.fromPage_ = d.f.apply(void 0, i()([this.fromPage, {\n            month: d.x.month,\n            year: d.x.year\n          }].map(function (e) {\n            return Object(d.m)(e, t.minPage_, t.maxPage_);\n          })).concat([this.minPage_, Object(d.p)(this.maxPage_)]));\n        },\n        refreshToPage: function () {\n          var t = this;\n          this.toPage_ = d.f.apply(void 0, i()([this.toPage, Object(d.l)(this.fromPage_)].map(function (e) {\n            return Object(d.m)(e, t.minPage_, t.maxPage_);\n          })).concat([this.maxPage_, Object(d.l)(this.minPage_)]));\n        },\n        refreshIsConstrained: function () {\n          var t = this.$refs.root;\n          window && t && this.isDoublePaned && !this.isVertical ? window && window.innerWidth < 2 * this.paneWidth + 30 ? this.isConstrained = !0 : this.isExpanded ? this.isConstrained = t.parentElement.offsetWidth < 2 * this.paneWidth + 2 : this.isConstrained = !1 : this.isConstrained = !1;\n        }\n      }\n    };\n  }, function (t, e, n) {\n    var r = n(10).f,\n        i = n(17),\n        a = n(6)(\"toStringTag\");\n\n    t.exports = function (t, e, n) {\n      t && !i(t = n ? t : t.prototype, a) && r(t, a, {\n        configurable: !0,\n        value: e\n      });\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(0),\n        i = n.n(r),\n        a = n(22),\n        o = n(102),\n        s = n(111),\n        u = n(33),\n        c = n(3),\n        l = n(2),\n        d = n(8),\n        f = n(2);\n    e.a = {\n      components: {\n        CalendarWeeks: o.a,\n        CalendarNav: s.a,\n        Popover: a.a,\n        SvgIcon: u.a\n      },\n      props: {\n        position: {\n          type: Number,\n          default: 1\n        },\n        page: {\n          type: Object,\n          default: function () {\n            return f.x;\n          }\n        },\n        navVisibility: {\n          type: String,\n          default: function () {\n            return c.a.navVisibility;\n          }\n        },\n        minPage: Object,\n        maxPage: Object,\n        styles: Object,\n        formats: Object,\n        titlePosition: {\n          type: String,\n          default: function () {\n            return c.a.titlePosition;\n          }\n        },\n        titleTransition: {\n          type: String,\n          default: function () {\n            return c.a.titleTransition;\n          }\n        },\n        weeksTransition: {\n          type: String,\n          default: function () {\n            return c.a.weeksTransition;\n          }\n        },\n        paneWidth: Number,\n        hideLeftButton: Boolean,\n        hideRightButton: Boolean\n      },\n      data: function () {\n        return {\n          todayComps: f.x,\n          pages: [],\n          page_: null,\n          transitionDirection: \"\",\n          touchState: {},\n          navForceHidden: !1,\n          weeksTransitioning: !1,\n          moveTimeout: null\n        };\n      },\n      computed: {\n        navSlots: function () {\n          var t = this;\n          return [\"nav-left-button\", \"nav-right-button\"].filter(function (e) {\n            return t.$scopedSlots[e];\n          });\n        },\n        weekdayLabels: function () {\n          var t = this;\n          return Object(l.q)({\n            firstDayOfWeek: c.a.firstDayOfWeek\n          }).map(function (e) {\n            return Object(d.a)(e, t.formats.weekdays);\n          });\n        },\n        titleClass: function () {\n          return this.titlePosition ? \"align-\" + this.titlePosition : \"\";\n        },\n        titleTransition_: function () {\n          return this.getTransitionName(\"title\", this.titleTransition, this.transitionDirection);\n        },\n        weeksTransition_: function () {\n          return this.getTransitionName(\"weeks\", this.weeksTransition, this.transitionDirection);\n        },\n        paneStyle: function () {\n          return {\n            minWidth: this.paneWidth + \"px\"\n          };\n        },\n        headerStyle: function () {\n          return Object(l.c)(this.styles.header, this.page_);\n        },\n        titleStyle: function () {\n          return Object(l.c)(this.styles.headerTitle, this.page_);\n        },\n        arrowStyle: function () {\n          return Object(l.c)(this.styles.headerArrows, this.page_);\n        },\n        headerHorizontalDividerStyle_: function () {\n          return Object(l.c)(this.styles.headerHorizontalDivider, this.page_);\n        },\n        weekdaysStyle_: function () {\n          return Object(l.c)(this.styles.weekdays, this.page_);\n        },\n        weekdaysHorizontalDividerStyle_: function () {\n          return Object(l.c)(this.styles.weekdaysHorizontalDivider, this.page_);\n        },\n        weeksStyle_: function () {\n          return i()({}, Object(l.c)(this.styles.weeks, this.page_), this.weeksTransitioning ? {\n            overflow: \"hidden\"\n          } : null);\n        },\n        navWrapperStyle: function () {\n          return i()({\n            padding: \"1px\"\n          }, Object(l.c)(this.styles.navWrapper, this.page_));\n        },\n        canMovePrevMonth: function () {\n          return this.canMove(this.page_.prevMonthComps);\n        },\n        canMoveNextMonth: function () {\n          return this.canMove(this.page_.nextMonthComps);\n        }\n      },\n      watch: {\n        page: function (t) {\n          this.move(t);\n        },\n        page_: function (t, e) {\n          this.transitionDirection = this.getTransitionDirection(e, t);\n        }\n      },\n      created: function () {\n        this.page ? this.page_ = this.loadPage(this.page) : (this.page_ = this.loadPage(f.x), this.$emit(\"update:page\", this.page_)), this.preloadPages();\n      },\n      methods: {\n        navPageSelected: function (t) {\n          this.navForceHidden = !0, this.move(t);\n        },\n        monthIsDisabled: function (t) {\n          return this.minPage && this.yearNumber === this.minPage.year ? t < this.minPage.month : !(!this.maxPage || this.yearNumber !== this.maxPage.year) && t > this.maxPage.month;\n        },\n        yearIsDisabled: function (t) {\n          return !!(this.minPage && t < this.minPage.year) || !!(this.maxPage && t > this.maxPage.year);\n        },\n        touchStart: function (t) {\n          var e = t.changedTouches[0];\n          this.touchState = {\n            active: !0,\n            startX: e.screenX,\n            startY: e.screenY,\n            startTime: new Date().getTime(),\n            isSwiping: !1,\n            isMonitoringSwipe: !0\n          };\n        },\n        touchMove: function (t) {\n          if (this.touchState.isMonitoringSwipe) {\n            if (new Date().getTime() - this.touchState.startTime <= 5) t.preventDefault();else {\n              var e = t.changedTouches[0],\n                  n = e.screenX - this.touchState.startX,\n                  r = e.screenY - this.touchState.startY;\n              Math.abs(n) >= Math.abs(r) && (this.touchState.isSwiping = !0, t.preventDefault()), this.touchState.isMonitoringSwipe = !1;\n            }\n          } else this.touchState.isSwiping && t.preventDefault();\n        },\n        touchEnd: function (t) {\n          var e = t.changedTouches[0],\n              n = e.screenX - this.touchState.startX,\n              r = e.screenY - this.touchState.startY;\n          new Date().getTime() - this.touchState.startTime < c.a.maxSwipeTime && Math.abs(n) >= c.a.minHorizontalSwipeDistance && Math.abs(r) <= c.a.maxVerticalSwipeDistance && (n < 0 ? this.moveNextMonth() : this.movePrevMonth());\n        },\n        canMove: function (t) {\n          return (!this.minPage || !Object(f.u)(t, this.minPage)) && (!this.maxPage || !Object(f.t)(t, this.maxPage));\n        },\n        movePrevYear: function () {\n          this.move({\n            month: this.page_.month,\n            year: this.page_.year - 1\n          });\n        },\n        movePrevMonth: function () {\n          this.move(this.page_.prevMonthComps);\n        },\n        moveThisMonth: function () {\n          this.move(f.x);\n        },\n        moveNextMonth: function () {\n          this.move(this.page_.nextMonthComps);\n        },\n        moveNextYear: function () {\n          this.move({\n            month: this.page_.month,\n            year: this.page_.year + 1\n          });\n        },\n        move: function (t) {\n          this.canMove(t) ? this.forceMove(t) : Object(f.u)(f.x, this.minPage) ? this.forceMove(this.minPage) : Object(f.t)(t, this.maxPage) && this.forceMove(this.maxPage);\n        },\n        forceMove: function (t) {\n          var e = new Date();\n          this.moveTimeout && e < this.moveTimeout || (this.moveTimeout = new Date(e.getTime() + 250), !t || t.month === this.page_.month && t.year === this.page_.year || (this.page_ = this.loadPage(t), this.$emit(\"update:page\", this.page_), this.preloadPages()));\n        },\n        loadPage: function (t) {\n          var e = this,\n              n = t.month,\n              r = t.year,\n              i = r.toString() + \".\" + n.toString(),\n              a = this.pages.find(function (t) {\n            return t.key === i;\n          });\n\n          if (!a) {\n            var o = new Date(r, n - 1, 15),\n                s = Object(f.i)(n, r),\n                u = Object(f.o)(n, r),\n                c = Object(f.k)(n, r);\n            a = {\n              key: i,\n              month: n,\n              year: r,\n              title: Object(d.a)(o, this.formats.title),\n              shortMonthLabel: Object(d.a)(o, \"MMM\"),\n              monthLabel: Object(d.a)(o, \"MMMM\"),\n              shortYearLabel: r.toString().substring(2),\n              yearLabel: r.toString(),\n              monthComps: s,\n              prevMonthComps: u,\n              nextMonthComps: c,\n              canMove: function (t) {\n                return e.canMove(t);\n              },\n              move: function (t) {\n                return e.move(t);\n              },\n              moveThisMonth: function () {\n                return e.moveThisMonth();\n              },\n              movePrevMonth: function () {\n                return e.move(u);\n              },\n              moveNextMonth: function () {\n                return e.move(c);\n              }\n            }, this.pages.push(a);\n          }\n\n          return a.position = this.position, a.loaded = !0, a;\n        },\n        preloadPages: function () {\n          var t = this;\n          this.$nextTick(function () {\n            t.loadPage(t.page_.prevMonthComps), t.loadPage(t.page_.nextMonthComps), t.pages = t.pages.filter(function (t) {\n              return t.loaded;\n            }), t.pages.forEach(function (t) {\n              t.loaded = !1;\n            });\n          });\n        },\n        getTransitionDirection: function (t, e) {\n          return t && e ? t.year !== e.year ? t.year < e.year ? \"next\" : \"prev\" : t.month !== e.month ? t.month < e.month ? \"next\" : \"prev\" : \"\" : \"\";\n        },\n        getTransitionName: function (t, e, n) {\n          return \"slide-h\" === e ? t + \"-\" + (\"next\" === n ? \"slide-left\" : \"slide-right\") : \"slide-v\" === e ? t + \"-\" + (\"next\" === n ? \"slide-up\" : \"slide-down\") : t + \"-\" + e;\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(96),\n        i = n.n(r),\n        a = n(3),\n        o = n(100),\n        s = n(2),\n        u = n(47);\n    e.a = {\n      props: {\n        isExpanded: {\n          type: Boolean,\n          default: function () {\n            return a.a.popoverExpanded;\n          }\n        },\n        direction: {\n          type: String,\n          default: function () {\n            return a.a.popoverDirection;\n          }\n        },\n        align: {\n          type: String,\n          default: function () {\n            return a.a.popoverAlign;\n          }\n        },\n        visibility: {\n          type: String,\n          default: function () {\n            return a.a.popoverVisibility;\n          }\n        },\n        isInteractive: Boolean,\n        forceHidden: Boolean,\n        toggleVisibleOnClick: Boolean,\n        contentStyle: Object,\n        contentOffset: {\n          type: Number,\n          default: function () {\n            return a.a.popoverContentOffset;\n          }\n        },\n        transition: {\n          type: String,\n          default: \"slide-fade\"\n        },\n        showClearMargin: Boolean\n      },\n      data: function () {\n        return {\n          hoverVisible: !1,\n          focusVisible: !1,\n          clearMargin: 0,\n          contentTransitioning: !1,\n          contentTransitioningCancelled: !1,\n          disableNextClick: !1,\n          windowTapClickRegistration: null\n        };\n      },\n      computed: {\n        containerStyle: function () {\n          return this.visible && i()({}, \"margin-\" + this.direction, this.clearMargin + \"px\");\n        },\n        contentWrapperStyle: function () {\n          var t = {};\n          return t[\"padding\" + this.contentOffsetDirection] = this.contentOffset + \"px\", t;\n        },\n        contentOffsetDirection: function () {\n          switch (this.direction) {\n            case \"bottom\":\n              return \"Top\";\n\n            case \"top\":\n              return \"Bottom\";\n\n            case \"left\":\n              return \"Right\";\n\n            case \"right\":\n              return \"Left\";\n\n            default:\n              return \"\";\n          }\n        },\n        visibilityIsManaged: function () {\n          return u.a.isManaged(this.visibility);\n        },\n        visible: function () {\n          return this.visibility === u.a.HOVER ? this.hoverVisible : this.visibility === u.a.FOCUS ? this.focusVisible : this.visibility === u.a.VISIBLE;\n        }\n      },\n      watch: {\n        forceHidden: function () {\n          this.hoverVisible || this.focusVisible ? (this.hoverVisible = !1, this.focusVisible = !1) : (this.$emit(\"update:forcehidden\", !1), this.$emit(\"update:forceHidden\", !1));\n        }\n      },\n      created: function () {\n        this.windowTapClickRegistration = Object(o.a)(window, this.windowTapOrClick);\n      },\n      mounted: function () {\n        this.refreshClearMargin();\n      },\n      beforeDestroy: function () {\n        this.windowTapClickRegistration.cleanup();\n      },\n      methods: {\n        focusin: function (t) {\n          this.contentTransitioning || (this.focusVisible || this.$emit(\"got-focus\", t), this.focusVisible = !0, this.disableNextClick = !0);\n        },\n        focusout: function (t) {\n          Object(s.b)(t.relatedTarget, this.$refs.popover) || (this.$emit(\"lost-focus\", t), this.focusVisible = !1);\n        },\n        click: function (t) {\n          !this.toggleVisibleOnClick || this.contentTransitioning || !Object(s.b)(t.target, this.$refs.popover) || Object(s.b)(t.target, this.$refs.popoverOrigin) || this.disableNextClick || (this.focusVisible = !this.focusVisible), this.disableNextClick = !1;\n        },\n        mousemove: function () {\n          this.forceHidden || this.contentTransitioning || (this.hoverVisible = !0);\n        },\n        mouseleave: function (t) {\n          this.forceHidden || Object(s.b)(t.relatedTarget, this.$refs.popover) || (this.hoverVisible = !1);\n        },\n        windowTapOrClick: function (t) {\n          Object(s.b)(t.target, this.$refs.popover) || (this.hoverVisible = !1, this.focusVisible = !1);\n        },\n        refreshClearMargin: function () {\n          if (this.showClearMargin && this.visible && this.$refs.popoverContent) {\n            var t = this.$refs.popoverContent.getBoundingClientRect(),\n                e = t.width,\n                n = t.height,\n                r = (\"left\" === this.direction || \"right\" === this.direction) && e || n;\n            this.clearMargin = r + this.contentOffset;\n          } else this.clearMargin = 0;\n        },\n        beforeContentEnter: function () {\n          this.contentTransitioning = !0, this.$emit(\"will-appear\");\n        },\n        contentEnter: function () {\n          this.refreshClearMargin();\n        },\n        afterContentEnter: function () {\n          this.contentTransitioning = !1, this.$emit(\"did-appear\");\n        },\n        contentLeave: function () {\n          this.refreshClearMargin();\n        },\n        beforeContentLeave: function () {\n          this.contentTransitioningCancelled = this.contentTransitioning, this.contentTransitioning = !0, this.$emit(\"will-disappear\", this.contentTransitioningCancelled);\n        },\n        afterContentLeave: function () {\n          this.contentTransitioning = !1, this.$emit(\"did-disappear\", this.contentTransitioningCancelled), this.contentTransitioningCancelled = !1, this.forceHidden && (this.$emit(\"update:forcehidden\", !1), this.$emit(\"update:forceHidden\", !1));\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    n.d(e, \"a\", function () {\n      return r;\n    });\n    var r = {\n      HOVER: \"hover\",\n      FOCUS: \"focus\",\n      HIDDEN: \"hidden\",\n      VISIBLE: \"visible\",\n      isManual: function (t) {\n        return \"hidden\" === t || \"visible\" === t;\n      },\n      isManaged: function (t) {\n        return \"hover\" === t || \"focus\" === t;\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(104),\n        i = n(2);\n    e.a = {\n      components: {\n        CalendarDay: r.a\n      },\n      props: {\n        monthComps: Object,\n        prevMonthComps: Object,\n        nextMonthComps: Object,\n        trimMaxWeek: Boolean\n      },\n      computed: {\n        weeks: function () {\n          for (var t = [], e = this.monthComps, n = e.firstDayOfWeek, r = e.firstWeekday, a = r + (r < n ? 7 : 0) - n, o = !0, s = !1, u = !1, c = this.prevMonthComps.days - a + 1, l = this.prevMonthComps.days - c + 1, d = Math.floor((c - 1) / 7 + 1), f = 1, h = this.prevMonthComps.weeks, p = 1, v = this.prevMonthComps.month, y = this.prevMonthComps.year, m = 1; m <= 6 && (!u || !this.trimMaxWeek); m++) {\n            for (var b = [], g = 1, D = n; g <= 7; g++, D += 7 === D ? -6 : 1) {\n              o && D === r && (c = 1, l = this.monthComps.days, d = Math.floor((c - 1) / 7 + 1), f = Math.floor((this.monthComps.days - c) / 7 + 1), h = 1, p = this.monthComps.weeks, v = this.monthComps.month, y = this.monthComps.year, o = !1, s = !0);\n\n              var w = new Date(y, v - 1, c),\n                  _ = c === i.x.day && v === i.x.month && y === i.x.year,\n                  O = s && 1 === c,\n                  C = s && c === this.monthComps.days;\n\n              b.push({\n                id: v + \".\" + c,\n                label: c.toString(),\n                day: c,\n                dayFromEnd: l,\n                weekday: D,\n                weekdayOrdinal: d,\n                weekdayOrdinalFromEnd: f,\n                week: h,\n                weekFromEnd: p,\n                month: v,\n                year: y,\n                date: w,\n                dateTime: w.getTime(),\n                isToday: _,\n                isFirstDay: O,\n                isLastDay: C,\n                inMonth: s,\n                inPrevMonth: o,\n                inNextMonth: u\n              }), s && C ? (s = !1, u = !0, c = 1, l = this.nextMonthComps.days, d = 1, f = Math.floor((this.nextMonthComps.days - c) / 7 + 1), h = 1, p = this.nextMonthComps.weeks, v = this.nextMonthComps.month, y = this.nextMonthComps.year) : (c++, l--, d = Math.floor((c - 1) / 7 + 1), f = Math.floor((this.monthComps.days - c) / 7 + 1));\n            }\n\n            t.push(b), h++, p--;\n          }\n\n          return t;\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(31),\n        i = n.n(r),\n        a = n(0),\n        o = n.n(a),\n        s = n(22),\n        u = n(106),\n        c = n(2),\n        l = n(4),\n        d = n(3);\n    e.a = {\n      components: {\n        Popover: s.a,\n        CalendarDayPopoverRow: u.a\n      },\n      props: {\n        day: {\n          type: Object,\n          required: !0\n        },\n        attributes: Object,\n        popoverContentOffset: {\n          type: Number,\n          default: 7\n        },\n        styles: Object,\n        formats: Object\n      },\n      data: function () {\n        return {\n          isHovered: !1,\n          isFocused: !1,\n          glyphs: {}\n        };\n      },\n      computed: {\n        label: function () {\n          return this.day.label;\n        },\n        dateTime: function () {\n          return this.day.dateTime;\n        },\n        inMonth: function () {\n          return this.day.inMonth;\n        },\n        dayCellStyle: function () {\n          return o()({}, this.styles.dayCell, !this.inMonth && this.styles.dayCellNotInMonth);\n        },\n        attributesLength: function () {\n          return this.attributes.length;\n        },\n        attributesList: function () {\n          return this.attributes.find(this.day);\n        },\n        attributesMap: function () {\n          return Object(c.s)(this.attributesList);\n        },\n        shouldCheckDirty: function () {\n          return this.attributesLength && !!this.attributesList.find(function (t) {\n            return Object(l.c)(t.highlight) || Object(l.c)(t.highlightCaps) || Object(l.c)(t.dot) || Object(l.c)(t.bar) || Object(l.c)(t.popover) || Object(l.c)(t.contentStyle);\n          });\n        },\n        isHoveredDirty: function () {\n          return this.shouldCheckDirty && this.isHovered;\n        },\n        isFocusedDirty: function () {\n          return this.shouldCheckDirty && this.isFocused;\n        },\n        backgrounds: function () {\n          return this.glyphs.backgrounds;\n        },\n        hasBackgrounds: function () {\n          return !!Object(c.a)(this.backgrounds);\n        },\n        dots: function () {\n          return this.glyphs.dots;\n        },\n        hasDots: function () {\n          return !!Object(c.a)(this.dots);\n        },\n        dotsStyle: function () {\n          return this.styles.dots;\n        },\n        bars: function () {\n          return this.glyphs.bars;\n        },\n        hasBars: function () {\n          return !!Object(c.a)(this.bars);\n        },\n        barsStyle: function () {\n          return this.styles.bars;\n        },\n        popovers: function () {\n          return this.glyphs.popovers;\n        },\n        hasPopovers: function () {\n          return !!Object(c.a)(this.popovers);\n        },\n        popoverContentStyle: function () {\n          return this.styles.dayPopoverContent;\n        },\n        popoverState: function () {\n          var t = \"\",\n              e = !1,\n              n = void 0;\n          return this.popovers.forEach(function (r) {\n            !t && r.visibility && (t = r.visibility), e = e || r.isInteractive, n = n || r.label || r.component || r.slot;\n          }), {\n            visibility: t || n && \"hover\" || \"hidden\",\n            isInteractive: e\n          };\n        },\n        popoverVisibility: function () {\n          return this.popoverState.visibility;\n        },\n        popoverIsInteractive: function () {\n          return this.popoverState.isInteractive;\n        },\n        contentStyle: function () {\n          var t = this.styles.dayContent,\n              e = this.dayCellStyle && (0 === parseFloat(this.dayCellStyle.opacity) || \"none\" === this.dayCellStyle.pointerEvents);\n          return o()({}, Object(l.c)(t) && t({\n            day: this.day,\n            isHovered: this.isHovered,\n            isFocused: this.isFocused\n          }) || t, this.glyphs.contentStyle, e && {\n            pointerEvents: \"none\"\n          });\n        }\n      },\n      watch: {\n        isHoveredDirty: function () {\n          this.refreshGlyphs();\n        },\n        isFocusedDirty: function () {\n          this.refreshGlyphs();\n        },\n        attributesList: function (t, e) {\n          t.forEach(function (t) {\n            t.isNew = !e.find(function (e) {\n              return e.key === t.key;\n            });\n          }), this.refreshGlyphs();\n        }\n      },\n      created: function () {\n        this.refreshGlyphs();\n      },\n      methods: {\n        getDayEvent: function (t) {\n          return o()({}, this.day, {\n            attributes: this.attributesList,\n            attributesMap: this.attributesMap,\n            event: t\n          });\n        },\n        click: function (t) {\n          this.$emit(\"dayclick\", this.getDayEvent(t));\n        },\n        mouseenter: function (t) {\n          this.$emit(\"daymouseenter\", this.getDayEvent(t));\n        },\n        mouseover: function (t) {\n          this.isHovered = !0, this.$emit(\"daymouseover\", this.getDayEvent(t));\n        },\n        mouseleave: function (t) {\n          this.isHovered = !1, this.$emit(\"daymouseleave\", this.getDayEvent(t));\n        },\n        refreshGlyphs: function () {\n          var t = this;\n          this.glyphs = (this.attributesList || []).map(function (e) {\n            return t.evalAttribute(e, t.isHoveredDirty, t.isFocusedDirty);\n          }).reduce(function (e, n) {\n            var r = n.highlight,\n                a = n.highlightCaps,\n                o = n.onStart,\n                s = n.onEnd,\n                u = n.dot,\n                c = n.bar,\n                l = n.popover,\n                d = e.backgrounds,\n                f = e.dots,\n                h = e.bars,\n                p = e.popovers,\n                v = e.contentStyle;\n            return !r || o && s && a || d.push(t.getBackground(n)), a && (o || s) && d.push(t.getBackgroundCap(n)), u && f.push(t.getDot(n)), c && h.push(t.getBar(n)), l && p.unshift(t.getPopover(n)), i()(v, n.contentStyle), e;\n          }, {\n            backgrounds: [],\n            dots: [],\n            bars: [],\n            popovers: [],\n            contentStyle: {}\n          });\n        },\n        evalAttribute: function (t, e, n) {\n          var r = this,\n              i = t.targetDate,\n              a = i.startTime === this.dateTime,\n              s = i.endTime === this.dateTime,\n              u = !a && !s,\n              f = function (t) {\n            return Object(l.c)(t) && t({\n              day: r.day,\n              targetDate: i,\n              onStart: a,\n              onEnd: s,\n              inBetween: u,\n              isHovered: e,\n              isFocused: n\n            }) || Object(l.e)(t) && t;\n          };\n\n          return Object(c.r)(t, o()({}, t, {\n            onStart: a,\n            onEnd: s,\n            inBetween: u\n          }), [{\n            name: \"highlight\",\n            mixin: d.a.highlight,\n            validate: f\n          }, {\n            name: \"highlightCaps\",\n            mixin: d.a.highlightCaps,\n            validate: f\n          }, {\n            name: \"dot\",\n            mixin: d.a.dot,\n            validate: f\n          }, {\n            name: \"bar\",\n            mixin: d.a.bar,\n            validate: f\n          }, {\n            name: \"contentStyle\",\n            validate: f\n          }, {\n            name: \"popover\",\n            validate: f\n          }, {\n            name: \"customData\"\n          }]).target;\n        },\n        getBackground: function (t) {\n          var e = t.key,\n              n = t.highlight,\n              r = t.highlightCaps,\n              i = t.targetDate,\n              a = n.animated,\n              o = n.width,\n              s = n.height,\n              u = n.backgroundColor,\n              c = n.borderColor,\n              l = n.borderWidth,\n              d = n.borderStyle,\n              f = n.opacity,\n              h = n.borderRadius || (i.isDate || i.isComplex ? \"50%\" : \"290486px\"),\n              p = {\n            key: e,\n            style: {\n              width: o || s,\n              height: s,\n              backgroundColor: u,\n              borderColor: c,\n              borderWidth: l,\n              borderStyle: d,\n              borderRadius: h,\n              opacity: f\n            }\n          };\n          if (i.isDate || i.isComplex) p.wrapperClass = \"c-day-layer c-day-box-center-center \" + (a ? \"c-day-scale-enter c-day-scale-leave\" : \"\");else {\n            var v = i.startTime === this.dateTime,\n                y = i.endTime === this.dateTime;\n\n            if (v && y) {\n              var m = a ? \"c-day-scale-enter c-day-scale-leave\" : \"\";\n              p.wrapperClass = \"c-day-layer c-day-box-center-center \" + m, p.style.width = \"95%\", p.style.borderWidth = l, p.style.borderRadius = h + \" \" + h + \" \" + h + \" \" + h;\n            } else if (v) {\n              var b = a && !r ? \"c-day-slide-left-scale-enter\" : \"\";\n              p.wrapperClass = \"c-day-layer c-day-box-right-center shift-right \" + b, r ? (p.style.width = \"50%\", p.style.borderWidth = l + \" 0 \" + l + \" 0\", p.style.borderRadius = 0) : (p.style.width = \"95%\", p.style.borderWidth = l + \" 0 \" + l + \" \" + l, p.style.borderRadius = h + \" 0 0 \" + h);\n            } else if (y) {\n              var g = a && !r ? \"c-day-slide-right-scale-enter\" : \"\";\n              p.wrapperClass = \"c-day-layer c-day-box-left-center shift-left \" + g, r ? (p.style.width = \"50%\", p.style.borderWidth = l + \" 0 \" + l + \" 0\", p.style.borderRadius = 0) : (p.style.width = \"95%\", p.style.borderWidth = l + \" \" + l + \" \" + l + \" 0\", p.style.borderRadius = \"0 \" + h + \" \" + h + \" 0\");\n            } else p.wrapperClass = \"c-day-layer c-day-box-center-center shift-left-right\", p.style.width = \"100%\", p.style.borderWidth = l + \" 0\", p.style.borderRadius = \"0\";\n          }\n          return p;\n        },\n        getBackgroundCap: function (t) {\n          var e = t.key,\n              n = t.highlightCaps,\n              r = t.targetDate,\n              i = t.isNew,\n              a = r.startTime,\n              o = r.endTime,\n              s = n.animated,\n              u = n.width,\n              c = n.height,\n              l = n.backgroundColor,\n              d = n.borderColor,\n              f = n.borderWidth,\n              h = n.borderStyle,\n              p = n.opacity,\n              v = n.borderRadius || \"50%\",\n              y = \"\";\n          return s && (a === o ? y = \"c-day-scale-enter c-day-scale-leave\" : a === this.dateTime ? y = i ? \"c-day-slide-left-translate-enter\" : \"c-day-slide-right-translate-enter\" : o === this.dateTime && (y = i ? \"c-day-slide-right-translate-enter\" : \"c-day-slide-left-translate-enter\")), {\n            key: e + \"-cap\",\n            wrapperClass: \"c-day-layer c-day-box-center-center \" + (s ? y : \"\"),\n            style: {\n              width: u || c,\n              height: c,\n              backgroundColor: l,\n              borderColor: d,\n              borderWidth: f,\n              borderStyle: h,\n              borderRadius: v,\n              opacity: p\n            }\n          };\n        },\n        getDot: function (t) {\n          var e = t.key,\n              n = t.dot;\n          return {\n            key: e,\n            style: {\n              width: n.diameter,\n              height: n.diameter,\n              backgroundColor: n.backgroundColor,\n              borderColor: n.borderColor,\n              borderWidth: n.borderWidth,\n              borderStyle: n.borderStyle,\n              borderRadius: n.borderRadius,\n              opacity: n.opacity\n            }\n          };\n        },\n        getBar: function (t) {\n          var e = t.key,\n              n = t.bar;\n          return {\n            key: e,\n            style: {\n              height: n.height,\n              backgroundColor: n.backgroundColor,\n              borderColor: n.borderColor,\n              borderWidth: n.borderWidth,\n              borderStyle: n.borderStyle,\n              opacity: n.opacity\n            }\n          };\n        },\n        getPopover: function (t) {\n          var e = t.popover,\n              n = e.label,\n              r = e.labelStyle,\n              i = e.component,\n              a = e.slot,\n              o = e.hideIndicator,\n              s = e.visibility,\n              u = e.isInteractive;\n          return {\n            key: t.key,\n            customData: t.customData,\n            attribute: t,\n            label: Object(l.c)(n) ? n(t, this.day) : n,\n            labelStyle: Object(l.c)(r) ? r(t, this.day) : r,\n            component: i,\n            slot: a,\n            hideIndicator: o,\n            visibility: s,\n            isInteractive: void 0 !== u ? u : !!a\n          };\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    e.a = {\n      props: {\n        attribute: Object,\n        hideIndicator: Boolean\n      },\n      computed: {\n        isSelectable: function () {\n          return this.$listeners.select;\n        },\n        indicatorStyle: function () {\n          var t = this.attribute;\n          return t.highlight ? {\n            backgroundColor: t.highlight.backgroundColor,\n            width: \"10px\",\n            height: \"5px\",\n            borderRadius: \"3px\",\n            opacity: t.highlight.opacity\n          } : t.dot ? {\n            backgroundColor: t.dot.backgroundColor,\n            width: \"5px\",\n            height: \"5px\",\n            borderRadius: \"50%\",\n            opacity: t.dot.opacity\n          } : t.bar ? {\n            backgroundColor: t.bar.backgroundColor,\n            width: \"10px\",\n            height: \"3px\",\n            opacity: t.bar.opacity\n          } : t.contentStyle ? {\n            backgroundColor: t.contentStyle.color,\n            width: \"5px\",\n            height: \"5px\"\n          } : null;\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(0),\n        i = n.n(r),\n        a = n(14),\n        o = n.n(a),\n        s = n(113),\n        u = n.n(s),\n        c = n(33),\n        l = n(23),\n        d = n(8),\n        f = n(2);\n    e.a = {\n      components: {\n        SvgIcon: c.a\n      },\n      props: {\n        mode: {\n          type: String,\n          default: \"month\"\n        },\n        value: {\n          type: Object,\n          default: function () {\n            return {\n              month: 0,\n              year: 0\n            };\n          }\n        },\n        validator: {\n          type: Function,\n          default: function () {\n            return function () {\n              return !0;\n            };\n          }\n        },\n        formats: Object,\n        attributes: Array,\n        styles: Object\n      },\n      data: function () {\n        return {\n          mode_: \"\",\n          yearIndex: 0,\n          yearGroupIndex: 0,\n          attributesMap: {}\n        };\n      },\n      computed: {\n        month: function () {\n          return this.value ? this.value.month || 0 : 0;\n        },\n        year: function () {\n          return this.value ? this.value.year || 0 : 0;\n        },\n        headerStyle: function () {\n          return this.styles.navHeader;\n        },\n        headerTitleStyle: function () {\n          return this.styles.navHeaderTitle;\n        },\n        headerArrowsStyle: function () {\n          return this.styles.navHeaderArrows;\n        },\n        monthItems: function () {\n          var t = this;\n          return Object(f.j)().map(function (e) {\n            return Object(d.a)(e, t.formats.navMonths);\n          }).map(function (e, n) {\n            var r = n + 1;\n            return {\n              month: r,\n              label: e,\n              attributes: t.getMonthAttributes(r),\n              isActive: r === t.month && t.yearIndex === t.year,\n              isDisabled: !t.validator({\n                month: r,\n                year: t.yearIndex\n              })\n            };\n          });\n        },\n        yearItems: function () {\n          for (var t = 12 * this.yearGroupIndex, e = t + 12, n = [], r = t; r < e; r += 1) n.push({\n            month: 0,\n            year: r,\n            isActive: r === this.year,\n            isDisabled: !this.validator({\n              month: this.month,\n              year: r\n            })\n          });\n\n          return n;\n        },\n        monthRows: function () {\n          return this.createRows(this.monthItems, 3);\n        },\n        yearRows: function () {\n          return this.createRows(this.yearItems, 3);\n        },\n        firstYear: function () {\n          return Object(f.e)(this.yearItems.map(function (t) {\n            return t.year;\n          }), 0);\n        },\n        lastYear: function () {\n          return Object(f.g)(this.yearItems.map(function (t) {\n            return t.year;\n          }), 0);\n        }\n      },\n      watch: {\n        mode: function (t) {\n          this.mode_ = t;\n        },\n        year: function () {\n          this.yearIndex = this.year;\n        },\n        yearIndex: function (t) {\n          this.yearGroupIndex = this.getYearGroupIndex(t);\n        },\n        attributes: function () {\n          this.mapAttributes(!0);\n        },\n        yearGroupIndex: function () {\n          this.mapAttributes();\n        }\n      },\n      created: function () {\n        this.mode_ = this.mode, this.yearIndex = this.year;\n      },\n      methods: {\n        getMonthCellStyle: function (t) {\n          return Object(f.c)(this.styles.navMonthCell, t);\n        },\n        getYearCellStyle: function (t) {\n          return Object(f.c)(this.styles.navYearCell, t);\n        },\n        getMonthAttributes: function (t) {\n          if (this.attributesMap[this.yearIndex] && this.attributesMap[this.yearIndex][t]) return u()(this.attributesMap[this.yearIndex][t]);\n        },\n        mapAttributes: function (t) {\n          var e = this;\n\n          if (this.attributes && this.attributes.length) {\n            for (var n = t ? {} : this.attributesMap, r = this.firstYear; r <= this.lastYear; r++) if (!n[r]) {\n              for (var a = {}, s = function (t) {\n                var n = {},\n                    i = Object(f.i)(t, r),\n                    s = new l.b({\n                  start: new Date(i.year, i.month - 1, 1),\n                  end: new Date(i.year, i.month - 1, i.days)\n                });\n                e.attributes.forEach(function (t) {\n                  t.dates.find(function (t) {\n                    return t.intersects(s);\n                  }) && (n[t.key] = e.getAttributeInfo(t));\n                }), o()(n).length && (a[t] = n);\n              }, u = 1; u <= 12; u++) s(u);\n\n              o()(a).length && (n[r] = a);\n            }\n\n            this.attributesMap = i()({}, n);\n          } else this.attributesMap = {};\n        },\n        getAttributeInfo: function (t) {\n          var e = void 0;\n          return t.highlight ? e = t.highlight.backgroundColor : t.dot ? e = t.dot.backgroundColor : t.bar ? e = t.bar.backgroundColor : t.contentStyle && (e = t.contentStyle.backgroundColor || t.contentStyle.color), {\n            key: t.key,\n            style: {\n              backgroundColor: e\n            }\n          };\n        },\n        getYearGroupIndex: function (t) {\n          return Math.floor(t / 12);\n        },\n        monthClick: function (t) {\n          this.$emit(\"input\", {\n            month: t,\n            year: this.yearIndex\n          });\n        },\n        yearClick: function (t) {\n          this.yearIndex = t, this.selectMode(\"month\");\n        },\n        selectMode: function (t) {\n          this.mode_ = t, this.$emit(\"update:mode\", t);\n        },\n        movePrevYear: function () {\n          this.yearIndex--;\n        },\n        moveNextYear: function () {\n          this.yearIndex++;\n        },\n        movePrevYearGroup: function () {\n          this.yearGroupIndex--;\n        },\n        moveNextYearGroup: function () {\n          this.yearGroupIndex++;\n        },\n        createRows: function (t, e) {\n          var n = [],\n              r = [];\n          return t.forEach(function (t) {\n            r.push(t), r.length >= e && (n.push(r), r = []);\n          }), n;\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = {\n      leftArrow: {\n        viewBox: \"3 2 12 32\",\n        path: \"M11.196 10c0 0.143-0.071 0.304-0.179 0.411l-7.018 7.018 7.018 7.018c0.107 0.107 0.179 0.268 0.179 0.411s-0.071 0.304-0.179 0.411l-0.893 0.893c-0.107 0.107-0.268 0.179-0.411 0.179s-0.304-0.071-0.411-0.179l-8.321-8.321c-0.107-0.107-0.179-0.268-0.179-0.411s0.071-0.304 0.179-0.411l8.321-8.321c0.107-0.107 0.268-0.179 0.411-0.179s0.304 0.071 0.411 0.179l0.893 0.893c0.107 0.107 0.179 0.25 0.179 0.411z\"\n      },\n      rightArrow: {\n        viewBox: \"-2 1 11 32\",\n        path: \"M10.625 17.429c0 0.143-0.071 0.304-0.179 0.411l-8.321 8.321c-0.107 0.107-0.268 0.179-0.411 0.179s-0.304-0.071-0.411-0.179l-0.893-0.893c-0.107-0.107-0.179-0.25-0.179-0.411 0-0.143 0.071-0.304 0.179-0.411l7.018-7.018-7.018-7.018c-0.107-0.107-0.179-0.268-0.179-0.411s0.071-0.304 0.179-0.411l0.893-0.893c0.107-0.107 0.268-0.179 0.411-0.179s0.304 0.071 0.411 0.179l8.321 8.321c0.107 0.107 0.179 0.268 0.179 0.411z\"\n      },\n      moon: {\n        viewBox: \"0 0 26 32\",\n        path: \"M22.536 23.554c-0.643 0.107-1.304 0.161-1.964 0.161-6.625 0-12-5.375-12-12 0-2.268 0.661-4.482 1.857-6.375-4.75 1.411-8.143 5.768-8.143 10.946 0 6.304 5.125 11.429 11.429 11.429 3.446 0 6.679-1.571 8.821-4.161zM26.161 22.036c-2.232 4.839-7.125 7.964-12.446 7.964-7.554 0-13.714-6.161-13.714-13.714 0-7.411 5.804-13.429 13.196-13.696 0.5-0.018 0.911 0.268 1.089 0.696 0.196 0.446 0.071 0.964-0.268 1.286-2.036 1.857-3.161 4.393-3.161 7.143 0 5.357 4.357 9.714 9.714 9.714 1.411 0 2.768-0.304 4.071-0.911 0.446-0.196 0.946-0.107 1.286 0.232s0.429 0.857 0.232 1.286z\"\n      },\n      sun: {\n        viewBox: \"0 0 32 32\",\n        path: \"M26.286 16.286c0-5.679-4.607-10.286-10.286-10.286s-10.286 4.607-10.286 10.286 4.607 10.286 10.286 10.286 10.286-4.607 10.286-10.286zM31.214 21.232c-0.054 0.179-0.196 0.304-0.357 0.357l-5.214 1.714v5.464c0 0.179-0.089 0.357-0.232 0.464-0.161 0.107-0.339 0.143-0.518 0.071l-5.214-1.679-3.214 4.429c-0.107 0.143-0.286 0.232-0.464 0.232s-0.357-0.089-0.464-0.232l-3.214-4.429-5.214 1.679c-0.179 0.071-0.357 0.036-0.518-0.071-0.143-0.107-0.232-0.286-0.232-0.464v-5.464l-5.214-1.714c-0.161-0.054-0.304-0.179-0.357-0.357s-0.036-0.375 0.071-0.518l3.214-4.429-3.214-4.429c-0.107-0.161-0.125-0.339-0.071-0.518s0.196-0.304 0.357-0.357l5.214-1.714v-5.464c0-0.179 0.089-0.357 0.232-0.464 0.161-0.107 0.339-0.143 0.518-0.071l5.214 1.679 3.214-4.429c0.214-0.286 0.714-0.286 0.929 0l3.214 4.429 5.214-1.679c0.179-0.071 0.357-0.036 0.518 0.071 0.143 0.107 0.232 0.286 0.232 0.464v5.464l5.214 1.714c0.161 0.054 0.304 0.179 0.357 0.357s0.036 0.357-0.071 0.518l-3.214 4.429 3.214 4.429c0.107 0.143 0.125 0.339 0.071 0.518z\"\n      }\n    };\n    e.a = {\n      props: [\"name\"],\n      data: function () {\n        return {\n          width: \"26px\",\n          height: \"26px\",\n          viewBox: \"0 0 32 32\",\n          path: \"\",\n          isBaseline: !1\n        };\n      },\n      mounted: function () {\n        this.updateIcon();\n      },\n      watch: {\n        name: function () {\n          this.updateIcon();\n        }\n      },\n      methods: {\n        updateIcon: function () {\n          var t = r[this.name];\n          t && (this.width = t.width || \"26px\", this.height = t.height || \"26px\", this.viewBox = t.viewBox || \"0 0 32 32\", this.path = t.path);\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(0),\n        i = n.n(r),\n        a = n(23),\n        o = n(2),\n        s = n(4);\n\n    e.a = function (t) {\n      if (!t) return null;\n      if (t.isAttribute) return t;\n      t.dates && !Object(s.a)(t.dates) && (t.dates = [t.dates]), t.excludeDates && !Object(s.a)(t.excludeDates) && (t.excludeDates = [t.excludeDates]);\n      var e = Object(o.a)(t.dates),\n          n = Object(o.a)(t.excludeDates),\n          r = t.excludeMode || \"intersects\",\n          u = (e && t.dates || n && [{}] || []).map(function (e) {\n        return e && (e.isDateInfo ? e : Object(a.b)(e, t.order));\n      }).filter(function (t) {\n        return t;\n      }),\n          c = (n && t.excludeDates || []).map(function (e) {\n        return e && (e.isDateInfo ? e : Object(a.b)(e, t.order));\n      }).filter(function (t) {\n        return t;\n      }),\n          l = u.some(function (t) {\n        return t.isComplex;\n      }),\n          d = i()({}, t, {\n        isAttribute: !0,\n        key: t.key || \"guid\",\n        order: t.order || 0,\n        dates: u,\n        excludeDates: c,\n        isComplex: l,\n        intersectsDate: function (t) {\n          return !d.excludesDate(t) && (u.find(function (e) {\n            return e.intersectsDate(t);\n          }) || !1);\n        },\n        includesDate: function (t) {\n          return !d.excludesDate(t) && (u.find(function (e) {\n            return e.includesDate(t);\n          }) || !1);\n        },\n        excludesDate: function (t) {\n          return n && c.find(function (e) {\n            return \"intersects\" === r && e.intersectsDate(t) || \"includes\" === r && e.includesDate(t);\n          });\n        },\n        includesDay: function (t) {\n          return !d.excludesDay(t) && (u.find(function (e) {\n            return e.includesDay(t);\n          }) || !1);\n        },\n        excludesDay: function (t) {\n          return n && c.find(function (e) {\n            return e.includesDay(t);\n          });\n        }\n      });\n      return d;\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(12),\n        i = n.n(r),\n        a = n(0),\n        o = n.n(a),\n        s = n(22),\n        u = n(123),\n        c = n(124),\n        l = n(125),\n        d = n(126),\n        f = n(24),\n        h = n(53),\n        p = n(3),\n        v = n(23),\n        y = n(2),\n        m = n(4),\n        b = n(8),\n        g = n(13);\n    e.a = {\n      mixins: [g.a],\n      render: function (t) {\n        var e = this,\n            n = function (n) {\n          return t(e.componentName, o()({\n            attrs: o()({}, e.$attrs, {\n              value: e.value,\n              isRequired: e.isRequired,\n              formats: e.formats_,\n              selectAttribute: e.selectAttribute_,\n              dragAttribute: e.dragAttribute_,\n              disabledAttribute: e.disabledAttribute_,\n              minDate: e.minDate,\n              maxDate: e.maxDate,\n              fromPage: e.fromPage_,\n              toPage: e.toPage_,\n              themeStyles: e.themeStyles_\n            }),\n            on: e.mergeListeners({\n              \"update:fromPage\": function (t) {\n                return e.fromPage_ = t;\n              },\n              \"update:toPage\": function (t) {\n                return e.toPage_ = t;\n              },\n              drag: function (t) {\n                return e.dragValue = t;\n              }\n            }, e.filteredListeners()),\n            slots: e.$slots,\n            scopedSlots: e.$scopedSlots\n          }, n && {\n            slot: n\n          }));\n        };\n\n        return this.isInline ? n() : t(\"popover\", {\n          attrs: {\n            isExpanded: this.popoverExpanded,\n            direction: this.popoverDirection,\n            align: this.popoverAlign,\n            visibility: this.popoverVisibility,\n            contentStyle: this.popoverContentStyle,\n            contentOffset: this.popoverContentOffset,\n            forceHidden: this.popoverForceHidden,\n            showClearMargin: this.popoverShowClearMargin,\n            isInteractive: !0\n          },\n          on: {\n            \"will-appear\": function (t) {\n              return e.$emit(\"popover-will-appear\", t);\n            },\n            \"did-appear\": function (t) {\n              return e.$emit(\"popover-did-appear\", t);\n            },\n            \"will-disappear\": function (t) {\n              return e.$emit(\"popover-will-disappear\", t);\n            },\n            \"did-disappear\": function (t) {\n              return e.$emit(\"popover-did-disappear\", t);\n            },\n            \"update:forceHidden\": function (t) {\n              return e.popoverForceHidden = t;\n            }\n          }\n        }, [Object(m.c)(this.$scopedSlots.default) && this.$scopedSlots.default({\n          inputValue: this.inputValue,\n          updateValue: this.updateValue\n        }) || [t(\"input\", {\n          class: this.inputProps_.class,\n          style: this.inputProps_.style,\n          domProps: {\n            value: this.inputValue\n          },\n          attrs: o()({\n            type: \"text\"\n          }, this.inputAttrs),\n          on: {\n            input: this.inputInput,\n            change: this.inputChange,\n            keyup: this.inputKeyup\n          }\n        })], n(\"popover-content\")]);\n      },\n      components: {\n        Popover: s.a,\n        SingleDatePicker: u.a,\n        MultipleDatePicker: c.a,\n        DateRangePicker: l.a\n      },\n      props: {\n        mode: {\n          type: String,\n          default: \"single\"\n        },\n        value: {\n          type: null,\n          required: !0\n        },\n        isRequired: Boolean,\n        isInline: Boolean,\n        minDate: Date,\n        maxDate: Date,\n        disabledDates: null,\n        availableDates: null,\n        formats: Object,\n        inputProps: {\n          type: Object,\n          default: function () {\n            return {};\n          }\n        },\n        updateOnInput: {\n          type: Boolean,\n          default: function () {\n            return p.a.datePickerUpdateOnInput;\n          }\n        },\n        tintColor: {\n          type: String,\n          default: function () {\n            return p.a.datePickerTintColor;\n          }\n        },\n        dragAttribute: Object,\n        selectAttribute: Object,\n        disabledAttribute: Object,\n        showCaps: {\n          type: Boolean,\n          default: function () {\n            return p.a.datePickerShowCaps;\n          }\n        },\n        showDayPopover: {\n          type: Boolean,\n          default: function () {\n            return p.a.datePickerShowDayPopover;\n          }\n        },\n        popoverExpanded: {\n          type: Boolean,\n          default: function () {\n            return p.a.popoverExpanded;\n          }\n        },\n        popoverDirection: {\n          type: String,\n          default: function () {\n            return p.a.popoverDirection;\n          }\n        },\n        popoverAlign: {\n          type: String,\n          default: function () {\n            return p.a.popoverAlign;\n          }\n        },\n        popoverVisibility: {\n          type: String,\n          default: function () {\n            return p.a.popoverVisibility;\n          }\n        },\n        popoverContentOffset: {\n          type: Number,\n          default: function () {\n            return p.a.popoverContentOffset;\n          }\n        },\n        popoverShowClearMargin: Boolean,\n        popoverKeepVisibleOnInput: {\n          type: Boolean,\n          default: function () {\n            return p.a.popoverKeepVisibleOnInput;\n          }\n        },\n        fromPage: Object,\n        toPage: Object,\n        themeStyles: {\n          type: Object,\n          default: function () {\n            return {};\n          }\n        }\n      },\n      data: function () {\n        return {\n          fromPage_: null,\n          toPage_: null,\n          dragValue: null,\n          inputValue: \"\",\n          popoverForceHidden: !1,\n          disableFormatInput: !1,\n          disablePopoverForceHidden: !1\n        };\n      },\n      computed: {\n        formats_: function () {\n          return o()({}, p.a.formats, this.formats);\n        },\n        inputFormats: function () {\n          var t = this.formats_.input;\n          return Object(m.a)(t) && t || [t];\n        },\n        profile: function () {\n          var t = this;\n          return Object(f.a)(this.mode, function (e) {\n            return Object(b.a)(e, t.inputFormats[0]);\n          }, function (e) {\n            return Object(b.b)(e, t.inputFormats);\n          });\n        },\n        componentName: function () {\n          return this.profile.componentName;\n        },\n        selectAttribute_: function () {\n          return this.buildSelectDragAttribute(this.selectAttribute);\n        },\n        dragAttribute_: function () {\n          return this.buildSelectDragAttribute(this.dragAttribute, !0);\n        },\n        disabledDates_: function () {\n          var t = [];\n          return this.disabledDates && (Object(m.a)(this.disabledDates) ? t.push.apply(t, i()(this.disabledDates)) : t.push(this.disabledDates)), this.minDate && t.push({\n            start: null,\n            end: Object(v.a)(this.minDate, -1)\n          }), this.maxDate && t.push({\n            start: Object(v.a)(this.maxDate, 1),\n            end: null\n          }), t;\n        },\n        disabledAttribute_: function () {\n          return this.disabledDates_ || this.availableDates ? Object(h.a)(o()({\n            key: \"disabled\",\n            order: 100\n          }, this.disabledAttribute || Object(p.c)(p.a.datePickerDisabledAttribute, {\n            mode: this.mode,\n            color: this.tintColor,\n            showDayPopover: this.showDayPopover\n          }), {\n            dates: this.disabledDates_,\n            excludeDates: this.availableDates,\n            excludeMode: \"includes\"\n          })) : null;\n        },\n        inputProps_: function () {\n          var t = p.a.datePickerInputProps;\n          return Object(m.c)(t) ? o()({}, t({\n            mode: this.mode,\n            value: this.value,\n            dragValue: this.dragValue,\n            format: p.a.masks[this.inputFormats[0]] || this.inputFormats[0]\n          }), this.inputProps) : Object(m.e)(t) ? o()({}, t, this.inputProps) : this.inputProps;\n        },\n        inputAttrs: function () {\n          var t = o()({}, this.inputProps_);\n          return t && (delete t.style, delete t.class), t;\n        },\n        themeStyles_: function () {\n          var t = this.themeStyles.dayContent || p.a.themeStyles.dayContent;\n          return o()({}, this.themeStyles, {\n            dayContent: function (e) {\n              return o()({}, e.isHovered && {\n                backgroundColor: \"#dadada\",\n                border: \"0\",\n                cursor: \"pointer\"\n              }, Object(m.c)(t) && t(e) || t);\n            }\n          }, !this.isInline && {\n            wrapper: null\n          });\n        },\n        popoverContentStyle: function () {\n          return o()({}, this.themeStyles.wrapper, {\n            padding: \"0\",\n            margin: \"0\"\n          });\n        }\n      },\n      watch: {\n        fromPage: function (t) {\n          this.fromPage_ = t;\n        },\n        toPage: function (t) {\n          this.toPage_ = t;\n        },\n        fromPage_: function (t) {\n          this.$emit(\"update:frompage\", t), this.$emit(\"update:fromPage\", t);\n        },\n        toPage_: function (t) {\n          this.$emit(\"update:topage\", t), this.$emit(\"update:toPage\", t);\n        },\n        mode: function () {\n          this.$emit(\"input\", null);\n        },\n        value: function () {\n          this.assignPageRange(), this.disableFormatInput || this.formatInput(), \"multiple\" === this.mode || this.disablePopoverForceHidden || this.hidePopover(), this.disableFormatInput = !1, this.disablePopoverForceHidden = !1;\n        },\n        dragValue: function () {\n          this.formatInput();\n        },\n        disabledAttribute_: function () {\n          this.dragValue || this.updateValue(this.value);\n        }\n      },\n      created: function () {\n        this.fromPage_ = this.fromPage, this.toPage_ = this.toPage, this.assignPageRange(), this.formatInput();\n      },\n      methods: {\n        buildSelectDragAttribute: function (t, e) {\n          var n = this,\n              r = o()({\n            key: \"drag-select\"\n          }, t),\n              i = r,\n              a = i.highlight,\n              s = i.highlightCaps,\n              u = i.contentStyle,\n              c = i.dot,\n              l = i.bar;\n          return c || l || (r = o()({}, r, {\n            highlight: function (t) {\n              return o()({\n                backgroundColor: n.tintColor\n              }, e && {\n                height: \"1.64rem\",\n                opacity: .5\n              }, Object(m.c)(a) && a(t) || a);\n            },\n            highlightCaps: s || this.showCaps && function (t) {\n              return !t.inBetween && {\n                backgroundColor: \"#fafafa\",\n                borderColor: n.tintColor,\n                borderWidth: \"2px\"\n              };\n            },\n            contentStyle: function (t) {\n              return o()({}, !e && {\n                color: \"#fafafa\"\n              }, t.isHovered && {\n                backgroundColor: \"transparent\",\n                border: \"0\"\n              }, n.showCaps && !t.inBetween && {\n                color: \"#333333\"\n              }, Object(m.c)(u) && u(t) || u);\n            }\n          })), (r.popover || this.showDayPopover) && (r.popover = o()({\n            component: d.a,\n            hideIndicator: !0\n          }, r.popover)), r;\n        },\n        filteredListeners: function () {\n          var t = o()({}, this.$listeners);\n          return delete t[\"update:frompage\"], delete t[\"update:fromPage\"], delete t[\"update:topage\"], delete t[\"update:toPage\"], t;\n        },\n        assignPageRange: function () {\n          var t = this.profile.getPageRange(this.value);\n\n          if (t) {\n            var e = Object(y.v)(this.fromPage_, t.from, t.to),\n                n = Object(y.v)(this.toPage_, t.from, t.to);\n            \"single\" === this.mode ? e || Object.prototype.hasOwnProperty.call(this.$attrs, \"is-double-paned\") ? n || (this.fromPage_ = t.to) : this.fromPage_ = t.from : (e || (this.fromPage_ = t.from), n || (this.toPage_ = t.to));\n          }\n        },\n        inputInput: function (t) {\n          this.inputValue = t.target.value, this.updateOnInput && this.updateValue(this.inputValue, {\n            formatInput: !1,\n            hidePopover: !1\n          });\n        },\n        inputChange: function () {\n          this.updateValue(this.inputValue, {\n            formatInput: !0,\n            hidePopover: !1\n          });\n        },\n        inputKeyup: function (t) {\n          27 === t.keyCode && this.updateValue(this.value, {\n            formatInput: !0,\n            hidePopover: !0\n          });\n        },\n        updateValue: function () {\n          var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.inputValue,\n              e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n              n = e.formatInput,\n              r = void 0 !== n && n,\n              i = e.hidePopover,\n              a = void 0 === i ? !this.popoverKeepVisibleOnInput : i;\n          this.inputValue = Object(m.f)(t) ? t : this.inputValue;\n          var o = Object(m.f)(t) ? this.profile.parseValue(t) : t,\n              s = this.profile.filterDisabled({\n            value: this.profile.normalizeValue(o),\n            isRequired: this.isRequired,\n            disabled: this.disabledAttribute_,\n            fallbackValue: this.value\n          });\n\n          if (this.profile.valuesAreEqual(o, s)) {\n            !this.profile.valuesAreEqual(this.value, s) ? (this.disableFormatInput = !r, this.disablePopoverForceHidden = !a, this.$emit(\"input\", s)) : (r && this.formatInput(), a && this.hidePopover());\n          }\n        },\n        formatInput: function () {\n          var t = this;\n          this.$nextTick(function () {\n            t.inputValue = t.profile.formatValue(t.value, t.dragValue);\n          });\n        },\n        hidePopover: function () {\n          var t = this;\n          setTimeout(function () {\n            t.popoverForceHidden = !0;\n          }, 200);\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(12),\n        i = n.n(r),\n        a = n(0),\n        o = n.n(a),\n        s = n(21),\n        u = n(24),\n        c = n(13);\n    e.a = {\n      mixins: [c.a],\n      render: function (t) {\n        return t(s.a, {\n          attrs: o()({}, this.$attrs, {\n            attributes: this.attributes_\n          }),\n          on: this.mergeListeners({\n            dayclick: this.clickDay\n          }),\n          slots: this.$slots,\n          scopedSlots: this.$scopedSlots\n        });\n      },\n      components: {\n        Calendar: s.a\n      },\n      props: {\n        value: {\n          type: Date,\n          default: null\n        },\n        isRequired: Boolean,\n        selectAttribute: Object,\n        disabledAttribute: Object,\n        attributes: Array\n      },\n      computed: {\n        selectAttribute_: function () {\n          return Object(u.e)(this.value) ? o()({}, this.selectAttribute, {\n            dates: [this.value]\n          }) : null;\n        },\n        attributes_: function () {\n          var t = [].concat(i()(this.attributes || []));\n          return this.selectAttribute_ && t.push(this.selectAttribute_), this.disabledAttribute && t.push(this.disabledAttribute), t;\n        }\n      },\n      methods: {\n        clickDay: function (t) {\n          this.disabledAttribute && this.disabledAttribute.includesDay(t) ? this.$emit(\"invalid-input\", {\n            reason: \"disabled\",\n            value: t.date\n          }) : Object(u.f)(t.date, this.value) ? this.isRequired || this.$emit(\"input\", null) : this.$emit(\"input\", t.date);\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(12),\n        i = n.n(r),\n        a = n(0),\n        o = n.n(a),\n        s = n(21),\n        u = n(24),\n        c = n(13);\n    e.a = {\n      mixins: [c.a],\n      render: function (t) {\n        return t(s.a, {\n          attrs: o()({}, this.$attrs, {\n            attributes: this.attributes_\n          }),\n          on: this.mergeListeners({\n            dayclick: this.clickDay\n          }),\n          slots: this.$slots,\n          scopedSlots: this.$scopedSlots\n        });\n      },\n      components: {\n        Calendar: s.a\n      },\n      props: {\n        value: {\n          type: Array,\n          default: function () {\n            return [];\n          }\n        },\n        isRequired: Boolean,\n        selectAttribute: Object,\n        disabledAttribute: Object,\n        attributes: Array\n      },\n      computed: {\n        selectAttribute_: function () {\n          return Object(u.b)(this.value) ? o()({}, this.selectAttribute, {\n            dates: this.value\n          }) : null;\n        },\n        attributes_: function () {\n          var t = [].concat(i()(this.attributes || []));\n          return this.selectAttribute_ && t.push(this.selectAttribute_), this.disabledAttribute && t.push(this.disabledAttribute), t;\n        }\n      },\n      methods: {\n        clickDay: function (t) {\n          if (!this.disabledAttribute || !this.disabledAttribute.includesDay(t)) if (Object(u.b)(this.value)) {\n            if (this.value.find(function (e) {\n              return e.getTime() === t.dateTime;\n            })) {\n              var e = this.value.filter(function (e) {\n                return !Object(u.f)(e, t.date);\n              });\n              e.length ? this.$emit(\"input\", e) : this.isRequired || this.$emit(\"input\", null);\n            } else this.$emit(\"input\", Object(u.c)([].concat(i()(this.value), [t.date])));\n          } else this.$emit(\"input\", [t.date]);\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(12),\n        i = n.n(r),\n        a = n(0),\n        o = n.n(a),\n        s = n(21),\n        u = n(13),\n        c = n(24);\n    e.a = {\n      mixins: [u.a],\n      render: function (t) {\n        return t(s.a, {\n          attrs: o()({}, this.$attrs, {\n            attributes: this.attributes_,\n            themeStyles: this.themeStyles_\n          }),\n          on: this.mergeListeners({\n            dayclick: this.clickDay,\n            daymouseenter: this.enterDay\n          }),\n          slots: this.$slots,\n          scopedSlots: this.$scopedSlots\n        });\n      },\n      components: {\n        Calendar: s.a\n      },\n      props: {\n        value: {\n          type: Object,\n          default: function () {}\n        },\n        isRequired: Boolean,\n        dragAttribute: Object,\n        selectAttribute: Object,\n        disabledAttribute: Object,\n        themeStyles: Object,\n        attributes: Array\n      },\n      data: function () {\n        return {\n          dragValue: null,\n          showDisabledContent: !1\n        };\n      },\n      computed: {\n        dragAttribute_: function () {\n          return this.dragValue && o()({}, this.dragAttribute, {\n            dates: [this.dragValue]\n          });\n        },\n        selectAttribute_: function () {\n          return this.value && o()({}, this.selectAttribute, {\n            dates: [this.value]\n          });\n        },\n        attributes_: function () {\n          var t = [].concat(i()(this.attributes || []));\n          return this.dragAttribute_ ? t.push(this.dragAttribute_) : this.selectAttribute_ && t.push(this.selectAttribute_), this.disabledAttribute && t.push(this.disabledAttribute), t;\n        },\n        themeStyles_: function () {\n          return o()({}, this.themeStyles, this.showDisabledContent && this.disabledAttribute && {\n            dayContentHover: this.disabledAttribute.contentHoverStyle\n          });\n        }\n      },\n      watch: {\n        dragValue: function (t) {\n          this.$emit(\"drag\", Object(c.d)(t));\n        }\n      },\n      created: function () {\n        var t = this;\n        document.addEventListener(\"keydown\", function (e) {\n          t.dragValue && 27 === e.keyCode && (t.dragValue = null);\n        });\n      },\n      methods: {\n        clickDay: function (t) {\n          var e = t.dateTime;\n\n          if (this.dragValue) {\n            var n = Object(c.d)({\n              start: new Date(this.dragValue.start.getTime()),\n              end: new Date(e)\n            });\n            this.dateIsValid(n) && (this.dragValue = null, this.$emit(\"input\", n));\n          } else {\n            var r = {\n              start: new Date(e),\n              end: new Date(e)\n            };\n            this.dateIsValid(r) && (this.dragValue = r);\n          }\n        },\n        enterDay: function (t) {\n          var e = t.dateTime;\n\n          if (this.dragValue) {\n            var n = {\n              start: new Date(this.dragValue.start.getTime()),\n              end: new Date(e)\n            };\n            this.dateIsValid(n) ? (this.dragValue = n, this.showDisabledContent = !1) : this.showDisabledContent = !0;\n          }\n        },\n        dateIsValid: function (t) {\n          return !this.disabledAttribute || !this.disabledAttribute.intersectsDate(t);\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(33),\n        i = n(8);\n    e.a = {\n      components: {\n        SvgIcon: r.a\n      },\n      props: {\n        attribute: Object,\n        format: String\n      },\n      computed: {\n        date: function () {\n          return this.attribute.targetDate;\n        },\n        isDate: function () {\n          return this.date.isDate;\n        },\n        isRange: function () {\n          return this.date.isRange;\n        },\n        days: function () {\n          return this.date.daySpan + 1;\n        },\n        nights: function () {\n          return this.date.daySpan;\n        },\n        dateLabel: function () {\n          return this.date && this.date.date ? this.getDateString(this.date.date) : \"\";\n        },\n        startDateLabel: function () {\n          return this.date && this.date.start ? this.getDateString(this.date.start) : \"\";\n        },\n        endDateLabel: function () {\n          return this.date && this.date.end ? this.getDateString(this.date.end) : \"\";\n        }\n      },\n      methods: {\n        getDateString: function (t) {\n          return Object(i.a)(t, this.format);\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    Object.defineProperty(e, \"__esModule\", {\n      value: !0\n    }), n.d(e, \"setupCalendar\", function () {\n      return h;\n    });\n    var r = n(14),\n        i = n.n(r),\n        a = n(0),\n        o = n.n(a),\n        s = n(21),\n        u = n(122),\n        c = n(22),\n        l = n(129),\n        d = n(3);\n    n.d(e, \"Calendar\", function () {\n      return s.a;\n    }), n.d(e, \"DatePicker\", function () {\n      return u.a;\n    }), n.d(e, \"Popover\", function () {\n      return c.a;\n    });\n\n    var f = {\n      Calendar: s.a,\n      DatePicker: u.a,\n      Popover: c.a\n    },\n        h = function (t) {\n      var e = t ? t.locale : new Intl.DateTimeFormat().resolvedOptions().locale;\n      return Object(d.b)(d.a, Object(l.a)(e), t);\n    },\n        p = o()({}, f, {\n      install: function (t, e) {\n        var n = h(e);\n        i()(f).forEach(function (e) {\n          return t.component(\"\" + n.componentPrefix + e, f[e]);\n        });\n      }\n    });\n\n    e.default = p, \"undefined\" != typeof window && window.Vue && window.Vue.use(p);\n  }, function (t, e, n) {\n    n(61), t.exports = n(5).Object.keys;\n  }, function (t, e, n) {\n    var r = n(15),\n        i = n(16);\n    n(65)(\"keys\", function () {\n      return function (t) {\n        return i(r(t));\n      };\n    });\n  }, function (t, e, n) {\n    var r = n(17),\n        i = n(26),\n        a = n(63)(!1),\n        o = n(28)(\"IE_PROTO\");\n\n    t.exports = function (t, e) {\n      var n,\n          s = i(t),\n          u = 0,\n          c = [];\n\n      for (n in s) n != o && r(s, n) && c.push(n);\n\n      for (; e.length > u;) r(s, n = e[u++]) && (~a(c, n) || c.push(n));\n\n      return c;\n    };\n  }, function (t, e, n) {\n    var r = n(26),\n        i = n(36),\n        a = n(64);\n\n    t.exports = function (t) {\n      return function (e, n, o) {\n        var s,\n            u = r(e),\n            c = i(u.length),\n            l = a(o, c);\n\n        if (t && n != n) {\n          for (; c > l;) if ((s = u[l++]) != s) return !0;\n        } else for (; c > l; l++) if ((t || l in u) && u[l] === n) return t || l || 0;\n\n        return !t && -1;\n      };\n    };\n  }, function (t, e, n) {\n    var r = n(27),\n        i = Math.max,\n        a = Math.min;\n\n    t.exports = function (t, e) {\n      return (t = r(t)) < 0 ? i(t + e, 0) : a(t, e);\n    };\n  }, function (t, e, n) {\n    var r = n(7),\n        i = n(5),\n        a = n(20);\n\n    t.exports = function (t, e) {\n      var n = (i.Object || {})[t] || Object[t],\n          o = {};\n      o[t] = e(n), r(r.S + r.F * a(function () {\n        n(1);\n      }), \"Object\", o);\n    };\n  }, function (t, e) {\n    t.exports = function (t) {\n      if (\"function\" != typeof t) throw TypeError(t + \" is not a function!\");\n      return t;\n    };\n  }, function (t, e, n) {\n    t.exports = !n(11) && !n(20)(function () {\n      return 7 != Object.defineProperty(n(41)(\"div\"), \"a\", {\n        get: function () {\n          return 7;\n        }\n      }).a;\n    });\n  }, function (t, e, n) {\n    var r = n(29);\n\n    t.exports = function (t, e) {\n      if (!r(t)) return t;\n      var n, i;\n      if (e && \"function\" == typeof (n = t.toString) && !r(i = n.call(t))) return i;\n      if (\"function\" == typeof (n = t.valueOf) && !r(i = n.call(t))) return i;\n      if (!e && \"function\" == typeof (n = t.toString) && !r(i = n.call(t))) return i;\n      throw TypeError(\"Can't convert object to primitive value\");\n    };\n  }, function (t, e, n) {\n    n(70), t.exports = n(5).Object.assign;\n  }, function (t, e, n) {\n    var r = n(7);\n    r(r.S + r.F, \"Object\", {\n      assign: n(71)\n    });\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(16),\n        i = n(72),\n        a = n(42),\n        o = n(15),\n        s = n(34),\n        u = Object.assign;\n    t.exports = !u || n(20)(function () {\n      var t = {},\n          e = {},\n          n = Symbol(),\n          r = \"abcdefghijklmnopqrst\";\n      return t[n] = 7, r.split(\"\").forEach(function (t) {\n        e[t] = t;\n      }), 7 != u({}, t)[n] || Object.keys(u({}, e)).join(\"\") != r;\n    }) ? function (t, e) {\n      for (var n = o(t), u = arguments.length, c = 1, l = i.f, d = a.f; u > c;) for (var f, h = s(arguments[c++]), p = l ? r(h).concat(l(h)) : r(h), v = p.length, y = 0; v > y;) d.call(h, f = p[y++]) && (n[f] = h[f]);\n\n      return n;\n    } : u;\n  }, function (t, e) {\n    e.f = Object.getOwnPropertySymbols;\n  }, function (t, e) {}, function (t, e, n) {\n    t.exports = {\n      default: n(75),\n      __esModule: !0\n    };\n  }, function (t, e, n) {\n    n(76), n(86), t.exports = n(5).Array.from;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(77)(!0);\n    n(78)(String, \"String\", function (t) {\n      this._t = String(t), this._i = 0;\n    }, function () {\n      var t,\n          e = this._t,\n          n = this._i;\n      return n >= e.length ? {\n        value: void 0,\n        done: !0\n      } : (t = r(e, n), this._i += t.length, {\n        value: t,\n        done: !1\n      });\n    });\n  }, function (t, e, n) {\n    var r = n(27),\n        i = n(25);\n\n    t.exports = function (t) {\n      return function (e, n) {\n        var a,\n            o,\n            s = String(i(e)),\n            u = r(n),\n            c = s.length;\n        return u < 0 || u >= c ? t ? \"\" : void 0 : (a = s.charCodeAt(u)) < 55296 || a > 56319 || u + 1 === c || (o = s.charCodeAt(u + 1)) < 56320 || o > 57343 ? t ? s.charAt(u) : a : t ? s.slice(u, u + 2) : o - 56320 + (a - 55296 << 10) + 65536;\n      };\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(79),\n        i = n(7),\n        a = n(80),\n        o = n(18),\n        s = n(17),\n        u = n(32),\n        c = n(81),\n        l = n(44),\n        d = n(85),\n        f = n(6)(\"iterator\"),\n        h = !([].keys && \"next\" in [].keys()),\n        p = function () {\n      return this;\n    };\n\n    t.exports = function (t, e, n, v, y, m, b) {\n      c(n, e, v);\n\n      var g,\n          D,\n          w,\n          _ = function (t) {\n        if (!h && t in x) return x[t];\n\n        switch (t) {\n          case \"keys\":\n          case \"values\":\n            return function () {\n              return new n(this, t);\n            };\n        }\n\n        return function () {\n          return new n(this, t);\n        };\n      },\n          O = e + \" Iterator\",\n          C = \"values\" == y,\n          M = !1,\n          x = t.prototype,\n          k = x[f] || x[\"@@iterator\"] || y && x[y],\n          S = !h && k || _(y),\n          Y = y ? C ? _(\"entries\") : S : void 0,\n          j = \"Array\" == e ? x.entries || k : k;\n\n      if (j && (w = d(j.call(new t()))) !== Object.prototype && w.next && (l(w, O, !0), r || s(w, f) || o(w, f, p)), C && k && \"values\" !== k.name && (M = !0, S = function () {\n        return k.call(this);\n      }), r && !b || !h && !M && x[f] || o(x, f, S), u[e] = S, u[O] = p, y) if (g = {\n        values: C ? S : _(\"values\"),\n        keys: m ? S : _(\"keys\"),\n        entries: Y\n      }, b) for (D in g) D in x || a(x, D, g[D]);else i(i.P + i.F * (h || M), e, g);\n      return g;\n    };\n  }, function (t, e) {\n    t.exports = !0;\n  }, function (t, e, n) {\n    t.exports = n(18);\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(82),\n        i = n(30),\n        a = n(44),\n        o = {};\n    n(18)(o, n(6)(\"iterator\"), function () {\n      return this;\n    }), t.exports = function (t, e, n) {\n      t.prototype = r(o, {\n        next: i(1, n)\n      }), a(t, e + \" Iterator\");\n    };\n  }, function (t, e, n) {\n    var r = n(19),\n        i = n(83),\n        a = n(39),\n        o = n(28)(\"IE_PROTO\"),\n        s = function () {},\n        u = function () {\n      var t,\n          e = n(41)(\"iframe\"),\n          r = a.length;\n\n      for (e.style.display = \"none\", n(84).appendChild(e), e.src = \"javascript:\", (t = e.contentWindow.document).open(), t.write(\"<script>document.F=Object<\\/script>\"), t.close(), u = t.F; r--;) delete u.prototype[a[r]];\n\n      return u();\n    };\n\n    t.exports = Object.create || function (t, e) {\n      var n;\n      return null !== t ? (s.prototype = r(t), n = new s(), s.prototype = null, n[o] = t) : n = u(), void 0 === e ? n : i(n, e);\n    };\n  }, function (t, e, n) {\n    var r = n(10),\n        i = n(19),\n        a = n(16);\n    t.exports = n(11) ? Object.defineProperties : function (t, e) {\n      i(t);\n\n      for (var n, o = a(e), s = o.length, u = 0; s > u;) r.f(t, n = o[u++], e[n]);\n\n      return t;\n    };\n  }, function (t, e, n) {\n    var r = n(9).document;\n    t.exports = r && r.documentElement;\n  }, function (t, e, n) {\n    var r = n(17),\n        i = n(15),\n        a = n(28)(\"IE_PROTO\"),\n        o = Object.prototype;\n\n    t.exports = Object.getPrototypeOf || function (t) {\n      return t = i(t), r(t, a) ? t[a] : \"function\" == typeof t.constructor && t instanceof t.constructor ? t.constructor.prototype : t instanceof Object ? o : null;\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(40),\n        i = n(7),\n        a = n(15),\n        o = n(87),\n        s = n(88),\n        u = n(36),\n        c = n(89),\n        l = n(90);\n    i(i.S + i.F * !n(92)(function (t) {\n      Array.from(t);\n    }), \"Array\", {\n      from: function (t) {\n        var e,\n            n,\n            i,\n            d,\n            f = a(t),\n            h = \"function\" == typeof this ? this : Array,\n            p = arguments.length,\n            v = p > 1 ? arguments[1] : void 0,\n            y = void 0 !== v,\n            m = 0,\n            b = l(f);\n        if (y && (v = r(v, p > 2 ? arguments[2] : void 0, 2)), void 0 == b || h == Array && s(b)) for (n = new h(e = u(f.length)); e > m; m++) c(n, m, y ? v(f[m], m) : f[m]);else for (d = b.call(f), n = new h(); !(i = d.next()).done; m++) c(n, m, y ? o(d, v, [i.value, m], !0) : i.value);\n        return n.length = m, n;\n      }\n    });\n  }, function (t, e, n) {\n    var r = n(19);\n\n    t.exports = function (t, e, n, i) {\n      try {\n        return i ? e(r(n)[0], n[1]) : e(n);\n      } catch (e) {\n        var a = t.return;\n        throw void 0 !== a && r(a.call(t)), e;\n      }\n    };\n  }, function (t, e, n) {\n    var r = n(32),\n        i = n(6)(\"iterator\"),\n        a = Array.prototype;\n\n    t.exports = function (t) {\n      return void 0 !== t && (r.Array === t || a[i] === t);\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(10),\n        i = n(30);\n\n    t.exports = function (t, e, n) {\n      e in t ? r.f(t, e, i(0, n)) : t[e] = n;\n    };\n  }, function (t, e, n) {\n    var r = n(91),\n        i = n(6)(\"iterator\"),\n        a = n(32);\n\n    t.exports = n(5).getIteratorMethod = function (t) {\n      if (void 0 != t) return t[i] || t[\"@@iterator\"] || a[r(t)];\n    };\n  }, function (t, e, n) {\n    var r = n(35),\n        i = n(6)(\"toStringTag\"),\n        a = \"Arguments\" == r(function () {\n      return arguments;\n    }());\n\n    t.exports = function (t) {\n      var e, n, o;\n      return void 0 === t ? \"Undefined\" : null === t ? \"Null\" : \"string\" == typeof (n = function (t, e) {\n        try {\n          return t[e];\n        } catch (t) {}\n      }(e = Object(t), i)) ? n : a ? r(e) : \"Object\" == (o = r(e)) && \"function\" == typeof e.callee ? \"Arguments\" : o;\n    };\n  }, function (t, e, n) {\n    var r = n(6)(\"iterator\"),\n        i = !1;\n\n    try {\n      var a = [7][r]();\n      a.return = function () {\n        i = !0;\n      }, Array.from(a, function () {\n        throw 2;\n      });\n    } catch (t) {}\n\n    t.exports = function (t, e) {\n      if (!e && !i) return !1;\n      var n = !1;\n\n      try {\n        var a = [7],\n            o = a[r]();\n        o.next = function () {\n          return {\n            done: n = !0\n          };\n        }, a[r] = function () {\n          return o;\n        }, t(a);\n      } catch (t) {}\n\n      return n;\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(45),\n        i = n(120);\n\n    var a = function (t) {\n      n(94);\n    },\n        o = n(1)(r.a, i.a, !1, a, \"data-v-2083cb72\", null);\n\n    e.a = o.exports;\n  }, function (t, e) {}, function (t, e) {}, function (t, e, n) {\n    \"use strict\";\n\n    e.__esModule = !0;\n    var r,\n        i = n(97),\n        a = (r = i, r && r.__esModule ? r : {\n      default: r\n    });\n\n    e.default = function (t, e, n) {\n      return e in t ? (0, a.default)(t, e, {\n        value: n,\n        enumerable: !0,\n        configurable: !0,\n        writable: !0\n      }) : t[e] = n, t;\n    };\n  }, function (t, e, n) {\n    t.exports = {\n      default: n(98),\n      __esModule: !0\n    };\n  }, function (t, e, n) {\n    n(99);\n    var r = n(5).Object;\n\n    t.exports = function (t, e, n) {\n      return r.defineProperty(t, e, n);\n    };\n  }, function (t, e, n) {\n    var r = n(7);\n    r(r.S + r.F * !n(11), \"Object\", {\n      defineProperty: n(10).f\n    });\n  }, function (t, e, n) {\n    \"use strict\";\n\n    n.d(e, \"a\", function () {\n      return a;\n    });\n\n    var r = n(3),\n        i = n(4),\n        a = function (t, e) {\n      if (!t || !t.addEventListener || !Object(i.c)(e)) return null;\n\n      var n = {\n        touchState: null\n      },\n          a = function (t) {\n        var e = t.targetTouches[0];\n        n.touchState = {\n          started: !0,\n          startedOn: new Date(),\n          startX: e.screenX,\n          startY: e.screenY,\n          x: e.screenX,\n          y: e.screenY\n        };\n      },\n          o = function (t) {\n        var i = n.touchState;\n\n        if (i && i.started) {\n          var a = t.changedTouches[0];\n          i.x = a.screenX, i.y = a.screenY, i.tapDetected = new Date() - i.startedOn <= r.a.maxTapDuration && Math.abs(i.x - i.startX) <= r.a.maxTapTolerance && Math.abs(i.y - i.startY) <= r.a.maxTapTolerance, i.tapDetected && e(t), i.started = !1;\n        }\n      },\n          s = function (t) {\n        var r = n.touchState;\n        r && r.tapDetected || e(t);\n      };\n\n      return t.addEventListener(\"touchstart\", a), t.addEventListener(\"touchend\", o), t.addEventListener(\"click\", s), n.cleanup = function () {\n        t.removeEventListener(\"touchstart\", a), t.removeEventListener(\"touchend\", o), t.removeEventListener(\"click\", s);\n      }, n;\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = {\n      render: function () {\n        var t = this,\n            e = t.$createElement,\n            n = t._self._c || e;\n        return n(\"div\", {\n          ref: \"popover\",\n          class: [\"popover-container\", {\n            expanded: t.isExpanded\n          }],\n          style: t.containerStyle,\n          attrs: {\n            tabindex: \"focus\" === t.visibility ? -1 : void 0\n          },\n          on: {\n            focusin: t.focusin,\n            focusout: t.focusout,\n            mouseleave: t.mouseleave,\n            mousemove: t.mousemove,\n            click: function (e) {\n              e.stopPropagation(), t.click(e);\n            }\n          }\n        }, [n(\"transition\", {\n          attrs: {\n            tag: \"div\",\n            name: t.transition\n          },\n          on: {\n            enter: t.contentEnter,\n            \"before-enter\": t.beforeContentEnter,\n            \"after-enter\": t.afterContentEnter,\n            leave: t.contentLeave,\n            \"before-leave\": t.beforeContentLeave,\n            \"after-leave\": t.afterContentLeave\n          }\n        }, [t.visible ? n(\"div\", {\n          ref: \"popoverOrigin\",\n          class: [\"popover-origin\", \"direction-\" + t.direction, \"align-\" + t.align]\n        }, [n(\"div\", {\n          ref: \"popoverContentWrapper\",\n          class: [\"popover-content-wrapper\", \"direction-\" + t.direction, \"align-\" + t.align, {\n            interactive: t.isInteractive\n          }],\n          style: t.contentWrapperStyle\n        }, [n(\"div\", {\n          ref: \"popoverContent\",\n          class: [\"popover-content\", \"direction-\" + t.direction, \"align-\" + t.align],\n          style: t.contentStyle\n        }, [t._t(\"popover-content\", [n(\"div\", [t._v(\"Popover content goes here\")])])], 2)])]) : t._e()]), t._v(\" \"), t._t(\"default\", [n(\"span\", [t._v(\"Popover trigger goes here\")])])], 2);\n      },\n      staticRenderFns: []\n    };\n    e.a = r;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(48),\n        i = n(110);\n\n    var a = function (t) {\n      n(103);\n    },\n        o = n(1)(r.a, i.a, !1, a, \"data-v-28896542\", null);\n\n    e.a = o.exports;\n  }, function (t, e) {}, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(49),\n        i = n(109);\n\n    var a = function (t) {\n      n(105);\n    },\n        o = n(1)(r.a, i.a, !1, a, \"data-v-3db80f80\", null);\n\n    e.a = o.exports;\n  }, function (t, e) {}, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(50),\n        i = n(108);\n\n    var a = function (t) {\n      n(107);\n    },\n        o = n(1)(r.a, i.a, !1, a, \"data-v-54b1f93b\", null);\n\n    e.a = o.exports;\n  }, function (t, e) {}, function (t, e, n) {\n    \"use strict\";\n\n    var r = {\n      render: function () {\n        var t = this,\n            e = t.$createElement,\n            n = t._self._c || e;\n        return n(\"div\", {\n          class: [\"c-day-popover-row\", {\n            selectable: t.isSelectable\n          }],\n          on: {\n            click: function (e) {\n              t.$emit(\"select\");\n            }\n          }\n        }, [!t.hideIndicator && t.indicatorStyle ? n(\"div\", {\n          staticClass: \"c-day-popover-indicator\"\n        }, [n(\"span\", {\n          style: t.indicatorStyle\n        })]) : t._e(), t._v(\" \"), n(\"div\", {\n          staticClass: \"c-day-popover-content\"\n        }, [t._t(\"default\", [t._v(\"\\n      This is the default content slot.\\n    \")])], 2)]);\n      },\n      staticRenderFns: []\n    };\n    e.a = r;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = {\n      render: function () {\n        var t = this,\n            e = t.$createElement,\n            n = t._self._c || e;\n        return n(\"popover\", {\n          staticClass: \"c-day-popover\",\n          attrs: {\n            align: \"center\",\n            transition: \"fade\",\n            \"content-offset\": t.popoverContentOffset,\n            visibility: t.popoverVisibility,\n            \"content-style\": t.popoverContentStyle,\n            \"is-interactive\": t.popoverIsInteractive,\n            \"toggle-visible-on-click\": \"\"\n          },\n          on: {\n            \"got-focus\": function (e) {\n              t.isFocused = !0;\n            },\n            \"lost-focus\": function (e) {\n              t.isFocused = !1;\n            }\n          }\n        }, [n(\"div\", {\n          staticClass: \"c-day\",\n          style: t.dayCellStyle\n        }, [n(\"transition-group\", {\n          staticClass: \"c-day-backgrounds c-day-layer\",\n          attrs: {\n            name: \"background\",\n            tag: \"div\"\n          }\n        }, t._l(t.backgrounds, function (t) {\n          return n(\"div\", {\n            key: t.key,\n            class: t.wrapperClass\n          }, [n(\"div\", {\n            staticClass: \"c-day-background\",\n            style: t.style\n          })]);\n        })), t._v(\" \"), n(\"div\", {\n          staticClass: \"c-day-content-wrapper\",\n          on: {\n            click: t.click,\n            mouseenter: t.mouseenter,\n            mouseover: t.mouseover,\n            mouseleave: t.mouseleave\n          }\n        }, [t._t(\"day-content\", [n(\"div\", {\n          staticClass: \"c-day-content\",\n          style: t.contentStyle\n        }, [n(\"div\", [t._v(\"\\n            \" + t._s(t.day.label) + \"\\n          \")])])], {\n          day: t.day,\n          contentStyle: t.contentStyle,\n          attributes: t.attributesList\n        })], 2), t._v(\" \"), t.hasDots ? n(\"div\", {\n          staticClass: \"c-day-layer c-day-box-center-bottom\"\n        }, [n(\"div\", {\n          staticClass: \"c-day-dots\",\n          style: t.dotsStyle\n        }, t._l(t.dots, function (t) {\n          return n(\"span\", {\n            key: t.key,\n            staticClass: \"c-day-dot\",\n            style: t.style\n          });\n        }))]) : t._e(), t._v(\" \"), t.hasBars ? n(\"div\", {\n          staticClass: \"c-day-layer c-day-box-center-bottom\"\n        }, [n(\"div\", {\n          staticClass: \"c-day-bars\",\n          style: t.barsStyle\n        }, t._l(t.bars, function (t) {\n          return n(\"span\", {\n            key: t.key,\n            staticClass: \"c-day-bar\",\n            style: t.style\n          });\n        }))]) : t._e()], 1), t._v(\" \"), n(\"div\", {\n          staticClass: \"c-day-popover-content\",\n          attrs: {\n            slot: \"popover-content\"\n          },\n          slot: \"popover-content\"\n        }, [t._t(\"day-popover-header\", null, {\n          day: t.day,\n          attributes: t.attributesList\n        }), t._v(\" \"), t._l(t.popovers, function (e) {\n          return n(\"calendar-day-popover-row\", {\n            key: e.key,\n            attrs: {\n              attribute: e.attribute,\n              \"hide-indicator\": e.hideIndicator\n            }\n          }, [t._t(e.slot, [e.label ? n(\"span\", {\n            key: e.key,\n            staticClass: \"popover-label\",\n            style: e.labelStyle\n          }, [t._v(\"\\n          \" + t._s(e.label) + \"\\n        \")]) : t._e(), t._v(\" \"), e.component ? n(e.component, {\n            tag: \"component\",\n            attrs: {\n              attribute: e.attribute,\n              format: t.formats.dayPopover,\n              day: t.day\n            }\n          }) : t._e()], {\n            attribute: e.attribute,\n            customData: e.attribute.customData,\n            day: t.day\n          })], 2);\n        }), t._v(\" \"), t._t(\"day-popover-footer\", null, {\n          day: t.day,\n          attributes: t.attributesList\n        })], 2)]);\n      },\n      staticRenderFns: []\n    };\n    e.a = r;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = {\n      render: function () {\n        var t = this,\n            e = t.$createElement,\n            n = t._self._c || e;\n        return n(\"div\", t._l(t.weeks, function (e, r) {\n          return n(\"div\", {\n            key: r + 1,\n            staticClass: \"c-week\",\n            on: {\n              \"&touchstart\": function (e) {\n                t.$emit(\"touchstart\", e);\n              },\n              \"&touchmove\": function (e) {\n                t.$emit(\"touchmove\", e);\n              },\n              \"&touchend\": function (e) {\n                t.$emit(\"touchend\", e);\n              }\n            }\n          }, t._l(e, function (e) {\n            return n(\"calendar-day\", t._g(t._b({\n              key: e.id,\n              attrs: {\n                day: e\n              },\n              scopedSlots: t._u([t._l(Object.keys(t.$scopedSlots), function (e) {\n                return {\n                  key: e,\n                  fn: function (n) {\n                    return [t._t(e, null, null, n)];\n                  }\n                };\n              })])\n            }, \"calendar-day\", t.$attrs, !1), t.$listeners));\n          }));\n        }));\n      },\n      staticRenderFns: []\n    };\n    e.a = r;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(51),\n        i = n(119);\n\n    var a = function (t) {\n      n(112);\n    },\n        o = n(1)(r.a, i.a, !1, a, \"data-v-81948efe\", null);\n\n    e.a = o.exports;\n  }, function (t, e) {}, function (t, e, n) {\n    t.exports = {\n      default: n(114),\n      __esModule: !0\n    };\n  }, function (t, e, n) {\n    n(115), t.exports = n(5).Object.values;\n  }, function (t, e, n) {\n    var r = n(7),\n        i = n(116)(!1);\n    r(r.S, \"Object\", {\n      values: function (t) {\n        return i(t);\n      }\n    });\n  }, function (t, e, n) {\n    var r = n(16),\n        i = n(26),\n        a = n(42).f;\n\n    t.exports = function (t) {\n      return function (e) {\n        for (var n, o = i(e), s = r(o), u = s.length, c = 0, l = []; u > c;) a.call(o, n = s[c++]) && l.push(t ? [n, o[n]] : o[n]);\n\n        return l;\n      };\n    };\n  }, function (t, e) {}, function (t, e, n) {\n    \"use strict\";\n\n    var r = {\n      render: function () {\n        var t = this,\n            e = t.$createElement,\n            n = t._self._c || e;\n        return n(\"svg\", {\n          staticClass: \"svg-icon\",\n          attrs: {\n            width: t.width,\n            height: t.height,\n            viewBox: t.viewBox\n          },\n          on: {\n            click: function (e) {\n              t.$emit(\"click\", e);\n            }\n          }\n        }, [n(\"path\", {\n          attrs: {\n            d: t.path\n          }\n        })]);\n      },\n      staticRenderFns: []\n    };\n    e.a = r;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = {\n      render: function () {\n        var t = this,\n            e = t.$createElement,\n            n = t._self._c || e;\n        return n(\"div\", {\n          staticClass: \"c-nav\"\n        }, [\"month\" === t.mode_ ? n(\"div\", [n(\"div\", {\n          staticClass: \"c-header\",\n          style: t.headerStyle\n        }, [n(\"div\", {\n          staticClass: \"c-arrow-layout\"\n        }, [t._t(\"nav-left-button\", [n(\"svg-icon\", {\n          staticClass: \"c-arrow\",\n          style: t.headerArrowsStyle,\n          attrs: {\n            name: \"leftArrow\"\n          },\n          on: {\n            click: t.movePrevYear\n          }\n        })], {\n          monthItems: [].concat(t.monthItems),\n          move: t.movePrevYear\n        })], 2), t._v(\" \"), n(\"span\", {\n          staticClass: \"c-title\",\n          style: t.headerTitleStyle,\n          on: {\n            click: function (e) {\n              t.selectMode(\"year\");\n            }\n          }\n        }, [t._v(\"\\n        \" + t._s(t.yearIndex) + \"\\n      \")]), t._v(\" \"), n(\"div\", {\n          staticClass: \"c-arrow-layout\"\n        }, [t._t(\"nav-right-button\", [n(\"svg-icon\", {\n          staticClass: \"c-arrow\",\n          style: t.headerArrowsStyle,\n          attrs: {\n            name: \"rightArrow\"\n          },\n          on: {\n            click: t.moveNextYear\n          }\n        })], {\n          monthItems: [].concat(t.monthItems),\n          move: t.moveNextYear\n        })], 2)]), t._v(\" \"), n(\"table\", {\n          staticClass: \"c-table\"\n        }, t._l(t.monthRows, function (e, r) {\n          return n(\"tr\", {\n            key: r\n          }, t._l(e, function (e) {\n            return n(\"td\", {\n              key: e.month\n            }, [n(\"div\", {\n              staticClass: \"c-table-cell\",\n              class: {\n                \"c-active\": e.isActive,\n                \"c-disabled\": e.isDisabled\n              },\n              style: t.getMonthCellStyle(e),\n              on: {\n                click: function (n) {\n                  t.monthClick(e.month);\n                }\n              }\n            }, [t._v(\"\\n            \" + t._s(e.label) + \"\\n            \"), t._v(\" \"), n(\"transition\", {\n              attrs: {\n                name: \"indicators\"\n              }\n            }, [e.attributes ? n(\"div\", {\n              staticClass: \"c-indicators\"\n            }, t._l(e.attributes, function (t) {\n              return n(\"span\", {\n                key: t.key,\n                staticClass: \"c-indicator\",\n                style: t.style\n              });\n            })) : t._e()])], 1)]);\n          }));\n        }))]) : t._e(), t._v(\" \"), \"year\" === t.mode_ ? n(\"div\", [n(\"div\", {\n          staticClass: \"c-header\",\n          style: t.headerStyle\n        }, [n(\"div\", {\n          staticClass: \"c-arrow-layout\"\n        }, [t._t(\"nav-left-button\", [n(\"svg-icon\", {\n          staticClass: \"c-arrow\",\n          style: t.headerArrowsStyle,\n          attrs: {\n            name: \"leftArrow\"\n          },\n          on: {\n            click: t.movePrevYearGroup\n          }\n        })], {\n          firstYear: t.firstYear,\n          lastYear: t.lastYear,\n          yearItems: [].concat(t.yearItems),\n          move: t.movePrevYearGroup\n        })], 2), t._v(\" \"), n(\"span\", {\n          staticClass: \"c-title\",\n          style: t.headerTitleStyle,\n          on: {\n            click: function (e) {\n              t.selectMode(\"month\");\n            }\n          }\n        }, [t._v(\"\\n        \" + t._s(t.firstYear) + \" - \" + t._s(t.lastYear) + \"\\n      \")]), t._v(\" \"), n(\"div\", {\n          staticClass: \"c-arrow-layout\"\n        }, [t._t(\"nav-right-button\", [n(\"svg-icon\", {\n          staticClass: \"c-arrow\",\n          style: t.headerArrowsStyle,\n          attrs: {\n            name: \"rightArrow\"\n          },\n          on: {\n            click: t.moveNextYearGroup\n          }\n        })], {\n          firstYear: t.firstYear,\n          lastYear: t.lastYear,\n          yearItems: [].concat(t.yearItems),\n          move: t.moveNextYearGroup\n        })], 2)]), t._v(\" \"), n(\"table\", {\n          staticClass: \"c-table\"\n        }, t._l(t.yearRows, function (e, r) {\n          return n(\"tr\", {\n            key: r\n          }, t._l(e, function (e) {\n            return n(\"td\", {\n              key: e.year\n            }, [n(\"div\", {\n              staticClass: \"c-table-cell\",\n              class: {\n                \"c-active\": e.isActive,\n                \"c-disabled\": e.isDisabled\n              },\n              style: t.getYearCellStyle(e),\n              on: {\n                click: function (n) {\n                  t.yearClick(e.year);\n                }\n              }\n            }, [t._v(\"\\n            \" + t._s(e.year) + \"\\n          \")])]);\n          }));\n        }))]) : t._e()]);\n      },\n      staticRenderFns: []\n    };\n    e.a = r;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = {\n      render: function () {\n        var t = this,\n            e = t.$createElement,\n            n = t._self._c || e;\n        return n(\"div\", {\n          ref: \"pane\",\n          staticClass: \"c-pane\",\n          style: t.paneStyle\n        }, [t._t(\"header\", [n(\"div\", {\n          staticClass: \"c-header\",\n          style: t.headerStyle\n        }, [n(\"div\", {\n          staticClass: \"c-arrow-layout\"\n        }, [t.hideLeftButton ? t._e() : t._t(\"header-left-button\", [n(\"svg-icon\", {\n          class: [\"c-arrow\", {\n            \"c-disabled\": !t.canMovePrevMonth\n          }],\n          style: t.arrowStyle,\n          attrs: {\n            name: \"leftArrow\"\n          },\n          on: {\n            click: t.movePrevMonth\n          }\n        })], null, t.page_)], 2), t._v(\" \"), n(\"div\", {\n          class: [\"c-title-layout\", t.titleClass]\n        }, [n(\"popover\", {\n          staticClass: \"c-title-popover\",\n          attrs: {\n            direction: \"bottom\",\n            align: t.titlePosition,\n            visibility: t.navVisibility,\n            \"content-style\": t.navWrapperStyle,\n            \"force-hidden\": t.navForceHidden,\n            \"toggle-visible-on-click\": \"\",\n            \"is-interactive\": \"\"\n          },\n          on: {\n            \"update:forceHidden\": function (e) {\n              t.navForceHidden = e;\n            }\n          }\n        }, [n(\"transition-group\", {\n          staticClass: \"c-title-anchor\",\n          attrs: {\n            tag: \"div\",\n            name: t.titleTransition_\n          }\n        }, t._l(t.pages, function (e) {\n          return e === t.page_ ? n(\"div\", {\n            key: e.key,\n            staticClass: \"c-title\",\n            style: t.titleStyle\n          }, [t._t(\"header-title\", [t._v(\"\\n                \" + t._s(e.title) + \"\\n              \")], null, e)], 2) : t._e();\n        })), t._v(\" \"), n(\"calendar-nav\", {\n          attrs: {\n            slot: \"popover-content\",\n            value: t.page_,\n            validator: t.canMove,\n            styles: t.styles,\n            formats: t.formats\n          },\n          on: {\n            input: function (e) {\n              t.navPageSelected(e);\n            }\n          },\n          slot: \"popover-content\",\n          scopedSlots: t._u([t._l(t.navSlots, function (e) {\n            return {\n              key: e,\n              fn: function (n) {\n                return [t._t(e, null, null, n)];\n              }\n            };\n          })])\n        })], 1)], 1), t._v(\" \"), n(\"div\", {\n          staticClass: \"c-arrow-layout\"\n        }, [t.hideRightButton ? t._e() : t._t(\"header-right-button\", [n(\"svg-icon\", {\n          class: [\"c-arrow\", {\n            \"c-disabled\": !t.canMoveNextMonth\n          }],\n          style: t.arrowStyle,\n          attrs: {\n            name: \"rightArrow\"\n          },\n          on: {\n            click: t.moveNextMonth\n          }\n        })], null, t.page_)], 2)])], null, t.page_), t._v(\" \"), t.headerHorizontalDividerStyle_ ? n(\"div\", {\n          staticClass: \"c-horizontal-divider\",\n          style: t.headerHorizontalDividerStyle_\n        }) : t._e(), t._v(\" \"), n(\"div\", {\n          staticClass: \"c-weekdays\",\n          style: t.weekdaysStyle_\n        }, t._l(t.weekdayLabels, function (e, r) {\n          return n(\"div\", {\n            key: r + 1,\n            staticClass: \"c-weekday\"\n          }, [t._v(\"\\n      \" + t._s(e) + \"\\n    \")]);\n        })), t._v(\" \"), t.weekdaysHorizontalDividerStyle_ ? n(\"div\", {\n          staticClass: \"c-horizontal-divider\",\n          style: t.weekdaysHorizontalDividerStyle_\n        }) : t._e(), t._v(\" \"), n(\"div\", {\n          staticClass: \"c-weeks\",\n          style: t.weeksStyle_\n        }, [n(\"transition-group\", {\n          staticClass: \"c-weeks-rows-wrapper\",\n          attrs: {\n            tag: \"div\",\n            name: t.weeksTransition_\n          },\n          on: {\n            \"before-enter\": function (e) {\n              t.weeksTransitioning = !0;\n            },\n            \"after-enter\": function (e) {\n              t.weeksTransitioning = !1;\n            }\n          }\n        }, t._l(t.pages, function (e) {\n          return e === t.page_ ? n(\"calendar-weeks\", t._g(t._b({\n            key: e.key,\n            staticClass: \"c-weeks-rows\",\n            attrs: {\n              \"month-comps\": e.monthComps,\n              \"prev-month-comps\": e.prevMonthComps,\n              \"next-month-comps\": e.nextMonthComps,\n              styles: t.styles,\n              formats: t.formats\n            },\n            on: {\n              \"&touchstart\": function (e) {\n                t.touchStart(e);\n              },\n              \"&touchmove\": function (e) {\n                t.touchMove(e);\n              },\n              \"&touchend\": function (e) {\n                t.touchEnd(e);\n              }\n            },\n            scopedSlots: t._u([t._l(Object.keys(t.$scopedSlots), function (e) {\n              return {\n                key: e,\n                fn: function (n) {\n                  return [t._t(e, null, null, n)];\n                }\n              };\n            })])\n          }, \"calendar-weeks\", t.$attrs, !1), t.$listeners)) : t._e();\n        }))], 1)], 2);\n      },\n      staticRenderFns: []\n    };\n    e.a = r;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(0),\n        i = n.n(r),\n        a = n(53),\n        o = n(2);\n\n    e.a = function (t) {\n      var e = Object(o.a)(t) && t.filter(function (t) {\n        return t && t.dates;\n      }).map(function (t, e) {\n        return Object(a.a)(i()({\n          key: t.key || e.toString(),\n          order: t.order || 0\n        }, t));\n      }) || [];\n      return {\n        length: e.length,\n        find: function (t) {\n          return e.map(function (e) {\n            return i()({}, e, {\n              targetDate: e.includesDay(t)\n            });\n          }).filter(function (t) {\n            return t.targetDate;\n          }).sort(function (t, e) {\n            return t.targetDate.compare(e.targetDate);\n          });\n        }\n      };\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(54),\n        i = n(1)(r.a, null, !1, null, null, null);\n    e.a = i.exports;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(55),\n        i = n(1)(r.a, null, !1, null, null, null);\n    e.a = i.exports;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(56),\n        i = n(1)(r.a, null, !1, null, null, null);\n    e.a = i.exports;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(57),\n        i = n(1)(r.a, null, !1, null, null, null);\n    e.a = i.exports;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(58),\n        i = n(128);\n\n    var a = function (t) {\n      n(127);\n    },\n        o = n(1)(r.a, i.a, !1, a, \"data-v-6c331e62\", null);\n\n    e.a = o.exports;\n  }, function (t, e) {}, function (t, e, n) {\n    \"use strict\";\n\n    var r = {\n      render: function () {\n        var t = this.$createElement,\n            e = this._self._c || t;\n        return e(\"div\", [e(\"div\", {\n          staticClass: \"date-label\"\n        }, [this.dateLabel ? e(\"div\", [this._v(\"\\n      \" + this._s(this.dateLabel) + \"\\n    \")]) : this._e(), this._v(\" \"), this.startDateLabel ? e(\"div\", [this._v(\"\\n      \" + this._s(this.startDateLabel) + \"\\n    \")]) : this._e(), this._v(\" \"), this.endDateLabel ? e(\"div\", [this._v(\"\\n      \" + this._s(this.endDateLabel) + \"\\n    \")]) : this._e()]), this._v(\" \"), this.isRange ? e(\"div\", {\n          staticClass: \"days-nights\"\n        }, [e(\"span\", {\n          staticClass: \"days\"\n        }, [e(\"svg-icon\", {\n          staticClass: \"vc-sun-o\",\n          attrs: {\n            name: \"sun\"\n          }\n        }), this._v(\"\\n      \" + this._s(this.days) + \"\\n    \")], 1), this._v(\" \"), e(\"span\", {\n          staticClass: \"nights\"\n        }, [e(\"svg-icon\", {\n          staticClass: \"vc-moon-o\",\n          attrs: {\n            name: \"moon\"\n          }\n        }), this._v(\"\\n      \" + this._s(this.nights) + \"\\n    \")], 1)]) : this._e()]);\n      },\n      staticRenderFns: []\n    };\n    e.a = r;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var r = n(0),\n        i = n.n(r),\n        a = n(2),\n        o = {\n      ar: {\n        dow: 7,\n        L: \"D/‏M/‏YYYY\"\n      },\n      bg: {\n        dow: 2,\n        L: \"D.MM.YYYY\"\n      },\n      ca: {\n        dow: 2,\n        L: \"DD/MM/YYYY\"\n      },\n      \"zh-CN\": {\n        dow: 2,\n        L: \"YYYY/MM/DD\"\n      },\n      \"zh-TW\": {\n        L: \"YYYY/MM/DD\"\n      },\n      hr: {\n        dow: 2,\n        L: \"DD.MM.YYYY\"\n      },\n      cs: {\n        dow: 2,\n        L: \"DD.MM.YYYY\"\n      },\n      da: {\n        dow: 2,\n        L: \"DD.MM.YYYY\"\n      },\n      nl: {\n        dow: 2,\n        L: \"DD.MM.YYYY\"\n      },\n      \"en-US\": {\n        L: \"MM/DD/YYYY\"\n      },\n      \"en-AU\": {\n        dow: 2,\n        L: \"DD/MM/YYYY\"\n      },\n      \"en-CA\": {\n        L: \"YYYY-MM-DD\"\n      },\n      \"en-GB\": {\n        dow: 2,\n        L: \"DD/MM/YYYY\"\n      },\n      \"en-IE\": {\n        dow: 2,\n        L: \"DD-MM-YYYY\"\n      },\n      \"en-NZ\": {\n        dow: 2,\n        L: \"DD/MM/YYYY\"\n      },\n      eo: {\n        dow: 2,\n        L: \"YYYY-MM-DD\"\n      },\n      fi: {\n        dow: 2,\n        L: \"Do MMMM[ta] YYYY\"\n      },\n      fr: {\n        dow: 2,\n        L: \"DD/MM/YYYY\"\n      },\n      \"fr-CA\": {\n        L: \"YYYY-MM-DD\"\n      },\n      \"fr-CH\": {\n        dow: 2,\n        L: \"DD.MM.YYYY\"\n      },\n      de: {\n        dow: 2,\n        L: \"DD.MM.YYYY\"\n      },\n      id: {\n        dow: 2,\n        L: \"DD/MM/YYYY\"\n      },\n      it: {\n        dow: 2,\n        L: \"DD/MM/YYYY\"\n      },\n      ja: {\n        L: \"YYYY年M月D日\"\n      },\n      ko: {\n        L: \"YYYY.MM.DD\"\n      },\n      mk: {\n        dow: 2,\n        L: \"D.MM.YYYY\"\n      },\n      pl: {\n        dow: 2,\n        L: \"DD.MM.YYYY\"\n      },\n      pt: {\n        dow: 2,\n        L: \"DD/MM/YYYY\"\n      },\n      ro: {\n        dow: 2,\n        L: \"DD.MM.YYYY\"\n      },\n      ru: {\n        dow: 2,\n        L: \"DD.MM.YYYY\"\n      },\n      sk: {\n        dow: 2,\n        L: \"DD.MM.YYYY\"\n      },\n      es: {\n        dow: 1,\n        L: \"DD/MM/YYYY\"\n      },\n      sv: {\n        dow: 2,\n        L: \"YYYY-MM-DD\"\n      },\n      th: {\n        L: \"DD/MM/YYYY\"\n      },\n      tr: {\n        dow: 2,\n        L: \"DD.MM.YYYY\"\n      },\n      uk: {\n        dow: 2,\n        L: \"DD.MM.YYYY\"\n      }\n    };\n    o.en = o[\"en-US\"], o.zh = o[\"zh-CN\"];\n\n    var s = function (t, e) {\n      var n = new Intl.DateTimeFormat(t, {\n        month: e,\n        timezome: \"UTC\"\n      });\n      return Object(a.j)().map(function (t) {\n        return n.format(t);\n      });\n    },\n        u = function (t, e) {\n      var n = new Intl.DateTimeFormat(t, {\n        weekday: e,\n        timeZone: \"UTC\"\n      });\n      return Object(a.q)({\n        utc: !0\n      }).map(function (t) {\n        return n.format(t);\n      });\n    },\n        c = function (t) {\n      return \"\" + t + ([null, \"st\", \"nd\", \"rd\"][t % 100 >> 3 ^ 1 && t % 10] || \"th\");\n    };\n\n    e.a = function (t) {\n      var e = new Intl.DateTimeFormat().resolvedOptions().locale,\n          n = [t, t && t.substring(0, 2), e].find(function (t) {\n        return o[t];\n      }) || t || e,\n          r = i()({\n        dow: 1,\n        L: \"DD/MM/YYYY\"\n      }, o[n]),\n          a = u(n, \"long\"),\n          l = u(n, \"short\"),\n          d = l.map(function (t) {\n        return t.substring(0, 2);\n      }),\n          f = u(n, \"narrow\"),\n          h = s(n, \"long\"),\n          p = s(n, \"short\");\n      return {\n        locale: n,\n        firstDayOfWeek: r.dow,\n        masks: {\n          L: r.L\n        },\n        dayNames: a,\n        dayNamesShort: l,\n        dayNamesShorter: d,\n        dayNamesNarrow: f,\n        monthNames: h,\n        monthNamesShort: p,\n        DoFn: c\n      };\n    };\n  }]);\n});\n\n//# sourceURL=webpack:///./node_modules/v-calendar/lib/v-calendar.min.js?");

/***/ }),

/***/ "./node_modules/vue-multiselect/dist/vue-multiselect.min.js":
/*!******************************************************************!*\
  !*** ./node_modules/vue-multiselect/dist/vue-multiselect.min.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("!function (t, e) {\n   true ? module.exports = e() : undefined;\n}(this, function () {\n  return function (t) {\n    function e(i) {\n      if (n[i]) return n[i].exports;\n      var r = n[i] = {\n        i: i,\n        l: !1,\n        exports: {}\n      };\n      return t[i].call(r.exports, r, r.exports, e), r.l = !0, r.exports;\n    }\n\n    var n = {};\n    return e.m = t, e.c = n, e.i = function (t) {\n      return t;\n    }, e.d = function (t, n, i) {\n      e.o(t, n) || Object.defineProperty(t, n, {\n        configurable: !1,\n        enumerable: !0,\n        get: i\n      });\n    }, e.n = function (t) {\n      var n = t && t.__esModule ? function () {\n        return t.default;\n      } : function () {\n        return t;\n      };\n      return e.d(n, \"a\", n), n;\n    }, e.o = function (t, e) {\n      return Object.prototype.hasOwnProperty.call(t, e);\n    }, e.p = \"/\", e(e.s = 60);\n  }([function (t, e) {\n    var n = t.exports = \"undefined\" != typeof window && window.Math == Math ? window : \"undefined\" != typeof self && self.Math == Math ? self : Function(\"return this\")();\n    \"number\" == typeof __g && (__g = n);\n  }, function (t, e, n) {\n    var i = n(49)(\"wks\"),\n        r = n(30),\n        o = n(0).Symbol,\n        s = \"function\" == typeof o;\n    (t.exports = function (t) {\n      return i[t] || (i[t] = s && o[t] || (s ? o : r)(\"Symbol.\" + t));\n    }).store = i;\n  }, function (t, e, n) {\n    var i = n(5);\n\n    t.exports = function (t) {\n      if (!i(t)) throw TypeError(t + \" is not an object!\");\n      return t;\n    };\n  }, function (t, e, n) {\n    var i = n(0),\n        r = n(10),\n        o = n(8),\n        s = n(6),\n        u = n(11),\n        a = function (t, e, n) {\n      var l,\n          c,\n          f,\n          p,\n          h = t & a.F,\n          d = t & a.G,\n          v = t & a.S,\n          g = t & a.P,\n          y = t & a.B,\n          m = d ? i : v ? i[e] || (i[e] = {}) : (i[e] || {}).prototype,\n          b = d ? r : r[e] || (r[e] = {}),\n          _ = b.prototype || (b.prototype = {});\n\n      d && (n = e);\n\n      for (l in n) c = !h && m && void 0 !== m[l], f = (c ? m : n)[l], p = y && c ? u(f, i) : g && \"function\" == typeof f ? u(Function.call, f) : f, m && s(m, l, f, t & a.U), b[l] != f && o(b, l, p), g && _[l] != f && (_[l] = f);\n    };\n\n    i.core = r, a.F = 1, a.G = 2, a.S = 4, a.P = 8, a.B = 16, a.W = 32, a.U = 64, a.R = 128, t.exports = a;\n  }, function (t, e, n) {\n    t.exports = !n(7)(function () {\n      return 7 != Object.defineProperty({}, \"a\", {\n        get: function () {\n          return 7;\n        }\n      }).a;\n    });\n  }, function (t, e) {\n    t.exports = function (t) {\n      return \"object\" == typeof t ? null !== t : \"function\" == typeof t;\n    };\n  }, function (t, e, n) {\n    var i = n(0),\n        r = n(8),\n        o = n(12),\n        s = n(30)(\"src\"),\n        u = Function.toString,\n        a = (\"\" + u).split(\"toString\");\n    n(10).inspectSource = function (t) {\n      return u.call(t);\n    }, (t.exports = function (t, e, n, u) {\n      var l = \"function\" == typeof n;\n      l && (o(n, \"name\") || r(n, \"name\", e)), t[e] !== n && (l && (o(n, s) || r(n, s, t[e] ? \"\" + t[e] : a.join(String(e)))), t === i ? t[e] = n : u ? t[e] ? t[e] = n : r(t, e, n) : (delete t[e], r(t, e, n)));\n    })(Function.prototype, \"toString\", function () {\n      return \"function\" == typeof this && this[s] || u.call(this);\n    });\n  }, function (t, e) {\n    t.exports = function (t) {\n      try {\n        return !!t();\n      } catch (t) {\n        return !0;\n      }\n    };\n  }, function (t, e, n) {\n    var i = n(13),\n        r = n(25);\n    t.exports = n(4) ? function (t, e, n) {\n      return i.f(t, e, r(1, n));\n    } : function (t, e, n) {\n      return t[e] = n, t;\n    };\n  }, function (t, e) {\n    var n = {}.toString;\n\n    t.exports = function (t) {\n      return n.call(t).slice(8, -1);\n    };\n  }, function (t, e) {\n    var n = t.exports = {\n      version: \"2.5.7\"\n    };\n    \"number\" == typeof __e && (__e = n);\n  }, function (t, e, n) {\n    var i = n(14);\n\n    t.exports = function (t, e, n) {\n      if (i(t), void 0 === e) return t;\n\n      switch (n) {\n        case 1:\n          return function (n) {\n            return t.call(e, n);\n          };\n\n        case 2:\n          return function (n, i) {\n            return t.call(e, n, i);\n          };\n\n        case 3:\n          return function (n, i, r) {\n            return t.call(e, n, i, r);\n          };\n      }\n\n      return function () {\n        return t.apply(e, arguments);\n      };\n    };\n  }, function (t, e) {\n    var n = {}.hasOwnProperty;\n\n    t.exports = function (t, e) {\n      return n.call(t, e);\n    };\n  }, function (t, e, n) {\n    var i = n(2),\n        r = n(41),\n        o = n(29),\n        s = Object.defineProperty;\n    e.f = n(4) ? Object.defineProperty : function (t, e, n) {\n      if (i(t), e = o(e, !0), i(n), r) try {\n        return s(t, e, n);\n      } catch (t) {}\n      if (\"get\" in n || \"set\" in n) throw TypeError(\"Accessors not supported!\");\n      return \"value\" in n && (t[e] = n.value), t;\n    };\n  }, function (t, e) {\n    t.exports = function (t) {\n      if (\"function\" != typeof t) throw TypeError(t + \" is not a function!\");\n      return t;\n    };\n  }, function (t, e) {\n    t.exports = {};\n  }, function (t, e) {\n    t.exports = function (t) {\n      if (void 0 == t) throw TypeError(\"Can't call method on  \" + t);\n      return t;\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(7);\n\n    t.exports = function (t, e) {\n      return !!t && i(function () {\n        e ? t.call(null, function () {}, 1) : t.call(null);\n      });\n    };\n  }, function (t, e, n) {\n    var i = n(23),\n        r = n(16);\n\n    t.exports = function (t) {\n      return i(r(t));\n    };\n  }, function (t, e, n) {\n    var i = n(53),\n        r = Math.min;\n\n    t.exports = function (t) {\n      return t > 0 ? r(i(t), 9007199254740991) : 0;\n    };\n  }, function (t, e, n) {\n    var i = n(11),\n        r = n(23),\n        o = n(28),\n        s = n(19),\n        u = n(64);\n\n    t.exports = function (t, e) {\n      var n = 1 == t,\n          a = 2 == t,\n          l = 3 == t,\n          c = 4 == t,\n          f = 6 == t,\n          p = 5 == t || f,\n          h = e || u;\n      return function (e, u, d) {\n        for (var v, g, y = o(e), m = r(y), b = i(u, d, 3), _ = s(m.length), x = 0, w = n ? h(e, _) : a ? h(e, 0) : void 0; _ > x; x++) if ((p || x in m) && (v = m[x], g = b(v, x, y), t)) if (n) w[x] = g;else if (g) switch (t) {\n          case 3:\n            return !0;\n\n          case 5:\n            return v;\n\n          case 6:\n            return x;\n\n          case 2:\n            w.push(v);\n        } else if (c) return !1;\n\n        return f ? -1 : l || c ? c : w;\n      };\n    };\n  }, function (t, e, n) {\n    var i = n(5),\n        r = n(0).document,\n        o = i(r) && i(r.createElement);\n\n    t.exports = function (t) {\n      return o ? r.createElement(t) : {};\n    };\n  }, function (t, e) {\n    t.exports = \"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\");\n  }, function (t, e, n) {\n    var i = n(9);\n    t.exports = Object(\"z\").propertyIsEnumerable(0) ? Object : function (t) {\n      return \"String\" == i(t) ? t.split(\"\") : Object(t);\n    };\n  }, function (t, e) {\n    t.exports = !1;\n  }, function (t, e) {\n    t.exports = function (t, e) {\n      return {\n        enumerable: !(1 & t),\n        configurable: !(2 & t),\n        writable: !(4 & t),\n        value: e\n      };\n    };\n  }, function (t, e, n) {\n    var i = n(13).f,\n        r = n(12),\n        o = n(1)(\"toStringTag\");\n\n    t.exports = function (t, e, n) {\n      t && !r(t = n ? t : t.prototype, o) && i(t, o, {\n        configurable: !0,\n        value: e\n      });\n    };\n  }, function (t, e, n) {\n    var i = n(49)(\"keys\"),\n        r = n(30);\n\n    t.exports = function (t) {\n      return i[t] || (i[t] = r(t));\n    };\n  }, function (t, e, n) {\n    var i = n(16);\n\n    t.exports = function (t) {\n      return Object(i(t));\n    };\n  }, function (t, e, n) {\n    var i = n(5);\n\n    t.exports = function (t, e) {\n      if (!i(t)) return t;\n      var n, r;\n      if (e && \"function\" == typeof (n = t.toString) && !i(r = n.call(t))) return r;\n      if (\"function\" == typeof (n = t.valueOf) && !i(r = n.call(t))) return r;\n      if (!e && \"function\" == typeof (n = t.toString) && !i(r = n.call(t))) return r;\n      throw TypeError(\"Can't convert object to primitive value\");\n    };\n  }, function (t, e) {\n    var n = 0,\n        i = Math.random();\n\n    t.exports = function (t) {\n      return \"Symbol(\".concat(void 0 === t ? \"\" : t, \")_\", (++n + i).toString(36));\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(0),\n        r = n(12),\n        o = n(9),\n        s = n(67),\n        u = n(29),\n        a = n(7),\n        l = n(77).f,\n        c = n(45).f,\n        f = n(13).f,\n        p = n(51).trim,\n        h = i.Number,\n        d = h,\n        v = h.prototype,\n        g = \"Number\" == o(n(44)(v)),\n        y = (\"trim\" in String.prototype),\n        m = function (t) {\n      var e = u(t, !1);\n\n      if (\"string\" == typeof e && e.length > 2) {\n        e = y ? e.trim() : p(e, 3);\n        var n,\n            i,\n            r,\n            o = e.charCodeAt(0);\n\n        if (43 === o || 45 === o) {\n          if (88 === (n = e.charCodeAt(2)) || 120 === n) return NaN;\n        } else if (48 === o) {\n          switch (e.charCodeAt(1)) {\n            case 66:\n            case 98:\n              i = 2, r = 49;\n              break;\n\n            case 79:\n            case 111:\n              i = 8, r = 55;\n              break;\n\n            default:\n              return +e;\n          }\n\n          for (var s, a = e.slice(2), l = 0, c = a.length; l < c; l++) if ((s = a.charCodeAt(l)) < 48 || s > r) return NaN;\n\n          return parseInt(a, i);\n        }\n      }\n\n      return +e;\n    };\n\n    if (!h(\" 0o1\") || !h(\"0b1\") || h(\"+0x1\")) {\n      h = function (t) {\n        var e = arguments.length < 1 ? 0 : t,\n            n = this;\n        return n instanceof h && (g ? a(function () {\n          v.valueOf.call(n);\n        }) : \"Number\" != o(n)) ? s(new d(m(e)), n, h) : m(e);\n      };\n\n      for (var b, _ = n(4) ? l(d) : \"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"), x = 0; _.length > x; x++) r(d, b = _[x]) && !r(h, b) && f(h, b, c(d, b));\n\n      h.prototype = v, v.constructor = h, n(6)(i, \"Number\", h);\n    }\n  }, function (t, e, n) {\n    \"use strict\";\n\n    function i(t) {\n      return 0 !== t && (!(!Array.isArray(t) || 0 !== t.length) || !t);\n    }\n\n    function r(t) {\n      return function () {\n        return !t.apply(void 0, arguments);\n      };\n    }\n\n    function o(t, e) {\n      return void 0 === t && (t = \"undefined\"), null === t && (t = \"null\"), !1 === t && (t = \"false\"), -1 !== t.toString().toLowerCase().indexOf(e.trim());\n    }\n\n    function s(t, e, n, i) {\n      return t.filter(function (t) {\n        return o(i(t, n), e);\n      });\n    }\n\n    function u(t) {\n      return t.filter(function (t) {\n        return !t.$isLabel;\n      });\n    }\n\n    function a(t, e) {\n      return function (n) {\n        return n.reduce(function (n, i) {\n          return i[t] && i[t].length ? (n.push({\n            $groupLabel: i[e],\n            $isLabel: !0\n          }), n.concat(i[t])) : n;\n        }, []);\n      };\n    }\n\n    function l(t, e, i, r, o) {\n      return function (u) {\n        return u.map(function (u) {\n          var a;\n          if (!u[i]) return console.warn(\"Options passed to vue-multiselect do not contain groups, despite the config.\"), [];\n          var l = s(u[i], t, e, o);\n          return l.length ? (a = {}, n.i(d.a)(a, r, u[r]), n.i(d.a)(a, i, l), a) : [];\n        });\n      };\n    }\n\n    var c = n(59),\n        f = n(54),\n        p = (n.n(f), n(95)),\n        h = (n.n(p), n(31)),\n        d = (n.n(h), n(58)),\n        v = n(91),\n        g = (n.n(v), n(98)),\n        y = (n.n(g), n(92)),\n        m = (n.n(y), n(88)),\n        b = (n.n(m), n(97)),\n        _ = (n.n(b), n(89)),\n        x = (n.n(_), n(96)),\n        w = (n.n(x), n(93)),\n        S = (n.n(w), n(90)),\n        O = (n.n(S), function () {\n      for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n];\n\n      return function (t) {\n        return e.reduce(function (t, e) {\n          return e(t);\n        }, t);\n      };\n    });\n\n    e.a = {\n      data: function () {\n        return {\n          search: \"\",\n          isOpen: !1,\n          preferredOpenDirection: \"below\",\n          optimizedHeight: this.maxHeight\n        };\n      },\n      props: {\n        internalSearch: {\n          type: Boolean,\n          default: !0\n        },\n        options: {\n          type: Array,\n          required: !0\n        },\n        multiple: {\n          type: Boolean,\n          default: !1\n        },\n        value: {\n          type: null,\n          default: function () {\n            return [];\n          }\n        },\n        trackBy: {\n          type: String\n        },\n        label: {\n          type: String\n        },\n        searchable: {\n          type: Boolean,\n          default: !0\n        },\n        clearOnSelect: {\n          type: Boolean,\n          default: !0\n        },\n        hideSelected: {\n          type: Boolean,\n          default: !1\n        },\n        placeholder: {\n          type: String,\n          default: \"Select option\"\n        },\n        allowEmpty: {\n          type: Boolean,\n          default: !0\n        },\n        resetAfter: {\n          type: Boolean,\n          default: !1\n        },\n        closeOnSelect: {\n          type: Boolean,\n          default: !0\n        },\n        customLabel: {\n          type: Function,\n          default: function (t, e) {\n            return i(t) ? \"\" : e ? t[e] : t;\n          }\n        },\n        taggable: {\n          type: Boolean,\n          default: !1\n        },\n        tagPlaceholder: {\n          type: String,\n          default: \"Press enter to create a tag\"\n        },\n        tagPosition: {\n          type: String,\n          default: \"top\"\n        },\n        max: {\n          type: [Number, Boolean],\n          default: !1\n        },\n        id: {\n          default: null\n        },\n        optionsLimit: {\n          type: Number,\n          default: 1e3\n        },\n        groupValues: {\n          type: String\n        },\n        groupLabel: {\n          type: String\n        },\n        groupSelect: {\n          type: Boolean,\n          default: !1\n        },\n        blockKeys: {\n          type: Array,\n          default: function () {\n            return [];\n          }\n        },\n        preserveSearch: {\n          type: Boolean,\n          default: !1\n        },\n        preselectFirst: {\n          type: Boolean,\n          default: !1\n        }\n      },\n      mounted: function () {\n        !this.multiple && this.max && console.warn(\"[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.\"), this.preselectFirst && !this.internalValue.length && this.options.length && this.select(this.filteredOptions[0]);\n      },\n      computed: {\n        internalValue: function () {\n          return this.value || 0 === this.value ? Array.isArray(this.value) ? this.value : [this.value] : [];\n        },\n        filteredOptions: function () {\n          var t = this.search || \"\",\n              e = t.toLowerCase().trim(),\n              n = this.options.concat();\n          return n = this.internalSearch ? this.groupValues ? this.filterAndFlat(n, e, this.label) : s(n, e, this.label, this.customLabel) : this.groupValues ? a(this.groupValues, this.groupLabel)(n) : n, n = this.hideSelected ? n.filter(r(this.isSelected)) : n, this.taggable && e.length && !this.isExistingOption(e) && (\"bottom\" === this.tagPosition ? n.push({\n            isTag: !0,\n            label: t\n          }) : n.unshift({\n            isTag: !0,\n            label: t\n          })), n.slice(0, this.optionsLimit);\n        },\n        valueKeys: function () {\n          var t = this;\n          return this.trackBy ? this.internalValue.map(function (e) {\n            return e[t.trackBy];\n          }) : this.internalValue;\n        },\n        optionKeys: function () {\n          var t = this;\n          return (this.groupValues ? this.flatAndStrip(this.options) : this.options).map(function (e) {\n            return t.customLabel(e, t.label).toString().toLowerCase();\n          });\n        },\n        currentOptionLabel: function () {\n          return this.multiple ? this.searchable ? \"\" : this.placeholder : this.internalValue.length ? this.getOptionLabel(this.internalValue[0]) : this.searchable ? \"\" : this.placeholder;\n        }\n      },\n      watch: {\n        internalValue: function () {\n          this.resetAfter && this.internalValue.length && (this.search = \"\", this.$emit(\"input\", this.multiple ? [] : null));\n        },\n        search: function () {\n          this.$emit(\"search-change\", this.search, this.id);\n        }\n      },\n      methods: {\n        getValue: function () {\n          return this.multiple ? this.internalValue : 0 === this.internalValue.length ? null : this.internalValue[0];\n        },\n        filterAndFlat: function (t, e, n) {\n          return O(l(e, n, this.groupValues, this.groupLabel, this.customLabel), a(this.groupValues, this.groupLabel))(t);\n        },\n        flatAndStrip: function (t) {\n          return O(a(this.groupValues, this.groupLabel), u)(t);\n        },\n        updateSearch: function (t) {\n          this.search = t;\n        },\n        isExistingOption: function (t) {\n          return !!this.options && this.optionKeys.indexOf(t) > -1;\n        },\n        isSelected: function (t) {\n          var e = this.trackBy ? t[this.trackBy] : t;\n          return this.valueKeys.indexOf(e) > -1;\n        },\n        isOptionDisabled: function (t) {\n          return !!t.$isDisabled;\n        },\n        getOptionLabel: function (t) {\n          if (i(t)) return \"\";\n          if (t.isTag) return t.label;\n          if (t.$isLabel) return t.$groupLabel;\n          var e = this.customLabel(t, this.label);\n          return i(e) ? \"\" : e;\n        },\n        select: function (t, e) {\n          if (t.$isLabel && this.groupSelect) return void this.selectGroup(t);\n\n          if (!(-1 !== this.blockKeys.indexOf(e) || this.disabled || t.$isDisabled || t.$isLabel) && (!this.max || !this.multiple || this.internalValue.length !== this.max) && (\"Tab\" !== e || this.pointerDirty)) {\n            if (t.isTag) this.$emit(\"tag\", t.label, this.id), this.search = \"\", this.closeOnSelect && !this.multiple && this.deactivate();else {\n              if (this.isSelected(t)) return void (\"Tab\" !== e && this.removeElement(t));\n              this.$emit(\"select\", t, this.id), this.multiple ? this.$emit(\"input\", this.internalValue.concat([t]), this.id) : this.$emit(\"input\", t, this.id), this.clearOnSelect && (this.search = \"\");\n            }\n            this.closeOnSelect && this.deactivate();\n          }\n        },\n        selectGroup: function (t) {\n          var e = this,\n              n = this.options.find(function (n) {\n            return n[e.groupLabel] === t.$groupLabel;\n          });\n          if (n) if (this.wholeGroupSelected(n)) {\n            this.$emit(\"remove\", n[this.groupValues], this.id);\n            var i = this.internalValue.filter(function (t) {\n              return -1 === n[e.groupValues].indexOf(t);\n            });\n            this.$emit(\"input\", i, this.id);\n          } else {\n            var r = n[this.groupValues].filter(function (t) {\n              return !(e.isOptionDisabled(t) || e.isSelected(t));\n            });\n            this.$emit(\"select\", r, this.id), this.$emit(\"input\", this.internalValue.concat(r), this.id);\n          }\n        },\n        wholeGroupSelected: function (t) {\n          var e = this;\n          return t[this.groupValues].every(function (t) {\n            return e.isSelected(t) || e.isOptionDisabled(t);\n          });\n        },\n        wholeGroupDisabled: function (t) {\n          return t[this.groupValues].every(this.isOptionDisabled);\n        },\n        removeElement: function (t) {\n          var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];\n\n          if (!this.disabled && !t.$isDisabled) {\n            if (!this.allowEmpty && this.internalValue.length <= 1) return void this.deactivate();\n            var i = \"object\" === n.i(c.a)(t) ? this.valueKeys.indexOf(t[this.trackBy]) : this.valueKeys.indexOf(t);\n\n            if (this.$emit(\"remove\", t, this.id), this.multiple) {\n              var r = this.internalValue.slice(0, i).concat(this.internalValue.slice(i + 1));\n              this.$emit(\"input\", r, this.id);\n            } else this.$emit(\"input\", null, this.id);\n\n            this.closeOnSelect && e && this.deactivate();\n          }\n        },\n        removeLastElement: function () {\n          -1 === this.blockKeys.indexOf(\"Delete\") && 0 === this.search.length && Array.isArray(this.internalValue) && this.internalValue.length && this.removeElement(this.internalValue[this.internalValue.length - 1], !1);\n        },\n        activate: function () {\n          var t = this;\n          this.isOpen || this.disabled || (this.adjustPosition(), this.groupValues && 0 === this.pointer && this.filteredOptions.length && (this.pointer = 1), this.isOpen = !0, this.searchable ? (this.preserveSearch || (this.search = \"\"), this.$nextTick(function () {\n            return t.$refs.search.focus();\n          })) : this.$el.focus(), this.$emit(\"open\", this.id));\n        },\n        deactivate: function () {\n          this.isOpen && (this.isOpen = !1, this.searchable ? this.$refs.search.blur() : this.$el.blur(), this.preserveSearch || (this.search = \"\"), this.$emit(\"close\", this.getValue(), this.id));\n        },\n        toggle: function () {\n          this.isOpen ? this.deactivate() : this.activate();\n        },\n        adjustPosition: function () {\n          if (\"undefined\" != typeof window) {\n            var t = this.$el.getBoundingClientRect().top,\n                e = window.innerHeight - this.$el.getBoundingClientRect().bottom;\n            e > this.maxHeight || e > t || \"below\" === this.openDirection || \"bottom\" === this.openDirection ? (this.preferredOpenDirection = \"below\", this.optimizedHeight = Math.min(e - 40, this.maxHeight)) : (this.preferredOpenDirection = \"above\", this.optimizedHeight = Math.min(t - 40, this.maxHeight));\n          }\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(54),\n        r = (n.n(i), n(31));\n    n.n(r);\n    e.a = {\n      data: function () {\n        return {\n          pointer: 0,\n          pointerDirty: !1\n        };\n      },\n      props: {\n        showPointer: {\n          type: Boolean,\n          default: !0\n        },\n        optionHeight: {\n          type: Number,\n          default: 40\n        }\n      },\n      computed: {\n        pointerPosition: function () {\n          return this.pointer * this.optionHeight;\n        },\n        visibleElements: function () {\n          return this.optimizedHeight / this.optionHeight;\n        }\n      },\n      watch: {\n        filteredOptions: function () {\n          this.pointerAdjust();\n        },\n        isOpen: function () {\n          this.pointerDirty = !1;\n        }\n      },\n      methods: {\n        optionHighlight: function (t, e) {\n          return {\n            \"multiselect__option--highlight\": t === this.pointer && this.showPointer,\n            \"multiselect__option--selected\": this.isSelected(e)\n          };\n        },\n        groupHighlight: function (t, e) {\n          var n = this;\n          if (!this.groupSelect) return [\"multiselect__option--group\", \"multiselect__option--disabled\"];\n          var i = this.options.find(function (t) {\n            return t[n.groupLabel] === e.$groupLabel;\n          });\n          return i && !this.wholeGroupDisabled(i) ? [\"multiselect__option--group\", {\n            \"multiselect__option--highlight\": t === this.pointer && this.showPointer\n          }, {\n            \"multiselect__option--group-selected\": this.wholeGroupSelected(i)\n          }] : \"multiselect__option--disabled\";\n        },\n        addPointerElement: function () {\n          var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"Enter\",\n              e = t.key;\n          this.filteredOptions.length > 0 && this.select(this.filteredOptions[this.pointer], e), this.pointerReset();\n        },\n        pointerForward: function () {\n          this.pointer < this.filteredOptions.length - 1 && (this.pointer++, this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight && (this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight), this.filteredOptions[this.pointer] && this.filteredOptions[this.pointer].$isLabel && !this.groupSelect && this.pointerForward()), this.pointerDirty = !0;\n        },\n        pointerBackward: function () {\n          this.pointer > 0 ? (this.pointer--, this.$refs.list.scrollTop >= this.pointerPosition && (this.$refs.list.scrollTop = this.pointerPosition), this.filteredOptions[this.pointer] && this.filteredOptions[this.pointer].$isLabel && !this.groupSelect && this.pointerBackward()) : this.filteredOptions[this.pointer] && this.filteredOptions[0].$isLabel && !this.groupSelect && this.pointerForward(), this.pointerDirty = !0;\n        },\n        pointerReset: function () {\n          this.closeOnSelect && (this.pointer = 0, this.$refs.list && (this.$refs.list.scrollTop = 0));\n        },\n        pointerAdjust: function () {\n          this.pointer >= this.filteredOptions.length - 1 && (this.pointer = this.filteredOptions.length ? this.filteredOptions.length - 1 : 0), this.filteredOptions.length > 0 && this.filteredOptions[this.pointer].$isLabel && !this.groupSelect && this.pointerForward();\n        },\n        pointerSet: function (t) {\n          this.pointer = t, this.pointerDirty = !0;\n        }\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(36),\n        r = n(74),\n        o = n(15),\n        s = n(18);\n    t.exports = n(72)(Array, \"Array\", function (t, e) {\n      this._t = s(t), this._i = 0, this._k = e;\n    }, function () {\n      var t = this._t,\n          e = this._k,\n          n = this._i++;\n      return !t || n >= t.length ? (this._t = void 0, r(1)) : \"keys\" == e ? r(0, n) : \"values\" == e ? r(0, t[n]) : r(0, [n, t[n]]);\n    }, \"values\"), o.Arguments = o.Array, i(\"keys\"), i(\"values\"), i(\"entries\");\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(31),\n        r = (n.n(i), n(32)),\n        o = n(33);\n    e.a = {\n      name: \"vue-multiselect\",\n      mixins: [r.a, o.a],\n      props: {\n        name: {\n          type: String,\n          default: \"\"\n        },\n        selectLabel: {\n          type: String,\n          default: \"Press enter to select\"\n        },\n        selectGroupLabel: {\n          type: String,\n          default: \"Press enter to select group\"\n        },\n        selectedLabel: {\n          type: String,\n          default: \"Selected\"\n        },\n        deselectLabel: {\n          type: String,\n          default: \"Press enter to remove\"\n        },\n        deselectGroupLabel: {\n          type: String,\n          default: \"Press enter to deselect group\"\n        },\n        showLabels: {\n          type: Boolean,\n          default: !0\n        },\n        limit: {\n          type: Number,\n          default: 99999\n        },\n        maxHeight: {\n          type: Number,\n          default: 300\n        },\n        limitText: {\n          type: Function,\n          default: function (t) {\n            return \"and \".concat(t, \" more\");\n          }\n        },\n        loading: {\n          type: Boolean,\n          default: !1\n        },\n        disabled: {\n          type: Boolean,\n          default: !1\n        },\n        openDirection: {\n          type: String,\n          default: \"\"\n        },\n        showNoOptions: {\n          type: Boolean,\n          default: !0\n        },\n        showNoResults: {\n          type: Boolean,\n          default: !0\n        },\n        tabindex: {\n          type: Number,\n          default: 0\n        }\n      },\n      computed: {\n        isSingleLabelVisible: function () {\n          return (this.singleValue || 0 === this.singleValue) && (!this.isOpen || !this.searchable) && !this.visibleValues.length;\n        },\n        isPlaceholderVisible: function () {\n          return !(this.internalValue.length || this.searchable && this.isOpen);\n        },\n        visibleValues: function () {\n          return this.multiple ? this.internalValue.slice(0, this.limit) : [];\n        },\n        singleValue: function () {\n          return this.internalValue[0];\n        },\n        deselectLabelText: function () {\n          return this.showLabels ? this.deselectLabel : \"\";\n        },\n        deselectGroupLabelText: function () {\n          return this.showLabels ? this.deselectGroupLabel : \"\";\n        },\n        selectLabelText: function () {\n          return this.showLabels ? this.selectLabel : \"\";\n        },\n        selectGroupLabelText: function () {\n          return this.showLabels ? this.selectGroupLabel : \"\";\n        },\n        selectedLabelText: function () {\n          return this.showLabels ? this.selectedLabel : \"\";\n        },\n        inputStyle: function () {\n          if (this.searchable || this.multiple && this.value && this.value.length) return this.isOpen ? {\n            width: \"100%\"\n          } : {\n            width: \"0\",\n            position: \"absolute\",\n            padding: \"0\"\n          };\n        },\n        contentStyle: function () {\n          return this.options.length ? {\n            display: \"inline-block\"\n          } : {\n            display: \"block\"\n          };\n        },\n        isAbove: function () {\n          return \"above\" === this.openDirection || \"top\" === this.openDirection || \"below\" !== this.openDirection && \"bottom\" !== this.openDirection && \"above\" === this.preferredOpenDirection;\n        },\n        showSearchInput: function () {\n          return this.searchable && (!this.hasSingleSelectedSlot || !this.visibleSingleValue && 0 !== this.visibleSingleValue || this.isOpen);\n        }\n      }\n    };\n  }, function (t, e, n) {\n    var i = n(1)(\"unscopables\"),\n        r = Array.prototype;\n    void 0 == r[i] && n(8)(r, i, {}), t.exports = function (t) {\n      r[i][t] = !0;\n    };\n  }, function (t, e, n) {\n    var i = n(18),\n        r = n(19),\n        o = n(85);\n\n    t.exports = function (t) {\n      return function (e, n, s) {\n        var u,\n            a = i(e),\n            l = r(a.length),\n            c = o(s, l);\n\n        if (t && n != n) {\n          for (; l > c;) if ((u = a[c++]) != u) return !0;\n        } else for (; l > c; c++) if ((t || c in a) && a[c] === n) return t || c || 0;\n\n        return !t && -1;\n      };\n    };\n  }, function (t, e, n) {\n    var i = n(9),\n        r = n(1)(\"toStringTag\"),\n        o = \"Arguments\" == i(function () {\n      return arguments;\n    }()),\n        s = function (t, e) {\n      try {\n        return t[e];\n      } catch (t) {}\n    };\n\n    t.exports = function (t) {\n      var e, n, u;\n      return void 0 === t ? \"Undefined\" : null === t ? \"Null\" : \"string\" == typeof (n = s(e = Object(t), r)) ? n : o ? i(e) : \"Object\" == (u = i(e)) && \"function\" == typeof e.callee ? \"Arguments\" : u;\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(2);\n\n    t.exports = function () {\n      var t = i(this),\n          e = \"\";\n      return t.global && (e += \"g\"), t.ignoreCase && (e += \"i\"), t.multiline && (e += \"m\"), t.unicode && (e += \"u\"), t.sticky && (e += \"y\"), e;\n    };\n  }, function (t, e, n) {\n    var i = n(0).document;\n    t.exports = i && i.documentElement;\n  }, function (t, e, n) {\n    t.exports = !n(4) && !n(7)(function () {\n      return 7 != Object.defineProperty(n(21)(\"div\"), \"a\", {\n        get: function () {\n          return 7;\n        }\n      }).a;\n    });\n  }, function (t, e, n) {\n    var i = n(9);\n\n    t.exports = Array.isArray || function (t) {\n      return \"Array\" == i(t);\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    function i(t) {\n      var e, n;\n      this.promise = new t(function (t, i) {\n        if (void 0 !== e || void 0 !== n) throw TypeError(\"Bad Promise constructor\");\n        e = t, n = i;\n      }), this.resolve = r(e), this.reject = r(n);\n    }\n\n    var r = n(14);\n\n    t.exports.f = function (t) {\n      return new i(t);\n    };\n  }, function (t, e, n) {\n    var i = n(2),\n        r = n(76),\n        o = n(22),\n        s = n(27)(\"IE_PROTO\"),\n        u = function () {},\n        a = function () {\n      var t,\n          e = n(21)(\"iframe\"),\n          i = o.length;\n\n      for (e.style.display = \"none\", n(40).appendChild(e), e.src = \"javascript:\", t = e.contentWindow.document, t.open(), t.write(\"<script>document.F=Object<\\/script>\"), t.close(), a = t.F; i--;) delete a.prototype[o[i]];\n\n      return a();\n    };\n\n    t.exports = Object.create || function (t, e) {\n      var n;\n      return null !== t ? (u.prototype = i(t), n = new u(), u.prototype = null, n[s] = t) : n = a(), void 0 === e ? n : r(n, e);\n    };\n  }, function (t, e, n) {\n    var i = n(79),\n        r = n(25),\n        o = n(18),\n        s = n(29),\n        u = n(12),\n        a = n(41),\n        l = Object.getOwnPropertyDescriptor;\n    e.f = n(4) ? l : function (t, e) {\n      if (t = o(t), e = s(e, !0), a) try {\n        return l(t, e);\n      } catch (t) {}\n      if (u(t, e)) return r(!i.f.call(t, e), t[e]);\n    };\n  }, function (t, e, n) {\n    var i = n(12),\n        r = n(18),\n        o = n(37)(!1),\n        s = n(27)(\"IE_PROTO\");\n\n    t.exports = function (t, e) {\n      var n,\n          u = r(t),\n          a = 0,\n          l = [];\n\n      for (n in u) n != s && i(u, n) && l.push(n);\n\n      for (; e.length > a;) i(u, n = e[a++]) && (~o(l, n) || l.push(n));\n\n      return l;\n    };\n  }, function (t, e, n) {\n    var i = n(46),\n        r = n(22);\n\n    t.exports = Object.keys || function (t) {\n      return i(t, r);\n    };\n  }, function (t, e, n) {\n    var i = n(2),\n        r = n(5),\n        o = n(43);\n\n    t.exports = function (t, e) {\n      if (i(t), r(e) && e.constructor === t) return e;\n      var n = o.f(t);\n      return (0, n.resolve)(e), n.promise;\n    };\n  }, function (t, e, n) {\n    var i = n(10),\n        r = n(0),\n        o = r[\"__core-js_shared__\"] || (r[\"__core-js_shared__\"] = {});\n    (t.exports = function (t, e) {\n      return o[t] || (o[t] = void 0 !== e ? e : {});\n    })(\"versions\", []).push({\n      version: i.version,\n      mode: n(24) ? \"pure\" : \"global\",\n      copyright: \"© 2018 Denis Pushkarev (zloirock.ru)\"\n    });\n  }, function (t, e, n) {\n    var i = n(2),\n        r = n(14),\n        o = n(1)(\"species\");\n\n    t.exports = function (t, e) {\n      var n,\n          s = i(t).constructor;\n      return void 0 === s || void 0 == (n = i(s)[o]) ? e : r(n);\n    };\n  }, function (t, e, n) {\n    var i = n(3),\n        r = n(16),\n        o = n(7),\n        s = n(84),\n        u = \"[\" + s + \"]\",\n        a = \"​\",\n        l = RegExp(\"^\" + u + u + \"*\"),\n        c = RegExp(u + u + \"*$\"),\n        f = function (t, e, n) {\n      var r = {},\n          u = o(function () {\n        return !!s[t]() || a[t]() != a;\n      }),\n          l = r[t] = u ? e(p) : s[t];\n      n && (r[n] = l), i(i.P + i.F * u, \"String\", r);\n    },\n        p = f.trim = function (t, e) {\n      return t = String(r(t)), 1 & e && (t = t.replace(l, \"\")), 2 & e && (t = t.replace(c, \"\")), t;\n    };\n\n    t.exports = f;\n  }, function (t, e, n) {\n    var i,\n        r,\n        o,\n        s = n(11),\n        u = n(68),\n        a = n(40),\n        l = n(21),\n        c = n(0),\n        f = c.process,\n        p = c.setImmediate,\n        h = c.clearImmediate,\n        d = c.MessageChannel,\n        v = c.Dispatch,\n        g = 0,\n        y = {},\n        m = function () {\n      var t = +this;\n\n      if (y.hasOwnProperty(t)) {\n        var e = y[t];\n        delete y[t], e();\n      }\n    },\n        b = function (t) {\n      m.call(t.data);\n    };\n\n    p && h || (p = function (t) {\n      for (var e = [], n = 1; arguments.length > n;) e.push(arguments[n++]);\n\n      return y[++g] = function () {\n        u(\"function\" == typeof t ? t : Function(t), e);\n      }, i(g), g;\n    }, h = function (t) {\n      delete y[t];\n    }, \"process\" == n(9)(f) ? i = function (t) {\n      f.nextTick(s(m, t, 1));\n    } : v && v.now ? i = function (t) {\n      v.now(s(m, t, 1));\n    } : d ? (r = new d(), o = r.port2, r.port1.onmessage = b, i = s(o.postMessage, o, 1)) : c.addEventListener && \"function\" == typeof postMessage && !c.importScripts ? (i = function (t) {\n      c.postMessage(t + \"\", \"*\");\n    }, c.addEventListener(\"message\", b, !1)) : i = \"onreadystatechange\" in l(\"script\") ? function (t) {\n      a.appendChild(l(\"script\")).onreadystatechange = function () {\n        a.removeChild(this), m.call(t);\n      };\n    } : function (t) {\n      setTimeout(s(m, t, 1), 0);\n    }), t.exports = {\n      set: p,\n      clear: h\n    };\n  }, function (t, e) {\n    var n = Math.ceil,\n        i = Math.floor;\n\n    t.exports = function (t) {\n      return isNaN(t = +t) ? 0 : (t > 0 ? i : n)(t);\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(3),\n        r = n(20)(5),\n        o = !0;\n    \"find\" in [] && Array(1).find(function () {\n      o = !1;\n    }), i(i.P + i.F * o, \"Array\", {\n      find: function (t) {\n        return r(this, t, arguments.length > 1 ? arguments[1] : void 0);\n      }\n    }), n(36)(\"find\");\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i,\n        r,\n        o,\n        s,\n        u = n(24),\n        a = n(0),\n        l = n(11),\n        c = n(38),\n        f = n(3),\n        p = n(5),\n        h = n(14),\n        d = n(61),\n        v = n(66),\n        g = n(50),\n        y = n(52).set,\n        m = n(75)(),\n        b = n(43),\n        _ = n(80),\n        x = n(86),\n        w = n(48),\n        S = a.TypeError,\n        O = a.process,\n        L = O && O.versions,\n        k = L && L.v8 || \"\",\n        P = a.Promise,\n        T = \"process\" == c(O),\n        V = function () {},\n        E = r = b.f,\n        A = !!function () {\n      try {\n        var t = P.resolve(1),\n            e = (t.constructor = {})[n(1)(\"species\")] = function (t) {\n          t(V, V);\n        };\n\n        return (T || \"function\" == typeof PromiseRejectionEvent) && t.then(V) instanceof e && 0 !== k.indexOf(\"6.6\") && -1 === x.indexOf(\"Chrome/66\");\n      } catch (t) {}\n    }(),\n        C = function (t) {\n      var e;\n      return !(!p(t) || \"function\" != typeof (e = t.then)) && e;\n    },\n        D = function (t, e) {\n      if (!t._n) {\n        t._n = !0;\n        var n = t._c;\n        m(function () {\n          for (var i = t._v, r = 1 == t._s, o = 0; n.length > o;) !function (e) {\n            var n,\n                o,\n                s,\n                u = r ? e.ok : e.fail,\n                a = e.resolve,\n                l = e.reject,\n                c = e.domain;\n\n            try {\n              u ? (r || (2 == t._h && $(t), t._h = 1), !0 === u ? n = i : (c && c.enter(), n = u(i), c && (c.exit(), s = !0)), n === e.promise ? l(S(\"Promise-chain cycle\")) : (o = C(n)) ? o.call(n, a, l) : a(n)) : l(i);\n            } catch (t) {\n              c && !s && c.exit(), l(t);\n            }\n          }(n[o++]);\n\n          t._c = [], t._n = !1, e && !t._h && j(t);\n        });\n      }\n    },\n        j = function (t) {\n      y.call(a, function () {\n        var e,\n            n,\n            i,\n            r = t._v,\n            o = N(t);\n        if (o && (e = _(function () {\n          T ? O.emit(\"unhandledRejection\", r, t) : (n = a.onunhandledrejection) ? n({\n            promise: t,\n            reason: r\n          }) : (i = a.console) && i.error && i.error(\"Unhandled promise rejection\", r);\n        }), t._h = T || N(t) ? 2 : 1), t._a = void 0, o && e.e) throw e.v;\n      });\n    },\n        N = function (t) {\n      return 1 !== t._h && 0 === (t._a || t._c).length;\n    },\n        $ = function (t) {\n      y.call(a, function () {\n        var e;\n        T ? O.emit(\"rejectionHandled\", t) : (e = a.onrejectionhandled) && e({\n          promise: t,\n          reason: t._v\n        });\n      });\n    },\n        F = function (t) {\n      var e = this;\n      e._d || (e._d = !0, e = e._w || e, e._v = t, e._s = 2, e._a || (e._a = e._c.slice()), D(e, !0));\n    },\n        M = function (t) {\n      var e,\n          n = this;\n\n      if (!n._d) {\n        n._d = !0, n = n._w || n;\n\n        try {\n          if (n === t) throw S(\"Promise can't be resolved itself\");\n          (e = C(t)) ? m(function () {\n            var i = {\n              _w: n,\n              _d: !1\n            };\n\n            try {\n              e.call(t, l(M, i, 1), l(F, i, 1));\n            } catch (t) {\n              F.call(i, t);\n            }\n          }) : (n._v = t, n._s = 1, D(n, !1));\n        } catch (t) {\n          F.call({\n            _w: n,\n            _d: !1\n          }, t);\n        }\n      }\n    };\n\n    A || (P = function (t) {\n      d(this, P, \"Promise\", \"_h\"), h(t), i.call(this);\n\n      try {\n        t(l(M, this, 1), l(F, this, 1));\n      } catch (t) {\n        F.call(this, t);\n      }\n    }, i = function (t) {\n      this._c = [], this._a = void 0, this._s = 0, this._d = !1, this._v = void 0, this._h = 0, this._n = !1;\n    }, i.prototype = n(81)(P.prototype, {\n      then: function (t, e) {\n        var n = E(g(this, P));\n        return n.ok = \"function\" != typeof t || t, n.fail = \"function\" == typeof e && e, n.domain = T ? O.domain : void 0, this._c.push(n), this._a && this._a.push(n), this._s && D(this, !1), n.promise;\n      },\n      catch: function (t) {\n        return this.then(void 0, t);\n      }\n    }), o = function () {\n      var t = new i();\n      this.promise = t, this.resolve = l(M, t, 1), this.reject = l(F, t, 1);\n    }, b.f = E = function (t) {\n      return t === P || t === s ? new o(t) : r(t);\n    }), f(f.G + f.W + f.F * !A, {\n      Promise: P\n    }), n(26)(P, \"Promise\"), n(83)(\"Promise\"), s = n(10).Promise, f(f.S + f.F * !A, \"Promise\", {\n      reject: function (t) {\n        var e = E(this);\n        return (0, e.reject)(t), e.promise;\n      }\n    }), f(f.S + f.F * (u || !A), \"Promise\", {\n      resolve: function (t) {\n        return w(u && this === s ? P : this, t);\n      }\n    }), f(f.S + f.F * !(A && n(73)(function (t) {\n      P.all(t).catch(V);\n    })), \"Promise\", {\n      all: function (t) {\n        var e = this,\n            n = E(e),\n            i = n.resolve,\n            r = n.reject,\n            o = _(function () {\n          var n = [],\n              o = 0,\n              s = 1;\n          v(t, !1, function (t) {\n            var u = o++,\n                a = !1;\n            n.push(void 0), s++, e.resolve(t).then(function (t) {\n              a || (a = !0, n[u] = t, --s || i(n));\n            }, r);\n          }), --s || i(n);\n        });\n\n        return o.e && r(o.v), n.promise;\n      },\n      race: function (t) {\n        var e = this,\n            n = E(e),\n            i = n.reject,\n            r = _(function () {\n          v(t, !1, function (t) {\n            e.resolve(t).then(n.resolve, i);\n          });\n        });\n\n        return r.e && i(r.v), n.promise;\n      }\n    });\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(3),\n        r = n(10),\n        o = n(0),\n        s = n(50),\n        u = n(48);\n    i(i.P + i.R, \"Promise\", {\n      finally: function (t) {\n        var e = s(this, r.Promise || o.Promise),\n            n = \"function\" == typeof t;\n        return this.then(n ? function (n) {\n          return u(e, t()).then(function () {\n            return n;\n          });\n        } : t, n ? function (n) {\n          return u(e, t()).then(function () {\n            throw n;\n          });\n        } : t);\n      }\n    });\n  }, function (t, e, n) {\n    \"use strict\";\n\n    function i(t) {\n      n(99);\n    }\n\n    var r = n(35),\n        o = n(101),\n        s = n(100),\n        u = i,\n        a = s(r.a, o.a, !1, u, null, null);\n    e.a = a.exports;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    function i(t, e, n) {\n      return e in t ? Object.defineProperty(t, e, {\n        value: n,\n        enumerable: !0,\n        configurable: !0,\n        writable: !0\n      }) : t[e] = n, t;\n    }\n\n    e.a = i;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    function i(t) {\n      return (i = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (t) {\n        return typeof t;\n      } : function (t) {\n        return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n      })(t);\n    }\n\n    function r(t) {\n      return (r = \"function\" == typeof Symbol && \"symbol\" === i(Symbol.iterator) ? function (t) {\n        return i(t);\n      } : function (t) {\n        return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : i(t);\n      })(t);\n    }\n\n    e.a = r;\n  }, function (t, e, n) {\n    \"use strict\";\n\n    Object.defineProperty(e, \"__esModule\", {\n      value: !0\n    });\n    var i = n(34),\n        r = (n.n(i), n(55)),\n        o = (n.n(r), n(56)),\n        s = (n.n(o), n(57)),\n        u = n(32),\n        a = n(33);\n    n.d(e, \"Multiselect\", function () {\n      return s.a;\n    }), n.d(e, \"multiselectMixin\", function () {\n      return u.a;\n    }), n.d(e, \"pointerMixin\", function () {\n      return a.a;\n    }), e.default = s.a;\n  }, function (t, e) {\n    t.exports = function (t, e, n, i) {\n      if (!(t instanceof e) || void 0 !== i && i in t) throw TypeError(n + \": incorrect invocation!\");\n      return t;\n    };\n  }, function (t, e, n) {\n    var i = n(14),\n        r = n(28),\n        o = n(23),\n        s = n(19);\n\n    t.exports = function (t, e, n, u, a) {\n      i(e);\n      var l = r(t),\n          c = o(l),\n          f = s(l.length),\n          p = a ? f - 1 : 0,\n          h = a ? -1 : 1;\n      if (n < 2) for (;;) {\n        if (p in c) {\n          u = c[p], p += h;\n          break;\n        }\n\n        if (p += h, a ? p < 0 : f <= p) throw TypeError(\"Reduce of empty array with no initial value\");\n      }\n\n      for (; a ? p >= 0 : f > p; p += h) p in c && (u = e(u, c[p], p, l));\n\n      return u;\n    };\n  }, function (t, e, n) {\n    var i = n(5),\n        r = n(42),\n        o = n(1)(\"species\");\n\n    t.exports = function (t) {\n      var e;\n      return r(t) && (e = t.constructor, \"function\" != typeof e || e !== Array && !r(e.prototype) || (e = void 0), i(e) && null === (e = e[o]) && (e = void 0)), void 0 === e ? Array : e;\n    };\n  }, function (t, e, n) {\n    var i = n(63);\n\n    t.exports = function (t, e) {\n      return new (i(t))(e);\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(8),\n        r = n(6),\n        o = n(7),\n        s = n(16),\n        u = n(1);\n\n    t.exports = function (t, e, n) {\n      var a = u(t),\n          l = n(s, a, \"\"[t]),\n          c = l[0],\n          f = l[1];\n      o(function () {\n        var e = {};\n        return e[a] = function () {\n          return 7;\n        }, 7 != \"\"[t](e);\n      }) && (r(String.prototype, t, c), i(RegExp.prototype, a, 2 == e ? function (t, e) {\n        return f.call(t, this, e);\n      } : function (t) {\n        return f.call(t, this);\n      }));\n    };\n  }, function (t, e, n) {\n    var i = n(11),\n        r = n(70),\n        o = n(69),\n        s = n(2),\n        u = n(19),\n        a = n(87),\n        l = {},\n        c = {},\n        e = t.exports = function (t, e, n, f, p) {\n      var h,\n          d,\n          v,\n          g,\n          y = p ? function () {\n        return t;\n      } : a(t),\n          m = i(n, f, e ? 2 : 1),\n          b = 0;\n      if (\"function\" != typeof y) throw TypeError(t + \" is not iterable!\");\n\n      if (o(y)) {\n        for (h = u(t.length); h > b; b++) if ((g = e ? m(s(d = t[b])[0], d[1]) : m(t[b])) === l || g === c) return g;\n      } else for (v = y.call(t); !(d = v.next()).done;) if ((g = r(v, m, d.value, e)) === l || g === c) return g;\n    };\n\n    e.BREAK = l, e.RETURN = c;\n  }, function (t, e, n) {\n    var i = n(5),\n        r = n(82).set;\n\n    t.exports = function (t, e, n) {\n      var o,\n          s = e.constructor;\n      return s !== n && \"function\" == typeof s && (o = s.prototype) !== n.prototype && i(o) && r && r(t, o), t;\n    };\n  }, function (t, e) {\n    t.exports = function (t, e, n) {\n      var i = void 0 === n;\n\n      switch (e.length) {\n        case 0:\n          return i ? t() : t.call(n);\n\n        case 1:\n          return i ? t(e[0]) : t.call(n, e[0]);\n\n        case 2:\n          return i ? t(e[0], e[1]) : t.call(n, e[0], e[1]);\n\n        case 3:\n          return i ? t(e[0], e[1], e[2]) : t.call(n, e[0], e[1], e[2]);\n\n        case 4:\n          return i ? t(e[0], e[1], e[2], e[3]) : t.call(n, e[0], e[1], e[2], e[3]);\n      }\n\n      return t.apply(n, e);\n    };\n  }, function (t, e, n) {\n    var i = n(15),\n        r = n(1)(\"iterator\"),\n        o = Array.prototype;\n\n    t.exports = function (t) {\n      return void 0 !== t && (i.Array === t || o[r] === t);\n    };\n  }, function (t, e, n) {\n    var i = n(2);\n\n    t.exports = function (t, e, n, r) {\n      try {\n        return r ? e(i(n)[0], n[1]) : e(n);\n      } catch (e) {\n        var o = t.return;\n        throw void 0 !== o && i(o.call(t)), e;\n      }\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(44),\n        r = n(25),\n        o = n(26),\n        s = {};\n    n(8)(s, n(1)(\"iterator\"), function () {\n      return this;\n    }), t.exports = function (t, e, n) {\n      t.prototype = i(s, {\n        next: r(1, n)\n      }), o(t, e + \" Iterator\");\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(24),\n        r = n(3),\n        o = n(6),\n        s = n(8),\n        u = n(15),\n        a = n(71),\n        l = n(26),\n        c = n(78),\n        f = n(1)(\"iterator\"),\n        p = !([].keys && \"next\" in [].keys()),\n        h = function () {\n      return this;\n    };\n\n    t.exports = function (t, e, n, d, v, g, y) {\n      a(n, e, d);\n\n      var m,\n          b,\n          _,\n          x = function (t) {\n        if (!p && t in L) return L[t];\n\n        switch (t) {\n          case \"keys\":\n          case \"values\":\n            return function () {\n              return new n(this, t);\n            };\n        }\n\n        return function () {\n          return new n(this, t);\n        };\n      },\n          w = e + \" Iterator\",\n          S = \"values\" == v,\n          O = !1,\n          L = t.prototype,\n          k = L[f] || L[\"@@iterator\"] || v && L[v],\n          P = k || x(v),\n          T = v ? S ? x(\"entries\") : P : void 0,\n          V = \"Array\" == e ? L.entries || k : k;\n\n      if (V && (_ = c(V.call(new t()))) !== Object.prototype && _.next && (l(_, w, !0), i || \"function\" == typeof _[f] || s(_, f, h)), S && k && \"values\" !== k.name && (O = !0, P = function () {\n        return k.call(this);\n      }), i && !y || !p && !O && L[f] || s(L, f, P), u[e] = P, u[w] = h, v) if (m = {\n        values: S ? P : x(\"values\"),\n        keys: g ? P : x(\"keys\"),\n        entries: T\n      }, y) for (b in m) b in L || o(L, b, m[b]);else r(r.P + r.F * (p || O), e, m);\n      return m;\n    };\n  }, function (t, e, n) {\n    var i = n(1)(\"iterator\"),\n        r = !1;\n\n    try {\n      var o = [7][i]();\n      o.return = function () {\n        r = !0;\n      }, Array.from(o, function () {\n        throw 2;\n      });\n    } catch (t) {}\n\n    t.exports = function (t, e) {\n      if (!e && !r) return !1;\n      var n = !1;\n\n      try {\n        var o = [7],\n            s = o[i]();\n        s.next = function () {\n          return {\n            done: n = !0\n          };\n        }, o[i] = function () {\n          return s;\n        }, t(o);\n      } catch (t) {}\n\n      return n;\n    };\n  }, function (t, e) {\n    t.exports = function (t, e) {\n      return {\n        value: e,\n        done: !!t\n      };\n    };\n  }, function (t, e, n) {\n    var i = n(0),\n        r = n(52).set,\n        o = i.MutationObserver || i.WebKitMutationObserver,\n        s = i.process,\n        u = i.Promise,\n        a = \"process\" == n(9)(s);\n\n    t.exports = function () {\n      var t,\n          e,\n          n,\n          l = function () {\n        var i, r;\n\n        for (a && (i = s.domain) && i.exit(); t;) {\n          r = t.fn, t = t.next;\n\n          try {\n            r();\n          } catch (i) {\n            throw t ? n() : e = void 0, i;\n          }\n        }\n\n        e = void 0, i && i.enter();\n      };\n\n      if (a) n = function () {\n        s.nextTick(l);\n      };else if (!o || i.navigator && i.navigator.standalone) {\n        if (u && u.resolve) {\n          var c = u.resolve(void 0);\n\n          n = function () {\n            c.then(l);\n          };\n        } else n = function () {\n          r.call(i, l);\n        };\n      } else {\n        var f = !0,\n            p = document.createTextNode(\"\");\n        new o(l).observe(p, {\n          characterData: !0\n        }), n = function () {\n          p.data = f = !f;\n        };\n      }\n      return function (i) {\n        var r = {\n          fn: i,\n          next: void 0\n        };\n        e && (e.next = r), t || (t = r, n()), e = r;\n      };\n    };\n  }, function (t, e, n) {\n    var i = n(13),\n        r = n(2),\n        o = n(47);\n    t.exports = n(4) ? Object.defineProperties : function (t, e) {\n      r(t);\n\n      for (var n, s = o(e), u = s.length, a = 0; u > a;) i.f(t, n = s[a++], e[n]);\n\n      return t;\n    };\n  }, function (t, e, n) {\n    var i = n(46),\n        r = n(22).concat(\"length\", \"prototype\");\n\n    e.f = Object.getOwnPropertyNames || function (t) {\n      return i(t, r);\n    };\n  }, function (t, e, n) {\n    var i = n(12),\n        r = n(28),\n        o = n(27)(\"IE_PROTO\"),\n        s = Object.prototype;\n\n    t.exports = Object.getPrototypeOf || function (t) {\n      return t = r(t), i(t, o) ? t[o] : \"function\" == typeof t.constructor && t instanceof t.constructor ? t.constructor.prototype : t instanceof Object ? s : null;\n    };\n  }, function (t, e) {\n    e.f = {}.propertyIsEnumerable;\n  }, function (t, e) {\n    t.exports = function (t) {\n      try {\n        return {\n          e: !1,\n          v: t()\n        };\n      } catch (t) {\n        return {\n          e: !0,\n          v: t\n        };\n      }\n    };\n  }, function (t, e, n) {\n    var i = n(6);\n\n    t.exports = function (t, e, n) {\n      for (var r in e) i(t, r, e[r], n);\n\n      return t;\n    };\n  }, function (t, e, n) {\n    var i = n(5),\n        r = n(2),\n        o = function (t, e) {\n      if (r(t), !i(e) && null !== e) throw TypeError(e + \": can't set as prototype!\");\n    };\n\n    t.exports = {\n      set: Object.setPrototypeOf || (\"__proto__\" in {} ? function (t, e, i) {\n        try {\n          i = n(11)(Function.call, n(45).f(Object.prototype, \"__proto__\").set, 2), i(t, []), e = !(t instanceof Array);\n        } catch (t) {\n          e = !0;\n        }\n\n        return function (t, n) {\n          return o(t, n), e ? t.__proto__ = n : i(t, n), t;\n        };\n      }({}, !1) : void 0),\n      check: o\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(0),\n        r = n(13),\n        o = n(4),\n        s = n(1)(\"species\");\n\n    t.exports = function (t) {\n      var e = i[t];\n      o && e && !e[s] && r.f(e, s, {\n        configurable: !0,\n        get: function () {\n          return this;\n        }\n      });\n    };\n  }, function (t, e) {\n    t.exports = \"\\t\\n\\v\\f\\r   ᠎             　\\u2028\\u2029\\ufeff\";\n  }, function (t, e, n) {\n    var i = n(53),\n        r = Math.max,\n        o = Math.min;\n\n    t.exports = function (t, e) {\n      return t = i(t), t < 0 ? r(t + e, 0) : o(t, e);\n    };\n  }, function (t, e, n) {\n    var i = n(0),\n        r = i.navigator;\n    t.exports = r && r.userAgent || \"\";\n  }, function (t, e, n) {\n    var i = n(38),\n        r = n(1)(\"iterator\"),\n        o = n(15);\n\n    t.exports = n(10).getIteratorMethod = function (t) {\n      if (void 0 != t) return t[r] || t[\"@@iterator\"] || o[i(t)];\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(3),\n        r = n(20)(2);\n    i(i.P + i.F * !n(17)([].filter, !0), \"Array\", {\n      filter: function (t) {\n        return r(this, t, arguments[1]);\n      }\n    });\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(3),\n        r = n(37)(!1),\n        o = [].indexOf,\n        s = !!o && 1 / [1].indexOf(1, -0) < 0;\n    i(i.P + i.F * (s || !n(17)(o)), \"Array\", {\n      indexOf: function (t) {\n        return s ? o.apply(this, arguments) || 0 : r(this, t, arguments[1]);\n      }\n    });\n  }, function (t, e, n) {\n    var i = n(3);\n    i(i.S, \"Array\", {\n      isArray: n(42)\n    });\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(3),\n        r = n(20)(1);\n    i(i.P + i.F * !n(17)([].map, !0), \"Array\", {\n      map: function (t) {\n        return r(this, t, arguments[1]);\n      }\n    });\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = n(3),\n        r = n(62);\n    i(i.P + i.F * !n(17)([].reduce, !0), \"Array\", {\n      reduce: function (t) {\n        return r(this, t, arguments.length, arguments[1], !1);\n      }\n    });\n  }, function (t, e, n) {\n    var i = Date.prototype,\n        r = i.toString,\n        o = i.getTime;\n    new Date(NaN) + \"\" != \"Invalid Date\" && n(6)(i, \"toString\", function () {\n      var t = o.call(this);\n      return t === t ? r.call(this) : \"Invalid Date\";\n    });\n  }, function (t, e, n) {\n    n(4) && \"g\" != /./g.flags && n(13).f(RegExp.prototype, \"flags\", {\n      configurable: !0,\n      get: n(39)\n    });\n  }, function (t, e, n) {\n    n(65)(\"search\", 1, function (t, e, n) {\n      return [function (n) {\n        \"use strict\";\n\n        var i = t(this),\n            r = void 0 == n ? void 0 : n[e];\n        return void 0 !== r ? r.call(n, i) : new RegExp(n)[e](String(i));\n      }, n];\n    });\n  }, function (t, e, n) {\n    \"use strict\";\n\n    n(94);\n\n    var i = n(2),\n        r = n(39),\n        o = n(4),\n        s = /./.toString,\n        u = function (t) {\n      n(6)(RegExp.prototype, \"toString\", t, !0);\n    };\n\n    n(7)(function () {\n      return \"/a/b\" != s.call({\n        source: \"a\",\n        flags: \"b\"\n      });\n    }) ? u(function () {\n      var t = i(this);\n      return \"/\".concat(t.source, \"/\", \"flags\" in t ? t.flags : !o && t instanceof RegExp ? r.call(t) : void 0);\n    }) : \"toString\" != s.name && u(function () {\n      return s.call(this);\n    });\n  }, function (t, e, n) {\n    \"use strict\";\n\n    n(51)(\"trim\", function (t) {\n      return function () {\n        return t(this, 3);\n      };\n    });\n  }, function (t, e, n) {\n    for (var i = n(34), r = n(47), o = n(6), s = n(0), u = n(8), a = n(15), l = n(1), c = l(\"iterator\"), f = l(\"toStringTag\"), p = a.Array, h = {\n      CSSRuleList: !0,\n      CSSStyleDeclaration: !1,\n      CSSValueList: !1,\n      ClientRectList: !1,\n      DOMRectList: !1,\n      DOMStringList: !1,\n      DOMTokenList: !0,\n      DataTransferItemList: !1,\n      FileList: !1,\n      HTMLAllCollection: !1,\n      HTMLCollection: !1,\n      HTMLFormElement: !1,\n      HTMLSelectElement: !1,\n      MediaList: !0,\n      MimeTypeArray: !1,\n      NamedNodeMap: !1,\n      NodeList: !0,\n      PaintRequestList: !1,\n      Plugin: !1,\n      PluginArray: !1,\n      SVGLengthList: !1,\n      SVGNumberList: !1,\n      SVGPathSegList: !1,\n      SVGPointList: !1,\n      SVGStringList: !1,\n      SVGTransformList: !1,\n      SourceBufferList: !1,\n      StyleSheetList: !0,\n      TextTrackCueList: !1,\n      TextTrackList: !1,\n      TouchList: !1\n    }, d = r(h), v = 0; v < d.length; v++) {\n      var g,\n          y = d[v],\n          m = h[y],\n          b = s[y],\n          _ = b && b.prototype;\n\n      if (_ && (_[c] || u(_, c, p), _[f] || u(_, f, y), a[y] = p, m)) for (g in i) _[g] || o(_, g, i[g], !0);\n    }\n  }, function (t, e) {}, function (t, e) {\n    t.exports = function (t, e, n, i, r, o) {\n      var s,\n          u = t = t || {},\n          a = typeof t.default;\n      \"object\" !== a && \"function\" !== a || (s = t, u = t.default);\n      var l = \"function\" == typeof u ? u.options : u;\n      e && (l.render = e.render, l.staticRenderFns = e.staticRenderFns, l._compiled = !0), n && (l.functional = !0), r && (l._scopeId = r);\n      var c;\n\n      if (o ? (c = function (t) {\n        t = t || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, t || \"undefined\" == typeof __VUE_SSR_CONTEXT__ || (t = __VUE_SSR_CONTEXT__), i && i.call(this, t), t && t._registeredComponents && t._registeredComponents.add(o);\n      }, l._ssrRegister = c) : i && (c = i), c) {\n        var f = l.functional,\n            p = f ? l.render : l.beforeCreate;\n        f ? (l._injectStyles = c, l.render = function (t, e) {\n          return c.call(e), p(t, e);\n        }) : l.beforeCreate = p ? [].concat(p, c) : [c];\n      }\n\n      return {\n        esModule: s,\n        exports: u,\n        options: l\n      };\n    };\n  }, function (t, e, n) {\n    \"use strict\";\n\n    var i = function () {\n      var t = this,\n          e = t.$createElement,\n          n = t._self._c || e;\n      return n(\"div\", {\n        staticClass: \"multiselect\",\n        class: {\n          \"multiselect--active\": t.isOpen,\n          \"multiselect--disabled\": t.disabled,\n          \"multiselect--above\": t.isAbove\n        },\n        attrs: {\n          tabindex: t.searchable ? -1 : t.tabindex\n        },\n        on: {\n          focus: function (e) {\n            t.activate();\n          },\n          blur: function (e) {\n            !t.searchable && t.deactivate();\n          },\n          keydown: [function (e) {\n            return \"button\" in e || !t._k(e.keyCode, \"down\", 40, e.key, [\"Down\", \"ArrowDown\"]) ? e.target !== e.currentTarget ? null : (e.preventDefault(), void t.pointerForward()) : null;\n          }, function (e) {\n            return \"button\" in e || !t._k(e.keyCode, \"up\", 38, e.key, [\"Up\", \"ArrowUp\"]) ? e.target !== e.currentTarget ? null : (e.preventDefault(), void t.pointerBackward()) : null;\n          }],\n          keypress: function (e) {\n            return \"button\" in e || !t._k(e.keyCode, \"enter\", 13, e.key, \"Enter\") || !t._k(e.keyCode, \"tab\", 9, e.key, \"Tab\") ? (e.stopPropagation(), e.target !== e.currentTarget ? null : void t.addPointerElement(e)) : null;\n          },\n          keyup: function (e) {\n            if (!(\"button\" in e) && t._k(e.keyCode, \"esc\", 27, e.key, \"Escape\")) return null;\n            t.deactivate();\n          }\n        }\n      }, [t._t(\"caret\", [n(\"div\", {\n        staticClass: \"multiselect__select\",\n        on: {\n          mousedown: function (e) {\n            e.preventDefault(), e.stopPropagation(), t.toggle();\n          }\n        }\n      })], {\n        toggle: t.toggle\n      }), t._v(\" \"), t._t(\"clear\", null, {\n        search: t.search\n      }), t._v(\" \"), n(\"div\", {\n        ref: \"tags\",\n        staticClass: \"multiselect__tags\"\n      }, [t._t(\"selection\", [n(\"div\", {\n        directives: [{\n          name: \"show\",\n          rawName: \"v-show\",\n          value: t.visibleValues.length > 0,\n          expression: \"visibleValues.length > 0\"\n        }],\n        staticClass: \"multiselect__tags-wrap\"\n      }, [t._l(t.visibleValues, function (e, i) {\n        return [t._t(\"tag\", [n(\"span\", {\n          key: i,\n          staticClass: \"multiselect__tag\"\n        }, [n(\"span\", {\n          domProps: {\n            textContent: t._s(t.getOptionLabel(e))\n          }\n        }), t._v(\" \"), n(\"i\", {\n          staticClass: \"multiselect__tag-icon\",\n          attrs: {\n            \"aria-hidden\": \"true\",\n            tabindex: \"1\"\n          },\n          on: {\n            keypress: function (n) {\n              if (!(\"button\" in n) && t._k(n.keyCode, \"enter\", 13, n.key, \"Enter\")) return null;\n              n.preventDefault(), t.removeElement(e);\n            },\n            mousedown: function (n) {\n              n.preventDefault(), t.removeElement(e);\n            }\n          }\n        })])], {\n          option: e,\n          search: t.search,\n          remove: t.removeElement\n        })];\n      })], 2), t._v(\" \"), t.internalValue && t.internalValue.length > t.limit ? [t._t(\"limit\", [n(\"strong\", {\n        staticClass: \"multiselect__strong\",\n        domProps: {\n          textContent: t._s(t.limitText(t.internalValue.length - t.limit))\n        }\n      })])] : t._e()], {\n        search: t.search,\n        remove: t.removeElement,\n        values: t.visibleValues,\n        isOpen: t.isOpen\n      }), t._v(\" \"), n(\"transition\", {\n        attrs: {\n          name: \"multiselect__loading\"\n        }\n      }, [t._t(\"loading\", [n(\"div\", {\n        directives: [{\n          name: \"show\",\n          rawName: \"v-show\",\n          value: t.loading,\n          expression: \"loading\"\n        }],\n        staticClass: \"multiselect__spinner\"\n      })])], 2), t._v(\" \"), t.searchable ? n(\"input\", {\n        ref: \"search\",\n        staticClass: \"multiselect__input\",\n        style: t.inputStyle,\n        attrs: {\n          name: t.name,\n          id: t.id,\n          type: \"text\",\n          autocomplete: \"nope\",\n          placeholder: t.placeholder,\n          disabled: t.disabled,\n          tabindex: t.tabindex\n        },\n        domProps: {\n          value: t.search\n        },\n        on: {\n          input: function (e) {\n            t.updateSearch(e.target.value);\n          },\n          focus: function (e) {\n            e.preventDefault(), t.activate();\n          },\n          blur: function (e) {\n            e.preventDefault(), t.deactivate();\n          },\n          keyup: function (e) {\n            if (!(\"button\" in e) && t._k(e.keyCode, \"esc\", 27, e.key, \"Escape\")) return null;\n            t.deactivate();\n          },\n          keydown: [function (e) {\n            if (!(\"button\" in e) && t._k(e.keyCode, \"down\", 40, e.key, [\"Down\", \"ArrowDown\"])) return null;\n            e.preventDefault(), t.pointerForward();\n          }, function (e) {\n            if (!(\"button\" in e) && t._k(e.keyCode, \"up\", 38, e.key, [\"Up\", \"ArrowUp\"])) return null;\n            e.preventDefault(), t.pointerBackward();\n          }, function (e) {\n            if (!(\"button\" in e) && t._k(e.keyCode, \"delete\", [8, 46], e.key, [\"Backspace\", \"Delete\"])) return null;\n            e.stopPropagation(), t.removeLastElement();\n          }],\n          keypress: function (e) {\n            return \"button\" in e || !t._k(e.keyCode, \"enter\", 13, e.key, \"Enter\") ? (e.preventDefault(), e.stopPropagation(), e.target !== e.currentTarget ? null : void t.addPointerElement(e)) : null;\n          }\n        }\n      }) : t._e(), t._v(\" \"), t.isSingleLabelVisible ? n(\"span\", {\n        staticClass: \"multiselect__single\",\n        on: {\n          mousedown: function (e) {\n            return e.preventDefault(), t.toggle(e);\n          }\n        }\n      }, [t._t(\"singleLabel\", [[t._v(t._s(t.currentOptionLabel))]], {\n        option: t.singleValue\n      })], 2) : t._e(), t._v(\" \"), t.isPlaceholderVisible ? n(\"span\", {\n        staticClass: \"multiselect__placeholder\",\n        on: {\n          mousedown: function (e) {\n            return e.preventDefault(), t.toggle(e);\n          }\n        }\n      }, [t._t(\"placeholder\", [t._v(\"\\n          \" + t._s(t.placeholder) + \"\\n        \")])], 2) : t._e()], 2), t._v(\" \"), n(\"transition\", {\n        attrs: {\n          name: \"multiselect\"\n        }\n      }, [n(\"div\", {\n        directives: [{\n          name: \"show\",\n          rawName: \"v-show\",\n          value: t.isOpen,\n          expression: \"isOpen\"\n        }],\n        ref: \"list\",\n        staticClass: \"multiselect__content-wrapper\",\n        style: {\n          maxHeight: t.optimizedHeight + \"px\"\n        },\n        attrs: {\n          tabindex: \"-1\"\n        },\n        on: {\n          focus: t.activate,\n          mousedown: function (t) {\n            t.preventDefault();\n          }\n        }\n      }, [n(\"ul\", {\n        staticClass: \"multiselect__content\",\n        style: t.contentStyle\n      }, [t._t(\"beforeList\"), t._v(\" \"), t.multiple && t.max === t.internalValue.length ? n(\"li\", [n(\"span\", {\n        staticClass: \"multiselect__option\"\n      }, [t._t(\"maxElements\", [t._v(\"Maximum of \" + t._s(t.max) + \" options selected. First remove a selected option to select another.\")])], 2)]) : t._e(), t._v(\" \"), !t.max || t.internalValue.length < t.max ? t._l(t.filteredOptions, function (e, i) {\n        return n(\"li\", {\n          key: i,\n          staticClass: \"multiselect__element\"\n        }, [e && (e.$isLabel || e.$isDisabled) ? t._e() : n(\"span\", {\n          staticClass: \"multiselect__option\",\n          class: t.optionHighlight(i, e),\n          attrs: {\n            \"data-select\": e && e.isTag ? t.tagPlaceholder : t.selectLabelText,\n            \"data-selected\": t.selectedLabelText,\n            \"data-deselect\": t.deselectLabelText\n          },\n          on: {\n            click: function (n) {\n              n.stopPropagation(), t.select(e);\n            },\n            mouseenter: function (e) {\n              if (e.target !== e.currentTarget) return null;\n              t.pointerSet(i);\n            }\n          }\n        }, [t._t(\"option\", [n(\"span\", [t._v(t._s(t.getOptionLabel(e)))])], {\n          option: e,\n          search: t.search\n        })], 2), t._v(\" \"), e && (e.$isLabel || e.$isDisabled) ? n(\"span\", {\n          staticClass: \"multiselect__option\",\n          class: t.groupHighlight(i, e),\n          attrs: {\n            \"data-select\": t.groupSelect && t.selectGroupLabelText,\n            \"data-deselect\": t.groupSelect && t.deselectGroupLabelText\n          },\n          on: {\n            mouseenter: function (e) {\n              if (e.target !== e.currentTarget) return null;\n              t.groupSelect && t.pointerSet(i);\n            },\n            mousedown: function (n) {\n              n.preventDefault(), t.selectGroup(e);\n            }\n          }\n        }, [t._t(\"option\", [n(\"span\", [t._v(t._s(t.getOptionLabel(e)))])], {\n          option: e,\n          search: t.search\n        })], 2) : t._e()]);\n      }) : t._e(), t._v(\" \"), n(\"li\", {\n        directives: [{\n          name: \"show\",\n          rawName: \"v-show\",\n          value: t.showNoResults && 0 === t.filteredOptions.length && t.search && !t.loading,\n          expression: \"showNoResults && (filteredOptions.length === 0 && search && !loading)\"\n        }]\n      }, [n(\"span\", {\n        staticClass: \"multiselect__option\"\n      }, [t._t(\"noResult\", [t._v(\"No elements found. Consider changing the search query.\")], {\n        search: t.search\n      })], 2)]), t._v(\" \"), n(\"li\", {\n        directives: [{\n          name: \"show\",\n          rawName: \"v-show\",\n          value: t.showNoOptions && 0 === t.options.length && !t.search && !t.loading,\n          expression: \"showNoOptions && (options.length === 0 && !search && !loading)\"\n        }]\n      }, [n(\"span\", {\n        staticClass: \"multiselect__option\"\n      }, [t._t(\"noOptions\", [t._v(\"List is empty.\")])], 2)]), t._v(\" \"), t._t(\"afterList\")], 2)])])], 2);\n    },\n        r = [],\n        o = {\n      render: i,\n      staticRenderFns: r\n    };\n\n    e.a = o;\n  }]);\n});\n\n//# sourceURL=webpack:///./node_modules/vue-multiselect/dist/vue-multiselect.min.js?");

/***/ }),

/***/ "./node_modules/vue/dist/vue.esm.js":
/*!******************************************!*\
  !*** ./node_modules/vue/dist/vue.esm.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global, setImmediate) {/*!\n * Vue.js v2.6.14\n * (c) 2014-2021 Evan You\n * Released under the MIT License.\n */\n\n/*  */\nvar emptyObject = Object.freeze({}); // These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\n\nfunction isUndef(v) {\n  return v === undefined || v === null;\n}\n\nfunction isDef(v) {\n  return v !== undefined && v !== null;\n}\n\nfunction isTrue(v) {\n  return v === true;\n}\n\nfunction isFalse(v) {\n  return v === false;\n}\n/**\n * Check if value is primitive.\n */\n\n\nfunction isPrimitive(value) {\n  return typeof value === 'string' || typeof value === 'number' || // $flow-disable-line\n  typeof value === 'symbol' || typeof value === 'boolean';\n}\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\n\n\nfunction isObject(obj) {\n  return obj !== null && typeof obj === 'object';\n}\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\n\n\nvar _toString = Object.prototype.toString;\n\nfunction toRawType(value) {\n  return _toString.call(value).slice(8, -1);\n}\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\n\n\nfunction isPlainObject(obj) {\n  return _toString.call(obj) === '[object Object]';\n}\n\nfunction isRegExp(v) {\n  return _toString.call(v) === '[object RegExp]';\n}\n/**\n * Check if val is a valid array index.\n */\n\n\nfunction isValidArrayIndex(val) {\n  var n = parseFloat(String(val));\n  return n >= 0 && Math.floor(n) === n && isFinite(val);\n}\n\nfunction isPromise(val) {\n  return isDef(val) && typeof val.then === 'function' && typeof val.catch === 'function';\n}\n/**\n * Convert a value to a string that is actually rendered.\n */\n\n\nfunction toString(val) {\n  return val == null ? '' : Array.isArray(val) || isPlainObject(val) && val.toString === _toString ? JSON.stringify(val, null, 2) : String(val);\n}\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\n\n\nfunction toNumber(val) {\n  var n = parseFloat(val);\n  return isNaN(n) ? val : n;\n}\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\n\n\nfunction makeMap(str, expectsLowerCase) {\n  var map = Object.create(null);\n  var list = str.split(',');\n\n  for (var i = 0; i < list.length; i++) {\n    map[list[i]] = true;\n  }\n\n  return expectsLowerCase ? function (val) {\n    return map[val.toLowerCase()];\n  } : function (val) {\n    return map[val];\n  };\n}\n/**\n * Check if a tag is a built-in tag.\n */\n\n\nvar isBuiltInTag = makeMap('slot,component', true);\n/**\n * Check if an attribute is a reserved attribute.\n */\n\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n/**\n * Remove an item from an array.\n */\n\nfunction remove(arr, item) {\n  if (arr.length) {\n    var index = arr.indexOf(item);\n\n    if (index > -1) {\n      return arr.splice(index, 1);\n    }\n  }\n}\n/**\n * Check whether an object has the property.\n */\n\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction hasOwn(obj, key) {\n  return hasOwnProperty.call(obj, key);\n}\n/**\n * Create a cached version of a pure function.\n */\n\n\nfunction cached(fn) {\n  var cache = Object.create(null);\n  return function cachedFn(str) {\n    var hit = cache[str];\n    return hit || (cache[str] = fn(str));\n  };\n}\n/**\n * Camelize a hyphen-delimited string.\n */\n\n\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n  return str.replace(camelizeRE, function (_, c) {\n    return c ? c.toUpperCase() : '';\n  });\n});\n/**\n * Capitalize a string.\n */\n\nvar capitalize = cached(function (str) {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n});\n/**\n * Hyphenate a camelCase string.\n */\n\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n  return str.replace(hyphenateRE, '-$1').toLowerCase();\n});\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\n\nfunction polyfillBind(fn, ctx) {\n  function boundFn(a) {\n    var l = arguments.length;\n    return l ? l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a) : fn.call(ctx);\n  }\n\n  boundFn._length = fn.length;\n  return boundFn;\n}\n\nfunction nativeBind(fn, ctx) {\n  return fn.bind(ctx);\n}\n\nvar bind = Function.prototype.bind ? nativeBind : polyfillBind;\n/**\n * Convert an Array-like object to a real Array.\n */\n\nfunction toArray(list, start) {\n  start = start || 0;\n  var i = list.length - start;\n  var ret = new Array(i);\n\n  while (i--) {\n    ret[i] = list[i + start];\n  }\n\n  return ret;\n}\n/**\n * Mix properties into target object.\n */\n\n\nfunction extend(to, _from) {\n  for (var key in _from) {\n    to[key] = _from[key];\n  }\n\n  return to;\n}\n/**\n * Merge an Array of Objects into a single Object.\n */\n\n\nfunction toObject(arr) {\n  var res = {};\n\n  for (var i = 0; i < arr.length; i++) {\n    if (arr[i]) {\n      extend(res, arr[i]);\n    }\n  }\n\n  return res;\n}\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\n\n\nfunction noop(a, b, c) {}\n/**\n * Always return false.\n */\n\n\nvar no = function (a, b, c) {\n  return false;\n};\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\n\n\nvar identity = function (_) {\n  return _;\n};\n/**\n * Generate a string containing static keys from compiler modules.\n */\n\n\nfunction genStaticKeys(modules) {\n  return modules.reduce(function (keys, m) {\n    return keys.concat(m.staticKeys || []);\n  }, []).join(',');\n}\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\n\n\nfunction looseEqual(a, b) {\n  if (a === b) {\n    return true;\n  }\n\n  var isObjectA = isObject(a);\n  var isObjectB = isObject(b);\n\n  if (isObjectA && isObjectB) {\n    try {\n      var isArrayA = Array.isArray(a);\n      var isArrayB = Array.isArray(b);\n\n      if (isArrayA && isArrayB) {\n        return a.length === b.length && a.every(function (e, i) {\n          return looseEqual(e, b[i]);\n        });\n      } else if (a instanceof Date && b instanceof Date) {\n        return a.getTime() === b.getTime();\n      } else if (!isArrayA && !isArrayB) {\n        var keysA = Object.keys(a);\n        var keysB = Object.keys(b);\n        return keysA.length === keysB.length && keysA.every(function (key) {\n          return looseEqual(a[key], b[key]);\n        });\n      } else {\n        /* istanbul ignore next */\n        return false;\n      }\n    } catch (e) {\n      /* istanbul ignore next */\n      return false;\n    }\n  } else if (!isObjectA && !isObjectB) {\n    return String(a) === String(b);\n  } else {\n    return false;\n  }\n}\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\n\n\nfunction looseIndexOf(arr, val) {\n  for (var i = 0; i < arr.length; i++) {\n    if (looseEqual(arr[i], val)) {\n      return i;\n    }\n  }\n\n  return -1;\n}\n/**\n * Ensure a function is called only once.\n */\n\n\nfunction once(fn) {\n  var called = false;\n  return function () {\n    if (!called) {\n      called = true;\n      fn.apply(this, arguments);\n    }\n  };\n}\n\nvar SSR_ATTR = 'data-server-rendered';\nvar ASSET_TYPES = ['component', 'directive', 'filter'];\nvar LIFECYCLE_HOOKS = ['beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeUpdate', 'updated', 'beforeDestroy', 'destroyed', 'activated', 'deactivated', 'errorCaptured', 'serverPrefetch'];\n/*  */\n\nvar config = {\n  /**\n   * Option merge strategies (used in core/util/options)\n   */\n  // $flow-disable-line\n  optionMergeStrategies: Object.create(null),\n\n  /**\n   * Whether to suppress warnings.\n   */\n  silent: false,\n\n  /**\n   * Show production mode tip message on boot?\n   */\n  productionTip: \"development\" !== 'production',\n\n  /**\n   * Whether to enable devtools\n   */\n  devtools: \"development\" !== 'production',\n\n  /**\n   * Whether to record perf\n   */\n  performance: false,\n\n  /**\n   * Error handler for watcher errors\n   */\n  errorHandler: null,\n\n  /**\n   * Warn handler for watcher warns\n   */\n  warnHandler: null,\n\n  /**\n   * Ignore certain custom elements\n   */\n  ignoredElements: [],\n\n  /**\n   * Custom user key aliases for v-on\n   */\n  // $flow-disable-line\n  keyCodes: Object.create(null),\n\n  /**\n   * Check if a tag is reserved so that it cannot be registered as a\n   * component. This is platform-dependent and may be overwritten.\n   */\n  isReservedTag: no,\n\n  /**\n   * Check if an attribute is reserved so that it cannot be used as a component\n   * prop. This is platform-dependent and may be overwritten.\n   */\n  isReservedAttr: no,\n\n  /**\n   * Check if a tag is an unknown element.\n   * Platform-dependent.\n   */\n  isUnknownElement: no,\n\n  /**\n   * Get the namespace of an element\n   */\n  getTagNamespace: noop,\n\n  /**\n   * Parse the real tag name for the specific platform.\n   */\n  parsePlatformTagName: identity,\n\n  /**\n   * Check if an attribute must be bound using property, e.g. value\n   * Platform-dependent.\n   */\n  mustUseProp: no,\n\n  /**\n   * Perform updates asynchronously. Intended to be used by Vue Test Utils\n   * This will significantly reduce performance if set to false.\n   */\n  async: true,\n\n  /**\n   * Exposed for legacy reasons\n   */\n  _lifecycleHooks: LIFECYCLE_HOOKS\n};\n/*  */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\n\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n/**\n * Check if a string starts with $ or _\n */\n\nfunction isReserved(str) {\n  var c = (str + '').charCodeAt(0);\n  return c === 0x24 || c === 0x5F;\n}\n/**\n * Define a property.\n */\n\n\nfunction def(obj, key, val, enumerable) {\n  Object.defineProperty(obj, key, {\n    value: val,\n    enumerable: !!enumerable,\n    writable: true,\n    configurable: true\n  });\n}\n/**\n * Parse simple path.\n */\n\n\nvar bailRE = new RegExp(\"[^\" + unicodeRegExp.source + \".$_\\\\d]\");\n\nfunction parsePath(path) {\n  if (bailRE.test(path)) {\n    return;\n  }\n\n  var segments = path.split('.');\n  return function (obj) {\n    for (var i = 0; i < segments.length; i++) {\n      if (!obj) {\n        return;\n      }\n\n      obj = obj[segments[i]];\n    }\n\n    return obj;\n  };\n}\n/*  */\n// can we use __proto__?\n\n\nvar hasProto = ('__proto__' in {}); // Browser environment sniffing\n\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = UA && UA.indexOf('android') > 0 || weexPlatform === 'android';\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA) || weexPlatform === 'ios';\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/); // Firefox has a \"watch\" function on Object.prototype...\n\nvar nativeWatch = {}.watch;\nvar supportsPassive = false;\n\nif (inBrowser) {\n  try {\n    var opts = {};\n    Object.defineProperty(opts, 'passive', {\n      get: function get() {\n        /* istanbul ignore next */\n        supportsPassive = true;\n      }\n    }); // https://github.com/facebook/flow/issues/285\n\n    window.addEventListener('test-passive', null, opts);\n  } catch (e) {}\n} // this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\n\n\nvar _isServer;\n\nvar isServerRendering = function () {\n  if (_isServer === undefined) {\n    /* istanbul ignore if */\n    if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n      // detect presence of vue-server-renderer and avoid\n      // Webpack shimming the process\n      _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n    } else {\n      _isServer = false;\n    }\n  }\n\n  return _isServer;\n}; // detect devtools\n\n\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n/* istanbul ignore next */\n\nfunction isNative(Ctor) {\n  return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\n}\n\nvar hasSymbol = typeof Symbol !== 'undefined' && isNative(Symbol) && typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */\n// $flow-disable-line\n\n\nif (typeof Set !== 'undefined' && isNative(Set)) {\n  // use native Set when available.\n  _Set = Set;\n} else {\n  // a non-standard Set polyfill that only works with primitive keys.\n  _Set = /*@__PURE__*/function () {\n    function Set() {\n      this.set = Object.create(null);\n    }\n\n    Set.prototype.has = function has(key) {\n      return this.set[key] === true;\n    };\n\n    Set.prototype.add = function add(key) {\n      this.set[key] = true;\n    };\n\n    Set.prototype.clear = function clear() {\n      this.set = Object.create(null);\n    };\n\n    return Set;\n  }();\n}\n/*  */\n\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = noop; // work around flow check\n\nvar formatComponentName = noop;\n\nif (true) {\n  var hasConsole = typeof console !== 'undefined';\n  var classifyRE = /(?:^|[-_])(\\w)/g;\n\n  var classify = function (str) {\n    return str.replace(classifyRE, function (c) {\n      return c.toUpperCase();\n    }).replace(/[-_]/g, '');\n  };\n\n  warn = function (msg, vm) {\n    var trace = vm ? generateComponentTrace(vm) : '';\n\n    if (config.warnHandler) {\n      config.warnHandler.call(null, msg, vm, trace);\n    } else if (hasConsole && !config.silent) {\n      console.error(\"[Vue warn]: \" + msg + trace);\n    }\n  };\n\n  tip = function (msg, vm) {\n    if (hasConsole && !config.silent) {\n      console.warn(\"[Vue tip]: \" + msg + (vm ? generateComponentTrace(vm) : ''));\n    }\n  };\n\n  formatComponentName = function (vm, includeFile) {\n    if (vm.$root === vm) {\n      return '<Root>';\n    }\n\n    var options = typeof vm === 'function' && vm.cid != null ? vm.options : vm._isVue ? vm.$options || vm.constructor.options : vm;\n    var name = options.name || options._componentTag;\n    var file = options.__file;\n\n    if (!name && file) {\n      var match = file.match(/([^/\\\\]+)\\.vue$/);\n      name = match && match[1];\n    }\n\n    return (name ? \"<\" + classify(name) + \">\" : \"<Anonymous>\") + (file && includeFile !== false ? \" at \" + file : '');\n  };\n\n  var repeat = function (str, n) {\n    var res = '';\n\n    while (n) {\n      if (n % 2 === 1) {\n        res += str;\n      }\n\n      if (n > 1) {\n        str += str;\n      }\n\n      n >>= 1;\n    }\n\n    return res;\n  };\n\n  generateComponentTrace = function (vm) {\n    if (vm._isVue && vm.$parent) {\n      var tree = [];\n      var currentRecursiveSequence = 0;\n\n      while (vm) {\n        if (tree.length > 0) {\n          var last = tree[tree.length - 1];\n\n          if (last.constructor === vm.constructor) {\n            currentRecursiveSequence++;\n            vm = vm.$parent;\n            continue;\n          } else if (currentRecursiveSequence > 0) {\n            tree[tree.length - 1] = [last, currentRecursiveSequence];\n            currentRecursiveSequence = 0;\n          }\n        }\n\n        tree.push(vm);\n        vm = vm.$parent;\n      }\n\n      return '\\n\\nfound in\\n\\n' + tree.map(function (vm, i) {\n        return \"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) ? formatComponentName(vm[0]) + \"... (\" + vm[1] + \" recursive calls)\" : formatComponentName(vm));\n      }).join('\\n');\n    } else {\n      return \"\\n\\n(found in \" + formatComponentName(vm) + \")\";\n    }\n  };\n}\n/*  */\n\n\nvar uid = 0;\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\n\nvar Dep = function Dep() {\n  this.id = uid++;\n  this.subs = [];\n};\n\nDep.prototype.addSub = function addSub(sub) {\n  this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub(sub) {\n  remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend() {\n  if (Dep.target) {\n    Dep.target.addDep(this);\n  }\n};\n\nDep.prototype.notify = function notify() {\n  // stabilize the subscriber list first\n  var subs = this.subs.slice();\n\n  if ( true && !config.async) {\n    // subs aren't sorted in scheduler if not running async\n    // we need to sort them now to make sure they fire in correct\n    // order\n    subs.sort(function (a, b) {\n      return a.id - b.id;\n    });\n  }\n\n  for (var i = 0, l = subs.length; i < l; i++) {\n    subs[i].update();\n  }\n}; // The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\n\n\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget(target) {\n  targetStack.push(target);\n  Dep.target = target;\n}\n\nfunction popTarget() {\n  targetStack.pop();\n  Dep.target = targetStack[targetStack.length - 1];\n}\n/*  */\n\n\nvar VNode = function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\n  this.tag = tag;\n  this.data = data;\n  this.children = children;\n  this.text = text;\n  this.elm = elm;\n  this.ns = undefined;\n  this.context = context;\n  this.fnContext = undefined;\n  this.fnOptions = undefined;\n  this.fnScopeId = undefined;\n  this.key = data && data.key;\n  this.componentOptions = componentOptions;\n  this.componentInstance = undefined;\n  this.parent = undefined;\n  this.raw = false;\n  this.isStatic = false;\n  this.isRootInsert = true;\n  this.isComment = false;\n  this.isCloned = false;\n  this.isOnce = false;\n  this.asyncFactory = asyncFactory;\n  this.asyncMeta = undefined;\n  this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = {\n  child: {\n    configurable: true\n  }\n}; // DEPRECATED: alias for componentInstance for backwards compat.\n\n/* istanbul ignore next */\n\nprototypeAccessors.child.get = function () {\n  return this.componentInstance;\n};\n\nObject.defineProperties(VNode.prototype, prototypeAccessors);\n\nvar createEmptyVNode = function (text) {\n  if (text === void 0) text = '';\n  var node = new VNode();\n  node.text = text;\n  node.isComment = true;\n  return node;\n};\n\nfunction createTextVNode(val) {\n  return new VNode(undefined, undefined, undefined, String(val));\n} // optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\n\n\nfunction cloneVNode(vnode) {\n  var cloned = new VNode(vnode.tag, vnode.data, // #7975\n  // clone children array to avoid mutating original in case of cloning\n  // a child.\n  vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\n  cloned.ns = vnode.ns;\n  cloned.isStatic = vnode.isStatic;\n  cloned.key = vnode.key;\n  cloned.isComment = vnode.isComment;\n  cloned.fnContext = vnode.fnContext;\n  cloned.fnOptions = vnode.fnOptions;\n  cloned.fnScopeId = vnode.fnScopeId;\n  cloned.asyncMeta = vnode.asyncMeta;\n  cloned.isCloned = true;\n  return cloned;\n}\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\nvar methodsToPatch = ['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'];\n/**\n * Intercept mutating methods and emit events\n */\n\nmethodsToPatch.forEach(function (method) {\n  // cache original method\n  var original = arrayProto[method];\n  def(arrayMethods, method, function mutator() {\n    var args = [],\n        len = arguments.length;\n\n    while (len--) args[len] = arguments[len];\n\n    var result = original.apply(this, args);\n    var ob = this.__ob__;\n    var inserted;\n\n    switch (method) {\n      case 'push':\n      case 'unshift':\n        inserted = args;\n        break;\n\n      case 'splice':\n        inserted = args.slice(2);\n        break;\n    }\n\n    if (inserted) {\n      ob.observeArray(inserted);\n    } // notify change\n\n\n    ob.dep.notify();\n    return result;\n  });\n});\n/*  */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\n\nvar shouldObserve = true;\n\nfunction toggleObserving(value) {\n  shouldObserve = value;\n}\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\n\n\nvar Observer = function Observer(value) {\n  this.value = value;\n  this.dep = new Dep();\n  this.vmCount = 0;\n  def(value, '__ob__', this);\n\n  if (Array.isArray(value)) {\n    if (hasProto) {\n      protoAugment(value, arrayMethods);\n    } else {\n      copyAugment(value, arrayMethods, arrayKeys);\n    }\n\n    this.observeArray(value);\n  } else {\n    this.walk(value);\n  }\n};\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\n\n\nObserver.prototype.walk = function walk(obj) {\n  var keys = Object.keys(obj);\n\n  for (var i = 0; i < keys.length; i++) {\n    defineReactive$$1(obj, keys[i]);\n  }\n};\n/**\n * Observe a list of Array items.\n */\n\n\nObserver.prototype.observeArray = function observeArray(items) {\n  for (var i = 0, l = items.length; i < l; i++) {\n    observe(items[i]);\n  }\n}; // helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\n\n\nfunction protoAugment(target, src) {\n  /* eslint-disable no-proto */\n  target.__proto__ = src;\n  /* eslint-enable no-proto */\n}\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n\n/* istanbul ignore next */\n\n\nfunction copyAugment(target, src, keys) {\n  for (var i = 0, l = keys.length; i < l; i++) {\n    var key = keys[i];\n    def(target, key, src[key]);\n  }\n}\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\n\n\nfunction observe(value, asRootData) {\n  if (!isObject(value) || value instanceof VNode) {\n    return;\n  }\n\n  var ob;\n\n  if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n    ob = value.__ob__;\n  } else if (shouldObserve && !isServerRendering() && (Array.isArray(value) || isPlainObject(value)) && Object.isExtensible(value) && !value._isVue) {\n    ob = new Observer(value);\n  }\n\n  if (asRootData && ob) {\n    ob.vmCount++;\n  }\n\n  return ob;\n}\n/**\n * Define a reactive property on an Object.\n */\n\n\nfunction defineReactive$$1(obj, key, val, customSetter, shallow) {\n  var dep = new Dep();\n  var property = Object.getOwnPropertyDescriptor(obj, key);\n\n  if (property && property.configurable === false) {\n    return;\n  } // cater for pre-defined getter/setters\n\n\n  var getter = property && property.get;\n  var setter = property && property.set;\n\n  if ((!getter || setter) && arguments.length === 2) {\n    val = obj[key];\n  }\n\n  var childOb = !shallow && observe(val);\n  Object.defineProperty(obj, key, {\n    enumerable: true,\n    configurable: true,\n    get: function reactiveGetter() {\n      var value = getter ? getter.call(obj) : val;\n\n      if (Dep.target) {\n        dep.depend();\n\n        if (childOb) {\n          childOb.dep.depend();\n\n          if (Array.isArray(value)) {\n            dependArray(value);\n          }\n        }\n      }\n\n      return value;\n    },\n    set: function reactiveSetter(newVal) {\n      var value = getter ? getter.call(obj) : val;\n      /* eslint-disable no-self-compare */\n\n      if (newVal === value || newVal !== newVal && value !== value) {\n        return;\n      }\n      /* eslint-enable no-self-compare */\n\n\n      if ( true && customSetter) {\n        customSetter();\n      } // #7981: for accessor properties without setter\n\n\n      if (getter && !setter) {\n        return;\n      }\n\n      if (setter) {\n        setter.call(obj, newVal);\n      } else {\n        val = newVal;\n      }\n\n      childOb = !shallow && observe(newVal);\n      dep.notify();\n    }\n  });\n}\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\n\n\nfunction set(target, key, val) {\n  if ( true && (isUndef(target) || isPrimitive(target))) {\n    warn(\"Cannot set reactive property on undefined, null, or primitive value: \" + target);\n  }\n\n  if (Array.isArray(target) && isValidArrayIndex(key)) {\n    target.length = Math.max(target.length, key);\n    target.splice(key, 1, val);\n    return val;\n  }\n\n  if (key in target && !(key in Object.prototype)) {\n    target[key] = val;\n    return val;\n  }\n\n  var ob = target.__ob__;\n\n  if (target._isVue || ob && ob.vmCount) {\n     true && warn('Avoid adding reactive properties to a Vue instance or its root $data ' + 'at runtime - declare it upfront in the data option.');\n    return val;\n  }\n\n  if (!ob) {\n    target[key] = val;\n    return val;\n  }\n\n  defineReactive$$1(ob.value, key, val);\n  ob.dep.notify();\n  return val;\n}\n/**\n * Delete a property and trigger change if necessary.\n */\n\n\nfunction del(target, key) {\n  if ( true && (isUndef(target) || isPrimitive(target))) {\n    warn(\"Cannot delete reactive property on undefined, null, or primitive value: \" + target);\n  }\n\n  if (Array.isArray(target) && isValidArrayIndex(key)) {\n    target.splice(key, 1);\n    return;\n  }\n\n  var ob = target.__ob__;\n\n  if (target._isVue || ob && ob.vmCount) {\n     true && warn('Avoid deleting properties on a Vue instance or its root $data ' + '- just set it to null.');\n    return;\n  }\n\n  if (!hasOwn(target, key)) {\n    return;\n  }\n\n  delete target[key];\n\n  if (!ob) {\n    return;\n  }\n\n  ob.dep.notify();\n}\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\n\n\nfunction dependArray(value) {\n  for (var e = void 0, i = 0, l = value.length; i < l; i++) {\n    e = value[i];\n    e && e.__ob__ && e.__ob__.dep.depend();\n\n    if (Array.isArray(e)) {\n      dependArray(e);\n    }\n  }\n}\n/*  */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\n\n\nvar strats = config.optionMergeStrategies;\n/**\n * Options with restrictions\n */\n\nif (true) {\n  strats.el = strats.propsData = function (parent, child, vm, key) {\n    if (!vm) {\n      warn(\"option \\\"\" + key + \"\\\" can only be used during instance \" + 'creation with the `new` keyword.');\n    }\n\n    return defaultStrat(parent, child);\n  };\n}\n/**\n * Helper that recursively merges two data objects together.\n */\n\n\nfunction mergeData(to, from) {\n  if (!from) {\n    return to;\n  }\n\n  var key, toVal, fromVal;\n  var keys = hasSymbol ? Reflect.ownKeys(from) : Object.keys(from);\n\n  for (var i = 0; i < keys.length; i++) {\n    key = keys[i]; // in case the object is already observed...\n\n    if (key === '__ob__') {\n      continue;\n    }\n\n    toVal = to[key];\n    fromVal = from[key];\n\n    if (!hasOwn(to, key)) {\n      set(to, key, fromVal);\n    } else if (toVal !== fromVal && isPlainObject(toVal) && isPlainObject(fromVal)) {\n      mergeData(toVal, fromVal);\n    }\n  }\n\n  return to;\n}\n/**\n * Data\n */\n\n\nfunction mergeDataOrFn(parentVal, childVal, vm) {\n  if (!vm) {\n    // in a Vue.extend merge, both should be functions\n    if (!childVal) {\n      return parentVal;\n    }\n\n    if (!parentVal) {\n      return childVal;\n    } // when parentVal & childVal are both present,\n    // we need to return a function that returns the\n    // merged result of both functions... no need to\n    // check if parentVal is a function here because\n    // it has to be a function to pass previous merges.\n\n\n    return function mergedDataFn() {\n      return mergeData(typeof childVal === 'function' ? childVal.call(this, this) : childVal, typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal);\n    };\n  } else {\n    return function mergedInstanceDataFn() {\n      // instance merge\n      var instanceData = typeof childVal === 'function' ? childVal.call(vm, vm) : childVal;\n      var defaultData = typeof parentVal === 'function' ? parentVal.call(vm, vm) : parentVal;\n\n      if (instanceData) {\n        return mergeData(instanceData, defaultData);\n      } else {\n        return defaultData;\n      }\n    };\n  }\n}\n\nstrats.data = function (parentVal, childVal, vm) {\n  if (!vm) {\n    if (childVal && typeof childVal !== 'function') {\n       true && warn('The \"data\" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.', vm);\n      return parentVal;\n    }\n\n    return mergeDataOrFn(parentVal, childVal);\n  }\n\n  return mergeDataOrFn(parentVal, childVal, vm);\n};\n/**\n * Hooks and props are merged as arrays.\n */\n\n\nfunction mergeHook(parentVal, childVal) {\n  var res = childVal ? parentVal ? parentVal.concat(childVal) : Array.isArray(childVal) ? childVal : [childVal] : parentVal;\n  return res ? dedupeHooks(res) : res;\n}\n\nfunction dedupeHooks(hooks) {\n  var res = [];\n\n  for (var i = 0; i < hooks.length; i++) {\n    if (res.indexOf(hooks[i]) === -1) {\n      res.push(hooks[i]);\n    }\n  }\n\n  return res;\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n  strats[hook] = mergeHook;\n});\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\n\nfunction mergeAssets(parentVal, childVal, vm, key) {\n  var res = Object.create(parentVal || null);\n\n  if (childVal) {\n     true && assertObjectType(key, childVal, vm);\n    return extend(res, childVal);\n  } else {\n    return res;\n  }\n}\n\nASSET_TYPES.forEach(function (type) {\n  strats[type + 's'] = mergeAssets;\n});\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\n\nstrats.watch = function (parentVal, childVal, vm, key) {\n  // work around Firefox's Object.prototype.watch...\n  if (parentVal === nativeWatch) {\n    parentVal = undefined;\n  }\n\n  if (childVal === nativeWatch) {\n    childVal = undefined;\n  }\n  /* istanbul ignore if */\n\n\n  if (!childVal) {\n    return Object.create(parentVal || null);\n  }\n\n  if (true) {\n    assertObjectType(key, childVal, vm);\n  }\n\n  if (!parentVal) {\n    return childVal;\n  }\n\n  var ret = {};\n  extend(ret, parentVal);\n\n  for (var key$1 in childVal) {\n    var parent = ret[key$1];\n    var child = childVal[key$1];\n\n    if (parent && !Array.isArray(parent)) {\n      parent = [parent];\n    }\n\n    ret[key$1] = parent ? parent.concat(child) : Array.isArray(child) ? child : [child];\n  }\n\n  return ret;\n};\n/**\n * Other object hashes.\n */\n\n\nstrats.props = strats.methods = strats.inject = strats.computed = function (parentVal, childVal, vm, key) {\n  if (childVal && \"development\" !== 'production') {\n    assertObjectType(key, childVal, vm);\n  }\n\n  if (!parentVal) {\n    return childVal;\n  }\n\n  var ret = Object.create(null);\n  extend(ret, parentVal);\n\n  if (childVal) {\n    extend(ret, childVal);\n  }\n\n  return ret;\n};\n\nstrats.provide = mergeDataOrFn;\n/**\n * Default strategy.\n */\n\nvar defaultStrat = function (parentVal, childVal) {\n  return childVal === undefined ? parentVal : childVal;\n};\n/**\n * Validate component names\n */\n\n\nfunction checkComponents(options) {\n  for (var key in options.components) {\n    validateComponentName(key);\n  }\n}\n\nfunction validateComponentName(name) {\n  if (!new RegExp(\"^[a-zA-Z][\\\\-\\\\.0-9_\" + unicodeRegExp.source + \"]*$\").test(name)) {\n    warn('Invalid component name: \"' + name + '\". Component names ' + 'should conform to valid custom element name in html5 specification.');\n  }\n\n  if (isBuiltInTag(name) || config.isReservedTag(name)) {\n    warn('Do not use built-in or reserved HTML elements as component ' + 'id: ' + name);\n  }\n}\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\n\n\nfunction normalizeProps(options, vm) {\n  var props = options.props;\n\n  if (!props) {\n    return;\n  }\n\n  var res = {};\n  var i, val, name;\n\n  if (Array.isArray(props)) {\n    i = props.length;\n\n    while (i--) {\n      val = props[i];\n\n      if (typeof val === 'string') {\n        name = camelize(val);\n        res[name] = {\n          type: null\n        };\n      } else if (true) {\n        warn('props must be strings when using array syntax.');\n      }\n    }\n  } else if (isPlainObject(props)) {\n    for (var key in props) {\n      val = props[key];\n      name = camelize(key);\n      res[name] = isPlainObject(val) ? val : {\n        type: val\n      };\n    }\n  } else if (true) {\n    warn(\"Invalid value for option \\\"props\\\": expected an Array or an Object, \" + \"but got \" + toRawType(props) + \".\", vm);\n  }\n\n  options.props = res;\n}\n/**\n * Normalize all injections into Object-based format\n */\n\n\nfunction normalizeInject(options, vm) {\n  var inject = options.inject;\n\n  if (!inject) {\n    return;\n  }\n\n  var normalized = options.inject = {};\n\n  if (Array.isArray(inject)) {\n    for (var i = 0; i < inject.length; i++) {\n      normalized[inject[i]] = {\n        from: inject[i]\n      };\n    }\n  } else if (isPlainObject(inject)) {\n    for (var key in inject) {\n      var val = inject[key];\n      normalized[key] = isPlainObject(val) ? extend({\n        from: key\n      }, val) : {\n        from: val\n      };\n    }\n  } else if (true) {\n    warn(\"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" + \"but got \" + toRawType(inject) + \".\", vm);\n  }\n}\n/**\n * Normalize raw function directives into object format.\n */\n\n\nfunction normalizeDirectives(options) {\n  var dirs = options.directives;\n\n  if (dirs) {\n    for (var key in dirs) {\n      var def$$1 = dirs[key];\n\n      if (typeof def$$1 === 'function') {\n        dirs[key] = {\n          bind: def$$1,\n          update: def$$1\n        };\n      }\n    }\n  }\n}\n\nfunction assertObjectType(name, value, vm) {\n  if (!isPlainObject(value)) {\n    warn(\"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" + \"but got \" + toRawType(value) + \".\", vm);\n  }\n}\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\n\n\nfunction mergeOptions(parent, child, vm) {\n  if (true) {\n    checkComponents(child);\n  }\n\n  if (typeof child === 'function') {\n    child = child.options;\n  }\n\n  normalizeProps(child, vm);\n  normalizeInject(child, vm);\n  normalizeDirectives(child); // Apply extends and mixins on the child options,\n  // but only if it is a raw options object that isn't\n  // the result of another mergeOptions call.\n  // Only merged options has the _base property.\n\n  if (!child._base) {\n    if (child.extends) {\n      parent = mergeOptions(parent, child.extends, vm);\n    }\n\n    if (child.mixins) {\n      for (var i = 0, l = child.mixins.length; i < l; i++) {\n        parent = mergeOptions(parent, child.mixins[i], vm);\n      }\n    }\n  }\n\n  var options = {};\n  var key;\n\n  for (key in parent) {\n    mergeField(key);\n  }\n\n  for (key in child) {\n    if (!hasOwn(parent, key)) {\n      mergeField(key);\n    }\n  }\n\n  function mergeField(key) {\n    var strat = strats[key] || defaultStrat;\n    options[key] = strat(parent[key], child[key], vm, key);\n  }\n\n  return options;\n}\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\n\n\nfunction resolveAsset(options, type, id, warnMissing) {\n  /* istanbul ignore if */\n  if (typeof id !== 'string') {\n    return;\n  }\n\n  var assets = options[type]; // check local registration variations first\n\n  if (hasOwn(assets, id)) {\n    return assets[id];\n  }\n\n  var camelizedId = camelize(id);\n\n  if (hasOwn(assets, camelizedId)) {\n    return assets[camelizedId];\n  }\n\n  var PascalCaseId = capitalize(camelizedId);\n\n  if (hasOwn(assets, PascalCaseId)) {\n    return assets[PascalCaseId];\n  } // fallback to prototype chain\n\n\n  var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n\n  if ( true && warnMissing && !res) {\n    warn('Failed to resolve ' + type.slice(0, -1) + ': ' + id, options);\n  }\n\n  return res;\n}\n/*  */\n\n\nfunction validateProp(key, propOptions, propsData, vm) {\n  var prop = propOptions[key];\n  var absent = !hasOwn(propsData, key);\n  var value = propsData[key]; // boolean casting\n\n  var booleanIndex = getTypeIndex(Boolean, prop.type);\n\n  if (booleanIndex > -1) {\n    if (absent && !hasOwn(prop, 'default')) {\n      value = false;\n    } else if (value === '' || value === hyphenate(key)) {\n      // only cast empty string / same name to boolean if\n      // boolean has higher priority\n      var stringIndex = getTypeIndex(String, prop.type);\n\n      if (stringIndex < 0 || booleanIndex < stringIndex) {\n        value = true;\n      }\n    }\n  } // check default value\n\n\n  if (value === undefined) {\n    value = getPropDefaultValue(vm, prop, key); // since the default value is a fresh copy,\n    // make sure to observe it.\n\n    var prevShouldObserve = shouldObserve;\n    toggleObserving(true);\n    observe(value);\n    toggleObserving(prevShouldObserve);\n  }\n\n  if (true) {\n    assertProp(prop, key, value, vm, absent);\n  }\n\n  return value;\n}\n/**\n * Get the default value of a prop.\n */\n\n\nfunction getPropDefaultValue(vm, prop, key) {\n  // no default, return undefined\n  if (!hasOwn(prop, 'default')) {\n    return undefined;\n  }\n\n  var def = prop.default; // warn against non-factory defaults for Object & Array\n\n  if ( true && isObject(def)) {\n    warn('Invalid default value for prop \"' + key + '\": ' + 'Props with type Object/Array must use a factory function ' + 'to return the default value.', vm);\n  } // the raw prop value was also undefined from previous render,\n  // return previous default value to avoid unnecessary watcher trigger\n\n\n  if (vm && vm.$options.propsData && vm.$options.propsData[key] === undefined && vm._props[key] !== undefined) {\n    return vm._props[key];\n  } // call factory function for non-Function types\n  // a value is Function if its prototype is function even across different execution context\n\n\n  return typeof def === 'function' && getType(prop.type) !== 'Function' ? def.call(vm) : def;\n}\n/**\n * Assert whether a prop is valid.\n */\n\n\nfunction assertProp(prop, name, value, vm, absent) {\n  if (prop.required && absent) {\n    warn('Missing required prop: \"' + name + '\"', vm);\n    return;\n  }\n\n  if (value == null && !prop.required) {\n    return;\n  }\n\n  var type = prop.type;\n  var valid = !type || type === true;\n  var expectedTypes = [];\n\n  if (type) {\n    if (!Array.isArray(type)) {\n      type = [type];\n    }\n\n    for (var i = 0; i < type.length && !valid; i++) {\n      var assertedType = assertType(value, type[i], vm);\n      expectedTypes.push(assertedType.expectedType || '');\n      valid = assertedType.valid;\n    }\n  }\n\n  var haveExpectedTypes = expectedTypes.some(function (t) {\n    return t;\n  });\n\n  if (!valid && haveExpectedTypes) {\n    warn(getInvalidTypeMessage(name, value, expectedTypes), vm);\n    return;\n  }\n\n  var validator = prop.validator;\n\n  if (validator) {\n    if (!validator(value)) {\n      warn('Invalid prop: custom validator check failed for prop \"' + name + '\".', vm);\n    }\n  }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;\n\nfunction assertType(value, type, vm) {\n  var valid;\n  var expectedType = getType(type);\n\n  if (simpleCheckRE.test(expectedType)) {\n    var t = typeof value;\n    valid = t === expectedType.toLowerCase(); // for primitive wrapper objects\n\n    if (!valid && t === 'object') {\n      valid = value instanceof type;\n    }\n  } else if (expectedType === 'Object') {\n    valid = isPlainObject(value);\n  } else if (expectedType === 'Array') {\n    valid = Array.isArray(value);\n  } else {\n    try {\n      valid = value instanceof type;\n    } catch (e) {\n      warn('Invalid prop type: \"' + String(type) + '\" is not a constructor', vm);\n      valid = false;\n    }\n  }\n\n  return {\n    valid: valid,\n    expectedType: expectedType\n  };\n}\n\nvar functionTypeCheckRE = /^\\s*function (\\w+)/;\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\n\nfunction getType(fn) {\n  var match = fn && fn.toString().match(functionTypeCheckRE);\n  return match ? match[1] : '';\n}\n\nfunction isSameType(a, b) {\n  return getType(a) === getType(b);\n}\n\nfunction getTypeIndex(type, expectedTypes) {\n  if (!Array.isArray(expectedTypes)) {\n    return isSameType(expectedTypes, type) ? 0 : -1;\n  }\n\n  for (var i = 0, len = expectedTypes.length; i < len; i++) {\n    if (isSameType(expectedTypes[i], type)) {\n      return i;\n    }\n  }\n\n  return -1;\n}\n\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n  var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" + \" Expected \" + expectedTypes.map(capitalize).join(', ');\n  var expectedType = expectedTypes[0];\n  var receivedType = toRawType(value); // check if we need to specify expected value\n\n  if (expectedTypes.length === 1 && isExplicable(expectedType) && isExplicable(typeof value) && !isBoolean(expectedType, receivedType)) {\n    message += \" with value \" + styleValue(value, expectedType);\n  }\n\n  message += \", got \" + receivedType + \" \"; // check if we need to specify received value\n\n  if (isExplicable(receivedType)) {\n    message += \"with value \" + styleValue(value, receivedType) + \".\";\n  }\n\n  return message;\n}\n\nfunction styleValue(value, type) {\n  if (type === 'String') {\n    return \"\\\"\" + value + \"\\\"\";\n  } else if (type === 'Number') {\n    return \"\" + Number(value);\n  } else {\n    return \"\" + value;\n  }\n}\n\nvar EXPLICABLE_TYPES = ['string', 'number', 'boolean'];\n\nfunction isExplicable(value) {\n  return EXPLICABLE_TYPES.some(function (elem) {\n    return value.toLowerCase() === elem;\n  });\n}\n\nfunction isBoolean() {\n  var args = [],\n      len = arguments.length;\n\n  while (len--) args[len] = arguments[len];\n\n  return args.some(function (elem) {\n    return elem.toLowerCase() === 'boolean';\n  });\n}\n/*  */\n\n\nfunction handleError(err, vm, info) {\n  // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n  // See: https://github.com/vuejs/vuex/issues/1505\n  pushTarget();\n\n  try {\n    if (vm) {\n      var cur = vm;\n\n      while (cur = cur.$parent) {\n        var hooks = cur.$options.errorCaptured;\n\n        if (hooks) {\n          for (var i = 0; i < hooks.length; i++) {\n            try {\n              var capture = hooks[i].call(cur, err, vm, info) === false;\n\n              if (capture) {\n                return;\n              }\n            } catch (e) {\n              globalHandleError(e, cur, 'errorCaptured hook');\n            }\n          }\n        }\n      }\n    }\n\n    globalHandleError(err, vm, info);\n  } finally {\n    popTarget();\n  }\n}\n\nfunction invokeWithErrorHandling(handler, context, args, vm, info) {\n  var res;\n\n  try {\n    res = args ? handler.apply(context, args) : handler.call(context);\n\n    if (res && !res._isVue && isPromise(res) && !res._handled) {\n      res.catch(function (e) {\n        return handleError(e, vm, info + \" (Promise/async)\");\n      }); // issue #9511\n      // avoid catch triggering multiple times when nested calls\n\n      res._handled = true;\n    }\n  } catch (e) {\n    handleError(e, vm, info);\n  }\n\n  return res;\n}\n\nfunction globalHandleError(err, vm, info) {\n  if (config.errorHandler) {\n    try {\n      return config.errorHandler.call(null, err, vm, info);\n    } catch (e) {\n      // if the user intentionally throws the original error in the handler,\n      // do not log it twice\n      if (e !== err) {\n        logError(e, null, 'config.errorHandler');\n      }\n    }\n  }\n\n  logError(err, vm, info);\n}\n\nfunction logError(err, vm, info) {\n  if (true) {\n    warn(\"Error in \" + info + \": \\\"\" + err.toString() + \"\\\"\", vm);\n  }\n  /* istanbul ignore else */\n\n\n  if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n    console.error(err);\n  } else {\n    throw err;\n  }\n}\n/*  */\n\n\nvar isUsingMicroTask = false;\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks() {\n  pending = false;\n  var copies = callbacks.slice(0);\n  callbacks.length = 0;\n\n  for (var i = 0; i < copies.length; i++) {\n    copies[i]();\n  }\n} // Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\n\n\nvar timerFunc; // The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n\n/* istanbul ignore next, $flow-disable-line */\n\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n  var p = Promise.resolve();\n\n  timerFunc = function () {\n    p.then(flushCallbacks); // In problematic UIWebViews, Promise.then doesn't completely break, but\n    // it can get stuck in a weird state where callbacks are pushed into the\n    // microtask queue but the queue isn't being flushed, until the browser\n    // needs to do some other work, e.g. handle a timer. Therefore we can\n    // \"force\" the microtask queue to be flushed by adding an empty timer.\n\n    if (isIOS) {\n      setTimeout(noop);\n    }\n  };\n\n  isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (isNative(MutationObserver) || // PhantomJS and iOS 7.x\nMutationObserver.toString() === '[object MutationObserverConstructor]')) {\n  // Use MutationObserver where native Promise is not available,\n  // e.g. PhantomJS, iOS7, Android 4.4\n  // (#6466 MutationObserver is unreliable in IE11)\n  var counter = 1;\n  var observer = new MutationObserver(flushCallbacks);\n  var textNode = document.createTextNode(String(counter));\n  observer.observe(textNode, {\n    characterData: true\n  });\n\n  timerFunc = function () {\n    counter = (counter + 1) % 2;\n    textNode.data = String(counter);\n  };\n\n  isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n  // Fallback to setImmediate.\n  // Technically it leverages the (macro) task queue,\n  // but it is still a better choice than setTimeout.\n  timerFunc = function () {\n    setImmediate(flushCallbacks);\n  };\n} else {\n  // Fallback to setTimeout.\n  timerFunc = function () {\n    setTimeout(flushCallbacks, 0);\n  };\n}\n\nfunction nextTick(cb, ctx) {\n  var _resolve;\n\n  callbacks.push(function () {\n    if (cb) {\n      try {\n        cb.call(ctx);\n      } catch (e) {\n        handleError(e, ctx, 'nextTick');\n      }\n    } else if (_resolve) {\n      _resolve(ctx);\n    }\n  });\n\n  if (!pending) {\n    pending = true;\n    timerFunc();\n  } // $flow-disable-line\n\n\n  if (!cb && typeof Promise !== 'undefined') {\n    return new Promise(function (resolve) {\n      _resolve = resolve;\n    });\n  }\n}\n/*  */\n\n\nvar mark;\nvar measure;\n\nif (true) {\n  var perf = inBrowser && window.performance;\n  /* istanbul ignore if */\n\n  if (perf && perf.mark && perf.measure && perf.clearMarks && perf.clearMeasures) {\n    mark = function (tag) {\n      return perf.mark(tag);\n    };\n\n    measure = function (name, startTag, endTag) {\n      perf.measure(name, startTag, endTag);\n      perf.clearMarks(startTag);\n      perf.clearMarks(endTag); // perf.clearMeasures(name)\n    };\n  }\n}\n/* not type checking this file because flow doesn't play well with Proxy */\n\n\nvar initProxy;\n\nif (true) {\n  var allowedGlobals = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' + 'require' // for Webpack/Browserify\n  );\n\n  var warnNonPresent = function (target, key) {\n    warn(\"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" + 'referenced during render. Make sure that this property is reactive, ' + 'either in the data option, or for class-based components, by ' + 'initializing the property. ' + 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);\n  };\n\n  var warnReservedPrefix = function (target, key) {\n    warn(\"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" + 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' + 'prevent conflicts with Vue internals. ' + 'See: https://vuejs.org/v2/api/#data', target);\n  };\n\n  var hasProxy = typeof Proxy !== 'undefined' && isNative(Proxy);\n\n  if (hasProxy) {\n    var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n    config.keyCodes = new Proxy(config.keyCodes, {\n      set: function set(target, key, value) {\n        if (isBuiltInModifier(key)) {\n          warn(\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key);\n          return false;\n        } else {\n          target[key] = value;\n          return true;\n        }\n      }\n    });\n  }\n\n  var hasHandler = {\n    has: function has(target, key) {\n      var has = (key in target);\n      var isAllowed = allowedGlobals(key) || typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data);\n\n      if (!has && !isAllowed) {\n        if (key in target.$data) {\n          warnReservedPrefix(target, key);\n        } else {\n          warnNonPresent(target, key);\n        }\n      }\n\n      return has || !isAllowed;\n    }\n  };\n  var getHandler = {\n    get: function get(target, key) {\n      if (typeof key === 'string' && !(key in target)) {\n        if (key in target.$data) {\n          warnReservedPrefix(target, key);\n        } else {\n          warnNonPresent(target, key);\n        }\n      }\n\n      return target[key];\n    }\n  };\n\n  initProxy = function initProxy(vm) {\n    if (hasProxy) {\n      // determine which proxy handler to use\n      var options = vm.$options;\n      var handlers = options.render && options.render._withStripped ? getHandler : hasHandler;\n      vm._renderProxy = new Proxy(vm, handlers);\n    } else {\n      vm._renderProxy = vm;\n    }\n  };\n}\n/*  */\n\n\nvar seenObjects = new _Set();\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\n\nfunction traverse(val) {\n  _traverse(val, seenObjects);\n\n  seenObjects.clear();\n}\n\nfunction _traverse(val, seen) {\n  var i, keys;\n  var isA = Array.isArray(val);\n\n  if (!isA && !isObject(val) || Object.isFrozen(val) || val instanceof VNode) {\n    return;\n  }\n\n  if (val.__ob__) {\n    var depId = val.__ob__.dep.id;\n\n    if (seen.has(depId)) {\n      return;\n    }\n\n    seen.add(depId);\n  }\n\n  if (isA) {\n    i = val.length;\n\n    while (i--) {\n      _traverse(val[i], seen);\n    }\n  } else {\n    keys = Object.keys(val);\n    i = keys.length;\n\n    while (i--) {\n      _traverse(val[keys[i]], seen);\n    }\n  }\n}\n/*  */\n\n\nvar normalizeEvent = cached(function (name) {\n  var passive = name.charAt(0) === '&';\n  name = passive ? name.slice(1) : name;\n  var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n\n  name = once$$1 ? name.slice(1) : name;\n  var capture = name.charAt(0) === '!';\n  name = capture ? name.slice(1) : name;\n  return {\n    name: name,\n    once: once$$1,\n    capture: capture,\n    passive: passive\n  };\n});\n\nfunction createFnInvoker(fns, vm) {\n  function invoker() {\n    var arguments$1 = arguments;\n    var fns = invoker.fns;\n\n    if (Array.isArray(fns)) {\n      var cloned = fns.slice();\n\n      for (var i = 0; i < cloned.length; i++) {\n        invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n      }\n    } else {\n      // return handler return value for single handlers\n      return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\");\n    }\n  }\n\n  invoker.fns = fns;\n  return invoker;\n}\n\nfunction updateListeners(on, oldOn, add, remove$$1, createOnceHandler, vm) {\n  var name, def$$1, cur, old, event;\n\n  for (name in on) {\n    def$$1 = cur = on[name];\n    old = oldOn[name];\n    event = normalizeEvent(name);\n\n    if (isUndef(cur)) {\n       true && warn(\"Invalid handler for event \\\"\" + event.name + \"\\\": got \" + String(cur), vm);\n    } else if (isUndef(old)) {\n      if (isUndef(cur.fns)) {\n        cur = on[name] = createFnInvoker(cur, vm);\n      }\n\n      if (isTrue(event.once)) {\n        cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n      }\n\n      add(event.name, cur, event.capture, event.passive, event.params);\n    } else if (cur !== old) {\n      old.fns = cur;\n      on[name] = old;\n    }\n  }\n\n  for (name in oldOn) {\n    if (isUndef(on[name])) {\n      event = normalizeEvent(name);\n      remove$$1(event.name, oldOn[name], event.capture);\n    }\n  }\n}\n/*  */\n\n\nfunction mergeVNodeHook(def, hookKey, hook) {\n  if (def instanceof VNode) {\n    def = def.data.hook || (def.data.hook = {});\n  }\n\n  var invoker;\n  var oldHook = def[hookKey];\n\n  function wrappedHook() {\n    hook.apply(this, arguments); // important: remove merged hook to ensure it's called only once\n    // and prevent memory leak\n\n    remove(invoker.fns, wrappedHook);\n  }\n\n  if (isUndef(oldHook)) {\n    // no existing hook\n    invoker = createFnInvoker([wrappedHook]);\n  } else {\n    /* istanbul ignore if */\n    if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n      // already a merged invoker\n      invoker = oldHook;\n      invoker.fns.push(wrappedHook);\n    } else {\n      // existing plain hook\n      invoker = createFnInvoker([oldHook, wrappedHook]);\n    }\n  }\n\n  invoker.merged = true;\n  def[hookKey] = invoker;\n}\n/*  */\n\n\nfunction extractPropsFromVNodeData(data, Ctor, tag) {\n  // we are only extracting raw values here.\n  // validation and default values are handled in the child\n  // component itself.\n  var propOptions = Ctor.options.props;\n\n  if (isUndef(propOptions)) {\n    return;\n  }\n\n  var res = {};\n  var attrs = data.attrs;\n  var props = data.props;\n\n  if (isDef(attrs) || isDef(props)) {\n    for (var key in propOptions) {\n      var altKey = hyphenate(key);\n\n      if (true) {\n        var keyInLowerCase = key.toLowerCase();\n\n        if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\n          tip(\"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" + formatComponentName(tag || Ctor) + \", but the declared prop name is\" + \" \\\"\" + key + \"\\\". \" + \"Note that HTML attributes are case-insensitive and camelCased \" + \"props need to use their kebab-case equivalents when using in-DOM \" + \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\");\n        }\n      }\n\n      checkProp(res, props, key, altKey, true) || checkProp(res, attrs, key, altKey, false);\n    }\n  }\n\n  return res;\n}\n\nfunction checkProp(res, hash, key, altKey, preserve) {\n  if (isDef(hash)) {\n    if (hasOwn(hash, key)) {\n      res[key] = hash[key];\n\n      if (!preserve) {\n        delete hash[key];\n      }\n\n      return true;\n    } else if (hasOwn(hash, altKey)) {\n      res[key] = hash[altKey];\n\n      if (!preserve) {\n        delete hash[altKey];\n      }\n\n      return true;\n    }\n  }\n\n  return false;\n}\n/*  */\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\n\n\nfunction simpleNormalizeChildren(children) {\n  for (var i = 0; i < children.length; i++) {\n    if (Array.isArray(children[i])) {\n      return Array.prototype.concat.apply([], children);\n    }\n  }\n\n  return children;\n} // 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\n\n\nfunction normalizeChildren(children) {\n  return isPrimitive(children) ? [createTextVNode(children)] : Array.isArray(children) ? normalizeArrayChildren(children) : undefined;\n}\n\nfunction isTextNode(node) {\n  return isDef(node) && isDef(node.text) && isFalse(node.isComment);\n}\n\nfunction normalizeArrayChildren(children, nestedIndex) {\n  var res = [];\n  var i, c, lastIndex, last;\n\n  for (i = 0; i < children.length; i++) {\n    c = children[i];\n\n    if (isUndef(c) || typeof c === 'boolean') {\n      continue;\n    }\n\n    lastIndex = res.length - 1;\n    last = res[lastIndex]; //  nested\n\n    if (Array.isArray(c)) {\n      if (c.length > 0) {\n        c = normalizeArrayChildren(c, (nestedIndex || '') + \"_\" + i); // merge adjacent text nodes\n\n        if (isTextNode(c[0]) && isTextNode(last)) {\n          res[lastIndex] = createTextVNode(last.text + c[0].text);\n          c.shift();\n        }\n\n        res.push.apply(res, c);\n      }\n    } else if (isPrimitive(c)) {\n      if (isTextNode(last)) {\n        // merge adjacent text nodes\n        // this is necessary for SSR hydration because text nodes are\n        // essentially merged when rendered to HTML strings\n        res[lastIndex] = createTextVNode(last.text + c);\n      } else if (c !== '') {\n        // convert primitive to vnode\n        res.push(createTextVNode(c));\n      }\n    } else {\n      if (isTextNode(c) && isTextNode(last)) {\n        // merge adjacent text nodes\n        res[lastIndex] = createTextVNode(last.text + c.text);\n      } else {\n        // default key for nested array children (likely generated by v-for)\n        if (isTrue(children._isVList) && isDef(c.tag) && isUndef(c.key) && isDef(nestedIndex)) {\n          c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n        }\n\n        res.push(c);\n      }\n    }\n  }\n\n  return res;\n}\n/*  */\n\n\nfunction initProvide(vm) {\n  var provide = vm.$options.provide;\n\n  if (provide) {\n    vm._provided = typeof provide === 'function' ? provide.call(vm) : provide;\n  }\n}\n\nfunction initInjections(vm) {\n  var result = resolveInject(vm.$options.inject, vm);\n\n  if (result) {\n    toggleObserving(false);\n    Object.keys(result).forEach(function (key) {\n      /* istanbul ignore else */\n      if (true) {\n        defineReactive$$1(vm, key, result[key], function () {\n          warn(\"Avoid mutating an injected value directly since the changes will be \" + \"overwritten whenever the provided component re-renders. \" + \"injection being mutated: \\\"\" + key + \"\\\"\", vm);\n        });\n      } else {}\n    });\n    toggleObserving(true);\n  }\n}\n\nfunction resolveInject(inject, vm) {\n  if (inject) {\n    // inject is :any because flow is not smart enough to figure out cached\n    var result = Object.create(null);\n    var keys = hasSymbol ? Reflect.ownKeys(inject) : Object.keys(inject);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i]; // #6574 in case the inject object is observed...\n\n      if (key === '__ob__') {\n        continue;\n      }\n\n      var provideKey = inject[key].from;\n      var source = vm;\n\n      while (source) {\n        if (source._provided && hasOwn(source._provided, provideKey)) {\n          result[key] = source._provided[provideKey];\n          break;\n        }\n\n        source = source.$parent;\n      }\n\n      if (!source) {\n        if ('default' in inject[key]) {\n          var provideDefault = inject[key].default;\n          result[key] = typeof provideDefault === 'function' ? provideDefault.call(vm) : provideDefault;\n        } else if (true) {\n          warn(\"Injection \\\"\" + key + \"\\\" not found\", vm);\n        }\n      }\n    }\n\n    return result;\n  }\n}\n/*  */\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\n\n\nfunction resolveSlots(children, context) {\n  if (!children || !children.length) {\n    return {};\n  }\n\n  var slots = {};\n\n  for (var i = 0, l = children.length; i < l; i++) {\n    var child = children[i];\n    var data = child.data; // remove slot attribute if the node is resolved as a Vue slot node\n\n    if (data && data.attrs && data.attrs.slot) {\n      delete data.attrs.slot;\n    } // named slots should only be respected if the vnode was rendered in the\n    // same context.\n\n\n    if ((child.context === context || child.fnContext === context) && data && data.slot != null) {\n      var name = data.slot;\n      var slot = slots[name] || (slots[name] = []);\n\n      if (child.tag === 'template') {\n        slot.push.apply(slot, child.children || []);\n      } else {\n        slot.push(child);\n      }\n    } else {\n      (slots.default || (slots.default = [])).push(child);\n    }\n  } // ignore slots that contains only whitespace\n\n\n  for (var name$1 in slots) {\n    if (slots[name$1].every(isWhitespace)) {\n      delete slots[name$1];\n    }\n  }\n\n  return slots;\n}\n\nfunction isWhitespace(node) {\n  return node.isComment && !node.asyncFactory || node.text === ' ';\n}\n/*  */\n\n\nfunction isAsyncPlaceholder(node) {\n  return node.isComment && node.asyncFactory;\n}\n/*  */\n\n\nfunction normalizeScopedSlots(slots, normalSlots, prevSlots) {\n  var res;\n  var hasNormalSlots = Object.keys(normalSlots).length > 0;\n  var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n  var key = slots && slots.$key;\n\n  if (!slots) {\n    res = {};\n  } else if (slots._normalized) {\n    // fast path 1: child component re-render only, parent did not change\n    return slots._normalized;\n  } else if (isStable && prevSlots && prevSlots !== emptyObject && key === prevSlots.$key && !hasNormalSlots && !prevSlots.$hasNormal) {\n    // fast path 2: stable scoped slots w/ no normal slots to proxy,\n    // only need to normalize once\n    return prevSlots;\n  } else {\n    res = {};\n\n    for (var key$1 in slots) {\n      if (slots[key$1] && key$1[0] !== '$') {\n        res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n      }\n    }\n  } // expose normal slots on scopedSlots\n\n\n  for (var key$2 in normalSlots) {\n    if (!(key$2 in res)) {\n      res[key$2] = proxyNormalSlot(normalSlots, key$2);\n    }\n  } // avoriaz seems to mock a non-extensible $scopedSlots object\n  // and when that is passed down this would cause an error\n\n\n  if (slots && Object.isExtensible(slots)) {\n    slots._normalized = res;\n  }\n\n  def(res, '$stable', isStable);\n  def(res, '$key', key);\n  def(res, '$hasNormal', hasNormalSlots);\n  return res;\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n  var normalized = function () {\n    var res = arguments.length ? fn.apply(null, arguments) : fn({});\n    res = res && typeof res === 'object' && !Array.isArray(res) ? [res] // single vnode\n    : normalizeChildren(res);\n    var vnode = res && res[0];\n    return res && (!vnode || res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode) // #9658, #10391\n    ) ? undefined : res;\n  }; // this is a slot using the new v-slot syntax without scope. although it is\n  // compiled as a scoped slot, render fn users would expect it to be present\n  // on this.$slots because the usage is semantically a normal slot.\n\n\n  if (fn.proxy) {\n    Object.defineProperty(normalSlots, key, {\n      get: normalized,\n      enumerable: true,\n      configurable: true\n    });\n  }\n\n  return normalized;\n}\n\nfunction proxyNormalSlot(slots, key) {\n  return function () {\n    return slots[key];\n  };\n}\n/*  */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\n\n\nfunction renderList(val, render) {\n  var ret, i, l, keys, key;\n\n  if (Array.isArray(val) || typeof val === 'string') {\n    ret = new Array(val.length);\n\n    for (i = 0, l = val.length; i < l; i++) {\n      ret[i] = render(val[i], i);\n    }\n  } else if (typeof val === 'number') {\n    ret = new Array(val);\n\n    for (i = 0; i < val; i++) {\n      ret[i] = render(i + 1, i);\n    }\n  } else if (isObject(val)) {\n    if (hasSymbol && val[Symbol.iterator]) {\n      ret = [];\n      var iterator = val[Symbol.iterator]();\n      var result = iterator.next();\n\n      while (!result.done) {\n        ret.push(render(result.value, ret.length));\n        result = iterator.next();\n      }\n    } else {\n      keys = Object.keys(val);\n      ret = new Array(keys.length);\n\n      for (i = 0, l = keys.length; i < l; i++) {\n        key = keys[i];\n        ret[i] = render(val[key], key, i);\n      }\n    }\n  }\n\n  if (!isDef(ret)) {\n    ret = [];\n  }\n\n  ret._isVList = true;\n  return ret;\n}\n/*  */\n\n/**\n * Runtime helper for rendering <slot>\n */\n\n\nfunction renderSlot(name, fallbackRender, props, bindObject) {\n  var scopedSlotFn = this.$scopedSlots[name];\n  var nodes;\n\n  if (scopedSlotFn) {\n    // scoped slot\n    props = props || {};\n\n    if (bindObject) {\n      if ( true && !isObject(bindObject)) {\n        warn('slot v-bind without argument expects an Object', this);\n      }\n\n      props = extend(extend({}, bindObject), props);\n    }\n\n    nodes = scopedSlotFn(props) || (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);\n  } else {\n    nodes = this.$slots[name] || (typeof fallbackRender === 'function' ? fallbackRender() : fallbackRender);\n  }\n\n  var target = props && props.slot;\n\n  if (target) {\n    return this.$createElement('template', {\n      slot: target\n    }, nodes);\n  } else {\n    return nodes;\n  }\n}\n/*  */\n\n/**\n * Runtime helper for resolving filters\n */\n\n\nfunction resolveFilter(id) {\n  return resolveAsset(this.$options, 'filters', id, true) || identity;\n}\n/*  */\n\n\nfunction isKeyNotMatch(expect, actual) {\n  if (Array.isArray(expect)) {\n    return expect.indexOf(actual) === -1;\n  } else {\n    return expect !== actual;\n  }\n}\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\n\n\nfunction checkKeyCodes(eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {\n  var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n\n  if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n    return isKeyNotMatch(builtInKeyName, eventKeyName);\n  } else if (mappedKeyCode) {\n    return isKeyNotMatch(mappedKeyCode, eventKeyCode);\n  } else if (eventKeyName) {\n    return hyphenate(eventKeyName) !== key;\n  }\n\n  return eventKeyCode === undefined;\n}\n/*  */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\n\n\nfunction bindObjectProps(data, tag, value, asProp, isSync) {\n  if (value) {\n    if (!isObject(value)) {\n       true && warn('v-bind without argument expects an Object or Array value', this);\n    } else {\n      if (Array.isArray(value)) {\n        value = toObject(value);\n      }\n\n      var hash;\n\n      var loop = function (key) {\n        if (key === 'class' || key === 'style' || isReservedAttribute(key)) {\n          hash = data;\n        } else {\n          var type = data.attrs && data.attrs.type;\n          hash = asProp || config.mustUseProp(tag, type, key) ? data.domProps || (data.domProps = {}) : data.attrs || (data.attrs = {});\n        }\n\n        var camelizedKey = camelize(key);\n        var hyphenatedKey = hyphenate(key);\n\n        if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n          hash[key] = value[key];\n\n          if (isSync) {\n            var on = data.on || (data.on = {});\n\n            on[\"update:\" + key] = function ($event) {\n              value[key] = $event;\n            };\n          }\n        }\n      };\n\n      for (var key in value) loop(key);\n    }\n  }\n\n  return data;\n}\n/*  */\n\n/**\n * Runtime helper for rendering static trees.\n */\n\n\nfunction renderStatic(index, isInFor) {\n  var cached = this._staticTrees || (this._staticTrees = []);\n  var tree = cached[index]; // if has already-rendered static tree and not inside v-for,\n  // we can reuse the same tree.\n\n  if (tree && !isInFor) {\n    return tree;\n  } // otherwise, render a fresh tree.\n\n\n  tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, null, this // for render fns generated for functional component templates\n  );\n  markStatic(tree, \"__static__\" + index, false);\n  return tree;\n}\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\n\n\nfunction markOnce(tree, index, key) {\n  markStatic(tree, \"__once__\" + index + (key ? \"_\" + key : \"\"), true);\n  return tree;\n}\n\nfunction markStatic(tree, key, isOnce) {\n  if (Array.isArray(tree)) {\n    for (var i = 0; i < tree.length; i++) {\n      if (tree[i] && typeof tree[i] !== 'string') {\n        markStaticNode(tree[i], key + \"_\" + i, isOnce);\n      }\n    }\n  } else {\n    markStaticNode(tree, key, isOnce);\n  }\n}\n\nfunction markStaticNode(node, key, isOnce) {\n  node.isStatic = true;\n  node.key = key;\n  node.isOnce = isOnce;\n}\n/*  */\n\n\nfunction bindObjectListeners(data, value) {\n  if (value) {\n    if (!isPlainObject(value)) {\n       true && warn('v-on without argument expects an Object value', this);\n    } else {\n      var on = data.on = data.on ? extend({}, data.on) : {};\n\n      for (var key in value) {\n        var existing = on[key];\n        var ours = value[key];\n        on[key] = existing ? [].concat(existing, ours) : ours;\n      }\n    }\n  }\n\n  return data;\n}\n/*  */\n\n\nfunction resolveScopedSlots(fns, // see flow/vnode\nres, // the following are added in 2.6\nhasDynamicKeys, contentHashKey) {\n  res = res || {\n    $stable: !hasDynamicKeys\n  };\n\n  for (var i = 0; i < fns.length; i++) {\n    var slot = fns[i];\n\n    if (Array.isArray(slot)) {\n      resolveScopedSlots(slot, res, hasDynamicKeys);\n    } else if (slot) {\n      // marker for reverse proxying v-slot without scope on this.$slots\n      if (slot.proxy) {\n        slot.fn.proxy = true;\n      }\n\n      res[slot.key] = slot.fn;\n    }\n  }\n\n  if (contentHashKey) {\n    res.$key = contentHashKey;\n  }\n\n  return res;\n}\n/*  */\n\n\nfunction bindDynamicKeys(baseObj, values) {\n  for (var i = 0; i < values.length; i += 2) {\n    var key = values[i];\n\n    if (typeof key === 'string' && key) {\n      baseObj[values[i]] = values[i + 1];\n    } else if ( true && key !== '' && key !== null) {\n      // null is a special value for explicitly removing a binding\n      warn(\"Invalid value for dynamic directive argument (expected string or null): \" + key, this);\n    }\n  }\n\n  return baseObj;\n} // helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\n\n\nfunction prependModifier(value, symbol) {\n  return typeof value === 'string' ? symbol + value : value;\n}\n/*  */\n\n\nfunction installRenderHelpers(target) {\n  target._o = markOnce;\n  target._n = toNumber;\n  target._s = toString;\n  target._l = renderList;\n  target._t = renderSlot;\n  target._q = looseEqual;\n  target._i = looseIndexOf;\n  target._m = renderStatic;\n  target._f = resolveFilter;\n  target._k = checkKeyCodes;\n  target._b = bindObjectProps;\n  target._v = createTextVNode;\n  target._e = createEmptyVNode;\n  target._u = resolveScopedSlots;\n  target._g = bindObjectListeners;\n  target._d = bindDynamicKeys;\n  target._p = prependModifier;\n}\n/*  */\n\n\nfunction FunctionalRenderContext(data, props, children, parent, Ctor) {\n  var this$1 = this;\n  var options = Ctor.options; // ensure the createElement function in functional components\n  // gets a unique context - this is necessary for correct named slot check\n\n  var contextVm;\n\n  if (hasOwn(parent, '_uid')) {\n    contextVm = Object.create(parent); // $flow-disable-line\n\n    contextVm._original = parent;\n  } else {\n    // the context vm passed in is a functional context as well.\n    // in this case we want to make sure we are able to get a hold to the\n    // real context instance.\n    contextVm = parent; // $flow-disable-line\n\n    parent = parent._original;\n  }\n\n  var isCompiled = isTrue(options._compiled);\n  var needNormalization = !isCompiled;\n  this.data = data;\n  this.props = props;\n  this.children = children;\n  this.parent = parent;\n  this.listeners = data.on || emptyObject;\n  this.injections = resolveInject(options.inject, parent);\n\n  this.slots = function () {\n    if (!this$1.$slots) {\n      normalizeScopedSlots(data.scopedSlots, this$1.$slots = resolveSlots(children, parent));\n    }\n\n    return this$1.$slots;\n  };\n\n  Object.defineProperty(this, 'scopedSlots', {\n    enumerable: true,\n    get: function get() {\n      return normalizeScopedSlots(data.scopedSlots, this.slots());\n    }\n  }); // support for compiled functional template\n\n  if (isCompiled) {\n    // exposing $options for renderStatic()\n    this.$options = options; // pre-resolve slots for renderSlot()\n\n    this.$slots = this.slots();\n    this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n  }\n\n  if (options._scopeId) {\n    this._c = function (a, b, c, d) {\n      var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n\n      if (vnode && !Array.isArray(vnode)) {\n        vnode.fnScopeId = options._scopeId;\n        vnode.fnContext = parent;\n      }\n\n      return vnode;\n    };\n  } else {\n    this._c = function (a, b, c, d) {\n      return createElement(contextVm, a, b, c, d, needNormalization);\n    };\n  }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent(Ctor, propsData, data, contextVm, children) {\n  var options = Ctor.options;\n  var props = {};\n  var propOptions = options.props;\n\n  if (isDef(propOptions)) {\n    for (var key in propOptions) {\n      props[key] = validateProp(key, propOptions, propsData || emptyObject);\n    }\n  } else {\n    if (isDef(data.attrs)) {\n      mergeProps(props, data.attrs);\n    }\n\n    if (isDef(data.props)) {\n      mergeProps(props, data.props);\n    }\n  }\n\n  var renderContext = new FunctionalRenderContext(data, props, children, contextVm, Ctor);\n  var vnode = options.render.call(null, renderContext._c, renderContext);\n\n  if (vnode instanceof VNode) {\n    return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext);\n  } else if (Array.isArray(vnode)) {\n    var vnodes = normalizeChildren(vnode) || [];\n    var res = new Array(vnodes.length);\n\n    for (var i = 0; i < vnodes.length; i++) {\n      res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n    }\n\n    return res;\n  }\n}\n\nfunction cloneAndMarkFunctionalResult(vnode, data, contextVm, options, renderContext) {\n  // #7817 clone node before setting fnContext, otherwise if the node is reused\n  // (e.g. it was from a cached normal slot) the fnContext causes named slots\n  // that should not be matched to match.\n  var clone = cloneVNode(vnode);\n  clone.fnContext = contextVm;\n  clone.fnOptions = options;\n\n  if (true) {\n    (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n  }\n\n  if (data.slot) {\n    (clone.data || (clone.data = {})).slot = data.slot;\n  }\n\n  return clone;\n}\n\nfunction mergeProps(to, from) {\n  for (var key in from) {\n    to[camelize(key)] = from[key];\n  }\n}\n/*  */\n\n/*  */\n\n/*  */\n\n/*  */\n// inline hooks to be invoked on component VNodes during patch\n\n\nvar componentVNodeHooks = {\n  init: function init(vnode, hydrating) {\n    if (vnode.componentInstance && !vnode.componentInstance._isDestroyed && vnode.data.keepAlive) {\n      // kept-alive components, treat as a patch\n      var mountedNode = vnode; // work around flow\n\n      componentVNodeHooks.prepatch(mountedNode, mountedNode);\n    } else {\n      var child = vnode.componentInstance = createComponentInstanceForVnode(vnode, activeInstance);\n      child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n    }\n  },\n  prepatch: function prepatch(oldVnode, vnode) {\n    var options = vnode.componentOptions;\n    var child = vnode.componentInstance = oldVnode.componentInstance;\n    updateChildComponent(child, options.propsData, // updated props\n    options.listeners, // updated listeners\n    vnode, // new parent vnode\n    options.children // new children\n    );\n  },\n  insert: function insert(vnode) {\n    var context = vnode.context;\n    var componentInstance = vnode.componentInstance;\n\n    if (!componentInstance._isMounted) {\n      componentInstance._isMounted = true;\n      callHook(componentInstance, 'mounted');\n    }\n\n    if (vnode.data.keepAlive) {\n      if (context._isMounted) {\n        // vue-router#1212\n        // During updates, a kept-alive component's child components may\n        // change, so directly walking the tree here may call activated hooks\n        // on incorrect children. Instead we push them into a queue which will\n        // be processed after the whole patch process ended.\n        queueActivatedComponent(componentInstance);\n      } else {\n        activateChildComponent(componentInstance, true\n        /* direct */\n        );\n      }\n    }\n  },\n  destroy: function destroy(vnode) {\n    var componentInstance = vnode.componentInstance;\n\n    if (!componentInstance._isDestroyed) {\n      if (!vnode.data.keepAlive) {\n        componentInstance.$destroy();\n      } else {\n        deactivateChildComponent(componentInstance, true\n        /* direct */\n        );\n      }\n    }\n  }\n};\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent(Ctor, data, context, children, tag) {\n  if (isUndef(Ctor)) {\n    return;\n  }\n\n  var baseCtor = context.$options._base; // plain options object: turn it into a constructor\n\n  if (isObject(Ctor)) {\n    Ctor = baseCtor.extend(Ctor);\n  } // if at this stage it's not a constructor or an async component factory,\n  // reject.\n\n\n  if (typeof Ctor !== 'function') {\n    if (true) {\n      warn(\"Invalid Component definition: \" + String(Ctor), context);\n    }\n\n    return;\n  } // async component\n\n\n  var asyncFactory;\n\n  if (isUndef(Ctor.cid)) {\n    asyncFactory = Ctor;\n    Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n\n    if (Ctor === undefined) {\n      // return a placeholder node for async component, which is rendered\n      // as a comment node but preserves all the raw information for the node.\n      // the information will be used for async server-rendering and hydration.\n      return createAsyncPlaceholder(asyncFactory, data, context, children, tag);\n    }\n  }\n\n  data = data || {}; // resolve constructor options in case global mixins are applied after\n  // component constructor creation\n\n  resolveConstructorOptions(Ctor); // transform component v-model data into props & events\n\n  if (isDef(data.model)) {\n    transformModel(Ctor.options, data);\n  } // extract props\n\n\n  var propsData = extractPropsFromVNodeData(data, Ctor, tag); // functional component\n\n  if (isTrue(Ctor.options.functional)) {\n    return createFunctionalComponent(Ctor, propsData, data, context, children);\n  } // extract listeners, since these needs to be treated as\n  // child component listeners instead of DOM listeners\n\n\n  var listeners = data.on; // replace with listeners with .native modifier\n  // so it gets processed during parent component patch.\n\n  data.on = data.nativeOn;\n\n  if (isTrue(Ctor.options.abstract)) {\n    // abstract components do not keep anything\n    // other than props & listeners & slot\n    // work around flow\n    var slot = data.slot;\n    data = {};\n\n    if (slot) {\n      data.slot = slot;\n    }\n  } // install component management hooks onto the placeholder node\n\n\n  installComponentHooks(data); // return a placeholder vnode\n\n  var name = Ctor.options.name || tag;\n  var vnode = new VNode(\"vue-component-\" + Ctor.cid + (name ? \"-\" + name : ''), data, undefined, undefined, undefined, context, {\n    Ctor: Ctor,\n    propsData: propsData,\n    listeners: listeners,\n    tag: tag,\n    children: children\n  }, asyncFactory);\n  return vnode;\n}\n\nfunction createComponentInstanceForVnode( // we know it's MountedComponentVNode but flow doesn't\nvnode, // activeInstance in lifecycle state\nparent) {\n  var options = {\n    _isComponent: true,\n    _parentVnode: vnode,\n    parent: parent\n  }; // check inline-template render functions\n\n  var inlineTemplate = vnode.data.inlineTemplate;\n\n  if (isDef(inlineTemplate)) {\n    options.render = inlineTemplate.render;\n    options.staticRenderFns = inlineTemplate.staticRenderFns;\n  }\n\n  return new vnode.componentOptions.Ctor(options);\n}\n\nfunction installComponentHooks(data) {\n  var hooks = data.hook || (data.hook = {});\n\n  for (var i = 0; i < hooksToMerge.length; i++) {\n    var key = hooksToMerge[i];\n    var existing = hooks[key];\n    var toMerge = componentVNodeHooks[key];\n\n    if (existing !== toMerge && !(existing && existing._merged)) {\n      hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n    }\n  }\n}\n\nfunction mergeHook$1(f1, f2) {\n  var merged = function (a, b) {\n    // flow complains about extra args which is why we use any\n    f1(a, b);\n    f2(a, b);\n  };\n\n  merged._merged = true;\n  return merged;\n} // transform component v-model info (value and callback) into\n// prop and event handler respectively.\n\n\nfunction transformModel(options, data) {\n  var prop = options.model && options.model.prop || 'value';\n  var event = options.model && options.model.event || 'input';\n  (data.attrs || (data.attrs = {}))[prop] = data.model.value;\n  var on = data.on || (data.on = {});\n  var existing = on[event];\n  var callback = data.model.callback;\n\n  if (isDef(existing)) {\n    if (Array.isArray(existing) ? existing.indexOf(callback) === -1 : existing !== callback) {\n      on[event] = [callback].concat(existing);\n    }\n  } else {\n    on[event] = callback;\n  }\n}\n/*  */\n\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2; // wrapper function for providing a more flexible interface\n// without getting yelled at by flow\n\nfunction createElement(context, tag, data, children, normalizationType, alwaysNormalize) {\n  if (Array.isArray(data) || isPrimitive(data)) {\n    normalizationType = children;\n    children = data;\n    data = undefined;\n  }\n\n  if (isTrue(alwaysNormalize)) {\n    normalizationType = ALWAYS_NORMALIZE;\n  }\n\n  return _createElement(context, tag, data, children, normalizationType);\n}\n\nfunction _createElement(context, tag, data, children, normalizationType) {\n  if (isDef(data) && isDef(data.__ob__)) {\n     true && warn(\"Avoid using observed data object as vnode data: \" + JSON.stringify(data) + \"\\n\" + 'Always create fresh vnode data objects in each render!', context);\n    return createEmptyVNode();\n  } // object syntax in v-bind\n\n\n  if (isDef(data) && isDef(data.is)) {\n    tag = data.is;\n  }\n\n  if (!tag) {\n    // in case of component :is set to falsy value\n    return createEmptyVNode();\n  } // warn against non-primitive key\n\n\n  if ( true && isDef(data) && isDef(data.key) && !isPrimitive(data.key)) {\n    {\n      warn('Avoid using non-primitive value as key, ' + 'use string/number value instead.', context);\n    }\n  } // support single function children as default scoped slot\n\n\n  if (Array.isArray(children) && typeof children[0] === 'function') {\n    data = data || {};\n    data.scopedSlots = {\n      default: children[0]\n    };\n    children.length = 0;\n  }\n\n  if (normalizationType === ALWAYS_NORMALIZE) {\n    children = normalizeChildren(children);\n  } else if (normalizationType === SIMPLE_NORMALIZE) {\n    children = simpleNormalizeChildren(children);\n  }\n\n  var vnode, ns;\n\n  if (typeof tag === 'string') {\n    var Ctor;\n    ns = context.$vnode && context.$vnode.ns || config.getTagNamespace(tag);\n\n    if (config.isReservedTag(tag)) {\n      // platform built-in elements\n      if ( true && isDef(data) && isDef(data.nativeOn) && data.tag !== 'component') {\n        warn(\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\", context);\n      }\n\n      vnode = new VNode(config.parsePlatformTagName(tag), data, children, undefined, undefined, context);\n    } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n      // component\n      vnode = createComponent(Ctor, data, context, children, tag);\n    } else {\n      // unknown or unlisted namespaced elements\n      // check at runtime because it may get assigned a namespace when its\n      // parent normalizes children\n      vnode = new VNode(tag, data, children, undefined, undefined, context);\n    }\n  } else {\n    // direct component options / constructor\n    vnode = createComponent(tag, data, context, children);\n  }\n\n  if (Array.isArray(vnode)) {\n    return vnode;\n  } else if (isDef(vnode)) {\n    if (isDef(ns)) {\n      applyNS(vnode, ns);\n    }\n\n    if (isDef(data)) {\n      registerDeepBindings(data);\n    }\n\n    return vnode;\n  } else {\n    return createEmptyVNode();\n  }\n}\n\nfunction applyNS(vnode, ns, force) {\n  vnode.ns = ns;\n\n  if (vnode.tag === 'foreignObject') {\n    // use default namespace inside foreignObject\n    ns = undefined;\n    force = true;\n  }\n\n  if (isDef(vnode.children)) {\n    for (var i = 0, l = vnode.children.length; i < l; i++) {\n      var child = vnode.children[i];\n\n      if (isDef(child.tag) && (isUndef(child.ns) || isTrue(force) && child.tag !== 'svg')) {\n        applyNS(child, ns, force);\n      }\n    }\n  }\n} // ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\n\n\nfunction registerDeepBindings(data) {\n  if (isObject(data.style)) {\n    traverse(data.style);\n  }\n\n  if (isObject(data.class)) {\n    traverse(data.class);\n  }\n}\n/*  */\n\n\nfunction initRender(vm) {\n  vm._vnode = null; // the root of the child tree\n\n  vm._staticTrees = null; // v-once cached trees\n\n  var options = vm.$options;\n  var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n\n  var renderContext = parentVnode && parentVnode.context;\n  vm.$slots = resolveSlots(options._renderChildren, renderContext);\n  vm.$scopedSlots = emptyObject; // bind the createElement fn to this instance\n  // so that we get proper render context inside it.\n  // args order: tag, data, children, normalizationType, alwaysNormalize\n  // internal version is used by render functions compiled from templates\n\n  vm._c = function (a, b, c, d) {\n    return createElement(vm, a, b, c, d, false);\n  }; // normalization is always applied for the public version, used in\n  // user-written render functions.\n\n\n  vm.$createElement = function (a, b, c, d) {\n    return createElement(vm, a, b, c, d, true);\n  }; // $attrs & $listeners are exposed for easier HOC creation.\n  // they need to be reactive so that HOCs using them are always updated\n\n\n  var parentData = parentVnode && parentVnode.data;\n  /* istanbul ignore else */\n\n  if (true) {\n    defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n      !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n    }, true);\n    defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n      !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n    }, true);\n  } else {}\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin(Vue) {\n  // install runtime convenience helpers\n  installRenderHelpers(Vue.prototype);\n\n  Vue.prototype.$nextTick = function (fn) {\n    return nextTick(fn, this);\n  };\n\n  Vue.prototype._render = function () {\n    var vm = this;\n    var ref = vm.$options;\n    var render = ref.render;\n    var _parentVnode = ref._parentVnode;\n\n    if (_parentVnode) {\n      vm.$scopedSlots = normalizeScopedSlots(_parentVnode.data.scopedSlots, vm.$slots, vm.$scopedSlots);\n    } // set parent vnode. this allows render functions to have access\n    // to the data on the placeholder node.\n\n\n    vm.$vnode = _parentVnode; // render self\n\n    var vnode;\n\n    try {\n      // There's no need to maintain a stack because all render fns are called\n      // separately from one another. Nested component's render fns are called\n      // when parent component is patched.\n      currentRenderingInstance = vm;\n      vnode = render.call(vm._renderProxy, vm.$createElement);\n    } catch (e) {\n      handleError(e, vm, \"render\"); // return error render result,\n      // or previous vnode to prevent render error causing blank component\n\n      /* istanbul ignore else */\n\n      if ( true && vm.$options.renderError) {\n        try {\n          vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n        } catch (e) {\n          handleError(e, vm, \"renderError\");\n          vnode = vm._vnode;\n        }\n      } else {\n        vnode = vm._vnode;\n      }\n    } finally {\n      currentRenderingInstance = null;\n    } // if the returned array contains only a single node, allow it\n\n\n    if (Array.isArray(vnode) && vnode.length === 1) {\n      vnode = vnode[0];\n    } // return empty vnode in case the render function errored out\n\n\n    if (!(vnode instanceof VNode)) {\n      if ( true && Array.isArray(vnode)) {\n        warn('Multiple root nodes returned from render function. Render function ' + 'should return a single root node.', vm);\n      }\n\n      vnode = createEmptyVNode();\n    } // set parent\n\n\n    vnode.parent = _parentVnode;\n    return vnode;\n  };\n}\n/*  */\n\n\nfunction ensureCtor(comp, base) {\n  if (comp.__esModule || hasSymbol && comp[Symbol.toStringTag] === 'Module') {\n    comp = comp.default;\n  }\n\n  return isObject(comp) ? base.extend(comp) : comp;\n}\n\nfunction createAsyncPlaceholder(factory, data, context, children, tag) {\n  var node = createEmptyVNode();\n  node.asyncFactory = factory;\n  node.asyncMeta = {\n    data: data,\n    context: context,\n    children: children,\n    tag: tag\n  };\n  return node;\n}\n\nfunction resolveAsyncComponent(factory, baseCtor) {\n  if (isTrue(factory.error) && isDef(factory.errorComp)) {\n    return factory.errorComp;\n  }\n\n  if (isDef(factory.resolved)) {\n    return factory.resolved;\n  }\n\n  var owner = currentRenderingInstance;\n\n  if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n    // already pending\n    factory.owners.push(owner);\n  }\n\n  if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n    return factory.loadingComp;\n  }\n\n  if (owner && !isDef(factory.owners)) {\n    var owners = factory.owners = [owner];\n    var sync = true;\n    var timerLoading = null;\n    var timerTimeout = null;\n    owner.$on('hook:destroyed', function () {\n      return remove(owners, owner);\n    });\n\n    var forceRender = function (renderCompleted) {\n      for (var i = 0, l = owners.length; i < l; i++) {\n        owners[i].$forceUpdate();\n      }\n\n      if (renderCompleted) {\n        owners.length = 0;\n\n        if (timerLoading !== null) {\n          clearTimeout(timerLoading);\n          timerLoading = null;\n        }\n\n        if (timerTimeout !== null) {\n          clearTimeout(timerTimeout);\n          timerTimeout = null;\n        }\n      }\n    };\n\n    var resolve = once(function (res) {\n      // cache resolved\n      factory.resolved = ensureCtor(res, baseCtor); // invoke callbacks only if this is not a synchronous resolve\n      // (async resolves are shimmed as synchronous during SSR)\n\n      if (!sync) {\n        forceRender(true);\n      } else {\n        owners.length = 0;\n      }\n    });\n    var reject = once(function (reason) {\n       true && warn(\"Failed to resolve async component: \" + String(factory) + (reason ? \"\\nReason: \" + reason : ''));\n\n      if (isDef(factory.errorComp)) {\n        factory.error = true;\n        forceRender(true);\n      }\n    });\n    var res = factory(resolve, reject);\n\n    if (isObject(res)) {\n      if (isPromise(res)) {\n        // () => Promise\n        if (isUndef(factory.resolved)) {\n          res.then(resolve, reject);\n        }\n      } else if (isPromise(res.component)) {\n        res.component.then(resolve, reject);\n\n        if (isDef(res.error)) {\n          factory.errorComp = ensureCtor(res.error, baseCtor);\n        }\n\n        if (isDef(res.loading)) {\n          factory.loadingComp = ensureCtor(res.loading, baseCtor);\n\n          if (res.delay === 0) {\n            factory.loading = true;\n          } else {\n            timerLoading = setTimeout(function () {\n              timerLoading = null;\n\n              if (isUndef(factory.resolved) && isUndef(factory.error)) {\n                factory.loading = true;\n                forceRender(false);\n              }\n            }, res.delay || 200);\n          }\n        }\n\n        if (isDef(res.timeout)) {\n          timerTimeout = setTimeout(function () {\n            timerTimeout = null;\n\n            if (isUndef(factory.resolved)) {\n              reject( true ? \"timeout (\" + res.timeout + \"ms)\" : undefined);\n            }\n          }, res.timeout);\n        }\n      }\n    }\n\n    sync = false; // return in case resolved synchronously\n\n    return factory.loading ? factory.loadingComp : factory.resolved;\n  }\n}\n/*  */\n\n\nfunction getFirstComponentChild(children) {\n  if (Array.isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      var c = children[i];\n\n      if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n        return c;\n      }\n    }\n  }\n}\n/*  */\n\n/*  */\n\n\nfunction initEvents(vm) {\n  vm._events = Object.create(null);\n  vm._hasHookEvent = false; // init parent attached events\n\n  var listeners = vm.$options._parentListeners;\n\n  if (listeners) {\n    updateComponentListeners(vm, listeners);\n  }\n}\n\nvar target;\n\nfunction add(event, fn) {\n  target.$on(event, fn);\n}\n\nfunction remove$1(event, fn) {\n  target.$off(event, fn);\n}\n\nfunction createOnceHandler(event, fn) {\n  var _target = target;\n  return function onceHandler() {\n    var res = fn.apply(null, arguments);\n\n    if (res !== null) {\n      _target.$off(event, onceHandler);\n    }\n  };\n}\n\nfunction updateComponentListeners(vm, listeners, oldListeners) {\n  target = vm;\n  updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n  target = undefined;\n}\n\nfunction eventsMixin(Vue) {\n  var hookRE = /^hook:/;\n\n  Vue.prototype.$on = function (event, fn) {\n    var vm = this;\n\n    if (Array.isArray(event)) {\n      for (var i = 0, l = event.length; i < l; i++) {\n        vm.$on(event[i], fn);\n      }\n    } else {\n      (vm._events[event] || (vm._events[event] = [])).push(fn); // optimize hook:event cost by using a boolean flag marked at registration\n      // instead of a hash lookup\n\n      if (hookRE.test(event)) {\n        vm._hasHookEvent = true;\n      }\n    }\n\n    return vm;\n  };\n\n  Vue.prototype.$once = function (event, fn) {\n    var vm = this;\n\n    function on() {\n      vm.$off(event, on);\n      fn.apply(vm, arguments);\n    }\n\n    on.fn = fn;\n    vm.$on(event, on);\n    return vm;\n  };\n\n  Vue.prototype.$off = function (event, fn) {\n    var vm = this; // all\n\n    if (!arguments.length) {\n      vm._events = Object.create(null);\n      return vm;\n    } // array of events\n\n\n    if (Array.isArray(event)) {\n      for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n        vm.$off(event[i$1], fn);\n      }\n\n      return vm;\n    } // specific event\n\n\n    var cbs = vm._events[event];\n\n    if (!cbs) {\n      return vm;\n    }\n\n    if (!fn) {\n      vm._events[event] = null;\n      return vm;\n    } // specific handler\n\n\n    var cb;\n    var i = cbs.length;\n\n    while (i--) {\n      cb = cbs[i];\n\n      if (cb === fn || cb.fn === fn) {\n        cbs.splice(i, 1);\n        break;\n      }\n    }\n\n    return vm;\n  };\n\n  Vue.prototype.$emit = function (event) {\n    var vm = this;\n\n    if (true) {\n      var lowerCaseEvent = event.toLowerCase();\n\n      if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n        tip(\"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" + formatComponentName(vm) + \" but the handler is registered for \\\"\" + event + \"\\\". \" + \"Note that HTML attributes are case-insensitive and you cannot use \" + \"v-on to listen to camelCase events when using in-DOM templates. \" + \"You should probably use \\\"\" + hyphenate(event) + \"\\\" instead of \\\"\" + event + \"\\\".\");\n      }\n    }\n\n    var cbs = vm._events[event];\n\n    if (cbs) {\n      cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n      var args = toArray(arguments, 1);\n      var info = \"event handler for \\\"\" + event + \"\\\"\";\n\n      for (var i = 0, l = cbs.length; i < l; i++) {\n        invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n      }\n    }\n\n    return vm;\n  };\n}\n/*  */\n\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n  var prevActiveInstance = activeInstance;\n  activeInstance = vm;\n  return function () {\n    activeInstance = prevActiveInstance;\n  };\n}\n\nfunction initLifecycle(vm) {\n  var options = vm.$options; // locate first non-abstract parent\n\n  var parent = options.parent;\n\n  if (parent && !options.abstract) {\n    while (parent.$options.abstract && parent.$parent) {\n      parent = parent.$parent;\n    }\n\n    parent.$children.push(vm);\n  }\n\n  vm.$parent = parent;\n  vm.$root = parent ? parent.$root : vm;\n  vm.$children = [];\n  vm.$refs = {};\n  vm._watcher = null;\n  vm._inactive = null;\n  vm._directInactive = false;\n  vm._isMounted = false;\n  vm._isDestroyed = false;\n  vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin(Vue) {\n  Vue.prototype._update = function (vnode, hydrating) {\n    var vm = this;\n    var prevEl = vm.$el;\n    var prevVnode = vm._vnode;\n    var restoreActiveInstance = setActiveInstance(vm);\n    vm._vnode = vnode; // Vue.prototype.__patch__ is injected in entry points\n    // based on the rendering backend used.\n\n    if (!prevVnode) {\n      // initial render\n      vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false\n      /* removeOnly */\n      );\n    } else {\n      // updates\n      vm.$el = vm.__patch__(prevVnode, vnode);\n    }\n\n    restoreActiveInstance(); // update __vue__ reference\n\n    if (prevEl) {\n      prevEl.__vue__ = null;\n    }\n\n    if (vm.$el) {\n      vm.$el.__vue__ = vm;\n    } // if parent is an HOC, update its $el as well\n\n\n    if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n      vm.$parent.$el = vm.$el;\n    } // updated hook is called by the scheduler to ensure that children are\n    // updated in a parent's updated hook.\n\n  };\n\n  Vue.prototype.$forceUpdate = function () {\n    var vm = this;\n\n    if (vm._watcher) {\n      vm._watcher.update();\n    }\n  };\n\n  Vue.prototype.$destroy = function () {\n    var vm = this;\n\n    if (vm._isBeingDestroyed) {\n      return;\n    }\n\n    callHook(vm, 'beforeDestroy');\n    vm._isBeingDestroyed = true; // remove self from parent\n\n    var parent = vm.$parent;\n\n    if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n      remove(parent.$children, vm);\n    } // teardown watchers\n\n\n    if (vm._watcher) {\n      vm._watcher.teardown();\n    }\n\n    var i = vm._watchers.length;\n\n    while (i--) {\n      vm._watchers[i].teardown();\n    } // remove reference from data ob\n    // frozen object may not have observer.\n\n\n    if (vm._data.__ob__) {\n      vm._data.__ob__.vmCount--;\n    } // call the last hook...\n\n\n    vm._isDestroyed = true; // invoke destroy hooks on current rendered tree\n\n    vm.__patch__(vm._vnode, null); // fire destroyed hook\n\n\n    callHook(vm, 'destroyed'); // turn off all instance listeners.\n\n    vm.$off(); // remove __vue__ reference\n\n    if (vm.$el) {\n      vm.$el.__vue__ = null;\n    } // release circular reference (#6759)\n\n\n    if (vm.$vnode) {\n      vm.$vnode.parent = null;\n    }\n  };\n}\n\nfunction mountComponent(vm, el, hydrating) {\n  vm.$el = el;\n\n  if (!vm.$options.render) {\n    vm.$options.render = createEmptyVNode;\n\n    if (true) {\n      /* istanbul ignore if */\n      if (vm.$options.template && vm.$options.template.charAt(0) !== '#' || vm.$options.el || el) {\n        warn('You are using the runtime-only build of Vue where the template ' + 'compiler is not available. Either pre-compile the templates into ' + 'render functions, or use the compiler-included build.', vm);\n      } else {\n        warn('Failed to mount component: template or render function not defined.', vm);\n      }\n    }\n  }\n\n  callHook(vm, 'beforeMount');\n  var updateComponent;\n  /* istanbul ignore if */\n\n  if ( true && config.performance && mark) {\n    updateComponent = function () {\n      var name = vm._name;\n      var id = vm._uid;\n      var startTag = \"vue-perf-start:\" + id;\n      var endTag = \"vue-perf-end:\" + id;\n      mark(startTag);\n\n      var vnode = vm._render();\n\n      mark(endTag);\n      measure(\"vue \" + name + \" render\", startTag, endTag);\n      mark(startTag);\n\n      vm._update(vnode, hydrating);\n\n      mark(endTag);\n      measure(\"vue \" + name + \" patch\", startTag, endTag);\n    };\n  } else {\n    updateComponent = function () {\n      vm._update(vm._render(), hydrating);\n    };\n  } // we set this to vm._watcher inside the watcher's constructor\n  // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n  // component's mounted hook), which relies on vm._watcher being already defined\n\n\n  new Watcher(vm, updateComponent, noop, {\n    before: function before() {\n      if (vm._isMounted && !vm._isDestroyed) {\n        callHook(vm, 'beforeUpdate');\n      }\n    }\n  }, true\n  /* isRenderWatcher */\n  );\n  hydrating = false; // manually mounted instance, call mounted on self\n  // mounted is called for render-created child components in its inserted hook\n\n  if (vm.$vnode == null) {\n    vm._isMounted = true;\n    callHook(vm, 'mounted');\n  }\n\n  return vm;\n}\n\nfunction updateChildComponent(vm, propsData, listeners, parentVnode, renderChildren) {\n  if (true) {\n    isUpdatingChildComponent = true;\n  } // determine whether component has slot children\n  // we need to do this before overwriting $options._renderChildren.\n  // check if there are dynamic scopedSlots (hand-written or compiled but with\n  // dynamic slot names). Static scoped slots compiled from template has the\n  // \"$stable\" marker.\n\n\n  var newScopedSlots = parentVnode.data.scopedSlots;\n  var oldScopedSlots = vm.$scopedSlots;\n  var hasDynamicScopedSlot = !!(newScopedSlots && !newScopedSlots.$stable || oldScopedSlots !== emptyObject && !oldScopedSlots.$stable || newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key || !newScopedSlots && vm.$scopedSlots.$key); // Any static slot children from the parent may have changed during parent's\n  // update. Dynamic scoped slots may also have changed. In such cases, a forced\n  // update is necessary to ensure correctness.\n\n  var needsForceUpdate = !!(renderChildren || // has new static slots\n  vm.$options._renderChildren || // has old static slots\n  hasDynamicScopedSlot);\n  vm.$options._parentVnode = parentVnode;\n  vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n  if (vm._vnode) {\n    // update child tree's parent\n    vm._vnode.parent = parentVnode;\n  }\n\n  vm.$options._renderChildren = renderChildren; // update $attrs and $listeners hash\n  // these are also reactive so they may trigger child update if the child\n  // used them during render\n\n  vm.$attrs = parentVnode.data.attrs || emptyObject;\n  vm.$listeners = listeners || emptyObject; // update props\n\n  if (propsData && vm.$options.props) {\n    toggleObserving(false);\n    var props = vm._props;\n    var propKeys = vm.$options._propKeys || [];\n\n    for (var i = 0; i < propKeys.length; i++) {\n      var key = propKeys[i];\n      var propOptions = vm.$options.props; // wtf flow?\n\n      props[key] = validateProp(key, propOptions, propsData, vm);\n    }\n\n    toggleObserving(true); // keep a copy of raw propsData\n\n    vm.$options.propsData = propsData;\n  } // update listeners\n\n\n  listeners = listeners || emptyObject;\n  var oldListeners = vm.$options._parentListeners;\n  vm.$options._parentListeners = listeners;\n  updateComponentListeners(vm, listeners, oldListeners); // resolve slots + force update if has children\n\n  if (needsForceUpdate) {\n    vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n    vm.$forceUpdate();\n  }\n\n  if (true) {\n    isUpdatingChildComponent = false;\n  }\n}\n\nfunction isInInactiveTree(vm) {\n  while (vm && (vm = vm.$parent)) {\n    if (vm._inactive) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nfunction activateChildComponent(vm, direct) {\n  if (direct) {\n    vm._directInactive = false;\n\n    if (isInInactiveTree(vm)) {\n      return;\n    }\n  } else if (vm._directInactive) {\n    return;\n  }\n\n  if (vm._inactive || vm._inactive === null) {\n    vm._inactive = false;\n\n    for (var i = 0; i < vm.$children.length; i++) {\n      activateChildComponent(vm.$children[i]);\n    }\n\n    callHook(vm, 'activated');\n  }\n}\n\nfunction deactivateChildComponent(vm, direct) {\n  if (direct) {\n    vm._directInactive = true;\n\n    if (isInInactiveTree(vm)) {\n      return;\n    }\n  }\n\n  if (!vm._inactive) {\n    vm._inactive = true;\n\n    for (var i = 0; i < vm.$children.length; i++) {\n      deactivateChildComponent(vm.$children[i]);\n    }\n\n    callHook(vm, 'deactivated');\n  }\n}\n\nfunction callHook(vm, hook) {\n  // #7573 disable dep collection when invoking lifecycle hooks\n  pushTarget();\n  var handlers = vm.$options[hook];\n  var info = hook + \" hook\";\n\n  if (handlers) {\n    for (var i = 0, j = handlers.length; i < j; i++) {\n      invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n    }\n  }\n\n  if (vm._hasHookEvent) {\n    vm.$emit('hook:' + hook);\n  }\n\n  popTarget();\n}\n/*  */\n\n\nvar MAX_UPDATE_COUNT = 100;\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n/**\n * Reset the scheduler's state.\n */\n\nfunction resetSchedulerState() {\n  index = queue.length = activatedChildren.length = 0;\n  has = {};\n\n  if (true) {\n    circular = {};\n  }\n\n  waiting = flushing = false;\n} // Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\n\n\nvar currentFlushTimestamp = 0; // Async edge case fix requires storing an event listener's attach timestamp.\n\nvar getNow = Date.now; // Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\n\nif (inBrowser && !isIE) {\n  var performance = window.performance;\n\n  if (performance && typeof performance.now === 'function' && getNow() > document.createEvent('Event').timeStamp) {\n    // if the event timestamp, although evaluated AFTER the Date.now(), is\n    // smaller than it, it means the event is using a hi-res timestamp,\n    // and we need to use the hi-res version for event listener timestamps as\n    // well.\n    getNow = function () {\n      return performance.now();\n    };\n  }\n}\n/**\n * Flush both queues and run the watchers.\n */\n\n\nfunction flushSchedulerQueue() {\n  currentFlushTimestamp = getNow();\n  flushing = true;\n  var watcher, id; // Sort queue before flush.\n  // This ensures that:\n  // 1. Components are updated from parent to child. (because parent is always\n  //    created before the child)\n  // 2. A component's user watchers are run before its render watcher (because\n  //    user watchers are created before the render watcher)\n  // 3. If a component is destroyed during a parent component's watcher run,\n  //    its watchers can be skipped.\n\n  queue.sort(function (a, b) {\n    return a.id - b.id;\n  }); // do not cache length because more watchers might be pushed\n  // as we run existing watchers\n\n  for (index = 0; index < queue.length; index++) {\n    watcher = queue[index];\n\n    if (watcher.before) {\n      watcher.before();\n    }\n\n    id = watcher.id;\n    has[id] = null;\n    watcher.run(); // in dev build, check and stop circular updates.\n\n    if ( true && has[id] != null) {\n      circular[id] = (circular[id] || 0) + 1;\n\n      if (circular[id] > MAX_UPDATE_COUNT) {\n        warn('You may have an infinite update loop ' + (watcher.user ? \"in watcher with expression \\\"\" + watcher.expression + \"\\\"\" : \"in a component render function.\"), watcher.vm);\n        break;\n      }\n    }\n  } // keep copies of post queues before resetting state\n\n\n  var activatedQueue = activatedChildren.slice();\n  var updatedQueue = queue.slice();\n  resetSchedulerState(); // call component updated and activated hooks\n\n  callActivatedHooks(activatedQueue);\n  callUpdatedHooks(updatedQueue); // devtool hook\n\n  /* istanbul ignore if */\n\n  if (devtools && config.devtools) {\n    devtools.emit('flush');\n  }\n}\n\nfunction callUpdatedHooks(queue) {\n  var i = queue.length;\n\n  while (i--) {\n    var watcher = queue[i];\n    var vm = watcher.vm;\n\n    if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n      callHook(vm, 'updated');\n    }\n  }\n}\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\n\n\nfunction queueActivatedComponent(vm) {\n  // setting _inactive to false here so that a render function can\n  // rely on checking whether it's in an inactive tree (e.g. router-view)\n  vm._inactive = false;\n  activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks(queue) {\n  for (var i = 0; i < queue.length; i++) {\n    queue[i]._inactive = true;\n    activateChildComponent(queue[i], true\n    /* true */\n    );\n  }\n}\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\n\n\nfunction queueWatcher(watcher) {\n  var id = watcher.id;\n\n  if (has[id] == null) {\n    has[id] = true;\n\n    if (!flushing) {\n      queue.push(watcher);\n    } else {\n      // if already flushing, splice the watcher based on its id\n      // if already past its id, it will be run next immediately.\n      var i = queue.length - 1;\n\n      while (i > index && queue[i].id > watcher.id) {\n        i--;\n      }\n\n      queue.splice(i + 1, 0, watcher);\n    } // queue the flush\n\n\n    if (!waiting) {\n      waiting = true;\n\n      if ( true && !config.async) {\n        flushSchedulerQueue();\n        return;\n      }\n\n      nextTick(flushSchedulerQueue);\n    }\n  }\n}\n/*  */\n\n\nvar uid$2 = 0;\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\n\nvar Watcher = function Watcher(vm, expOrFn, cb, options, isRenderWatcher) {\n  this.vm = vm;\n\n  if (isRenderWatcher) {\n    vm._watcher = this;\n  }\n\n  vm._watchers.push(this); // options\n\n\n  if (options) {\n    this.deep = !!options.deep;\n    this.user = !!options.user;\n    this.lazy = !!options.lazy;\n    this.sync = !!options.sync;\n    this.before = options.before;\n  } else {\n    this.deep = this.user = this.lazy = this.sync = false;\n  }\n\n  this.cb = cb;\n  this.id = ++uid$2; // uid for batching\n\n  this.active = true;\n  this.dirty = this.lazy; // for lazy watchers\n\n  this.deps = [];\n  this.newDeps = [];\n  this.depIds = new _Set();\n  this.newDepIds = new _Set();\n  this.expression =  true ? expOrFn.toString() : undefined; // parse expression for getter\n\n  if (typeof expOrFn === 'function') {\n    this.getter = expOrFn;\n  } else {\n    this.getter = parsePath(expOrFn);\n\n    if (!this.getter) {\n      this.getter = noop;\n       true && warn(\"Failed watching path: \\\"\" + expOrFn + \"\\\" \" + 'Watcher only accepts simple dot-delimited paths. ' + 'For full control, use a function instead.', vm);\n    }\n  }\n\n  this.value = this.lazy ? undefined : this.get();\n};\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\n\n\nWatcher.prototype.get = function get() {\n  pushTarget(this);\n  var value;\n  var vm = this.vm;\n\n  try {\n    value = this.getter.call(vm, vm);\n  } catch (e) {\n    if (this.user) {\n      handleError(e, vm, \"getter for watcher \\\"\" + this.expression + \"\\\"\");\n    } else {\n      throw e;\n    }\n  } finally {\n    // \"touch\" every property so they are all tracked as\n    // dependencies for deep watching\n    if (this.deep) {\n      traverse(value);\n    }\n\n    popTarget();\n    this.cleanupDeps();\n  }\n\n  return value;\n};\n/**\n * Add a dependency to this directive.\n */\n\n\nWatcher.prototype.addDep = function addDep(dep) {\n  var id = dep.id;\n\n  if (!this.newDepIds.has(id)) {\n    this.newDepIds.add(id);\n    this.newDeps.push(dep);\n\n    if (!this.depIds.has(id)) {\n      dep.addSub(this);\n    }\n  }\n};\n/**\n * Clean up for dependency collection.\n */\n\n\nWatcher.prototype.cleanupDeps = function cleanupDeps() {\n  var i = this.deps.length;\n\n  while (i--) {\n    var dep = this.deps[i];\n\n    if (!this.newDepIds.has(dep.id)) {\n      dep.removeSub(this);\n    }\n  }\n\n  var tmp = this.depIds;\n  this.depIds = this.newDepIds;\n  this.newDepIds = tmp;\n  this.newDepIds.clear();\n  tmp = this.deps;\n  this.deps = this.newDeps;\n  this.newDeps = tmp;\n  this.newDeps.length = 0;\n};\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\n\n\nWatcher.prototype.update = function update() {\n  /* istanbul ignore else */\n  if (this.lazy) {\n    this.dirty = true;\n  } else if (this.sync) {\n    this.run();\n  } else {\n    queueWatcher(this);\n  }\n};\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\n\n\nWatcher.prototype.run = function run() {\n  if (this.active) {\n    var value = this.get();\n\n    if (value !== this.value || // Deep watchers and watchers on Object/Arrays should fire even\n    // when the value is the same, because the value may\n    // have mutated.\n    isObject(value) || this.deep) {\n      // set new value\n      var oldValue = this.value;\n      this.value = value;\n\n      if (this.user) {\n        var info = \"callback for watcher \\\"\" + this.expression + \"\\\"\";\n        invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);\n      } else {\n        this.cb.call(this.vm, value, oldValue);\n      }\n    }\n  }\n};\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\n\n\nWatcher.prototype.evaluate = function evaluate() {\n  this.value = this.get();\n  this.dirty = false;\n};\n/**\n * Depend on all deps collected by this watcher.\n */\n\n\nWatcher.prototype.depend = function depend() {\n  var i = this.deps.length;\n\n  while (i--) {\n    this.deps[i].depend();\n  }\n};\n/**\n * Remove self from all dependencies' subscriber list.\n */\n\n\nWatcher.prototype.teardown = function teardown() {\n  if (this.active) {\n    // remove self from vm's watcher list\n    // this is a somewhat expensive operation so we skip it\n    // if the vm is being destroyed.\n    if (!this.vm._isBeingDestroyed) {\n      remove(this.vm._watchers, this);\n    }\n\n    var i = this.deps.length;\n\n    while (i--) {\n      this.deps[i].removeSub(this);\n    }\n\n    this.active = false;\n  }\n};\n/*  */\n\n\nvar sharedPropertyDefinition = {\n  enumerable: true,\n  configurable: true,\n  get: noop,\n  set: noop\n};\n\nfunction proxy(target, sourceKey, key) {\n  sharedPropertyDefinition.get = function proxyGetter() {\n    return this[sourceKey][key];\n  };\n\n  sharedPropertyDefinition.set = function proxySetter(val) {\n    this[sourceKey][key] = val;\n  };\n\n  Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState(vm) {\n  vm._watchers = [];\n  var opts = vm.$options;\n\n  if (opts.props) {\n    initProps(vm, opts.props);\n  }\n\n  if (opts.methods) {\n    initMethods(vm, opts.methods);\n  }\n\n  if (opts.data) {\n    initData(vm);\n  } else {\n    observe(vm._data = {}, true\n    /* asRootData */\n    );\n  }\n\n  if (opts.computed) {\n    initComputed(vm, opts.computed);\n  }\n\n  if (opts.watch && opts.watch !== nativeWatch) {\n    initWatch(vm, opts.watch);\n  }\n}\n\nfunction initProps(vm, propsOptions) {\n  var propsData = vm.$options.propsData || {};\n  var props = vm._props = {}; // cache prop keys so that future props updates can iterate using Array\n  // instead of dynamic object key enumeration.\n\n  var keys = vm.$options._propKeys = [];\n  var isRoot = !vm.$parent; // root instance props should be converted\n\n  if (!isRoot) {\n    toggleObserving(false);\n  }\n\n  var loop = function (key) {\n    keys.push(key);\n    var value = validateProp(key, propsOptions, propsData, vm);\n    /* istanbul ignore else */\n\n    if (true) {\n      var hyphenatedKey = hyphenate(key);\n\n      if (isReservedAttribute(hyphenatedKey) || config.isReservedAttr(hyphenatedKey)) {\n        warn(\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\", vm);\n      }\n\n      defineReactive$$1(props, key, value, function () {\n        if (!isRoot && !isUpdatingChildComponent) {\n          warn(\"Avoid mutating a prop directly since the value will be \" + \"overwritten whenever the parent component re-renders. \" + \"Instead, use a data or computed property based on the prop's \" + \"value. Prop being mutated: \\\"\" + key + \"\\\"\", vm);\n        }\n      });\n    } else {} // static props are already proxied on the component's prototype\n    // during Vue.extend(). We only need to proxy props defined at\n    // instantiation here.\n\n\n    if (!(key in vm)) {\n      proxy(vm, \"_props\", key);\n    }\n  };\n\n  for (var key in propsOptions) loop(key);\n\n  toggleObserving(true);\n}\n\nfunction initData(vm) {\n  var data = vm.$options.data;\n  data = vm._data = typeof data === 'function' ? getData(data, vm) : data || {};\n\n  if (!isPlainObject(data)) {\n    data = {};\n     true && warn('data functions should return an object:\\n' + 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function', vm);\n  } // proxy data on instance\n\n\n  var keys = Object.keys(data);\n  var props = vm.$options.props;\n  var methods = vm.$options.methods;\n  var i = keys.length;\n\n  while (i--) {\n    var key = keys[i];\n\n    if (true) {\n      if (methods && hasOwn(methods, key)) {\n        warn(\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\", vm);\n      }\n    }\n\n    if (props && hasOwn(props, key)) {\n       true && warn(\"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" + \"Use prop default value instead.\", vm);\n    } else if (!isReserved(key)) {\n      proxy(vm, \"_data\", key);\n    }\n  } // observe data\n\n\n  observe(data, true\n  /* asRootData */\n  );\n}\n\nfunction getData(data, vm) {\n  // #7573 disable dep collection when invoking data getters\n  pushTarget();\n\n  try {\n    return data.call(vm, vm);\n  } catch (e) {\n    handleError(e, vm, \"data()\");\n    return {};\n  } finally {\n    popTarget();\n  }\n}\n\nvar computedWatcherOptions = {\n  lazy: true\n};\n\nfunction initComputed(vm, computed) {\n  // $flow-disable-line\n  var watchers = vm._computedWatchers = Object.create(null); // computed properties are just getters during SSR\n\n  var isSSR = isServerRendering();\n\n  for (var key in computed) {\n    var userDef = computed[key];\n    var getter = typeof userDef === 'function' ? userDef : userDef.get;\n\n    if ( true && getter == null) {\n      warn(\"Getter is missing for computed property \\\"\" + key + \"\\\".\", vm);\n    }\n\n    if (!isSSR) {\n      // create internal watcher for the computed property.\n      watchers[key] = new Watcher(vm, getter || noop, noop, computedWatcherOptions);\n    } // component-defined computed properties are already defined on the\n    // component prototype. We only need to define computed properties defined\n    // at instantiation here.\n\n\n    if (!(key in vm)) {\n      defineComputed(vm, key, userDef);\n    } else if (true) {\n      if (key in vm.$data) {\n        warn(\"The computed property \\\"\" + key + \"\\\" is already defined in data.\", vm);\n      } else if (vm.$options.props && key in vm.$options.props) {\n        warn(\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\", vm);\n      } else if (vm.$options.methods && key in vm.$options.methods) {\n        warn(\"The computed property \\\"\" + key + \"\\\" is already defined as a method.\", vm);\n      }\n    }\n  }\n}\n\nfunction defineComputed(target, key, userDef) {\n  var shouldCache = !isServerRendering();\n\n  if (typeof userDef === 'function') {\n    sharedPropertyDefinition.get = shouldCache ? createComputedGetter(key) : createGetterInvoker(userDef);\n    sharedPropertyDefinition.set = noop;\n  } else {\n    sharedPropertyDefinition.get = userDef.get ? shouldCache && userDef.cache !== false ? createComputedGetter(key) : createGetterInvoker(userDef.get) : noop;\n    sharedPropertyDefinition.set = userDef.set || noop;\n  }\n\n  if ( true && sharedPropertyDefinition.set === noop) {\n    sharedPropertyDefinition.set = function () {\n      warn(\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\", this);\n    };\n  }\n\n  Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter(key) {\n  return function computedGetter() {\n    var watcher = this._computedWatchers && this._computedWatchers[key];\n\n    if (watcher) {\n      if (watcher.dirty) {\n        watcher.evaluate();\n      }\n\n      if (Dep.target) {\n        watcher.depend();\n      }\n\n      return watcher.value;\n    }\n  };\n}\n\nfunction createGetterInvoker(fn) {\n  return function computedGetter() {\n    return fn.call(this, this);\n  };\n}\n\nfunction initMethods(vm, methods) {\n  var props = vm.$options.props;\n\n  for (var key in methods) {\n    if (true) {\n      if (typeof methods[key] !== 'function') {\n        warn(\"Method \\\"\" + key + \"\\\" has type \\\"\" + typeof methods[key] + \"\\\" in the component definition. \" + \"Did you reference the function correctly?\", vm);\n      }\n\n      if (props && hasOwn(props, key)) {\n        warn(\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\", vm);\n      }\n\n      if (key in vm && isReserved(key)) {\n        warn(\"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" + \"Avoid defining component methods that start with _ or $.\");\n      }\n    }\n\n    vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n  }\n}\n\nfunction initWatch(vm, watch) {\n  for (var key in watch) {\n    var handler = watch[key];\n\n    if (Array.isArray(handler)) {\n      for (var i = 0; i < handler.length; i++) {\n        createWatcher(vm, key, handler[i]);\n      }\n    } else {\n      createWatcher(vm, key, handler);\n    }\n  }\n}\n\nfunction createWatcher(vm, expOrFn, handler, options) {\n  if (isPlainObject(handler)) {\n    options = handler;\n    handler = handler.handler;\n  }\n\n  if (typeof handler === 'string') {\n    handler = vm[handler];\n  }\n\n  return vm.$watch(expOrFn, handler, options);\n}\n\nfunction stateMixin(Vue) {\n  // flow somehow has problems with directly declared definition object\n  // when using Object.defineProperty, so we have to procedurally build up\n  // the object here.\n  var dataDef = {};\n\n  dataDef.get = function () {\n    return this._data;\n  };\n\n  var propsDef = {};\n\n  propsDef.get = function () {\n    return this._props;\n  };\n\n  if (true) {\n    dataDef.set = function () {\n      warn('Avoid replacing instance root $data. ' + 'Use nested data properties instead.', this);\n    };\n\n    propsDef.set = function () {\n      warn(\"$props is readonly.\", this);\n    };\n  }\n\n  Object.defineProperty(Vue.prototype, '$data', dataDef);\n  Object.defineProperty(Vue.prototype, '$props', propsDef);\n  Vue.prototype.$set = set;\n  Vue.prototype.$delete = del;\n\n  Vue.prototype.$watch = function (expOrFn, cb, options) {\n    var vm = this;\n\n    if (isPlainObject(cb)) {\n      return createWatcher(vm, expOrFn, cb, options);\n    }\n\n    options = options || {};\n    options.user = true;\n    var watcher = new Watcher(vm, expOrFn, cb, options);\n\n    if (options.immediate) {\n      var info = \"callback for immediate watcher \\\"\" + watcher.expression + \"\\\"\";\n      pushTarget();\n      invokeWithErrorHandling(cb, vm, [watcher.value], vm, info);\n      popTarget();\n    }\n\n    return function unwatchFn() {\n      watcher.teardown();\n    };\n  };\n}\n/*  */\n\n\nvar uid$3 = 0;\n\nfunction initMixin(Vue) {\n  Vue.prototype._init = function (options) {\n    var vm = this; // a uid\n\n    vm._uid = uid$3++;\n    var startTag, endTag;\n    /* istanbul ignore if */\n\n    if ( true && config.performance && mark) {\n      startTag = \"vue-perf-start:\" + vm._uid;\n      endTag = \"vue-perf-end:\" + vm._uid;\n      mark(startTag);\n    } // a flag to avoid this being observed\n\n\n    vm._isVue = true; // merge options\n\n    if (options && options._isComponent) {\n      // optimize internal component instantiation\n      // since dynamic options merging is pretty slow, and none of the\n      // internal component options needs special treatment.\n      initInternalComponent(vm, options);\n    } else {\n      vm.$options = mergeOptions(resolveConstructorOptions(vm.constructor), options || {}, vm);\n    }\n    /* istanbul ignore else */\n\n\n    if (true) {\n      initProxy(vm);\n    } else {} // expose real self\n\n\n    vm._self = vm;\n    initLifecycle(vm);\n    initEvents(vm);\n    initRender(vm);\n    callHook(vm, 'beforeCreate');\n    initInjections(vm); // resolve injections before data/props\n\n    initState(vm);\n    initProvide(vm); // resolve provide after data/props\n\n    callHook(vm, 'created');\n    /* istanbul ignore if */\n\n    if ( true && config.performance && mark) {\n      vm._name = formatComponentName(vm, false);\n      mark(endTag);\n      measure(\"vue \" + vm._name + \" init\", startTag, endTag);\n    }\n\n    if (vm.$options.el) {\n      vm.$mount(vm.$options.el);\n    }\n  };\n}\n\nfunction initInternalComponent(vm, options) {\n  var opts = vm.$options = Object.create(vm.constructor.options); // doing this because it's faster than dynamic enumeration.\n\n  var parentVnode = options._parentVnode;\n  opts.parent = options.parent;\n  opts._parentVnode = parentVnode;\n  var vnodeComponentOptions = parentVnode.componentOptions;\n  opts.propsData = vnodeComponentOptions.propsData;\n  opts._parentListeners = vnodeComponentOptions.listeners;\n  opts._renderChildren = vnodeComponentOptions.children;\n  opts._componentTag = vnodeComponentOptions.tag;\n\n  if (options.render) {\n    opts.render = options.render;\n    opts.staticRenderFns = options.staticRenderFns;\n  }\n}\n\nfunction resolveConstructorOptions(Ctor) {\n  var options = Ctor.options;\n\n  if (Ctor.super) {\n    var superOptions = resolveConstructorOptions(Ctor.super);\n    var cachedSuperOptions = Ctor.superOptions;\n\n    if (superOptions !== cachedSuperOptions) {\n      // super option changed,\n      // need to resolve new options.\n      Ctor.superOptions = superOptions; // check if there are any late-modified/attached options (#4976)\n\n      var modifiedOptions = resolveModifiedOptions(Ctor); // update base extend options\n\n      if (modifiedOptions) {\n        extend(Ctor.extendOptions, modifiedOptions);\n      }\n\n      options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n\n      if (options.name) {\n        options.components[options.name] = Ctor;\n      }\n    }\n  }\n\n  return options;\n}\n\nfunction resolveModifiedOptions(Ctor) {\n  var modified;\n  var latest = Ctor.options;\n  var sealed = Ctor.sealedOptions;\n\n  for (var key in latest) {\n    if (latest[key] !== sealed[key]) {\n      if (!modified) {\n        modified = {};\n      }\n\n      modified[key] = latest[key];\n    }\n  }\n\n  return modified;\n}\n\nfunction Vue(options) {\n  if ( true && !(this instanceof Vue)) {\n    warn('Vue is a constructor and should be called with the `new` keyword');\n  }\n\n  this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n/*  */\n\nfunction initUse(Vue) {\n  Vue.use = function (plugin) {\n    var installedPlugins = this._installedPlugins || (this._installedPlugins = []);\n\n    if (installedPlugins.indexOf(plugin) > -1) {\n      return this;\n    } // additional parameters\n\n\n    var args = toArray(arguments, 1);\n    args.unshift(this);\n\n    if (typeof plugin.install === 'function') {\n      plugin.install.apply(plugin, args);\n    } else if (typeof plugin === 'function') {\n      plugin.apply(null, args);\n    }\n\n    installedPlugins.push(plugin);\n    return this;\n  };\n}\n/*  */\n\n\nfunction initMixin$1(Vue) {\n  Vue.mixin = function (mixin) {\n    this.options = mergeOptions(this.options, mixin);\n    return this;\n  };\n}\n/*  */\n\n\nfunction initExtend(Vue) {\n  /**\n   * Each instance constructor, including Vue, has a unique\n   * cid. This enables us to create wrapped \"child\n   * constructors\" for prototypal inheritance and cache them.\n   */\n  Vue.cid = 0;\n  var cid = 1;\n  /**\n   * Class inheritance\n   */\n\n  Vue.extend = function (extendOptions) {\n    extendOptions = extendOptions || {};\n    var Super = this;\n    var SuperId = Super.cid;\n    var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n\n    if (cachedCtors[SuperId]) {\n      return cachedCtors[SuperId];\n    }\n\n    var name = extendOptions.name || Super.options.name;\n\n    if ( true && name) {\n      validateComponentName(name);\n    }\n\n    var Sub = function VueComponent(options) {\n      this._init(options);\n    };\n\n    Sub.prototype = Object.create(Super.prototype);\n    Sub.prototype.constructor = Sub;\n    Sub.cid = cid++;\n    Sub.options = mergeOptions(Super.options, extendOptions);\n    Sub['super'] = Super; // For props and computed properties, we define the proxy getters on\n    // the Vue instances at extension time, on the extended prototype. This\n    // avoids Object.defineProperty calls for each instance created.\n\n    if (Sub.options.props) {\n      initProps$1(Sub);\n    }\n\n    if (Sub.options.computed) {\n      initComputed$1(Sub);\n    } // allow further extension/mixin/plugin usage\n\n\n    Sub.extend = Super.extend;\n    Sub.mixin = Super.mixin;\n    Sub.use = Super.use; // create asset registers, so extended classes\n    // can have their private assets too.\n\n    ASSET_TYPES.forEach(function (type) {\n      Sub[type] = Super[type];\n    }); // enable recursive self-lookup\n\n    if (name) {\n      Sub.options.components[name] = Sub;\n    } // keep a reference to the super options at extension time.\n    // later at instantiation we can check if Super's options have\n    // been updated.\n\n\n    Sub.superOptions = Super.options;\n    Sub.extendOptions = extendOptions;\n    Sub.sealedOptions = extend({}, Sub.options); // cache constructor\n\n    cachedCtors[SuperId] = Sub;\n    return Sub;\n  };\n}\n\nfunction initProps$1(Comp) {\n  var props = Comp.options.props;\n\n  for (var key in props) {\n    proxy(Comp.prototype, \"_props\", key);\n  }\n}\n\nfunction initComputed$1(Comp) {\n  var computed = Comp.options.computed;\n\n  for (var key in computed) {\n    defineComputed(Comp.prototype, key, computed[key]);\n  }\n}\n/*  */\n\n\nfunction initAssetRegisters(Vue) {\n  /**\n   * Create asset registration methods.\n   */\n  ASSET_TYPES.forEach(function (type) {\n    Vue[type] = function (id, definition) {\n      if (!definition) {\n        return this.options[type + 's'][id];\n      } else {\n        /* istanbul ignore if */\n        if ( true && type === 'component') {\n          validateComponentName(id);\n        }\n\n        if (type === 'component' && isPlainObject(definition)) {\n          definition.name = definition.name || id;\n          definition = this.options._base.extend(definition);\n        }\n\n        if (type === 'directive' && typeof definition === 'function') {\n          definition = {\n            bind: definition,\n            update: definition\n          };\n        }\n\n        this.options[type + 's'][id] = definition;\n        return definition;\n      }\n    };\n  });\n}\n/*  */\n\n\nfunction getComponentName(opts) {\n  return opts && (opts.Ctor.options.name || opts.tag);\n}\n\nfunction matches(pattern, name) {\n  if (Array.isArray(pattern)) {\n    return pattern.indexOf(name) > -1;\n  } else if (typeof pattern === 'string') {\n    return pattern.split(',').indexOf(name) > -1;\n  } else if (isRegExp(pattern)) {\n    return pattern.test(name);\n  }\n  /* istanbul ignore next */\n\n\n  return false;\n}\n\nfunction pruneCache(keepAliveInstance, filter) {\n  var cache = keepAliveInstance.cache;\n  var keys = keepAliveInstance.keys;\n  var _vnode = keepAliveInstance._vnode;\n\n  for (var key in cache) {\n    var entry = cache[key];\n\n    if (entry) {\n      var name = entry.name;\n\n      if (name && !filter(name)) {\n        pruneCacheEntry(cache, key, keys, _vnode);\n      }\n    }\n  }\n}\n\nfunction pruneCacheEntry(cache, key, keys, current) {\n  var entry = cache[key];\n\n  if (entry && (!current || entry.tag !== current.tag)) {\n    entry.componentInstance.$destroy();\n  }\n\n  cache[key] = null;\n  remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\nvar KeepAlive = {\n  name: 'keep-alive',\n  abstract: true,\n  props: {\n    include: patternTypes,\n    exclude: patternTypes,\n    max: [String, Number]\n  },\n  methods: {\n    cacheVNode: function cacheVNode() {\n      var ref = this;\n      var cache = ref.cache;\n      var keys = ref.keys;\n      var vnodeToCache = ref.vnodeToCache;\n      var keyToCache = ref.keyToCache;\n\n      if (vnodeToCache) {\n        var tag = vnodeToCache.tag;\n        var componentInstance = vnodeToCache.componentInstance;\n        var componentOptions = vnodeToCache.componentOptions;\n        cache[keyToCache] = {\n          name: getComponentName(componentOptions),\n          tag: tag,\n          componentInstance: componentInstance\n        };\n        keys.push(keyToCache); // prune oldest entry\n\n        if (this.max && keys.length > parseInt(this.max)) {\n          pruneCacheEntry(cache, keys[0], keys, this._vnode);\n        }\n\n        this.vnodeToCache = null;\n      }\n    }\n  },\n  created: function created() {\n    this.cache = Object.create(null);\n    this.keys = [];\n  },\n  destroyed: function destroyed() {\n    for (var key in this.cache) {\n      pruneCacheEntry(this.cache, key, this.keys);\n    }\n  },\n  mounted: function mounted() {\n    var this$1 = this;\n    this.cacheVNode();\n    this.$watch('include', function (val) {\n      pruneCache(this$1, function (name) {\n        return matches(val, name);\n      });\n    });\n    this.$watch('exclude', function (val) {\n      pruneCache(this$1, function (name) {\n        return !matches(val, name);\n      });\n    });\n  },\n  updated: function updated() {\n    this.cacheVNode();\n  },\n  render: function render() {\n    var slot = this.$slots.default;\n    var vnode = getFirstComponentChild(slot);\n    var componentOptions = vnode && vnode.componentOptions;\n\n    if (componentOptions) {\n      // check pattern\n      var name = getComponentName(componentOptions);\n      var ref = this;\n      var include = ref.include;\n      var exclude = ref.exclude;\n\n      if ( // not included\n      include && (!name || !matches(include, name)) || // excluded\n      exclude && name && matches(exclude, name)) {\n        return vnode;\n      }\n\n      var ref$1 = this;\n      var cache = ref$1.cache;\n      var keys = ref$1.keys;\n      var key = vnode.key == null // same constructor may get registered as different local components\n      // so cid alone is not enough (#3269)\n      ? componentOptions.Ctor.cid + (componentOptions.tag ? \"::\" + componentOptions.tag : '') : vnode.key;\n\n      if (cache[key]) {\n        vnode.componentInstance = cache[key].componentInstance; // make current key freshest\n\n        remove(keys, key);\n        keys.push(key);\n      } else {\n        // delay setting the cache until update\n        this.vnodeToCache = vnode;\n        this.keyToCache = key;\n      }\n\n      vnode.data.keepAlive = true;\n    }\n\n    return vnode || slot && slot[0];\n  }\n};\nvar builtInComponents = {\n  KeepAlive: KeepAlive\n};\n/*  */\n\nfunction initGlobalAPI(Vue) {\n  // config\n  var configDef = {};\n\n  configDef.get = function () {\n    return config;\n  };\n\n  if (true) {\n    configDef.set = function () {\n      warn('Do not replace the Vue.config object, set individual fields instead.');\n    };\n  }\n\n  Object.defineProperty(Vue, 'config', configDef); // exposed util methods.\n  // NOTE: these are not considered part of the public API - avoid relying on\n  // them unless you are aware of the risk.\n\n  Vue.util = {\n    warn: warn,\n    extend: extend,\n    mergeOptions: mergeOptions,\n    defineReactive: defineReactive$$1\n  };\n  Vue.set = set;\n  Vue.delete = del;\n  Vue.nextTick = nextTick; // 2.6 explicit observable API\n\n  Vue.observable = function (obj) {\n    observe(obj);\n    return obj;\n  };\n\n  Vue.options = Object.create(null);\n  ASSET_TYPES.forEach(function (type) {\n    Vue.options[type + 's'] = Object.create(null);\n  }); // this is used to identify the \"base\" constructor to extend all plain-object\n  // components with in Weex's multi-instance scenarios.\n\n  Vue.options._base = Vue;\n  extend(Vue.options.components, builtInComponents);\n  initUse(Vue);\n  initMixin$1(Vue);\n  initExtend(Vue);\n  initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\nObject.defineProperty(Vue.prototype, '$isServer', {\n  get: isServerRendering\n});\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n  get: function get() {\n    /* istanbul ignore next */\n    return this.$vnode && this.$vnode.ssrContext;\n  }\n}); // expose FunctionalRenderContext for ssr runtime helper installation\n\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n  value: FunctionalRenderContext\n});\nVue.version = '2.6.14';\n/*  */\n// these are reserved for web because they are directly compiled away\n// during template compilation\n\nvar isReservedAttr = makeMap('style,class'); // attributes that should be using props for binding\n\nvar acceptValue = makeMap('input,textarea,option,select,progress');\n\nvar mustUseProp = function (tag, type, attr) {\n  return attr === 'value' && acceptValue(tag) && type !== 'button' || attr === 'selected' && tag === 'option' || attr === 'checked' && tag === 'input' || attr === 'muted' && tag === 'video';\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\nvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n\nvar convertEnumeratedValue = function (key, value) {\n  return isFalsyAttrValue(value) || value === 'false' ? 'false' // allow arbitrary string value for contenteditable\n  : key === 'contenteditable' && isValidContentEditableValue(value) ? value : 'true';\n};\n\nvar isBooleanAttr = makeMap('allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' + 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' + 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' + 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' + 'required,reversed,scoped,seamless,selected,sortable,' + 'truespeed,typemustmatch,visible');\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n  return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink';\n};\n\nvar getXlinkProp = function (name) {\n  return isXlink(name) ? name.slice(6, name.length) : '';\n};\n\nvar isFalsyAttrValue = function (val) {\n  return val == null || val === false;\n};\n/*  */\n\n\nfunction genClassForVnode(vnode) {\n  var data = vnode.data;\n  var parentNode = vnode;\n  var childNode = vnode;\n\n  while (isDef(childNode.componentInstance)) {\n    childNode = childNode.componentInstance._vnode;\n\n    if (childNode && childNode.data) {\n      data = mergeClassData(childNode.data, data);\n    }\n  }\n\n  while (isDef(parentNode = parentNode.parent)) {\n    if (parentNode && parentNode.data) {\n      data = mergeClassData(data, parentNode.data);\n    }\n  }\n\n  return renderClass(data.staticClass, data.class);\n}\n\nfunction mergeClassData(child, parent) {\n  return {\n    staticClass: concat(child.staticClass, parent.staticClass),\n    class: isDef(child.class) ? [child.class, parent.class] : parent.class\n  };\n}\n\nfunction renderClass(staticClass, dynamicClass) {\n  if (isDef(staticClass) || isDef(dynamicClass)) {\n    return concat(staticClass, stringifyClass(dynamicClass));\n  }\n  /* istanbul ignore next */\n\n\n  return '';\n}\n\nfunction concat(a, b) {\n  return a ? b ? a + ' ' + b : a : b || '';\n}\n\nfunction stringifyClass(value) {\n  if (Array.isArray(value)) {\n    return stringifyArray(value);\n  }\n\n  if (isObject(value)) {\n    return stringifyObject(value);\n  }\n\n  if (typeof value === 'string') {\n    return value;\n  }\n  /* istanbul ignore next */\n\n\n  return '';\n}\n\nfunction stringifyArray(value) {\n  var res = '';\n  var stringified;\n\n  for (var i = 0, l = value.length; i < l; i++) {\n    if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n      if (res) {\n        res += ' ';\n      }\n\n      res += stringified;\n    }\n  }\n\n  return res;\n}\n\nfunction stringifyObject(value) {\n  var res = '';\n\n  for (var key in value) {\n    if (value[key]) {\n      if (res) {\n        res += ' ';\n      }\n\n      res += key;\n    }\n  }\n\n  return res;\n}\n/*  */\n\n\nvar namespaceMap = {\n  svg: 'http://www.w3.org/2000/svg',\n  math: 'http://www.w3.org/1998/Math/MathML'\n};\nvar isHTMLTag = makeMap('html,body,base,head,link,meta,style,title,' + 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' + 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' + 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' + 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' + 'embed,object,param,source,canvas,script,noscript,del,ins,' + 'caption,col,colgroup,table,thead,tbody,td,th,tr,' + 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' + 'output,progress,select,textarea,' + 'details,dialog,menu,menuitem,summary,' + 'content,element,shadow,template,blockquote,iframe,tfoot'); // this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\n\nvar isSVG = makeMap('svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' + 'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' + 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view', true);\n\nvar isPreTag = function (tag) {\n  return tag === 'pre';\n};\n\nvar isReservedTag = function (tag) {\n  return isHTMLTag(tag) || isSVG(tag);\n};\n\nfunction getTagNamespace(tag) {\n  if (isSVG(tag)) {\n    return 'svg';\n  } // basic support for MathML\n  // note it doesn't support other MathML elements being component roots\n\n\n  if (tag === 'math') {\n    return 'math';\n  }\n}\n\nvar unknownElementCache = Object.create(null);\n\nfunction isUnknownElement(tag) {\n  /* istanbul ignore if */\n  if (!inBrowser) {\n    return true;\n  }\n\n  if (isReservedTag(tag)) {\n    return false;\n  }\n\n  tag = tag.toLowerCase();\n  /* istanbul ignore if */\n\n  if (unknownElementCache[tag] != null) {\n    return unknownElementCache[tag];\n  }\n\n  var el = document.createElement(tag);\n\n  if (tag.indexOf('-') > -1) {\n    // http://stackoverflow.com/a/28210364/1070244\n    return unknownElementCache[tag] = el.constructor === window.HTMLUnknownElement || el.constructor === window.HTMLElement;\n  } else {\n    return unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString());\n  }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n/*  */\n\n/**\n * Query an element selector if it's not an element already.\n */\n\nfunction query(el) {\n  if (typeof el === 'string') {\n    var selected = document.querySelector(el);\n\n    if (!selected) {\n       true && warn('Cannot find element: ' + el);\n      return document.createElement('div');\n    }\n\n    return selected;\n  } else {\n    return el;\n  }\n}\n/*  */\n\n\nfunction createElement$1(tagName, vnode) {\n  var elm = document.createElement(tagName);\n\n  if (tagName !== 'select') {\n    return elm;\n  } // false or null will remove the attribute but undefined will not\n\n\n  if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n    elm.setAttribute('multiple', 'multiple');\n  }\n\n  return elm;\n}\n\nfunction createElementNS(namespace, tagName) {\n  return document.createElementNS(namespaceMap[namespace], tagName);\n}\n\nfunction createTextNode(text) {\n  return document.createTextNode(text);\n}\n\nfunction createComment(text) {\n  return document.createComment(text);\n}\n\nfunction insertBefore(parentNode, newNode, referenceNode) {\n  parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild(node, child) {\n  node.removeChild(child);\n}\n\nfunction appendChild(node, child) {\n  node.appendChild(child);\n}\n\nfunction parentNode(node) {\n  return node.parentNode;\n}\n\nfunction nextSibling(node) {\n  return node.nextSibling;\n}\n\nfunction tagName(node) {\n  return node.tagName;\n}\n\nfunction setTextContent(node, text) {\n  node.textContent = text;\n}\n\nfunction setStyleScope(node, scopeId) {\n  node.setAttribute(scopeId, '');\n}\n\nvar nodeOps = /*#__PURE__*/Object.freeze({\n  createElement: createElement$1,\n  createElementNS: createElementNS,\n  createTextNode: createTextNode,\n  createComment: createComment,\n  insertBefore: insertBefore,\n  removeChild: removeChild,\n  appendChild: appendChild,\n  parentNode: parentNode,\n  nextSibling: nextSibling,\n  tagName: tagName,\n  setTextContent: setTextContent,\n  setStyleScope: setStyleScope\n});\n/*  */\n\nvar ref = {\n  create: function create(_, vnode) {\n    registerRef(vnode);\n  },\n  update: function update(oldVnode, vnode) {\n    if (oldVnode.data.ref !== vnode.data.ref) {\n      registerRef(oldVnode, true);\n      registerRef(vnode);\n    }\n  },\n  destroy: function destroy(vnode) {\n    registerRef(vnode, true);\n  }\n};\n\nfunction registerRef(vnode, isRemoval) {\n  var key = vnode.data.ref;\n\n  if (!isDef(key)) {\n    return;\n  }\n\n  var vm = vnode.context;\n  var ref = vnode.componentInstance || vnode.elm;\n  var refs = vm.$refs;\n\n  if (isRemoval) {\n    if (Array.isArray(refs[key])) {\n      remove(refs[key], ref);\n    } else if (refs[key] === ref) {\n      refs[key] = undefined;\n    }\n  } else {\n    if (vnode.data.refInFor) {\n      if (!Array.isArray(refs[key])) {\n        refs[key] = [ref];\n      } else if (refs[key].indexOf(ref) < 0) {\n        // $flow-disable-line\n        refs[key].push(ref);\n      }\n    } else {\n      refs[key] = ref;\n    }\n  }\n}\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\n\nvar emptyNode = new VNode('', {}, []);\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode(a, b) {\n  return a.key === b.key && a.asyncFactory === b.asyncFactory && (a.tag === b.tag && a.isComment === b.isComment && isDef(a.data) === isDef(b.data) && sameInputType(a, b) || isTrue(a.isAsyncPlaceholder) && isUndef(b.asyncFactory.error));\n}\n\nfunction sameInputType(a, b) {\n  if (a.tag !== 'input') {\n    return true;\n  }\n\n  var i;\n  var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n  var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n  return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB);\n}\n\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\n  var i, key;\n  var map = {};\n\n  for (i = beginIdx; i <= endIdx; ++i) {\n    key = children[i].key;\n\n    if (isDef(key)) {\n      map[key] = i;\n    }\n  }\n\n  return map;\n}\n\nfunction createPatchFunction(backend) {\n  var i, j;\n  var cbs = {};\n  var modules = backend.modules;\n  var nodeOps = backend.nodeOps;\n\n  for (i = 0; i < hooks.length; ++i) {\n    cbs[hooks[i]] = [];\n\n    for (j = 0; j < modules.length; ++j) {\n      if (isDef(modules[j][hooks[i]])) {\n        cbs[hooks[i]].push(modules[j][hooks[i]]);\n      }\n    }\n  }\n\n  function emptyNodeAt(elm) {\n    return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm);\n  }\n\n  function createRmCb(childElm, listeners) {\n    function remove$$1() {\n      if (--remove$$1.listeners === 0) {\n        removeNode(childElm);\n      }\n    }\n\n    remove$$1.listeners = listeners;\n    return remove$$1;\n  }\n\n  function removeNode(el) {\n    var parent = nodeOps.parentNode(el); // element may have already been removed due to v-html / v-text\n\n    if (isDef(parent)) {\n      nodeOps.removeChild(parent, el);\n    }\n  }\n\n  function isUnknownElement$$1(vnode, inVPre) {\n    return !inVPre && !vnode.ns && !(config.ignoredElements.length && config.ignoredElements.some(function (ignore) {\n      return isRegExp(ignore) ? ignore.test(vnode.tag) : ignore === vnode.tag;\n    })) && config.isUnknownElement(vnode.tag);\n  }\n\n  var creatingElmInVPre = 0;\n\n  function createElm(vnode, insertedVnodeQueue, parentElm, refElm, nested, ownerArray, index) {\n    if (isDef(vnode.elm) && isDef(ownerArray)) {\n      // This vnode was used in a previous render!\n      // now it's used as a new node, overwriting its elm would cause\n      // potential patch errors down the road when it's used as an insertion\n      // reference node. Instead, we clone the node on-demand before creating\n      // associated DOM element for it.\n      vnode = ownerArray[index] = cloneVNode(vnode);\n    }\n\n    vnode.isRootInsert = !nested; // for transition enter check\n\n    if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n      return;\n    }\n\n    var data = vnode.data;\n    var children = vnode.children;\n    var tag = vnode.tag;\n\n    if (isDef(tag)) {\n      if (true) {\n        if (data && data.pre) {\n          creatingElmInVPre++;\n        }\n\n        if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n          warn('Unknown custom element: <' + tag + '> - did you ' + 'register the component correctly? For recursive components, ' + 'make sure to provide the \"name\" option.', vnode.context);\n        }\n      }\n\n      vnode.elm = vnode.ns ? nodeOps.createElementNS(vnode.ns, tag) : nodeOps.createElement(tag, vnode);\n      setScope(vnode);\n      /* istanbul ignore if */\n\n      {\n        createChildren(vnode, children, insertedVnodeQueue);\n\n        if (isDef(data)) {\n          invokeCreateHooks(vnode, insertedVnodeQueue);\n        }\n\n        insert(parentElm, vnode.elm, refElm);\n      }\n\n      if ( true && data && data.pre) {\n        creatingElmInVPre--;\n      }\n    } else if (isTrue(vnode.isComment)) {\n      vnode.elm = nodeOps.createComment(vnode.text);\n      insert(parentElm, vnode.elm, refElm);\n    } else {\n      vnode.elm = nodeOps.createTextNode(vnode.text);\n      insert(parentElm, vnode.elm, refElm);\n    }\n  }\n\n  function createComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\n    var i = vnode.data;\n\n    if (isDef(i)) {\n      var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n\n      if (isDef(i = i.hook) && isDef(i = i.init)) {\n        i(vnode, false\n        /* hydrating */\n        );\n      } // after calling the init hook, if the vnode is a child component\n      // it should've created a child instance and mounted it. the child\n      // component also has set the placeholder vnode's elm.\n      // in that case we can just return the element and be done.\n\n\n      if (isDef(vnode.componentInstance)) {\n        initComponent(vnode, insertedVnodeQueue);\n        insert(parentElm, vnode.elm, refElm);\n\n        if (isTrue(isReactivated)) {\n          reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n        }\n\n        return true;\n      }\n    }\n  }\n\n  function initComponent(vnode, insertedVnodeQueue) {\n    if (isDef(vnode.data.pendingInsert)) {\n      insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n      vnode.data.pendingInsert = null;\n    }\n\n    vnode.elm = vnode.componentInstance.$el;\n\n    if (isPatchable(vnode)) {\n      invokeCreateHooks(vnode, insertedVnodeQueue);\n      setScope(vnode);\n    } else {\n      // empty component root.\n      // skip all element-related modules except for ref (#3455)\n      registerRef(vnode); // make sure to invoke the insert hook\n\n      insertedVnodeQueue.push(vnode);\n    }\n  }\n\n  function reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\n    var i; // hack for #4339: a reactivated component with inner transition\n    // does not trigger because the inner node's created hooks are not called\n    // again. It's not ideal to involve module-specific logic in here but\n    // there doesn't seem to be a better way to do it.\n\n    var innerNode = vnode;\n\n    while (innerNode.componentInstance) {\n      innerNode = innerNode.componentInstance._vnode;\n\n      if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n        for (i = 0; i < cbs.activate.length; ++i) {\n          cbs.activate[i](emptyNode, innerNode);\n        }\n\n        insertedVnodeQueue.push(innerNode);\n        break;\n      }\n    } // unlike a newly created component,\n    // a reactivated keep-alive component doesn't insert itself\n\n\n    insert(parentElm, vnode.elm, refElm);\n  }\n\n  function insert(parent, elm, ref$$1) {\n    if (isDef(parent)) {\n      if (isDef(ref$$1)) {\n        if (nodeOps.parentNode(ref$$1) === parent) {\n          nodeOps.insertBefore(parent, elm, ref$$1);\n        }\n      } else {\n        nodeOps.appendChild(parent, elm);\n      }\n    }\n  }\n\n  function createChildren(vnode, children, insertedVnodeQueue) {\n    if (Array.isArray(children)) {\n      if (true) {\n        checkDuplicateKeys(children);\n      }\n\n      for (var i = 0; i < children.length; ++i) {\n        createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n      }\n    } else if (isPrimitive(vnode.text)) {\n      nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n    }\n  }\n\n  function isPatchable(vnode) {\n    while (vnode.componentInstance) {\n      vnode = vnode.componentInstance._vnode;\n    }\n\n    return isDef(vnode.tag);\n  }\n\n  function invokeCreateHooks(vnode, insertedVnodeQueue) {\n    for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n      cbs.create[i$1](emptyNode, vnode);\n    }\n\n    i = vnode.data.hook; // Reuse variable\n\n    if (isDef(i)) {\n      if (isDef(i.create)) {\n        i.create(emptyNode, vnode);\n      }\n\n      if (isDef(i.insert)) {\n        insertedVnodeQueue.push(vnode);\n      }\n    }\n  } // set scope id attribute for scoped CSS.\n  // this is implemented as a special case to avoid the overhead\n  // of going through the normal attribute patching process.\n\n\n  function setScope(vnode) {\n    var i;\n\n    if (isDef(i = vnode.fnScopeId)) {\n      nodeOps.setStyleScope(vnode.elm, i);\n    } else {\n      var ancestor = vnode;\n\n      while (ancestor) {\n        if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n          nodeOps.setStyleScope(vnode.elm, i);\n        }\n\n        ancestor = ancestor.parent;\n      }\n    } // for slot content they should also get the scopeId from the host instance.\n\n\n    if (isDef(i = activeInstance) && i !== vnode.context && i !== vnode.fnContext && isDef(i = i.$options._scopeId)) {\n      nodeOps.setStyleScope(vnode.elm, i);\n    }\n  }\n\n  function addVnodes(parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n    for (; startIdx <= endIdx; ++startIdx) {\n      createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n    }\n  }\n\n  function invokeDestroyHook(vnode) {\n    var i, j;\n    var data = vnode.data;\n\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.destroy)) {\n        i(vnode);\n      }\n\n      for (i = 0; i < cbs.destroy.length; ++i) {\n        cbs.destroy[i](vnode);\n      }\n    }\n\n    if (isDef(i = vnode.children)) {\n      for (j = 0; j < vnode.children.length; ++j) {\n        invokeDestroyHook(vnode.children[j]);\n      }\n    }\n  }\n\n  function removeVnodes(vnodes, startIdx, endIdx) {\n    for (; startIdx <= endIdx; ++startIdx) {\n      var ch = vnodes[startIdx];\n\n      if (isDef(ch)) {\n        if (isDef(ch.tag)) {\n          removeAndInvokeRemoveHook(ch);\n          invokeDestroyHook(ch);\n        } else {\n          // Text node\n          removeNode(ch.elm);\n        }\n      }\n    }\n  }\n\n  function removeAndInvokeRemoveHook(vnode, rm) {\n    if (isDef(rm) || isDef(vnode.data)) {\n      var i;\n      var listeners = cbs.remove.length + 1;\n\n      if (isDef(rm)) {\n        // we have a recursively passed down rm callback\n        // increase the listeners count\n        rm.listeners += listeners;\n      } else {\n        // directly removing\n        rm = createRmCb(vnode.elm, listeners);\n      } // recursively invoke hooks on child component root node\n\n\n      if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n        removeAndInvokeRemoveHook(i, rm);\n      }\n\n      for (i = 0; i < cbs.remove.length; ++i) {\n        cbs.remove[i](vnode, rm);\n      }\n\n      if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n        i(vnode, rm);\n      } else {\n        rm();\n      }\n    } else {\n      removeNode(vnode.elm);\n    }\n  }\n\n  function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n    var oldStartIdx = 0;\n    var newStartIdx = 0;\n    var oldEndIdx = oldCh.length - 1;\n    var oldStartVnode = oldCh[0];\n    var oldEndVnode = oldCh[oldEndIdx];\n    var newEndIdx = newCh.length - 1;\n    var newStartVnode = newCh[0];\n    var newEndVnode = newCh[newEndIdx];\n    var oldKeyToIdx, idxInOld, vnodeToMove, refElm; // removeOnly is a special flag used only by <transition-group>\n    // to ensure removed elements stay in correct relative positions\n    // during leaving transitions\n\n    var canMove = !removeOnly;\n\n    if (true) {\n      checkDuplicateKeys(newCh);\n    }\n\n    while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n      if (isUndef(oldStartVnode)) {\n        oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n      } else if (isUndef(oldEndVnode)) {\n        oldEndVnode = oldCh[--oldEndIdx];\n      } else if (sameVnode(oldStartVnode, newStartVnode)) {\n        patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n        oldStartVnode = oldCh[++oldStartIdx];\n        newStartVnode = newCh[++newStartIdx];\n      } else if (sameVnode(oldEndVnode, newEndVnode)) {\n        patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n        oldEndVnode = oldCh[--oldEndIdx];\n        newEndVnode = newCh[--newEndIdx];\n      } else if (sameVnode(oldStartVnode, newEndVnode)) {\n        // Vnode moved right\n        patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n        canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n        oldStartVnode = oldCh[++oldStartIdx];\n        newEndVnode = newCh[--newEndIdx];\n      } else if (sameVnode(oldEndVnode, newStartVnode)) {\n        // Vnode moved left\n        patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n        canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n        oldEndVnode = oldCh[--oldEndIdx];\n        newStartVnode = newCh[++newStartIdx];\n      } else {\n        if (isUndef(oldKeyToIdx)) {\n          oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n        }\n\n        idxInOld = isDef(newStartVnode.key) ? oldKeyToIdx[newStartVnode.key] : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n\n        if (isUndef(idxInOld)) {\n          // New element\n          createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n        } else {\n          vnodeToMove = oldCh[idxInOld];\n\n          if (sameVnode(vnodeToMove, newStartVnode)) {\n            patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n            oldCh[idxInOld] = undefined;\n            canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n          } else {\n            // same key but different element. treat as new element\n            createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n          }\n        }\n\n        newStartVnode = newCh[++newStartIdx];\n      }\n    }\n\n    if (oldStartIdx > oldEndIdx) {\n      refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n      addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n    } else if (newStartIdx > newEndIdx) {\n      removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n    }\n  }\n\n  function checkDuplicateKeys(children) {\n    var seenKeys = {};\n\n    for (var i = 0; i < children.length; i++) {\n      var vnode = children[i];\n      var key = vnode.key;\n\n      if (isDef(key)) {\n        if (seenKeys[key]) {\n          warn(\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\", vnode.context);\n        } else {\n          seenKeys[key] = true;\n        }\n      }\n    }\n  }\n\n  function findIdxInOld(node, oldCh, start, end) {\n    for (var i = start; i < end; i++) {\n      var c = oldCh[i];\n\n      if (isDef(c) && sameVnode(node, c)) {\n        return i;\n      }\n    }\n  }\n\n  function patchVnode(oldVnode, vnode, insertedVnodeQueue, ownerArray, index, removeOnly) {\n    if (oldVnode === vnode) {\n      return;\n    }\n\n    if (isDef(vnode.elm) && isDef(ownerArray)) {\n      // clone reused vnode\n      vnode = ownerArray[index] = cloneVNode(vnode);\n    }\n\n    var elm = vnode.elm = oldVnode.elm;\n\n    if (isTrue(oldVnode.isAsyncPlaceholder)) {\n      if (isDef(vnode.asyncFactory.resolved)) {\n        hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n      } else {\n        vnode.isAsyncPlaceholder = true;\n      }\n\n      return;\n    } // reuse element for static trees.\n    // note we only do this if the vnode is cloned -\n    // if the new node is not cloned it means the render functions have been\n    // reset by the hot-reload-api and we need to do a proper re-render.\n\n\n    if (isTrue(vnode.isStatic) && isTrue(oldVnode.isStatic) && vnode.key === oldVnode.key && (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))) {\n      vnode.componentInstance = oldVnode.componentInstance;\n      return;\n    }\n\n    var i;\n    var data = vnode.data;\n\n    if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n      i(oldVnode, vnode);\n    }\n\n    var oldCh = oldVnode.children;\n    var ch = vnode.children;\n\n    if (isDef(data) && isPatchable(vnode)) {\n      for (i = 0; i < cbs.update.length; ++i) {\n        cbs.update[i](oldVnode, vnode);\n      }\n\n      if (isDef(i = data.hook) && isDef(i = i.update)) {\n        i(oldVnode, vnode);\n      }\n    }\n\n    if (isUndef(vnode.text)) {\n      if (isDef(oldCh) && isDef(ch)) {\n        if (oldCh !== ch) {\n          updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly);\n        }\n      } else if (isDef(ch)) {\n        if (true) {\n          checkDuplicateKeys(ch);\n        }\n\n        if (isDef(oldVnode.text)) {\n          nodeOps.setTextContent(elm, '');\n        }\n\n        addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n      } else if (isDef(oldCh)) {\n        removeVnodes(oldCh, 0, oldCh.length - 1);\n      } else if (isDef(oldVnode.text)) {\n        nodeOps.setTextContent(elm, '');\n      }\n    } else if (oldVnode.text !== vnode.text) {\n      nodeOps.setTextContent(elm, vnode.text);\n    }\n\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.postpatch)) {\n        i(oldVnode, vnode);\n      }\n    }\n  }\n\n  function invokeInsertHook(vnode, queue, initial) {\n    // delay insert hooks for component root nodes, invoke them after the\n    // element is really inserted\n    if (isTrue(initial) && isDef(vnode.parent)) {\n      vnode.parent.data.pendingInsert = queue;\n    } else {\n      for (var i = 0; i < queue.length; ++i) {\n        queue[i].data.hook.insert(queue[i]);\n      }\n    }\n  }\n\n  var hydrationBailed = false; // list of modules that can skip create hook during hydration because they\n  // are already rendered on the client or has no need for initialization\n  // Note: style is excluded because it relies on initial clone for future\n  // deep updates (#7063).\n\n  var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key'); // Note: this is a browser-only function so we can assume elms are DOM nodes.\n\n  function hydrate(elm, vnode, insertedVnodeQueue, inVPre) {\n    var i;\n    var tag = vnode.tag;\n    var data = vnode.data;\n    var children = vnode.children;\n    inVPre = inVPre || data && data.pre;\n    vnode.elm = elm;\n\n    if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n      vnode.isAsyncPlaceholder = true;\n      return true;\n    } // assert node match\n\n\n    if (true) {\n      if (!assertNodeMatch(elm, vnode, inVPre)) {\n        return false;\n      }\n    }\n\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.init)) {\n        i(vnode, true\n        /* hydrating */\n        );\n      }\n\n      if (isDef(i = vnode.componentInstance)) {\n        // child component. it should have hydrated its own tree.\n        initComponent(vnode, insertedVnodeQueue);\n        return true;\n      }\n    }\n\n    if (isDef(tag)) {\n      if (isDef(children)) {\n        // empty element, allow client to pick up and populate children\n        if (!elm.hasChildNodes()) {\n          createChildren(vnode, children, insertedVnodeQueue);\n        } else {\n          // v-html and domProps: innerHTML\n          if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n            if (i !== elm.innerHTML) {\n              /* istanbul ignore if */\n              if ( true && typeof console !== 'undefined' && !hydrationBailed) {\n                hydrationBailed = true;\n                console.warn('Parent: ', elm);\n                console.warn('server innerHTML: ', i);\n                console.warn('client innerHTML: ', elm.innerHTML);\n              }\n\n              return false;\n            }\n          } else {\n            // iterate and compare children lists\n            var childrenMatch = true;\n            var childNode = elm.firstChild;\n\n            for (var i$1 = 0; i$1 < children.length; i$1++) {\n              if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n                childrenMatch = false;\n                break;\n              }\n\n              childNode = childNode.nextSibling;\n            } // if childNode is not null, it means the actual childNodes list is\n            // longer than the virtual children list.\n\n\n            if (!childrenMatch || childNode) {\n              /* istanbul ignore if */\n              if ( true && typeof console !== 'undefined' && !hydrationBailed) {\n                hydrationBailed = true;\n                console.warn('Parent: ', elm);\n                console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n              }\n\n              return false;\n            }\n          }\n        }\n      }\n\n      if (isDef(data)) {\n        var fullInvoke = false;\n\n        for (var key in data) {\n          if (!isRenderedModule(key)) {\n            fullInvoke = true;\n            invokeCreateHooks(vnode, insertedVnodeQueue);\n            break;\n          }\n        }\n\n        if (!fullInvoke && data['class']) {\n          // ensure collecting deps for deep class bindings for future updates\n          traverse(data['class']);\n        }\n      }\n    } else if (elm.data !== vnode.text) {\n      elm.data = vnode.text;\n    }\n\n    return true;\n  }\n\n  function assertNodeMatch(node, vnode, inVPre) {\n    if (isDef(vnode.tag)) {\n      return vnode.tag.indexOf('vue-component') === 0 || !isUnknownElement$$1(vnode, inVPre) && vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase());\n    } else {\n      return node.nodeType === (vnode.isComment ? 8 : 3);\n    }\n  }\n\n  return function patch(oldVnode, vnode, hydrating, removeOnly) {\n    if (isUndef(vnode)) {\n      if (isDef(oldVnode)) {\n        invokeDestroyHook(oldVnode);\n      }\n\n      return;\n    }\n\n    var isInitialPatch = false;\n    var insertedVnodeQueue = [];\n\n    if (isUndef(oldVnode)) {\n      // empty mount (likely as component), create new root element\n      isInitialPatch = true;\n      createElm(vnode, insertedVnodeQueue);\n    } else {\n      var isRealElement = isDef(oldVnode.nodeType);\n\n      if (!isRealElement && sameVnode(oldVnode, vnode)) {\n        // patch existing root node\n        patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\n      } else {\n        if (isRealElement) {\n          // mounting to a real element\n          // check if this is server-rendered content and if we can perform\n          // a successful hydration.\n          if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n            oldVnode.removeAttribute(SSR_ATTR);\n            hydrating = true;\n          }\n\n          if (isTrue(hydrating)) {\n            if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n              invokeInsertHook(vnode, insertedVnodeQueue, true);\n              return oldVnode;\n            } else if (true) {\n              warn('The client-side rendered virtual DOM tree is not matching ' + 'server-rendered content. This is likely caused by incorrect ' + 'HTML markup, for example nesting block-level elements inside ' + '<p>, or missing <tbody>. Bailing hydration and performing ' + 'full client-side render.');\n            }\n          } // either not server-rendered, or hydration failed.\n          // create an empty node and replace it\n\n\n          oldVnode = emptyNodeAt(oldVnode);\n        } // replacing existing element\n\n\n        var oldElm = oldVnode.elm;\n        var parentElm = nodeOps.parentNode(oldElm); // create new node\n\n        createElm(vnode, insertedVnodeQueue, // extremely rare edge case: do not insert if old element is in a\n        // leaving transition. Only happens when combining transition +\n        // keep-alive + HOCs. (#4590)\n        oldElm._leaveCb ? null : parentElm, nodeOps.nextSibling(oldElm)); // update parent placeholder node element, recursively\n\n        if (isDef(vnode.parent)) {\n          var ancestor = vnode.parent;\n          var patchable = isPatchable(vnode);\n\n          while (ancestor) {\n            for (var i = 0; i < cbs.destroy.length; ++i) {\n              cbs.destroy[i](ancestor);\n            }\n\n            ancestor.elm = vnode.elm;\n\n            if (patchable) {\n              for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n                cbs.create[i$1](emptyNode, ancestor);\n              } // #6513\n              // invoke insert hooks that may have been merged by create hooks.\n              // e.g. for directives that uses the \"inserted\" hook.\n\n\n              var insert = ancestor.data.hook.insert;\n\n              if (insert.merged) {\n                // start at index 1 to avoid re-invoking component mounted hook\n                for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n                  insert.fns[i$2]();\n                }\n              }\n            } else {\n              registerRef(ancestor);\n            }\n\n            ancestor = ancestor.parent;\n          }\n        } // destroy old node\n\n\n        if (isDef(parentElm)) {\n          removeVnodes([oldVnode], 0, 0);\n        } else if (isDef(oldVnode.tag)) {\n          invokeDestroyHook(oldVnode);\n        }\n      }\n    }\n\n    invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n    return vnode.elm;\n  };\n}\n/*  */\n\n\nvar directives = {\n  create: updateDirectives,\n  update: updateDirectives,\n  destroy: function unbindDirectives(vnode) {\n    updateDirectives(vnode, emptyNode);\n  }\n};\n\nfunction updateDirectives(oldVnode, vnode) {\n  if (oldVnode.data.directives || vnode.data.directives) {\n    _update(oldVnode, vnode);\n  }\n}\n\nfunction _update(oldVnode, vnode) {\n  var isCreate = oldVnode === emptyNode;\n  var isDestroy = vnode === emptyNode;\n  var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n  var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n  var dirsWithInsert = [];\n  var dirsWithPostpatch = [];\n  var key, oldDir, dir;\n\n  for (key in newDirs) {\n    oldDir = oldDirs[key];\n    dir = newDirs[key];\n\n    if (!oldDir) {\n      // new directive, bind\n      callHook$1(dir, 'bind', vnode, oldVnode);\n\n      if (dir.def && dir.def.inserted) {\n        dirsWithInsert.push(dir);\n      }\n    } else {\n      // existing directive, update\n      dir.oldValue = oldDir.value;\n      dir.oldArg = oldDir.arg;\n      callHook$1(dir, 'update', vnode, oldVnode);\n\n      if (dir.def && dir.def.componentUpdated) {\n        dirsWithPostpatch.push(dir);\n      }\n    }\n  }\n\n  if (dirsWithInsert.length) {\n    var callInsert = function () {\n      for (var i = 0; i < dirsWithInsert.length; i++) {\n        callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n      }\n    };\n\n    if (isCreate) {\n      mergeVNodeHook(vnode, 'insert', callInsert);\n    } else {\n      callInsert();\n    }\n  }\n\n  if (dirsWithPostpatch.length) {\n    mergeVNodeHook(vnode, 'postpatch', function () {\n      for (var i = 0; i < dirsWithPostpatch.length; i++) {\n        callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n      }\n    });\n  }\n\n  if (!isCreate) {\n    for (key in oldDirs) {\n      if (!newDirs[key]) {\n        // no longer present, unbind\n        callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n      }\n    }\n  }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1(dirs, vm) {\n  var res = Object.create(null);\n\n  if (!dirs) {\n    // $flow-disable-line\n    return res;\n  }\n\n  var i, dir;\n\n  for (i = 0; i < dirs.length; i++) {\n    dir = dirs[i];\n\n    if (!dir.modifiers) {\n      // $flow-disable-line\n      dir.modifiers = emptyModifiers;\n    }\n\n    res[getRawDirName(dir)] = dir;\n    dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n  } // $flow-disable-line\n\n\n  return res;\n}\n\nfunction getRawDirName(dir) {\n  return dir.rawName || dir.name + \".\" + Object.keys(dir.modifiers || {}).join('.');\n}\n\nfunction callHook$1(dir, hook, vnode, oldVnode, isDestroy) {\n  var fn = dir.def && dir.def[hook];\n\n  if (fn) {\n    try {\n      fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n    } catch (e) {\n      handleError(e, vnode.context, \"directive \" + dir.name + \" \" + hook + \" hook\");\n    }\n  }\n}\n\nvar baseModules = [ref, directives];\n/*  */\n\nfunction updateAttrs(oldVnode, vnode) {\n  var opts = vnode.componentOptions;\n\n  if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n    return;\n  }\n\n  if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n    return;\n  }\n\n  var key, cur, old;\n  var elm = vnode.elm;\n  var oldAttrs = oldVnode.data.attrs || {};\n  var attrs = vnode.data.attrs || {}; // clone observed objects, as the user probably wants to mutate it\n\n  if (isDef(attrs.__ob__)) {\n    attrs = vnode.data.attrs = extend({}, attrs);\n  }\n\n  for (key in attrs) {\n    cur = attrs[key];\n    old = oldAttrs[key];\n\n    if (old !== cur) {\n      setAttr(elm, key, cur, vnode.data.pre);\n    }\n  } // #4391: in IE9, setting type can reset value for input[type=radio]\n  // #6666: IE/Edge forces progress value down to 1 before setting a max\n\n  /* istanbul ignore if */\n\n\n  if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n    setAttr(elm, 'value', attrs.value);\n  }\n\n  for (key in oldAttrs) {\n    if (isUndef(attrs[key])) {\n      if (isXlink(key)) {\n        elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n      } else if (!isEnumeratedAttr(key)) {\n        elm.removeAttribute(key);\n      }\n    }\n  }\n}\n\nfunction setAttr(el, key, value, isInPre) {\n  if (isInPre || el.tagName.indexOf('-') > -1) {\n    baseSetAttr(el, key, value);\n  } else if (isBooleanAttr(key)) {\n    // set attribute for blank value\n    // e.g. <option disabled>Select one</option>\n    if (isFalsyAttrValue(value)) {\n      el.removeAttribute(key);\n    } else {\n      // technically allowfullscreen is a boolean attribute for <iframe>,\n      // but Flash expects a value of \"true\" when used on <embed> tag\n      value = key === 'allowfullscreen' && el.tagName === 'EMBED' ? 'true' : key;\n      el.setAttribute(key, value);\n    }\n  } else if (isEnumeratedAttr(key)) {\n    el.setAttribute(key, convertEnumeratedValue(key, value));\n  } else if (isXlink(key)) {\n    if (isFalsyAttrValue(value)) {\n      el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n    } else {\n      el.setAttributeNS(xlinkNS, key, value);\n    }\n  } else {\n    baseSetAttr(el, key, value);\n  }\n}\n\nfunction baseSetAttr(el, key, value) {\n  if (isFalsyAttrValue(value)) {\n    el.removeAttribute(key);\n  } else {\n    // #7138: IE10 & 11 fires input event when setting placeholder on\n    // <textarea>... block the first input event and remove the blocker\n    // immediately.\n\n    /* istanbul ignore if */\n    if (isIE && !isIE9 && el.tagName === 'TEXTAREA' && key === 'placeholder' && value !== '' && !el.__ieph) {\n      var blocker = function (e) {\n        e.stopImmediatePropagation();\n        el.removeEventListener('input', blocker);\n      };\n\n      el.addEventListener('input', blocker); // $flow-disable-line\n\n      el.__ieph = true;\n      /* IE placeholder patched */\n    }\n\n    el.setAttribute(key, value);\n  }\n}\n\nvar attrs = {\n  create: updateAttrs,\n  update: updateAttrs\n};\n/*  */\n\nfunction updateClass(oldVnode, vnode) {\n  var el = vnode.elm;\n  var data = vnode.data;\n  var oldData = oldVnode.data;\n\n  if (isUndef(data.staticClass) && isUndef(data.class) && (isUndef(oldData) || isUndef(oldData.staticClass) && isUndef(oldData.class))) {\n    return;\n  }\n\n  var cls = genClassForVnode(vnode); // handle transition classes\n\n  var transitionClass = el._transitionClasses;\n\n  if (isDef(transitionClass)) {\n    cls = concat(cls, stringifyClass(transitionClass));\n  } // set the class\n\n\n  if (cls !== el._prevClass) {\n    el.setAttribute('class', cls);\n    el._prevClass = cls;\n  }\n}\n\nvar klass = {\n  create: updateClass,\n  update: updateClass\n};\n/*  */\n\nvar validDivisionCharRE = /[\\w).+\\-_$\\]]/;\n\nfunction parseFilters(exp) {\n  var inSingle = false;\n  var inDouble = false;\n  var inTemplateString = false;\n  var inRegex = false;\n  var curly = 0;\n  var square = 0;\n  var paren = 0;\n  var lastFilterIndex = 0;\n  var c, prev, i, expression, filters;\n\n  for (i = 0; i < exp.length; i++) {\n    prev = c;\n    c = exp.charCodeAt(i);\n\n    if (inSingle) {\n      if (c === 0x27 && prev !== 0x5C) {\n        inSingle = false;\n      }\n    } else if (inDouble) {\n      if (c === 0x22 && prev !== 0x5C) {\n        inDouble = false;\n      }\n    } else if (inTemplateString) {\n      if (c === 0x60 && prev !== 0x5C) {\n        inTemplateString = false;\n      }\n    } else if (inRegex) {\n      if (c === 0x2f && prev !== 0x5C) {\n        inRegex = false;\n      }\n    } else if (c === 0x7C && // pipe\n    exp.charCodeAt(i + 1) !== 0x7C && exp.charCodeAt(i - 1) !== 0x7C && !curly && !square && !paren) {\n      if (expression === undefined) {\n        // first filter, end of expression\n        lastFilterIndex = i + 1;\n        expression = exp.slice(0, i).trim();\n      } else {\n        pushFilter();\n      }\n    } else {\n      switch (c) {\n        case 0x22:\n          inDouble = true;\n          break;\n        // \"\n\n        case 0x27:\n          inSingle = true;\n          break;\n        // '\n\n        case 0x60:\n          inTemplateString = true;\n          break;\n        // `\n\n        case 0x28:\n          paren++;\n          break;\n        // (\n\n        case 0x29:\n          paren--;\n          break;\n        // )\n\n        case 0x5B:\n          square++;\n          break;\n        // [\n\n        case 0x5D:\n          square--;\n          break;\n        // ]\n\n        case 0x7B:\n          curly++;\n          break;\n        // {\n\n        case 0x7D:\n          curly--;\n          break;\n        // }\n      }\n\n      if (c === 0x2f) {\n        // /\n        var j = i - 1;\n        var p = void 0; // find first non-whitespace prev char\n\n        for (; j >= 0; j--) {\n          p = exp.charAt(j);\n\n          if (p !== ' ') {\n            break;\n          }\n        }\n\n        if (!p || !validDivisionCharRE.test(p)) {\n          inRegex = true;\n        }\n      }\n    }\n  }\n\n  if (expression === undefined) {\n    expression = exp.slice(0, i).trim();\n  } else if (lastFilterIndex !== 0) {\n    pushFilter();\n  }\n\n  function pushFilter() {\n    (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\n    lastFilterIndex = i + 1;\n  }\n\n  if (filters) {\n    for (i = 0; i < filters.length; i++) {\n      expression = wrapFilter(expression, filters[i]);\n    }\n  }\n\n  return expression;\n}\n\nfunction wrapFilter(exp, filter) {\n  var i = filter.indexOf('(');\n\n  if (i < 0) {\n    // _f: resolveFilter\n    return \"_f(\\\"\" + filter + \"\\\")(\" + exp + \")\";\n  } else {\n    var name = filter.slice(0, i);\n    var args = filter.slice(i + 1);\n    return \"_f(\\\"\" + name + \"\\\")(\" + exp + (args !== ')' ? ',' + args : args);\n  }\n}\n/*  */\n\n/* eslint-disable no-unused-vars */\n\n\nfunction baseWarn(msg, range) {\n  console.error(\"[Vue compiler]: \" + msg);\n}\n/* eslint-enable no-unused-vars */\n\n\nfunction pluckModuleFunction(modules, key) {\n  return modules ? modules.map(function (m) {\n    return m[key];\n  }).filter(function (_) {\n    return _;\n  }) : [];\n}\n\nfunction addProp(el, name, value, range, dynamic) {\n  (el.props || (el.props = [])).push(rangeSetItem({\n    name: name,\n    value: value,\n    dynamic: dynamic\n  }, range));\n  el.plain = false;\n}\n\nfunction addAttr(el, name, value, range, dynamic) {\n  var attrs = dynamic ? el.dynamicAttrs || (el.dynamicAttrs = []) : el.attrs || (el.attrs = []);\n  attrs.push(rangeSetItem({\n    name: name,\n    value: value,\n    dynamic: dynamic\n  }, range));\n  el.plain = false;\n} // add a raw attr (use this in preTransforms)\n\n\nfunction addRawAttr(el, name, value, range) {\n  el.attrsMap[name] = value;\n  el.attrsList.push(rangeSetItem({\n    name: name,\n    value: value\n  }, range));\n}\n\nfunction addDirective(el, name, rawName, value, arg, isDynamicArg, modifiers, range) {\n  (el.directives || (el.directives = [])).push(rangeSetItem({\n    name: name,\n    rawName: rawName,\n    value: value,\n    arg: arg,\n    isDynamicArg: isDynamicArg,\n    modifiers: modifiers\n  }, range));\n  el.plain = false;\n}\n\nfunction prependModifierMarker(symbol, name, dynamic) {\n  return dynamic ? \"_p(\" + name + \",\\\"\" + symbol + \"\\\")\" : symbol + name; // mark the event as captured\n}\n\nfunction addHandler(el, name, value, modifiers, important, warn, range, dynamic) {\n  modifiers = modifiers || emptyObject; // warn prevent and passive modifier\n\n  /* istanbul ignore if */\n\n  if ( true && warn && modifiers.prevent && modifiers.passive) {\n    warn('passive and prevent can\\'t be used together. ' + 'Passive handler can\\'t prevent default event.', range);\n  } // normalize click.right and click.middle since they don't actually fire\n  // this is technically browser-specific, but at least for now browsers are\n  // the only target envs that have right/middle clicks.\n\n\n  if (modifiers.right) {\n    if (dynamic) {\n      name = \"(\" + name + \")==='click'?'contextmenu':(\" + name + \")\";\n    } else if (name === 'click') {\n      name = 'contextmenu';\n      delete modifiers.right;\n    }\n  } else if (modifiers.middle) {\n    if (dynamic) {\n      name = \"(\" + name + \")==='click'?'mouseup':(\" + name + \")\";\n    } else if (name === 'click') {\n      name = 'mouseup';\n    }\n  } // check capture modifier\n\n\n  if (modifiers.capture) {\n    delete modifiers.capture;\n    name = prependModifierMarker('!', name, dynamic);\n  }\n\n  if (modifiers.once) {\n    delete modifiers.once;\n    name = prependModifierMarker('~', name, dynamic);\n  }\n  /* istanbul ignore if */\n\n\n  if (modifiers.passive) {\n    delete modifiers.passive;\n    name = prependModifierMarker('&', name, dynamic);\n  }\n\n  var events;\n\n  if (modifiers.native) {\n    delete modifiers.native;\n    events = el.nativeEvents || (el.nativeEvents = {});\n  } else {\n    events = el.events || (el.events = {});\n  }\n\n  var newHandler = rangeSetItem({\n    value: value.trim(),\n    dynamic: dynamic\n  }, range);\n\n  if (modifiers !== emptyObject) {\n    newHandler.modifiers = modifiers;\n  }\n\n  var handlers = events[name];\n  /* istanbul ignore if */\n\n  if (Array.isArray(handlers)) {\n    important ? handlers.unshift(newHandler) : handlers.push(newHandler);\n  } else if (handlers) {\n    events[name] = important ? [newHandler, handlers] : [handlers, newHandler];\n  } else {\n    events[name] = newHandler;\n  }\n\n  el.plain = false;\n}\n\nfunction getRawBindingAttr(el, name) {\n  return el.rawAttrsMap[':' + name] || el.rawAttrsMap['v-bind:' + name] || el.rawAttrsMap[name];\n}\n\nfunction getBindingAttr(el, name, getStatic) {\n  var dynamicValue = getAndRemoveAttr(el, ':' + name) || getAndRemoveAttr(el, 'v-bind:' + name);\n\n  if (dynamicValue != null) {\n    return parseFilters(dynamicValue);\n  } else if (getStatic !== false) {\n    var staticValue = getAndRemoveAttr(el, name);\n\n    if (staticValue != null) {\n      return JSON.stringify(staticValue);\n    }\n  }\n} // note: this only removes the attr from the Array (attrsList) so that it\n// doesn't get processed by processAttrs.\n// By default it does NOT remove it from the map (attrsMap) because the map is\n// needed during codegen.\n\n\nfunction getAndRemoveAttr(el, name, removeFromMap) {\n  var val;\n\n  if ((val = el.attrsMap[name]) != null) {\n    var list = el.attrsList;\n\n    for (var i = 0, l = list.length; i < l; i++) {\n      if (list[i].name === name) {\n        list.splice(i, 1);\n        break;\n      }\n    }\n  }\n\n  if (removeFromMap) {\n    delete el.attrsMap[name];\n  }\n\n  return val;\n}\n\nfunction getAndRemoveAttrByRegex(el, name) {\n  var list = el.attrsList;\n\n  for (var i = 0, l = list.length; i < l; i++) {\n    var attr = list[i];\n\n    if (name.test(attr.name)) {\n      list.splice(i, 1);\n      return attr;\n    }\n  }\n}\n\nfunction rangeSetItem(item, range) {\n  if (range) {\n    if (range.start != null) {\n      item.start = range.start;\n    }\n\n    if (range.end != null) {\n      item.end = range.end;\n    }\n  }\n\n  return item;\n}\n/*  */\n\n/**\n * Cross-platform code generation for component v-model\n */\n\n\nfunction genComponentModel(el, value, modifiers) {\n  var ref = modifiers || {};\n  var number = ref.number;\n  var trim = ref.trim;\n  var baseValueExpression = '$$v';\n  var valueExpression = baseValueExpression;\n\n  if (trim) {\n    valueExpression = \"(typeof \" + baseValueExpression + \" === 'string'\" + \"? \" + baseValueExpression + \".trim()\" + \": \" + baseValueExpression + \")\";\n  }\n\n  if (number) {\n    valueExpression = \"_n(\" + valueExpression + \")\";\n  }\n\n  var assignment = genAssignmentCode(value, valueExpression);\n  el.model = {\n    value: \"(\" + value + \")\",\n    expression: JSON.stringify(value),\n    callback: \"function (\" + baseValueExpression + \") {\" + assignment + \"}\"\n  };\n}\n/**\n * Cross-platform codegen helper for generating v-model value assignment code.\n */\n\n\nfunction genAssignmentCode(value, assignment) {\n  var res = parseModel(value);\n\n  if (res.key === null) {\n    return value + \"=\" + assignment;\n  } else {\n    return \"$set(\" + res.exp + \", \" + res.key + \", \" + assignment + \")\";\n  }\n}\n/**\n * Parse a v-model expression into a base path and a final key segment.\n * Handles both dot-path and possible square brackets.\n *\n * Possible cases:\n *\n * - test\n * - test[key]\n * - test[test1[key]]\n * - test[\"a\"][key]\n * - xxx.test[a[a].test1[key]]\n * - test.xxx.a[\"asa\"][test1[key]]\n *\n */\n\n\nvar len, str, chr, index$1, expressionPos, expressionEndPos;\n\nfunction parseModel(val) {\n  // Fix https://github.com/vuejs/vue/pull/7730\n  // allow v-model=\"obj.val \" (trailing whitespace)\n  val = val.trim();\n  len = val.length;\n\n  if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {\n    index$1 = val.lastIndexOf('.');\n\n    if (index$1 > -1) {\n      return {\n        exp: val.slice(0, index$1),\n        key: '\"' + val.slice(index$1 + 1) + '\"'\n      };\n    } else {\n      return {\n        exp: val,\n        key: null\n      };\n    }\n  }\n\n  str = val;\n  index$1 = expressionPos = expressionEndPos = 0;\n\n  while (!eof()) {\n    chr = next();\n    /* istanbul ignore if */\n\n    if (isStringStart(chr)) {\n      parseString(chr);\n    } else if (chr === 0x5B) {\n      parseBracket(chr);\n    }\n  }\n\n  return {\n    exp: val.slice(0, expressionPos),\n    key: val.slice(expressionPos + 1, expressionEndPos)\n  };\n}\n\nfunction next() {\n  return str.charCodeAt(++index$1);\n}\n\nfunction eof() {\n  return index$1 >= len;\n}\n\nfunction isStringStart(chr) {\n  return chr === 0x22 || chr === 0x27;\n}\n\nfunction parseBracket(chr) {\n  var inBracket = 1;\n  expressionPos = index$1;\n\n  while (!eof()) {\n    chr = next();\n\n    if (isStringStart(chr)) {\n      parseString(chr);\n      continue;\n    }\n\n    if (chr === 0x5B) {\n      inBracket++;\n    }\n\n    if (chr === 0x5D) {\n      inBracket--;\n    }\n\n    if (inBracket === 0) {\n      expressionEndPos = index$1;\n      break;\n    }\n  }\n}\n\nfunction parseString(chr) {\n  var stringQuote = chr;\n\n  while (!eof()) {\n    chr = next();\n\n    if (chr === stringQuote) {\n      break;\n    }\n  }\n}\n/*  */\n\n\nvar warn$1; // in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\n\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\nfunction model(el, dir, _warn) {\n  warn$1 = _warn;\n  var value = dir.value;\n  var modifiers = dir.modifiers;\n  var tag = el.tag;\n  var type = el.attrsMap.type;\n\n  if (true) {\n    // inputs with type=\"file\" are read only and setting the input's\n    // value will throw an error.\n    if (tag === 'input' && type === 'file') {\n      warn$1(\"<\" + el.tag + \" v-model=\\\"\" + value + \"\\\" type=\\\"file\\\">:\\n\" + \"File inputs are read only. Use a v-on:change listener instead.\", el.rawAttrsMap['v-model']);\n    }\n  }\n\n  if (el.component) {\n    genComponentModel(el, value, modifiers); // component v-model doesn't need extra runtime\n\n    return false;\n  } else if (tag === 'select') {\n    genSelect(el, value, modifiers);\n  } else if (tag === 'input' && type === 'checkbox') {\n    genCheckboxModel(el, value, modifiers);\n  } else if (tag === 'input' && type === 'radio') {\n    genRadioModel(el, value, modifiers);\n  } else if (tag === 'input' || tag === 'textarea') {\n    genDefaultModel(el, value, modifiers);\n  } else if (!config.isReservedTag(tag)) {\n    genComponentModel(el, value, modifiers); // component v-model doesn't need extra runtime\n\n    return false;\n  } else if (true) {\n    warn$1(\"<\" + el.tag + \" v-model=\\\"\" + value + \"\\\">: \" + \"v-model is not supported on this element type. \" + 'If you are working with contenteditable, it\\'s recommended to ' + 'wrap a library dedicated for that purpose inside a custom component.', el.rawAttrsMap['v-model']);\n  } // ensure runtime directive metadata\n\n\n  return true;\n}\n\nfunction genCheckboxModel(el, value, modifiers) {\n  var number = modifiers && modifiers.number;\n  var valueBinding = getBindingAttr(el, 'value') || 'null';\n  var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\n  var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\n  addProp(el, 'checked', \"Array.isArray(\" + value + \")\" + \"?_i(\" + value + \",\" + valueBinding + \")>-1\" + (trueValueBinding === 'true' ? \":(\" + value + \")\" : \":_q(\" + value + \",\" + trueValueBinding + \")\"));\n  addHandler(el, 'change', \"var $$a=\" + value + \",\" + '$$el=$event.target,' + \"$$c=$$el.checked?(\" + trueValueBinding + \"):(\" + falseValueBinding + \");\" + 'if(Array.isArray($$a)){' + \"var $$v=\" + (number ? '_n(' + valueBinding + ')' : valueBinding) + \",\" + '$$i=_i($$a,$$v);' + \"if($$el.checked){$$i<0&&(\" + genAssignmentCode(value, '$$a.concat([$$v])') + \")}\" + \"else{$$i>-1&&(\" + genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))') + \")}\" + \"}else{\" + genAssignmentCode(value, '$$c') + \"}\", null, true);\n}\n\nfunction genRadioModel(el, value, modifiers) {\n  var number = modifiers && modifiers.number;\n  var valueBinding = getBindingAttr(el, 'value') || 'null';\n  valueBinding = number ? \"_n(\" + valueBinding + \")\" : valueBinding;\n  addProp(el, 'checked', \"_q(\" + value + \",\" + valueBinding + \")\");\n  addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);\n}\n\nfunction genSelect(el, value, modifiers) {\n  var number = modifiers && modifiers.number;\n  var selectedVal = \"Array.prototype.filter\" + \".call($event.target.options,function(o){return o.selected})\" + \".map(function(o){var val = \\\"_value\\\" in o ? o._value : o.value;\" + \"return \" + (number ? '_n(val)' : 'val') + \"})\";\n  var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';\n  var code = \"var $$selectedVal = \" + selectedVal + \";\";\n  code = code + \" \" + genAssignmentCode(value, assignment);\n  addHandler(el, 'change', code, null, true);\n}\n\nfunction genDefaultModel(el, value, modifiers) {\n  var type = el.attrsMap.type; // warn if v-bind:value conflicts with v-model\n  // except for inputs with v-bind:type\n\n  if (true) {\n    var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];\n    var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];\n\n    if (value$1 && !typeBinding) {\n      var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';\n      warn$1(binding + \"=\\\"\" + value$1 + \"\\\" conflicts with v-model on the same element \" + 'because the latter already expands to a value binding internally', el.rawAttrsMap[binding]);\n    }\n  }\n\n  var ref = modifiers || {};\n  var lazy = ref.lazy;\n  var number = ref.number;\n  var trim = ref.trim;\n  var needCompositionGuard = !lazy && type !== 'range';\n  var event = lazy ? 'change' : type === 'range' ? RANGE_TOKEN : 'input';\n  var valueExpression = '$event.target.value';\n\n  if (trim) {\n    valueExpression = \"$event.target.value.trim()\";\n  }\n\n  if (number) {\n    valueExpression = \"_n(\" + valueExpression + \")\";\n  }\n\n  var code = genAssignmentCode(value, valueExpression);\n\n  if (needCompositionGuard) {\n    code = \"if($event.target.composing)return;\" + code;\n  }\n\n  addProp(el, 'value', \"(\" + value + \")\");\n  addHandler(el, event, code, null, true);\n\n  if (trim || number) {\n    addHandler(el, 'blur', '$forceUpdate()');\n  }\n}\n/*  */\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\n\n\nfunction normalizeEvents(on) {\n  /* istanbul ignore if */\n  if (isDef(on[RANGE_TOKEN])) {\n    // IE input[type=range] only supports `change` event\n    var event = isIE ? 'change' : 'input';\n    on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n    delete on[RANGE_TOKEN];\n  } // This was originally intended to fix #4521 but no longer necessary\n  // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n\n  /* istanbul ignore if */\n\n\n  if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n    on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n    delete on[CHECKBOX_RADIO_TOKEN];\n  }\n}\n\nvar target$1;\n\nfunction createOnceHandler$1(event, handler, capture) {\n  var _target = target$1; // save current target element in closure\n\n  return function onceHandler() {\n    var res = handler.apply(null, arguments);\n\n    if (res !== null) {\n      remove$2(event, onceHandler, capture, _target);\n    }\n  };\n} // #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\n// implementation and does not fire microtasks in between event propagation, so\n// safe to exclude.\n\n\nvar useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\n\nfunction add$1(name, handler, capture, passive) {\n  // async edge case #6566: inner click event triggers patch, event handler\n  // attached to outer element during patch, and triggered again. This\n  // happens because browsers fire microtask ticks between event propagation.\n  // the solution is simple: we save the timestamp when a handler is attached,\n  // and the handler would only fire if the event passed to it was fired\n  // AFTER it was attached.\n  if (useMicrotaskFix) {\n    var attachedTimestamp = currentFlushTimestamp;\n    var original = handler;\n\n    handler = original._wrapper = function (e) {\n      if ( // no bubbling, should always fire.\n      // this is just a safety net in case event.timeStamp is unreliable in\n      // certain weird environments...\n      e.target === e.currentTarget || // event is fired after handler attachment\n      e.timeStamp >= attachedTimestamp || // bail for environments that have buggy event.timeStamp implementations\n      // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\n      // #9681 QtWebEngine event.timeStamp is negative value\n      e.timeStamp <= 0 || // #9448 bail if event is fired in another document in a multi-page\n      // electron/nw.js app, since event.timeStamp will be using a different\n      // starting reference\n      e.target.ownerDocument !== document) {\n        return original.apply(this, arguments);\n      }\n    };\n  }\n\n  target$1.addEventListener(name, handler, supportsPassive ? {\n    capture: capture,\n    passive: passive\n  } : capture);\n}\n\nfunction remove$2(name, handler, capture, _target) {\n  (_target || target$1).removeEventListener(name, handler._wrapper || handler, capture);\n}\n\nfunction updateDOMListeners(oldVnode, vnode) {\n  if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n    return;\n  }\n\n  var on = vnode.data.on || {};\n  var oldOn = oldVnode.data.on || {};\n  target$1 = vnode.elm;\n  normalizeEvents(on);\n  updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);\n  target$1 = undefined;\n}\n\nvar events = {\n  create: updateDOMListeners,\n  update: updateDOMListeners\n};\n/*  */\n\nvar svgContainer;\n\nfunction updateDOMProps(oldVnode, vnode) {\n  if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n    return;\n  }\n\n  var key, cur;\n  var elm = vnode.elm;\n  var oldProps = oldVnode.data.domProps || {};\n  var props = vnode.data.domProps || {}; // clone observed objects, as the user probably wants to mutate it\n\n  if (isDef(props.__ob__)) {\n    props = vnode.data.domProps = extend({}, props);\n  }\n\n  for (key in oldProps) {\n    if (!(key in props)) {\n      elm[key] = '';\n    }\n  }\n\n  for (key in props) {\n    cur = props[key]; // ignore children if the node has textContent or innerHTML,\n    // as these will throw away existing DOM nodes and cause removal errors\n    // on subsequent patches (#3360)\n\n    if (key === 'textContent' || key === 'innerHTML') {\n      if (vnode.children) {\n        vnode.children.length = 0;\n      }\n\n      if (cur === oldProps[key]) {\n        continue;\n      } // #6601 work around Chrome version <= 55 bug where single textNode\n      // replaced by innerHTML/textContent retains its parentNode property\n\n\n      if (elm.childNodes.length === 1) {\n        elm.removeChild(elm.childNodes[0]);\n      }\n    }\n\n    if (key === 'value' && elm.tagName !== 'PROGRESS') {\n      // store value as _value as well since\n      // non-string values will be stringified\n      elm._value = cur; // avoid resetting cursor position when value is the same\n\n      var strCur = isUndef(cur) ? '' : String(cur);\n\n      if (shouldUpdateValue(elm, strCur)) {\n        elm.value = strCur;\n      }\n    } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {\n      // IE doesn't support innerHTML for SVG elements\n      svgContainer = svgContainer || document.createElement('div');\n      svgContainer.innerHTML = \"<svg>\" + cur + \"</svg>\";\n      var svg = svgContainer.firstChild;\n\n      while (elm.firstChild) {\n        elm.removeChild(elm.firstChild);\n      }\n\n      while (svg.firstChild) {\n        elm.appendChild(svg.firstChild);\n      }\n    } else if ( // skip the update if old and new VDOM state is the same.\n    // `value` is handled separately because the DOM value may be temporarily\n    // out of sync with VDOM state due to focus, composition and modifiers.\n    // This  #4521 by skipping the unnecessary `checked` update.\n    cur !== oldProps[key]) {\n      // some property updates can throw\n      // e.g. `value` on <progress> w/ non-finite value\n      try {\n        elm[key] = cur;\n      } catch (e) {}\n    }\n  }\n} // check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue(elm, checkVal) {\n  return !elm.composing && (elm.tagName === 'OPTION' || isNotInFocusAndDirty(elm, checkVal) || isDirtyWithModifiers(elm, checkVal));\n}\n\nfunction isNotInFocusAndDirty(elm, checkVal) {\n  // return true when textbox (.number and .trim) loses focus and its value is\n  // not equal to the updated value\n  var notInFocus = true; // #6157\n  // work around IE bug when accessing document.activeElement in an iframe\n\n  try {\n    notInFocus = document.activeElement !== elm;\n  } catch (e) {}\n\n  return notInFocus && elm.value !== checkVal;\n}\n\nfunction isDirtyWithModifiers(elm, newVal) {\n  var value = elm.value;\n  var modifiers = elm._vModifiers; // injected by v-model runtime\n\n  if (isDef(modifiers)) {\n    if (modifiers.number) {\n      return toNumber(value) !== toNumber(newVal);\n    }\n\n    if (modifiers.trim) {\n      return value.trim() !== newVal.trim();\n    }\n  }\n\n  return value !== newVal;\n}\n\nvar domProps = {\n  create: updateDOMProps,\n  update: updateDOMProps\n};\n/*  */\n\nvar parseStyleText = cached(function (cssText) {\n  var res = {};\n  var listDelimiter = /;(?![^(]*\\))/g;\n  var propertyDelimiter = /:(.+)/;\n  cssText.split(listDelimiter).forEach(function (item) {\n    if (item) {\n      var tmp = item.split(propertyDelimiter);\n      tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n    }\n  });\n  return res;\n}); // merge static and dynamic style data on the same vnode\n\nfunction normalizeStyleData(data) {\n  var style = normalizeStyleBinding(data.style); // static style is pre-processed into an object during compilation\n  // and is always a fresh object, so it's safe to merge into it\n\n  return data.staticStyle ? extend(data.staticStyle, style) : style;\n} // normalize possible array / string values into Object\n\n\nfunction normalizeStyleBinding(bindingStyle) {\n  if (Array.isArray(bindingStyle)) {\n    return toObject(bindingStyle);\n  }\n\n  if (typeof bindingStyle === 'string') {\n    return parseStyleText(bindingStyle);\n  }\n\n  return bindingStyle;\n}\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\n\n\nfunction getStyle(vnode, checkChild) {\n  var res = {};\n  var styleData;\n\n  if (checkChild) {\n    var childNode = vnode;\n\n    while (childNode.componentInstance) {\n      childNode = childNode.componentInstance._vnode;\n\n      if (childNode && childNode.data && (styleData = normalizeStyleData(childNode.data))) {\n        extend(res, styleData);\n      }\n    }\n  }\n\n  if (styleData = normalizeStyleData(vnode.data)) {\n    extend(res, styleData);\n  }\n\n  var parentNode = vnode;\n\n  while (parentNode = parentNode.parent) {\n    if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n      extend(res, styleData);\n    }\n  }\n\n  return res;\n}\n/*  */\n\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\n\nvar setProp = function (el, name, val) {\n  /* istanbul ignore if */\n  if (cssVarRE.test(name)) {\n    el.style.setProperty(name, val);\n  } else if (importantRE.test(val)) {\n    el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\n  } else {\n    var normalizedName = normalize(name);\n\n    if (Array.isArray(val)) {\n      // Support values array created by autoprefixer, e.g.\n      // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n      // Set them one by one, and the browser will only set those it can recognize\n      for (var i = 0, len = val.length; i < len; i++) {\n        el.style[normalizedName] = val[i];\n      }\n    } else {\n      el.style[normalizedName] = val;\n    }\n  }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n  emptyStyle = emptyStyle || document.createElement('div').style;\n  prop = camelize(prop);\n\n  if (prop !== 'filter' && prop in emptyStyle) {\n    return prop;\n  }\n\n  var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n\n  for (var i = 0; i < vendorNames.length; i++) {\n    var name = vendorNames[i] + capName;\n\n    if (name in emptyStyle) {\n      return name;\n    }\n  }\n});\n\nfunction updateStyle(oldVnode, vnode) {\n  var data = vnode.data;\n  var oldData = oldVnode.data;\n\n  if (isUndef(data.staticStyle) && isUndef(data.style) && isUndef(oldData.staticStyle) && isUndef(oldData.style)) {\n    return;\n  }\n\n  var cur, name;\n  var el = vnode.elm;\n  var oldStaticStyle = oldData.staticStyle;\n  var oldStyleBinding = oldData.normalizedStyle || oldData.style || {}; // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n\n  var oldStyle = oldStaticStyle || oldStyleBinding;\n  var style = normalizeStyleBinding(vnode.data.style) || {}; // store normalized style under a different key for next diff\n  // make sure to clone it if it's reactive, since the user likely wants\n  // to mutate it.\n\n  vnode.data.normalizedStyle = isDef(style.__ob__) ? extend({}, style) : style;\n  var newStyle = getStyle(vnode, true);\n\n  for (name in oldStyle) {\n    if (isUndef(newStyle[name])) {\n      setProp(el, name, '');\n    }\n  }\n\n  for (name in newStyle) {\n    cur = newStyle[name];\n\n    if (cur !== oldStyle[name]) {\n      // ie9 setting to null has no effect, must use empty string\n      setProp(el, name, cur == null ? '' : cur);\n    }\n  }\n}\n\nvar style = {\n  create: updateStyle,\n  update: updateStyle\n};\n/*  */\n\nvar whitespaceRE = /\\s+/;\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\n\nfunction addClass(el, cls) {\n  /* istanbul ignore if */\n  if (!cls || !(cls = cls.trim())) {\n    return;\n  }\n  /* istanbul ignore else */\n\n\n  if (el.classList) {\n    if (cls.indexOf(' ') > -1) {\n      cls.split(whitespaceRE).forEach(function (c) {\n        return el.classList.add(c);\n      });\n    } else {\n      el.classList.add(cls);\n    }\n  } else {\n    var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n\n    if (cur.indexOf(' ' + cls + ' ') < 0) {\n      el.setAttribute('class', (cur + cls).trim());\n    }\n  }\n}\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\n\n\nfunction removeClass(el, cls) {\n  /* istanbul ignore if */\n  if (!cls || !(cls = cls.trim())) {\n    return;\n  }\n  /* istanbul ignore else */\n\n\n  if (el.classList) {\n    if (cls.indexOf(' ') > -1) {\n      cls.split(whitespaceRE).forEach(function (c) {\n        return el.classList.remove(c);\n      });\n    } else {\n      el.classList.remove(cls);\n    }\n\n    if (!el.classList.length) {\n      el.removeAttribute('class');\n    }\n  } else {\n    var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n    var tar = ' ' + cls + ' ';\n\n    while (cur.indexOf(tar) >= 0) {\n      cur = cur.replace(tar, ' ');\n    }\n\n    cur = cur.trim();\n\n    if (cur) {\n      el.setAttribute('class', cur);\n    } else {\n      el.removeAttribute('class');\n    }\n  }\n}\n/*  */\n\n\nfunction resolveTransition(def$$1) {\n  if (!def$$1) {\n    return;\n  }\n  /* istanbul ignore else */\n\n\n  if (typeof def$$1 === 'object') {\n    var res = {};\n\n    if (def$$1.css !== false) {\n      extend(res, autoCssTransition(def$$1.name || 'v'));\n    }\n\n    extend(res, def$$1);\n    return res;\n  } else if (typeof def$$1 === 'string') {\n    return autoCssTransition(def$$1);\n  }\n}\n\nvar autoCssTransition = cached(function (name) {\n  return {\n    enterClass: name + \"-enter\",\n    enterToClass: name + \"-enter-to\",\n    enterActiveClass: name + \"-enter-active\",\n    leaveClass: name + \"-leave\",\n    leaveToClass: name + \"-leave-to\",\n    leaveActiveClass: name + \"-leave-active\"\n  };\n});\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation'; // Transition property/event sniffing\n\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\n\nif (hasTransition) {\n  /* istanbul ignore if */\n  if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) {\n    transitionProp = 'WebkitTransition';\n    transitionEndEvent = 'webkitTransitionEnd';\n  }\n\n  if (window.onanimationend === undefined && window.onwebkitanimationend !== undefined) {\n    animationProp = 'WebkitAnimation';\n    animationEndEvent = 'webkitAnimationEnd';\n  }\n} // binding to window is necessary to make hot reload work in IE in strict mode\n\n\nvar raf = inBrowser ? window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : setTimeout :\n/* istanbul ignore next */\nfunction (fn) {\n  return fn();\n};\n\nfunction nextFrame(fn) {\n  raf(function () {\n    raf(fn);\n  });\n}\n\nfunction addTransitionClass(el, cls) {\n  var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n\n  if (transitionClasses.indexOf(cls) < 0) {\n    transitionClasses.push(cls);\n    addClass(el, cls);\n  }\n}\n\nfunction removeTransitionClass(el, cls) {\n  if (el._transitionClasses) {\n    remove(el._transitionClasses, cls);\n  }\n\n  removeClass(el, cls);\n}\n\nfunction whenTransitionEnds(el, expectedType, cb) {\n  var ref = getTransitionInfo(el, expectedType);\n  var type = ref.type;\n  var timeout = ref.timeout;\n  var propCount = ref.propCount;\n\n  if (!type) {\n    return cb();\n  }\n\n  var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n  var ended = 0;\n\n  var end = function () {\n    el.removeEventListener(event, onEnd);\n    cb();\n  };\n\n  var onEnd = function (e) {\n    if (e.target === el) {\n      if (++ended >= propCount) {\n        end();\n      }\n    }\n  };\n\n  setTimeout(function () {\n    if (ended < propCount) {\n      end();\n    }\n  }, timeout + 1);\n  el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo(el, expectedType) {\n  var styles = window.getComputedStyle(el); // JSDOM may return undefined for transition properties\n\n  var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\n  var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\n  var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n  var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\n  var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\n  var animationTimeout = getTimeout(animationDelays, animationDurations);\n  var type;\n  var timeout = 0;\n  var propCount = 0;\n  /* istanbul ignore if */\n\n  if (expectedType === TRANSITION) {\n    if (transitionTimeout > 0) {\n      type = TRANSITION;\n      timeout = transitionTimeout;\n      propCount = transitionDurations.length;\n    }\n  } else if (expectedType === ANIMATION) {\n    if (animationTimeout > 0) {\n      type = ANIMATION;\n      timeout = animationTimeout;\n      propCount = animationDurations.length;\n    }\n  } else {\n    timeout = Math.max(transitionTimeout, animationTimeout);\n    type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n    propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n  }\n\n  var hasTransform = type === TRANSITION && transformRE.test(styles[transitionProp + 'Property']);\n  return {\n    type: type,\n    timeout: timeout,\n    propCount: propCount,\n    hasTransform: hasTransform\n  };\n}\n\nfunction getTimeout(delays, durations) {\n  /* istanbul ignore next */\n  while (delays.length < durations.length) {\n    delays = delays.concat(delays);\n  }\n\n  return Math.max.apply(null, durations.map(function (d, i) {\n    return toMs(d) + toMs(delays[i]);\n  }));\n} // Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\n// in a locale-dependent way, using a comma instead of a dot.\n// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\n// as a floor function) causing unexpected behaviors\n\n\nfunction toMs(s) {\n  return Number(s.slice(0, -1).replace(',', '.')) * 1000;\n}\n/*  */\n\n\nfunction enter(vnode, toggleDisplay) {\n  var el = vnode.elm; // call leave callback now\n\n  if (isDef(el._leaveCb)) {\n    el._leaveCb.cancelled = true;\n\n    el._leaveCb();\n  }\n\n  var data = resolveTransition(vnode.data.transition);\n\n  if (isUndef(data)) {\n    return;\n  }\n  /* istanbul ignore if */\n\n\n  if (isDef(el._enterCb) || el.nodeType !== 1) {\n    return;\n  }\n\n  var css = data.css;\n  var type = data.type;\n  var enterClass = data.enterClass;\n  var enterToClass = data.enterToClass;\n  var enterActiveClass = data.enterActiveClass;\n  var appearClass = data.appearClass;\n  var appearToClass = data.appearToClass;\n  var appearActiveClass = data.appearActiveClass;\n  var beforeEnter = data.beforeEnter;\n  var enter = data.enter;\n  var afterEnter = data.afterEnter;\n  var enterCancelled = data.enterCancelled;\n  var beforeAppear = data.beforeAppear;\n  var appear = data.appear;\n  var afterAppear = data.afterAppear;\n  var appearCancelled = data.appearCancelled;\n  var duration = data.duration; // activeInstance will always be the <transition> component managing this\n  // transition. One edge case to check is when the <transition> is placed\n  // as the root node of a child component. In that case we need to check\n  // <transition>'s parent for appear check.\n\n  var context = activeInstance;\n  var transitionNode = activeInstance.$vnode;\n\n  while (transitionNode && transitionNode.parent) {\n    context = transitionNode.context;\n    transitionNode = transitionNode.parent;\n  }\n\n  var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n  if (isAppear && !appear && appear !== '') {\n    return;\n  }\n\n  var startClass = isAppear && appearClass ? appearClass : enterClass;\n  var activeClass = isAppear && appearActiveClass ? appearActiveClass : enterActiveClass;\n  var toClass = isAppear && appearToClass ? appearToClass : enterToClass;\n  var beforeEnterHook = isAppear ? beforeAppear || beforeEnter : beforeEnter;\n  var enterHook = isAppear ? typeof appear === 'function' ? appear : enter : enter;\n  var afterEnterHook = isAppear ? afterAppear || afterEnter : afterEnter;\n  var enterCancelledHook = isAppear ? appearCancelled || enterCancelled : enterCancelled;\n  var explicitEnterDuration = toNumber(isObject(duration) ? duration.enter : duration);\n\n  if ( true && explicitEnterDuration != null) {\n    checkDuration(explicitEnterDuration, 'enter', vnode);\n  }\n\n  var expectsCSS = css !== false && !isIE9;\n  var userWantsControl = getHookArgumentsLength(enterHook);\n  var cb = el._enterCb = once(function () {\n    if (expectsCSS) {\n      removeTransitionClass(el, toClass);\n      removeTransitionClass(el, activeClass);\n    }\n\n    if (cb.cancelled) {\n      if (expectsCSS) {\n        removeTransitionClass(el, startClass);\n      }\n\n      enterCancelledHook && enterCancelledHook(el);\n    } else {\n      afterEnterHook && afterEnterHook(el);\n    }\n\n    el._enterCb = null;\n  });\n\n  if (!vnode.data.show) {\n    // remove pending leave element on enter by injecting an insert hook\n    mergeVNodeHook(vnode, 'insert', function () {\n      var parent = el.parentNode;\n      var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n\n      if (pendingNode && pendingNode.tag === vnode.tag && pendingNode.elm._leaveCb) {\n        pendingNode.elm._leaveCb();\n      }\n\n      enterHook && enterHook(el, cb);\n    });\n  } // start enter transition\n\n\n  beforeEnterHook && beforeEnterHook(el);\n\n  if (expectsCSS) {\n    addTransitionClass(el, startClass);\n    addTransitionClass(el, activeClass);\n    nextFrame(function () {\n      removeTransitionClass(el, startClass);\n\n      if (!cb.cancelled) {\n        addTransitionClass(el, toClass);\n\n        if (!userWantsControl) {\n          if (isValidDuration(explicitEnterDuration)) {\n            setTimeout(cb, explicitEnterDuration);\n          } else {\n            whenTransitionEnds(el, type, cb);\n          }\n        }\n      }\n    });\n  }\n\n  if (vnode.data.show) {\n    toggleDisplay && toggleDisplay();\n    enterHook && enterHook(el, cb);\n  }\n\n  if (!expectsCSS && !userWantsControl) {\n    cb();\n  }\n}\n\nfunction leave(vnode, rm) {\n  var el = vnode.elm; // call enter callback now\n\n  if (isDef(el._enterCb)) {\n    el._enterCb.cancelled = true;\n\n    el._enterCb();\n  }\n\n  var data = resolveTransition(vnode.data.transition);\n\n  if (isUndef(data) || el.nodeType !== 1) {\n    return rm();\n  }\n  /* istanbul ignore if */\n\n\n  if (isDef(el._leaveCb)) {\n    return;\n  }\n\n  var css = data.css;\n  var type = data.type;\n  var leaveClass = data.leaveClass;\n  var leaveToClass = data.leaveToClass;\n  var leaveActiveClass = data.leaveActiveClass;\n  var beforeLeave = data.beforeLeave;\n  var leave = data.leave;\n  var afterLeave = data.afterLeave;\n  var leaveCancelled = data.leaveCancelled;\n  var delayLeave = data.delayLeave;\n  var duration = data.duration;\n  var expectsCSS = css !== false && !isIE9;\n  var userWantsControl = getHookArgumentsLength(leave);\n  var explicitLeaveDuration = toNumber(isObject(duration) ? duration.leave : duration);\n\n  if ( true && isDef(explicitLeaveDuration)) {\n    checkDuration(explicitLeaveDuration, 'leave', vnode);\n  }\n\n  var cb = el._leaveCb = once(function () {\n    if (el.parentNode && el.parentNode._pending) {\n      el.parentNode._pending[vnode.key] = null;\n    }\n\n    if (expectsCSS) {\n      removeTransitionClass(el, leaveToClass);\n      removeTransitionClass(el, leaveActiveClass);\n    }\n\n    if (cb.cancelled) {\n      if (expectsCSS) {\n        removeTransitionClass(el, leaveClass);\n      }\n\n      leaveCancelled && leaveCancelled(el);\n    } else {\n      rm();\n      afterLeave && afterLeave(el);\n    }\n\n    el._leaveCb = null;\n  });\n\n  if (delayLeave) {\n    delayLeave(performLeave);\n  } else {\n    performLeave();\n  }\n\n  function performLeave() {\n    // the delayed leave may have already been cancelled\n    if (cb.cancelled) {\n      return;\n    } // record leaving element\n\n\n    if (!vnode.data.show && el.parentNode) {\n      (el.parentNode._pending || (el.parentNode._pending = {}))[vnode.key] = vnode;\n    }\n\n    beforeLeave && beforeLeave(el);\n\n    if (expectsCSS) {\n      addTransitionClass(el, leaveClass);\n      addTransitionClass(el, leaveActiveClass);\n      nextFrame(function () {\n        removeTransitionClass(el, leaveClass);\n\n        if (!cb.cancelled) {\n          addTransitionClass(el, leaveToClass);\n\n          if (!userWantsControl) {\n            if (isValidDuration(explicitLeaveDuration)) {\n              setTimeout(cb, explicitLeaveDuration);\n            } else {\n              whenTransitionEnds(el, type, cb);\n            }\n          }\n        }\n      });\n    }\n\n    leave && leave(el, cb);\n\n    if (!expectsCSS && !userWantsControl) {\n      cb();\n    }\n  }\n} // only used in dev mode\n\n\nfunction checkDuration(val, name, vnode) {\n  if (typeof val !== 'number') {\n    warn(\"<transition> explicit \" + name + \" duration is not a valid number - \" + \"got \" + JSON.stringify(val) + \".\", vnode.context);\n  } else if (isNaN(val)) {\n    warn(\"<transition> explicit \" + name + \" duration is NaN - \" + 'the duration expression might be incorrect.', vnode.context);\n  }\n}\n\nfunction isValidDuration(val) {\n  return typeof val === 'number' && !isNaN(val);\n}\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\n\n\nfunction getHookArgumentsLength(fn) {\n  if (isUndef(fn)) {\n    return false;\n  }\n\n  var invokerFns = fn.fns;\n\n  if (isDef(invokerFns)) {\n    // invoker\n    return getHookArgumentsLength(Array.isArray(invokerFns) ? invokerFns[0] : invokerFns);\n  } else {\n    return (fn._length || fn.length) > 1;\n  }\n}\n\nfunction _enter(_, vnode) {\n  if (vnode.data.show !== true) {\n    enter(vnode);\n  }\n}\n\nvar transition = inBrowser ? {\n  create: _enter,\n  activate: _enter,\n  remove: function remove$$1(vnode, rm) {\n    /* istanbul ignore else */\n    if (vnode.data.show !== true) {\n      leave(vnode, rm);\n    } else {\n      rm();\n    }\n  }\n} : {};\nvar platformModules = [attrs, klass, events, domProps, style, transition];\n/*  */\n// the directive module should be applied last, after all\n// built-in modules have been applied.\n\nvar modules = platformModules.concat(baseModules);\nvar patch = createPatchFunction({\n  nodeOps: nodeOps,\n  modules: modules\n});\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\n\nif (isIE9) {\n  // http://www.matts411.com/post/internet-explorer-9-oninput/\n  document.addEventListener('selectionchange', function () {\n    var el = document.activeElement;\n\n    if (el && el.vmodel) {\n      trigger(el, 'input');\n    }\n  });\n}\n\nvar directive = {\n  inserted: function inserted(el, binding, vnode, oldVnode) {\n    if (vnode.tag === 'select') {\n      // #6903\n      if (oldVnode.elm && !oldVnode.elm._vOptions) {\n        mergeVNodeHook(vnode, 'postpatch', function () {\n          directive.componentUpdated(el, binding, vnode);\n        });\n      } else {\n        setSelected(el, binding, vnode.context);\n      }\n\n      el._vOptions = [].map.call(el.options, getValue);\n    } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n      el._vModifiers = binding.modifiers;\n\n      if (!binding.modifiers.lazy) {\n        el.addEventListener('compositionstart', onCompositionStart);\n        el.addEventListener('compositionend', onCompositionEnd); // Safari < 10.2 & UIWebView doesn't fire compositionend when\n        // switching focus before confirming composition choice\n        // this also fixes the issue where some browsers e.g. iOS Chrome\n        // fires \"change\" instead of \"input\" on autocomplete.\n\n        el.addEventListener('change', onCompositionEnd);\n        /* istanbul ignore if */\n\n        if (isIE9) {\n          el.vmodel = true;\n        }\n      }\n    }\n  },\n  componentUpdated: function componentUpdated(el, binding, vnode) {\n    if (vnode.tag === 'select') {\n      setSelected(el, binding, vnode.context); // in case the options rendered by v-for have changed,\n      // it's possible that the value is out-of-sync with the rendered options.\n      // detect such cases and filter out values that no longer has a matching\n      // option in the DOM.\n\n      var prevOptions = el._vOptions;\n      var curOptions = el._vOptions = [].map.call(el.options, getValue);\n\n      if (curOptions.some(function (o, i) {\n        return !looseEqual(o, prevOptions[i]);\n      })) {\n        // trigger change event if\n        // no matching option found for at least one value\n        var needReset = el.multiple ? binding.value.some(function (v) {\n          return hasNoMatchingOption(v, curOptions);\n        }) : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n\n        if (needReset) {\n          trigger(el, 'change');\n        }\n      }\n    }\n  }\n};\n\nfunction setSelected(el, binding, vm) {\n  actuallySetSelected(el, binding, vm);\n  /* istanbul ignore if */\n\n  if (isIE || isEdge) {\n    setTimeout(function () {\n      actuallySetSelected(el, binding, vm);\n    }, 0);\n  }\n}\n\nfunction actuallySetSelected(el, binding, vm) {\n  var value = binding.value;\n  var isMultiple = el.multiple;\n\n  if (isMultiple && !Array.isArray(value)) {\n     true && warn(\"<select multiple v-model=\\\"\" + binding.expression + \"\\\"> \" + \"expects an Array value for its binding, but got \" + Object.prototype.toString.call(value).slice(8, -1), vm);\n    return;\n  }\n\n  var selected, option;\n\n  for (var i = 0, l = el.options.length; i < l; i++) {\n    option = el.options[i];\n\n    if (isMultiple) {\n      selected = looseIndexOf(value, getValue(option)) > -1;\n\n      if (option.selected !== selected) {\n        option.selected = selected;\n      }\n    } else {\n      if (looseEqual(getValue(option), value)) {\n        if (el.selectedIndex !== i) {\n          el.selectedIndex = i;\n        }\n\n        return;\n      }\n    }\n  }\n\n  if (!isMultiple) {\n    el.selectedIndex = -1;\n  }\n}\n\nfunction hasNoMatchingOption(value, options) {\n  return options.every(function (o) {\n    return !looseEqual(o, value);\n  });\n}\n\nfunction getValue(option) {\n  return '_value' in option ? option._value : option.value;\n}\n\nfunction onCompositionStart(e) {\n  e.target.composing = true;\n}\n\nfunction onCompositionEnd(e) {\n  // prevent triggering an input event for no reason\n  if (!e.target.composing) {\n    return;\n  }\n\n  e.target.composing = false;\n  trigger(e.target, 'input');\n}\n\nfunction trigger(el, type) {\n  var e = document.createEvent('HTMLEvents');\n  e.initEvent(type, true, true);\n  el.dispatchEvent(e);\n}\n/*  */\n// recursively search for possible transition defined inside the component root\n\n\nfunction locateNode(vnode) {\n  return vnode.componentInstance && (!vnode.data || !vnode.data.transition) ? locateNode(vnode.componentInstance._vnode) : vnode;\n}\n\nvar show = {\n  bind: function bind(el, ref, vnode) {\n    var value = ref.value;\n    vnode = locateNode(vnode);\n    var transition$$1 = vnode.data && vnode.data.transition;\n    var originalDisplay = el.__vOriginalDisplay = el.style.display === 'none' ? '' : el.style.display;\n\n    if (value && transition$$1) {\n      vnode.data.show = true;\n      enter(vnode, function () {\n        el.style.display = originalDisplay;\n      });\n    } else {\n      el.style.display = value ? originalDisplay : 'none';\n    }\n  },\n  update: function update(el, ref, vnode) {\n    var value = ref.value;\n    var oldValue = ref.oldValue;\n    /* istanbul ignore if */\n\n    if (!value === !oldValue) {\n      return;\n    }\n\n    vnode = locateNode(vnode);\n    var transition$$1 = vnode.data && vnode.data.transition;\n\n    if (transition$$1) {\n      vnode.data.show = true;\n\n      if (value) {\n        enter(vnode, function () {\n          el.style.display = el.__vOriginalDisplay;\n        });\n      } else {\n        leave(vnode, function () {\n          el.style.display = 'none';\n        });\n      }\n    } else {\n      el.style.display = value ? el.__vOriginalDisplay : 'none';\n    }\n  },\n  unbind: function unbind(el, binding, vnode, oldVnode, isDestroy) {\n    if (!isDestroy) {\n      el.style.display = el.__vOriginalDisplay;\n    }\n  }\n};\nvar platformDirectives = {\n  model: directive,\n  show: show\n};\n/*  */\n\nvar transitionProps = {\n  name: String,\n  appear: Boolean,\n  css: Boolean,\n  mode: String,\n  type: String,\n  enterClass: String,\n  leaveClass: String,\n  enterToClass: String,\n  leaveToClass: String,\n  enterActiveClass: String,\n  leaveActiveClass: String,\n  appearClass: String,\n  appearActiveClass: String,\n  appearToClass: String,\n  duration: [Number, String, Object]\n}; // in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\n\nfunction getRealChild(vnode) {\n  var compOptions = vnode && vnode.componentOptions;\n\n  if (compOptions && compOptions.Ctor.options.abstract) {\n    return getRealChild(getFirstComponentChild(compOptions.children));\n  } else {\n    return vnode;\n  }\n}\n\nfunction extractTransitionData(comp) {\n  var data = {};\n  var options = comp.$options; // props\n\n  for (var key in options.propsData) {\n    data[key] = comp[key];\n  } // events.\n  // extract listeners and pass them directly to the transition methods\n\n\n  var listeners = options._parentListeners;\n\n  for (var key$1 in listeners) {\n    data[camelize(key$1)] = listeners[key$1];\n  }\n\n  return data;\n}\n\nfunction placeholder(h, rawChild) {\n  if (/\\d-keep-alive$/.test(rawChild.tag)) {\n    return h('keep-alive', {\n      props: rawChild.componentOptions.propsData\n    });\n  }\n}\n\nfunction hasParentTransition(vnode) {\n  while (vnode = vnode.parent) {\n    if (vnode.data.transition) {\n      return true;\n    }\n  }\n}\n\nfunction isSameChild(child, oldChild) {\n  return oldChild.key === child.key && oldChild.tag === child.tag;\n}\n\nvar isNotTextNode = function (c) {\n  return c.tag || isAsyncPlaceholder(c);\n};\n\nvar isVShowDirective = function (d) {\n  return d.name === 'show';\n};\n\nvar Transition = {\n  name: 'transition',\n  props: transitionProps,\n  abstract: true,\n  render: function render(h) {\n    var this$1 = this;\n    var children = this.$slots.default;\n\n    if (!children) {\n      return;\n    } // filter out text nodes (possible whitespaces)\n\n\n    children = children.filter(isNotTextNode);\n    /* istanbul ignore if */\n\n    if (!children.length) {\n      return;\n    } // warn multiple elements\n\n\n    if ( true && children.length > 1) {\n      warn('<transition> can only be used on a single element. Use ' + '<transition-group> for lists.', this.$parent);\n    }\n\n    var mode = this.mode; // warn invalid mode\n\n    if ( true && mode && mode !== 'in-out' && mode !== 'out-in') {\n      warn('invalid <transition> mode: ' + mode, this.$parent);\n    }\n\n    var rawChild = children[0]; // if this is a component root node and the component's\n    // parent container node also has transition, skip.\n\n    if (hasParentTransition(this.$vnode)) {\n      return rawChild;\n    } // apply transition data to child\n    // use getRealChild() to ignore abstract components e.g. keep-alive\n\n\n    var child = getRealChild(rawChild);\n    /* istanbul ignore if */\n\n    if (!child) {\n      return rawChild;\n    }\n\n    if (this._leaving) {\n      return placeholder(h, rawChild);\n    } // ensure a key that is unique to the vnode type and to this transition\n    // component instance. This key will be used to remove pending leaving nodes\n    // during entering.\n\n\n    var id = \"__transition-\" + this._uid + \"-\";\n    child.key = child.key == null ? child.isComment ? id + 'comment' : id + child.tag : isPrimitive(child.key) ? String(child.key).indexOf(id) === 0 ? child.key : id + child.key : child.key;\n    var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n    var oldRawChild = this._vnode;\n    var oldChild = getRealChild(oldRawChild); // mark v-show\n    // so that the transition module can hand over the control to the directive\n\n    if (child.data.directives && child.data.directives.some(isVShowDirective)) {\n      child.data.show = true;\n    }\n\n    if (oldChild && oldChild.data && !isSameChild(child, oldChild) && !isAsyncPlaceholder(oldChild) && // #6687 component root is a comment node\n    !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)) {\n      // replace old child transition data with fresh one\n      // important for dynamic transitions!\n      var oldData = oldChild.data.transition = extend({}, data); // handle transition mode\n\n      if (mode === 'out-in') {\n        // return placeholder node and queue update when leave finishes\n        this._leaving = true;\n        mergeVNodeHook(oldData, 'afterLeave', function () {\n          this$1._leaving = false;\n          this$1.$forceUpdate();\n        });\n        return placeholder(h, rawChild);\n      } else if (mode === 'in-out') {\n        if (isAsyncPlaceholder(child)) {\n          return oldRawChild;\n        }\n\n        var delayedLeave;\n\n        var performLeave = function () {\n          delayedLeave();\n        };\n\n        mergeVNodeHook(data, 'afterEnter', performLeave);\n        mergeVNodeHook(data, 'enterCancelled', performLeave);\n        mergeVNodeHook(oldData, 'delayLeave', function (leave) {\n          delayedLeave = leave;\n        });\n      }\n    }\n\n    return rawChild;\n  }\n};\n/*  */\n\nvar props = extend({\n  tag: String,\n  moveClass: String\n}, transitionProps);\ndelete props.mode;\nvar TransitionGroup = {\n  props: props,\n  beforeMount: function beforeMount() {\n    var this$1 = this;\n    var update = this._update;\n\n    this._update = function (vnode, hydrating) {\n      var restoreActiveInstance = setActiveInstance(this$1); // force removing pass\n\n      this$1.__patch__(this$1._vnode, this$1.kept, false, // hydrating\n      true // removeOnly (!important, avoids unnecessary moves)\n      );\n\n      this$1._vnode = this$1.kept;\n      restoreActiveInstance();\n      update.call(this$1, vnode, hydrating);\n    };\n  },\n  render: function render(h) {\n    var tag = this.tag || this.$vnode.data.tag || 'span';\n    var map = Object.create(null);\n    var prevChildren = this.prevChildren = this.children;\n    var rawChildren = this.$slots.default || [];\n    var children = this.children = [];\n    var transitionData = extractTransitionData(this);\n\n    for (var i = 0; i < rawChildren.length; i++) {\n      var c = rawChildren[i];\n\n      if (c.tag) {\n        if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n          children.push(c);\n          map[c.key] = c;\n          (c.data || (c.data = {})).transition = transitionData;\n        } else if (true) {\n          var opts = c.componentOptions;\n          var name = opts ? opts.Ctor.options.name || opts.tag || '' : c.tag;\n          warn(\"<transition-group> children must be keyed: <\" + name + \">\");\n        }\n      }\n    }\n\n    if (prevChildren) {\n      var kept = [];\n      var removed = [];\n\n      for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n        var c$1 = prevChildren[i$1];\n        c$1.data.transition = transitionData;\n        c$1.data.pos = c$1.elm.getBoundingClientRect();\n\n        if (map[c$1.key]) {\n          kept.push(c$1);\n        } else {\n          removed.push(c$1);\n        }\n      }\n\n      this.kept = h(tag, null, kept);\n      this.removed = removed;\n    }\n\n    return h(tag, null, children);\n  },\n  updated: function updated() {\n    var children = this.prevChildren;\n    var moveClass = this.moveClass || (this.name || 'v') + '-move';\n\n    if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n      return;\n    } // we divide the work into three loops to avoid mixing DOM reads and writes\n    // in each iteration - which helps prevent layout thrashing.\n\n\n    children.forEach(callPendingCbs);\n    children.forEach(recordPosition);\n    children.forEach(applyTranslation); // force reflow to put everything in position\n    // assign to this to avoid being removed in tree-shaking\n    // $flow-disable-line\n\n    this._reflow = document.body.offsetHeight;\n    children.forEach(function (c) {\n      if (c.data.moved) {\n        var el = c.elm;\n        var s = el.style;\n        addTransitionClass(el, moveClass);\n        s.transform = s.WebkitTransform = s.transitionDuration = '';\n        el.addEventListener(transitionEndEvent, el._moveCb = function cb(e) {\n          if (e && e.target !== el) {\n            return;\n          }\n\n          if (!e || /transform$/.test(e.propertyName)) {\n            el.removeEventListener(transitionEndEvent, cb);\n            el._moveCb = null;\n            removeTransitionClass(el, moveClass);\n          }\n        });\n      }\n    });\n  },\n  methods: {\n    hasMove: function hasMove(el, moveClass) {\n      /* istanbul ignore if */\n      if (!hasTransition) {\n        return false;\n      }\n      /* istanbul ignore if */\n\n\n      if (this._hasMove) {\n        return this._hasMove;\n      } // Detect whether an element with the move class applied has\n      // CSS transitions. Since the element may be inside an entering\n      // transition at this very moment, we make a clone of it and remove\n      // all other transition classes applied to ensure only the move class\n      // is applied.\n\n\n      var clone = el.cloneNode();\n\n      if (el._transitionClasses) {\n        el._transitionClasses.forEach(function (cls) {\n          removeClass(clone, cls);\n        });\n      }\n\n      addClass(clone, moveClass);\n      clone.style.display = 'none';\n      this.$el.appendChild(clone);\n      var info = getTransitionInfo(clone);\n      this.$el.removeChild(clone);\n      return this._hasMove = info.hasTransform;\n    }\n  }\n};\n\nfunction callPendingCbs(c) {\n  /* istanbul ignore if */\n  if (c.elm._moveCb) {\n    c.elm._moveCb();\n  }\n  /* istanbul ignore if */\n\n\n  if (c.elm._enterCb) {\n    c.elm._enterCb();\n  }\n}\n\nfunction recordPosition(c) {\n  c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation(c) {\n  var oldPos = c.data.pos;\n  var newPos = c.data.newPos;\n  var dx = oldPos.left - newPos.left;\n  var dy = oldPos.top - newPos.top;\n\n  if (dx || dy) {\n    c.data.moved = true;\n    var s = c.elm.style;\n    s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n    s.transitionDuration = '0s';\n  }\n}\n\nvar platformComponents = {\n  Transition: Transition,\n  TransitionGroup: TransitionGroup\n};\n/*  */\n// install platform specific utils\n\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement; // install platform runtime directives & components\n\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents); // install platform patch function\n\nVue.prototype.__patch__ = inBrowser ? patch : noop; // public mount method\n\nVue.prototype.$mount = function (el, hydrating) {\n  el = el && inBrowser ? query(el) : undefined;\n  return mountComponent(this, el, hydrating);\n}; // devtools global hook\n\n/* istanbul ignore next */\n\n\nif (inBrowser) {\n  setTimeout(function () {\n    if (config.devtools) {\n      if (devtools) {\n        devtools.emit('init', Vue);\n      } else if (true) {\n        console[console.info ? 'info' : 'log']('Download the Vue Devtools extension for a better development experience:\\n' + 'https://github.com/vuejs/vue-devtools');\n      }\n    }\n\n    if ( true && config.productionTip !== false && typeof console !== 'undefined') {\n      console[console.info ? 'info' : 'log'](\"You are running Vue in development mode.\\n\" + \"Make sure to turn on production mode when deploying for production.\\n\" + \"See more tips at https://vuejs.org/guide/deployment.html\");\n    }\n  }, 0);\n}\n/*  */\n\n\nvar defaultTagRE = /\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g;\nvar regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\nvar buildRegex = cached(function (delimiters) {\n  var open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\n  var close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\n  return new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g');\n});\n\nfunction parseText(text, delimiters) {\n  var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\n\n  if (!tagRE.test(text)) {\n    return;\n  }\n\n  var tokens = [];\n  var rawTokens = [];\n  var lastIndex = tagRE.lastIndex = 0;\n  var match, index, tokenValue;\n\n  while (match = tagRE.exec(text)) {\n    index = match.index; // push text token\n\n    if (index > lastIndex) {\n      rawTokens.push(tokenValue = text.slice(lastIndex, index));\n      tokens.push(JSON.stringify(tokenValue));\n    } // tag token\n\n\n    var exp = parseFilters(match[1].trim());\n    tokens.push(\"_s(\" + exp + \")\");\n    rawTokens.push({\n      '@binding': exp\n    });\n    lastIndex = index + match[0].length;\n  }\n\n  if (lastIndex < text.length) {\n    rawTokens.push(tokenValue = text.slice(lastIndex));\n    tokens.push(JSON.stringify(tokenValue));\n  }\n\n  return {\n    expression: tokens.join('+'),\n    tokens: rawTokens\n  };\n}\n/*  */\n\n\nfunction transformNode(el, options) {\n  var warn = options.warn || baseWarn;\n  var staticClass = getAndRemoveAttr(el, 'class');\n\n  if ( true && staticClass) {\n    var res = parseText(staticClass, options.delimiters);\n\n    if (res) {\n      warn(\"class=\\\"\" + staticClass + \"\\\": \" + 'Interpolation inside attributes has been removed. ' + 'Use v-bind or the colon shorthand instead. For example, ' + 'instead of <div class=\"{{ val }}\">, use <div :class=\"val\">.', el.rawAttrsMap['class']);\n    }\n  }\n\n  if (staticClass) {\n    el.staticClass = JSON.stringify(staticClass);\n  }\n\n  var classBinding = getBindingAttr(el, 'class', false\n  /* getStatic */\n  );\n\n  if (classBinding) {\n    el.classBinding = classBinding;\n  }\n}\n\nfunction genData(el) {\n  var data = '';\n\n  if (el.staticClass) {\n    data += \"staticClass:\" + el.staticClass + \",\";\n  }\n\n  if (el.classBinding) {\n    data += \"class:\" + el.classBinding + \",\";\n  }\n\n  return data;\n}\n\nvar klass$1 = {\n  staticKeys: ['staticClass'],\n  transformNode: transformNode,\n  genData: genData\n};\n/*  */\n\nfunction transformNode$1(el, options) {\n  var warn = options.warn || baseWarn;\n  var staticStyle = getAndRemoveAttr(el, 'style');\n\n  if (staticStyle) {\n    /* istanbul ignore if */\n    if (true) {\n      var res = parseText(staticStyle, options.delimiters);\n\n      if (res) {\n        warn(\"style=\\\"\" + staticStyle + \"\\\": \" + 'Interpolation inside attributes has been removed. ' + 'Use v-bind or the colon shorthand instead. For example, ' + 'instead of <div style=\"{{ val }}\">, use <div :style=\"val\">.', el.rawAttrsMap['style']);\n      }\n    }\n\n    el.staticStyle = JSON.stringify(parseStyleText(staticStyle));\n  }\n\n  var styleBinding = getBindingAttr(el, 'style', false\n  /* getStatic */\n  );\n\n  if (styleBinding) {\n    el.styleBinding = styleBinding;\n  }\n}\n\nfunction genData$1(el) {\n  var data = '';\n\n  if (el.staticStyle) {\n    data += \"staticStyle:\" + el.staticStyle + \",\";\n  }\n\n  if (el.styleBinding) {\n    data += \"style:(\" + el.styleBinding + \"),\";\n  }\n\n  return data;\n}\n\nvar style$1 = {\n  staticKeys: ['staticStyle'],\n  transformNode: transformNode$1,\n  genData: genData$1\n};\n/*  */\n\nvar decoder;\nvar he = {\n  decode: function decode(html) {\n    decoder = decoder || document.createElement('div');\n    decoder.innerHTML = html;\n    return decoder.textContent;\n  }\n};\n/*  */\n\nvar isUnaryTag = makeMap('area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' + 'link,meta,param,source,track,wbr'); // Elements that you can, intentionally, leave open\n// (and which close themselves)\n\nvar canBeLeftOpenTag = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'); // HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3\n// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content\n\nvar isNonPhrasingTag = makeMap('address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' + 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' + 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' + 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' + 'title,tr,track');\n/**\n * Not type-checking this file because it's mostly vendor code.\n */\n// Regular Expressions for parsing tags and attributes\n\nvar attribute = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\nvar dynamicArgAttribute = /^\\s*((?:v-[\\w-]+:|@|:|#)\\[[^=]+?\\][^\\s\"'<>\\/=]*)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\nvar ncname = \"[a-zA-Z_][\\\\-\\\\.0-9_a-zA-Z\" + unicodeRegExp.source + \"]*\";\nvar qnameCapture = \"((?:\" + ncname + \"\\\\:)?\" + ncname + \")\";\nvar startTagOpen = new RegExp(\"^<\" + qnameCapture);\nvar startTagClose = /^\\s*(\\/?)>/;\nvar endTag = new RegExp(\"^<\\\\/\" + qnameCapture + \"[^>]*>\");\nvar doctype = /^<!DOCTYPE [^>]+>/i; // #7298: escape - to avoid being passed as HTML comment when inlined in page\n\nvar comment = /^<!\\--/;\nvar conditionalComment = /^<!\\[/; // Special Elements (can contain anything)\n\nvar isPlainTextElement = makeMap('script,style,textarea', true);\nvar reCache = {};\nvar decodingMap = {\n  '&lt;': '<',\n  '&gt;': '>',\n  '&quot;': '\"',\n  '&amp;': '&',\n  '&#10;': '\\n',\n  '&#9;': '\\t',\n  '&#39;': \"'\"\n};\nvar encodedAttr = /&(?:lt|gt|quot|amp|#39);/g;\nvar encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g; // #5992\n\nvar isIgnoreNewlineTag = makeMap('pre,textarea', true);\n\nvar shouldIgnoreFirstNewline = function (tag, html) {\n  return tag && isIgnoreNewlineTag(tag) && html[0] === '\\n';\n};\n\nfunction decodeAttr(value, shouldDecodeNewlines) {\n  var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;\n  return value.replace(re, function (match) {\n    return decodingMap[match];\n  });\n}\n\nfunction parseHTML(html, options) {\n  var stack = [];\n  var expectHTML = options.expectHTML;\n  var isUnaryTag$$1 = options.isUnaryTag || no;\n  var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;\n  var index = 0;\n  var last, lastTag;\n\n  while (html) {\n    last = html; // Make sure we're not in a plaintext content element like script/style\n\n    if (!lastTag || !isPlainTextElement(lastTag)) {\n      var textEnd = html.indexOf('<');\n\n      if (textEnd === 0) {\n        // Comment:\n        if (comment.test(html)) {\n          var commentEnd = html.indexOf('-->');\n\n          if (commentEnd >= 0) {\n            if (options.shouldKeepComment) {\n              options.comment(html.substring(4, commentEnd), index, index + commentEnd + 3);\n            }\n\n            advance(commentEnd + 3);\n            continue;\n          }\n        } // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\n\n\n        if (conditionalComment.test(html)) {\n          var conditionalEnd = html.indexOf(']>');\n\n          if (conditionalEnd >= 0) {\n            advance(conditionalEnd + 2);\n            continue;\n          }\n        } // Doctype:\n\n\n        var doctypeMatch = html.match(doctype);\n\n        if (doctypeMatch) {\n          advance(doctypeMatch[0].length);\n          continue;\n        } // End tag:\n\n\n        var endTagMatch = html.match(endTag);\n\n        if (endTagMatch) {\n          var curIndex = index;\n          advance(endTagMatch[0].length);\n          parseEndTag(endTagMatch[1], curIndex, index);\n          continue;\n        } // Start tag:\n\n\n        var startTagMatch = parseStartTag();\n\n        if (startTagMatch) {\n          handleStartTag(startTagMatch);\n\n          if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {\n            advance(1);\n          }\n\n          continue;\n        }\n      }\n\n      var text = void 0,\n          rest = void 0,\n          next = void 0;\n\n      if (textEnd >= 0) {\n        rest = html.slice(textEnd);\n\n        while (!endTag.test(rest) && !startTagOpen.test(rest) && !comment.test(rest) && !conditionalComment.test(rest)) {\n          // < in plain text, be forgiving and treat it as text\n          next = rest.indexOf('<', 1);\n\n          if (next < 0) {\n            break;\n          }\n\n          textEnd += next;\n          rest = html.slice(textEnd);\n        }\n\n        text = html.substring(0, textEnd);\n      }\n\n      if (textEnd < 0) {\n        text = html;\n      }\n\n      if (text) {\n        advance(text.length);\n      }\n\n      if (options.chars && text) {\n        options.chars(text, index - text.length, index);\n      }\n    } else {\n      var endTagLength = 0;\n      var stackedTag = lastTag.toLowerCase();\n      var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\\\s\\\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));\n      var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {\n        endTagLength = endTag.length;\n\n        if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {\n          text = text.replace(/<!\\--([\\s\\S]*?)-->/g, '$1') // #7298\n          .replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, '$1');\n        }\n\n        if (shouldIgnoreFirstNewline(stackedTag, text)) {\n          text = text.slice(1);\n        }\n\n        if (options.chars) {\n          options.chars(text);\n        }\n\n        return '';\n      });\n      index += html.length - rest$1.length;\n      html = rest$1;\n      parseEndTag(stackedTag, index - endTagLength, index);\n    }\n\n    if (html === last) {\n      options.chars && options.chars(html);\n\n      if ( true && !stack.length && options.warn) {\n        options.warn(\"Mal-formatted tag at end of template: \\\"\" + html + \"\\\"\", {\n          start: index + html.length\n        });\n      }\n\n      break;\n    }\n  } // Clean up any remaining tags\n\n\n  parseEndTag();\n\n  function advance(n) {\n    index += n;\n    html = html.substring(n);\n  }\n\n  function parseStartTag() {\n    var start = html.match(startTagOpen);\n\n    if (start) {\n      var match = {\n        tagName: start[1],\n        attrs: [],\n        start: index\n      };\n      advance(start[0].length);\n      var end, attr;\n\n      while (!(end = html.match(startTagClose)) && (attr = html.match(dynamicArgAttribute) || html.match(attribute))) {\n        attr.start = index;\n        advance(attr[0].length);\n        attr.end = index;\n        match.attrs.push(attr);\n      }\n\n      if (end) {\n        match.unarySlash = end[1];\n        advance(end[0].length);\n        match.end = index;\n        return match;\n      }\n    }\n  }\n\n  function handleStartTag(match) {\n    var tagName = match.tagName;\n    var unarySlash = match.unarySlash;\n\n    if (expectHTML) {\n      if (lastTag === 'p' && isNonPhrasingTag(tagName)) {\n        parseEndTag(lastTag);\n      }\n\n      if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {\n        parseEndTag(tagName);\n      }\n    }\n\n    var unary = isUnaryTag$$1(tagName) || !!unarySlash;\n    var l = match.attrs.length;\n    var attrs = new Array(l);\n\n    for (var i = 0; i < l; i++) {\n      var args = match.attrs[i];\n      var value = args[3] || args[4] || args[5] || '';\n      var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href' ? options.shouldDecodeNewlinesForHref : options.shouldDecodeNewlines;\n      attrs[i] = {\n        name: args[1],\n        value: decodeAttr(value, shouldDecodeNewlines)\n      };\n\n      if ( true && options.outputSourceRange) {\n        attrs[i].start = args.start + args[0].match(/^\\s*/).length;\n        attrs[i].end = args.end;\n      }\n    }\n\n    if (!unary) {\n      stack.push({\n        tag: tagName,\n        lowerCasedTag: tagName.toLowerCase(),\n        attrs: attrs,\n        start: match.start,\n        end: match.end\n      });\n      lastTag = tagName;\n    }\n\n    if (options.start) {\n      options.start(tagName, attrs, unary, match.start, match.end);\n    }\n  }\n\n  function parseEndTag(tagName, start, end) {\n    var pos, lowerCasedTagName;\n\n    if (start == null) {\n      start = index;\n    }\n\n    if (end == null) {\n      end = index;\n    } // Find the closest opened tag of the same type\n\n\n    if (tagName) {\n      lowerCasedTagName = tagName.toLowerCase();\n\n      for (pos = stack.length - 1; pos >= 0; pos--) {\n        if (stack[pos].lowerCasedTag === lowerCasedTagName) {\n          break;\n        }\n      }\n    } else {\n      // If no tag name is provided, clean shop\n      pos = 0;\n    }\n\n    if (pos >= 0) {\n      // Close all the open elements, up the stack\n      for (var i = stack.length - 1; i >= pos; i--) {\n        if ( true && (i > pos || !tagName) && options.warn) {\n          options.warn(\"tag <\" + stack[i].tag + \"> has no matching end tag.\", {\n            start: stack[i].start,\n            end: stack[i].end\n          });\n        }\n\n        if (options.end) {\n          options.end(stack[i].tag, start, end);\n        }\n      } // Remove the open elements from the stack\n\n\n      stack.length = pos;\n      lastTag = pos && stack[pos - 1].tag;\n    } else if (lowerCasedTagName === 'br') {\n      if (options.start) {\n        options.start(tagName, [], true, start, end);\n      }\n    } else if (lowerCasedTagName === 'p') {\n      if (options.start) {\n        options.start(tagName, [], false, start, end);\n      }\n\n      if (options.end) {\n        options.end(tagName, start, end);\n      }\n    }\n  }\n}\n/*  */\n\n\nvar onRE = /^@|^v-on:/;\nvar dirRE = /^v-|^@|^:|^#/;\nvar forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\nvar forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nvar stripParensRE = /^\\(|\\)$/g;\nvar dynamicArgRE = /^\\[.*\\]$/;\nvar argRE = /:(.*)$/;\nvar bindRE = /^:|^\\.|^v-bind:/;\nvar modifierRE = /\\.[^.\\]]+(?=[^\\]]*$)/g;\nvar slotRE = /^v-slot(:|$)|^#/;\nvar lineBreakRE = /[\\r\\n]/;\nvar whitespaceRE$1 = /[ \\f\\t\\r\\n]+/g;\nvar invalidAttributeRE = /[\\s\"'<>\\/=]/;\nvar decodeHTMLCached = cached(he.decode);\nvar emptySlotScopeToken = \"_empty_\"; // configurable state\n\nvar warn$2;\nvar delimiters;\nvar transforms;\nvar preTransforms;\nvar postTransforms;\nvar platformIsPreTag;\nvar platformMustUseProp;\nvar platformGetTagNamespace;\nvar maybeComponent;\n\nfunction createASTElement(tag, attrs, parent) {\n  return {\n    type: 1,\n    tag: tag,\n    attrsList: attrs,\n    attrsMap: makeAttrsMap(attrs),\n    rawAttrsMap: {},\n    parent: parent,\n    children: []\n  };\n}\n/**\n * Convert HTML string to AST.\n */\n\n\nfunction parse(template, options) {\n  warn$2 = options.warn || baseWarn;\n  platformIsPreTag = options.isPreTag || no;\n  platformMustUseProp = options.mustUseProp || no;\n  platformGetTagNamespace = options.getTagNamespace || no;\n  var isReservedTag = options.isReservedTag || no;\n\n  maybeComponent = function (el) {\n    return !!(el.component || el.attrsMap[':is'] || el.attrsMap['v-bind:is'] || !(el.attrsMap.is ? isReservedTag(el.attrsMap.is) : isReservedTag(el.tag)));\n  };\n\n  transforms = pluckModuleFunction(options.modules, 'transformNode');\n  preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\n  postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\n  delimiters = options.delimiters;\n  var stack = [];\n  var preserveWhitespace = options.preserveWhitespace !== false;\n  var whitespaceOption = options.whitespace;\n  var root;\n  var currentParent;\n  var inVPre = false;\n  var inPre = false;\n  var warned = false;\n\n  function warnOnce(msg, range) {\n    if (!warned) {\n      warned = true;\n      warn$2(msg, range);\n    }\n  }\n\n  function closeElement(element) {\n    trimEndingWhitespace(element);\n\n    if (!inVPre && !element.processed) {\n      element = processElement(element, options);\n    } // tree management\n\n\n    if (!stack.length && element !== root) {\n      // allow root elements with v-if, v-else-if and v-else\n      if (root.if && (element.elseif || element.else)) {\n        if (true) {\n          checkRootConstraints(element);\n        }\n\n        addIfCondition(root, {\n          exp: element.elseif,\n          block: element\n        });\n      } else if (true) {\n        warnOnce(\"Component template should contain exactly one root element. \" + \"If you are using v-if on multiple elements, \" + \"use v-else-if to chain them instead.\", {\n          start: element.start\n        });\n      }\n    }\n\n    if (currentParent && !element.forbidden) {\n      if (element.elseif || element.else) {\n        processIfConditions(element, currentParent);\n      } else {\n        if (element.slotScope) {\n          // scoped slot\n          // keep it in the children list so that v-else(-if) conditions can\n          // find it as the prev node.\n          var name = element.slotTarget || '\"default\"';\n          (currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;\n        }\n\n        currentParent.children.push(element);\n        element.parent = currentParent;\n      }\n    } // final children cleanup\n    // filter out scoped slots\n\n\n    element.children = element.children.filter(function (c) {\n      return !c.slotScope;\n    }); // remove trailing whitespace node again\n\n    trimEndingWhitespace(element); // check pre state\n\n    if (element.pre) {\n      inVPre = false;\n    }\n\n    if (platformIsPreTag(element.tag)) {\n      inPre = false;\n    } // apply post-transforms\n\n\n    for (var i = 0; i < postTransforms.length; i++) {\n      postTransforms[i](element, options);\n    }\n  }\n\n  function trimEndingWhitespace(el) {\n    // remove trailing whitespace node\n    if (!inPre) {\n      var lastNode;\n\n      while ((lastNode = el.children[el.children.length - 1]) && lastNode.type === 3 && lastNode.text === ' ') {\n        el.children.pop();\n      }\n    }\n  }\n\n  function checkRootConstraints(el) {\n    if (el.tag === 'slot' || el.tag === 'template') {\n      warnOnce(\"Cannot use <\" + el.tag + \"> as component root element because it may \" + 'contain multiple nodes.', {\n        start: el.start\n      });\n    }\n\n    if (el.attrsMap.hasOwnProperty('v-for')) {\n      warnOnce('Cannot use v-for on stateful component root element because ' + 'it renders multiple elements.', el.rawAttrsMap['v-for']);\n    }\n  }\n\n  parseHTML(template, {\n    warn: warn$2,\n    expectHTML: options.expectHTML,\n    isUnaryTag: options.isUnaryTag,\n    canBeLeftOpenTag: options.canBeLeftOpenTag,\n    shouldDecodeNewlines: options.shouldDecodeNewlines,\n    shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,\n    shouldKeepComment: options.comments,\n    outputSourceRange: options.outputSourceRange,\n    start: function start(tag, attrs, unary, start$1, end) {\n      // check namespace.\n      // inherit parent ns if there is one\n      var ns = currentParent && currentParent.ns || platformGetTagNamespace(tag); // handle IE svg bug\n\n      /* istanbul ignore if */\n\n      if (isIE && ns === 'svg') {\n        attrs = guardIESVGBug(attrs);\n      }\n\n      var element = createASTElement(tag, attrs, currentParent);\n\n      if (ns) {\n        element.ns = ns;\n      }\n\n      if (true) {\n        if (options.outputSourceRange) {\n          element.start = start$1;\n          element.end = end;\n          element.rawAttrsMap = element.attrsList.reduce(function (cumulated, attr) {\n            cumulated[attr.name] = attr;\n            return cumulated;\n          }, {});\n        }\n\n        attrs.forEach(function (attr) {\n          if (invalidAttributeRE.test(attr.name)) {\n            warn$2(\"Invalid dynamic argument expression: attribute names cannot contain \" + \"spaces, quotes, <, >, / or =.\", {\n              start: attr.start + attr.name.indexOf(\"[\"),\n              end: attr.start + attr.name.length\n            });\n          }\n        });\n      }\n\n      if (isForbiddenTag(element) && !isServerRendering()) {\n        element.forbidden = true;\n         true && warn$2('Templates should only be responsible for mapping the state to the ' + 'UI. Avoid placing tags with side-effects in your templates, such as ' + \"<\" + tag + \">\" + ', as they will not be parsed.', {\n          start: element.start\n        });\n      } // apply pre-transforms\n\n\n      for (var i = 0; i < preTransforms.length; i++) {\n        element = preTransforms[i](element, options) || element;\n      }\n\n      if (!inVPre) {\n        processPre(element);\n\n        if (element.pre) {\n          inVPre = true;\n        }\n      }\n\n      if (platformIsPreTag(element.tag)) {\n        inPre = true;\n      }\n\n      if (inVPre) {\n        processRawAttrs(element);\n      } else if (!element.processed) {\n        // structural directives\n        processFor(element);\n        processIf(element);\n        processOnce(element);\n      }\n\n      if (!root) {\n        root = element;\n\n        if (true) {\n          checkRootConstraints(root);\n        }\n      }\n\n      if (!unary) {\n        currentParent = element;\n        stack.push(element);\n      } else {\n        closeElement(element);\n      }\n    },\n    end: function end(tag, start, end$1) {\n      var element = stack[stack.length - 1]; // pop stack\n\n      stack.length -= 1;\n      currentParent = stack[stack.length - 1];\n\n      if ( true && options.outputSourceRange) {\n        element.end = end$1;\n      }\n\n      closeElement(element);\n    },\n    chars: function chars(text, start, end) {\n      if (!currentParent) {\n        if (true) {\n          if (text === template) {\n            warnOnce('Component template requires a root element, rather than just text.', {\n              start: start\n            });\n          } else if (text = text.trim()) {\n            warnOnce(\"text \\\"\" + text + \"\\\" outside root element will be ignored.\", {\n              start: start\n            });\n          }\n        }\n\n        return;\n      } // IE textarea placeholder bug\n\n      /* istanbul ignore if */\n\n\n      if (isIE && currentParent.tag === 'textarea' && currentParent.attrsMap.placeholder === text) {\n        return;\n      }\n\n      var children = currentParent.children;\n\n      if (inPre || text.trim()) {\n        text = isTextTag(currentParent) ? text : decodeHTMLCached(text);\n      } else if (!children.length) {\n        // remove the whitespace-only node right after an opening tag\n        text = '';\n      } else if (whitespaceOption) {\n        if (whitespaceOption === 'condense') {\n          // in condense mode, remove the whitespace node if it contains\n          // line break, otherwise condense to a single space\n          text = lineBreakRE.test(text) ? '' : ' ';\n        } else {\n          text = ' ';\n        }\n      } else {\n        text = preserveWhitespace ? ' ' : '';\n      }\n\n      if (text) {\n        if (!inPre && whitespaceOption === 'condense') {\n          // condense consecutive whitespaces into single space\n          text = text.replace(whitespaceRE$1, ' ');\n        }\n\n        var res;\n        var child;\n\n        if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {\n          child = {\n            type: 2,\n            expression: res.expression,\n            tokens: res.tokens,\n            text: text\n          };\n        } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {\n          child = {\n            type: 3,\n            text: text\n          };\n        }\n\n        if (child) {\n          if ( true && options.outputSourceRange) {\n            child.start = start;\n            child.end = end;\n          }\n\n          children.push(child);\n        }\n      }\n    },\n    comment: function comment(text, start, end) {\n      // adding anything as a sibling to the root node is forbidden\n      // comments should still be allowed, but ignored\n      if (currentParent) {\n        var child = {\n          type: 3,\n          text: text,\n          isComment: true\n        };\n\n        if ( true && options.outputSourceRange) {\n          child.start = start;\n          child.end = end;\n        }\n\n        currentParent.children.push(child);\n      }\n    }\n  });\n  return root;\n}\n\nfunction processPre(el) {\n  if (getAndRemoveAttr(el, 'v-pre') != null) {\n    el.pre = true;\n  }\n}\n\nfunction processRawAttrs(el) {\n  var list = el.attrsList;\n  var len = list.length;\n\n  if (len) {\n    var attrs = el.attrs = new Array(len);\n\n    for (var i = 0; i < len; i++) {\n      attrs[i] = {\n        name: list[i].name,\n        value: JSON.stringify(list[i].value)\n      };\n\n      if (list[i].start != null) {\n        attrs[i].start = list[i].start;\n        attrs[i].end = list[i].end;\n      }\n    }\n  } else if (!el.pre) {\n    // non root node in pre blocks with no attributes\n    el.plain = true;\n  }\n}\n\nfunction processElement(element, options) {\n  processKey(element); // determine whether this is a plain element after\n  // removing structural attributes\n\n  element.plain = !element.key && !element.scopedSlots && !element.attrsList.length;\n  processRef(element);\n  processSlotContent(element);\n  processSlotOutlet(element);\n  processComponent(element);\n\n  for (var i = 0; i < transforms.length; i++) {\n    element = transforms[i](element, options) || element;\n  }\n\n  processAttrs(element);\n  return element;\n}\n\nfunction processKey(el) {\n  var exp = getBindingAttr(el, 'key');\n\n  if (exp) {\n    if (true) {\n      if (el.tag === 'template') {\n        warn$2(\"<template> cannot be keyed. Place the key on real elements instead.\", getRawBindingAttr(el, 'key'));\n      }\n\n      if (el.for) {\n        var iterator = el.iterator2 || el.iterator1;\n        var parent = el.parent;\n\n        if (iterator && iterator === exp && parent && parent.tag === 'transition-group') {\n          warn$2(\"Do not use v-for index as key on <transition-group> children, \" + \"this is the same as not using keys.\", getRawBindingAttr(el, 'key'), true\n          /* tip */\n          );\n        }\n      }\n    }\n\n    el.key = exp;\n  }\n}\n\nfunction processRef(el) {\n  var ref = getBindingAttr(el, 'ref');\n\n  if (ref) {\n    el.ref = ref;\n    el.refInFor = checkInFor(el);\n  }\n}\n\nfunction processFor(el) {\n  var exp;\n\n  if (exp = getAndRemoveAttr(el, 'v-for')) {\n    var res = parseFor(exp);\n\n    if (res) {\n      extend(el, res);\n    } else if (true) {\n      warn$2(\"Invalid v-for expression: \" + exp, el.rawAttrsMap['v-for']);\n    }\n  }\n}\n\nfunction parseFor(exp) {\n  var inMatch = exp.match(forAliasRE);\n\n  if (!inMatch) {\n    return;\n  }\n\n  var res = {};\n  res.for = inMatch[2].trim();\n  var alias = inMatch[1].trim().replace(stripParensRE, '');\n  var iteratorMatch = alias.match(forIteratorRE);\n\n  if (iteratorMatch) {\n    res.alias = alias.replace(forIteratorRE, '').trim();\n    res.iterator1 = iteratorMatch[1].trim();\n\n    if (iteratorMatch[2]) {\n      res.iterator2 = iteratorMatch[2].trim();\n    }\n  } else {\n    res.alias = alias;\n  }\n\n  return res;\n}\n\nfunction processIf(el) {\n  var exp = getAndRemoveAttr(el, 'v-if');\n\n  if (exp) {\n    el.if = exp;\n    addIfCondition(el, {\n      exp: exp,\n      block: el\n    });\n  } else {\n    if (getAndRemoveAttr(el, 'v-else') != null) {\n      el.else = true;\n    }\n\n    var elseif = getAndRemoveAttr(el, 'v-else-if');\n\n    if (elseif) {\n      el.elseif = elseif;\n    }\n  }\n}\n\nfunction processIfConditions(el, parent) {\n  var prev = findPrevElement(parent.children);\n\n  if (prev && prev.if) {\n    addIfCondition(prev, {\n      exp: el.elseif,\n      block: el\n    });\n  } else if (true) {\n    warn$2(\"v-\" + (el.elseif ? 'else-if=\"' + el.elseif + '\"' : 'else') + \" \" + \"used on element <\" + el.tag + \"> without corresponding v-if.\", el.rawAttrsMap[el.elseif ? 'v-else-if' : 'v-else']);\n  }\n}\n\nfunction findPrevElement(children) {\n  var i = children.length;\n\n  while (i--) {\n    if (children[i].type === 1) {\n      return children[i];\n    } else {\n      if ( true && children[i].text !== ' ') {\n        warn$2(\"text \\\"\" + children[i].text.trim() + \"\\\" between v-if and v-else(-if) \" + \"will be ignored.\", children[i]);\n      }\n\n      children.pop();\n    }\n  }\n}\n\nfunction addIfCondition(el, condition) {\n  if (!el.ifConditions) {\n    el.ifConditions = [];\n  }\n\n  el.ifConditions.push(condition);\n}\n\nfunction processOnce(el) {\n  var once$$1 = getAndRemoveAttr(el, 'v-once');\n\n  if (once$$1 != null) {\n    el.once = true;\n  }\n} // handle content being passed to a component as slot,\n// e.g. <template slot=\"xxx\">, <div slot-scope=\"xxx\">\n\n\nfunction processSlotContent(el) {\n  var slotScope;\n\n  if (el.tag === 'template') {\n    slotScope = getAndRemoveAttr(el, 'scope');\n    /* istanbul ignore if */\n\n    if ( true && slotScope) {\n      warn$2(\"the \\\"scope\\\" attribute for scoped slots have been deprecated and \" + \"replaced by \\\"slot-scope\\\" since 2.5. The new \\\"slot-scope\\\" attribute \" + \"can also be used on plain elements in addition to <template> to \" + \"denote scoped slots.\", el.rawAttrsMap['scope'], true);\n    }\n\n    el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');\n  } else if (slotScope = getAndRemoveAttr(el, 'slot-scope')) {\n    /* istanbul ignore if */\n    if ( true && el.attrsMap['v-for']) {\n      warn$2(\"Ambiguous combined usage of slot-scope and v-for on <\" + el.tag + \"> \" + \"(v-for takes higher priority). Use a wrapper <template> for the \" + \"scoped slot to make it clearer.\", el.rawAttrsMap['slot-scope'], true);\n    }\n\n    el.slotScope = slotScope;\n  } // slot=\"xxx\"\n\n\n  var slotTarget = getBindingAttr(el, 'slot');\n\n  if (slotTarget) {\n    el.slotTarget = slotTarget === '\"\"' ? '\"default\"' : slotTarget;\n    el.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']); // preserve slot as an attribute for native shadow DOM compat\n    // only for non-scoped slots.\n\n    if (el.tag !== 'template' && !el.slotScope) {\n      addAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot'));\n    }\n  } // 2.6 v-slot syntax\n\n\n  {\n    if (el.tag === 'template') {\n      // v-slot on <template>\n      var slotBinding = getAndRemoveAttrByRegex(el, slotRE);\n\n      if (slotBinding) {\n        if (true) {\n          if (el.slotTarget || el.slotScope) {\n            warn$2(\"Unexpected mixed usage of different slot syntaxes.\", el);\n          }\n\n          if (el.parent && !maybeComponent(el.parent)) {\n            warn$2(\"<template v-slot> can only appear at the root level inside \" + \"the receiving component\", el);\n          }\n        }\n\n        var ref = getSlotName(slotBinding);\n        var name = ref.name;\n        var dynamic = ref.dynamic;\n        el.slotTarget = name;\n        el.slotTargetDynamic = dynamic;\n        el.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf\n      }\n    } else {\n      // v-slot on component, denotes default slot\n      var slotBinding$1 = getAndRemoveAttrByRegex(el, slotRE);\n\n      if (slotBinding$1) {\n        if (true) {\n          if (!maybeComponent(el)) {\n            warn$2(\"v-slot can only be used on components or <template>.\", slotBinding$1);\n          }\n\n          if (el.slotScope || el.slotTarget) {\n            warn$2(\"Unexpected mixed usage of different slot syntaxes.\", el);\n          }\n\n          if (el.scopedSlots) {\n            warn$2(\"To avoid scope ambiguity, the default slot should also use \" + \"<template> syntax when there are other named slots.\", slotBinding$1);\n          }\n        } // add the component's children to its default slot\n\n\n        var slots = el.scopedSlots || (el.scopedSlots = {});\n        var ref$1 = getSlotName(slotBinding$1);\n        var name$1 = ref$1.name;\n        var dynamic$1 = ref$1.dynamic;\n        var slotContainer = slots[name$1] = createASTElement('template', [], el);\n        slotContainer.slotTarget = name$1;\n        slotContainer.slotTargetDynamic = dynamic$1;\n        slotContainer.children = el.children.filter(function (c) {\n          if (!c.slotScope) {\n            c.parent = slotContainer;\n            return true;\n          }\n        });\n        slotContainer.slotScope = slotBinding$1.value || emptySlotScopeToken; // remove children as they are returned from scopedSlots now\n\n        el.children = []; // mark el non-plain so data gets generated\n\n        el.plain = false;\n      }\n    }\n  }\n}\n\nfunction getSlotName(binding) {\n  var name = binding.name.replace(slotRE, '');\n\n  if (!name) {\n    if (binding.name[0] !== '#') {\n      name = 'default';\n    } else if (true) {\n      warn$2(\"v-slot shorthand syntax requires a slot name.\", binding);\n    }\n  }\n\n  return dynamicArgRE.test(name) // dynamic [name]\n  ? {\n    name: name.slice(1, -1),\n    dynamic: true\n  } // static name\n  : {\n    name: \"\\\"\" + name + \"\\\"\",\n    dynamic: false\n  };\n} // handle <slot/> outlets\n\n\nfunction processSlotOutlet(el) {\n  if (el.tag === 'slot') {\n    el.slotName = getBindingAttr(el, 'name');\n\n    if ( true && el.key) {\n      warn$2(\"`key` does not work on <slot> because slots are abstract outlets \" + \"and can possibly expand into multiple elements. \" + \"Use the key on a wrapping element instead.\", getRawBindingAttr(el, 'key'));\n    }\n  }\n}\n\nfunction processComponent(el) {\n  var binding;\n\n  if (binding = getBindingAttr(el, 'is')) {\n    el.component = binding;\n  }\n\n  if (getAndRemoveAttr(el, 'inline-template') != null) {\n    el.inlineTemplate = true;\n  }\n}\n\nfunction processAttrs(el) {\n  var list = el.attrsList;\n  var i, l, name, rawName, value, modifiers, syncGen, isDynamic;\n\n  for (i = 0, l = list.length; i < l; i++) {\n    name = rawName = list[i].name;\n    value = list[i].value;\n\n    if (dirRE.test(name)) {\n      // mark element as dynamic\n      el.hasBindings = true; // modifiers\n\n      modifiers = parseModifiers(name.replace(dirRE, '')); // support .foo shorthand syntax for the .prop modifier\n\n      if (modifiers) {\n        name = name.replace(modifierRE, '');\n      }\n\n      if (bindRE.test(name)) {\n        // v-bind\n        name = name.replace(bindRE, '');\n        value = parseFilters(value);\n        isDynamic = dynamicArgRE.test(name);\n\n        if (isDynamic) {\n          name = name.slice(1, -1);\n        }\n\n        if ( true && value.trim().length === 0) {\n          warn$2(\"The value for a v-bind expression cannot be empty. Found in \\\"v-bind:\" + name + \"\\\"\");\n        }\n\n        if (modifiers) {\n          if (modifiers.prop && !isDynamic) {\n            name = camelize(name);\n\n            if (name === 'innerHtml') {\n              name = 'innerHTML';\n            }\n          }\n\n          if (modifiers.camel && !isDynamic) {\n            name = camelize(name);\n          }\n\n          if (modifiers.sync) {\n            syncGen = genAssignmentCode(value, \"$event\");\n\n            if (!isDynamic) {\n              addHandler(el, \"update:\" + camelize(name), syncGen, null, false, warn$2, list[i]);\n\n              if (hyphenate(name) !== camelize(name)) {\n                addHandler(el, \"update:\" + hyphenate(name), syncGen, null, false, warn$2, list[i]);\n              }\n            } else {\n              // handler w/ dynamic event name\n              addHandler(el, \"\\\"update:\\\"+(\" + name + \")\", syncGen, null, false, warn$2, list[i], true // dynamic\n              );\n            }\n          }\n        }\n\n        if (modifiers && modifiers.prop || !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)) {\n          addProp(el, name, value, list[i], isDynamic);\n        } else {\n          addAttr(el, name, value, list[i], isDynamic);\n        }\n      } else if (onRE.test(name)) {\n        // v-on\n        name = name.replace(onRE, '');\n        isDynamic = dynamicArgRE.test(name);\n\n        if (isDynamic) {\n          name = name.slice(1, -1);\n        }\n\n        addHandler(el, name, value, modifiers, false, warn$2, list[i], isDynamic);\n      } else {\n        // normal directives\n        name = name.replace(dirRE, ''); // parse arg\n\n        var argMatch = name.match(argRE);\n        var arg = argMatch && argMatch[1];\n        isDynamic = false;\n\n        if (arg) {\n          name = name.slice(0, -(arg.length + 1));\n\n          if (dynamicArgRE.test(arg)) {\n            arg = arg.slice(1, -1);\n            isDynamic = true;\n          }\n        }\n\n        addDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]);\n\n        if ( true && name === 'model') {\n          checkForAliasModel(el, value);\n        }\n      }\n    } else {\n      // literal attribute\n      if (true) {\n        var res = parseText(value, delimiters);\n\n        if (res) {\n          warn$2(name + \"=\\\"\" + value + \"\\\": \" + 'Interpolation inside attributes has been removed. ' + 'Use v-bind or the colon shorthand instead. For example, ' + 'instead of <div id=\"{{ val }}\">, use <div :id=\"val\">.', list[i]);\n        }\n      }\n\n      addAttr(el, name, JSON.stringify(value), list[i]); // #6887 firefox doesn't update muted state if set via attribute\n      // even immediately after element creation\n\n      if (!el.component && name === 'muted' && platformMustUseProp(el.tag, el.attrsMap.type, name)) {\n        addProp(el, name, 'true', list[i]);\n      }\n    }\n  }\n}\n\nfunction checkInFor(el) {\n  var parent = el;\n\n  while (parent) {\n    if (parent.for !== undefined) {\n      return true;\n    }\n\n    parent = parent.parent;\n  }\n\n  return false;\n}\n\nfunction parseModifiers(name) {\n  var match = name.match(modifierRE);\n\n  if (match) {\n    var ret = {};\n    match.forEach(function (m) {\n      ret[m.slice(1)] = true;\n    });\n    return ret;\n  }\n}\n\nfunction makeAttrsMap(attrs) {\n  var map = {};\n\n  for (var i = 0, l = attrs.length; i < l; i++) {\n    if ( true && map[attrs[i].name] && !isIE && !isEdge) {\n      warn$2('duplicate attribute: ' + attrs[i].name, attrs[i]);\n    }\n\n    map[attrs[i].name] = attrs[i].value;\n  }\n\n  return map;\n} // for script (e.g. type=\"x/template\") or style, do not decode content\n\n\nfunction isTextTag(el) {\n  return el.tag === 'script' || el.tag === 'style';\n}\n\nfunction isForbiddenTag(el) {\n  return el.tag === 'style' || el.tag === 'script' && (!el.attrsMap.type || el.attrsMap.type === 'text/javascript');\n}\n\nvar ieNSBug = /^xmlns:NS\\d+/;\nvar ieNSPrefix = /^NS\\d+:/;\n/* istanbul ignore next */\n\nfunction guardIESVGBug(attrs) {\n  var res = [];\n\n  for (var i = 0; i < attrs.length; i++) {\n    var attr = attrs[i];\n\n    if (!ieNSBug.test(attr.name)) {\n      attr.name = attr.name.replace(ieNSPrefix, '');\n      res.push(attr);\n    }\n  }\n\n  return res;\n}\n\nfunction checkForAliasModel(el, value) {\n  var _el = el;\n\n  while (_el) {\n    if (_el.for && _el.alias === value) {\n      warn$2(\"<\" + el.tag + \" v-model=\\\"\" + value + \"\\\">: \" + \"You are binding v-model directly to a v-for iteration alias. \" + \"This will not be able to modify the v-for source array because \" + \"writing to the alias is like modifying a function local variable. \" + \"Consider using an array of objects and use v-model on an object property instead.\", el.rawAttrsMap['v-model']);\n    }\n\n    _el = _el.parent;\n  }\n}\n/*  */\n\n\nfunction preTransformNode(el, options) {\n  if (el.tag === 'input') {\n    var map = el.attrsMap;\n\n    if (!map['v-model']) {\n      return;\n    }\n\n    var typeBinding;\n\n    if (map[':type'] || map['v-bind:type']) {\n      typeBinding = getBindingAttr(el, 'type');\n    }\n\n    if (!map.type && !typeBinding && map['v-bind']) {\n      typeBinding = \"(\" + map['v-bind'] + \").type\";\n    }\n\n    if (typeBinding) {\n      var ifCondition = getAndRemoveAttr(el, 'v-if', true);\n      var ifConditionExtra = ifCondition ? \"&&(\" + ifCondition + \")\" : \"\";\n      var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;\n      var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true); // 1. checkbox\n\n      var branch0 = cloneASTElement(el); // process for on the main node\n\n      processFor(branch0);\n      addRawAttr(branch0, 'type', 'checkbox');\n      processElement(branch0, options);\n      branch0.processed = true; // prevent it from double-processed\n\n      branch0.if = \"(\" + typeBinding + \")==='checkbox'\" + ifConditionExtra;\n      addIfCondition(branch0, {\n        exp: branch0.if,\n        block: branch0\n      }); // 2. add radio else-if condition\n\n      var branch1 = cloneASTElement(el);\n      getAndRemoveAttr(branch1, 'v-for', true);\n      addRawAttr(branch1, 'type', 'radio');\n      processElement(branch1, options);\n      addIfCondition(branch0, {\n        exp: \"(\" + typeBinding + \")==='radio'\" + ifConditionExtra,\n        block: branch1\n      }); // 3. other\n\n      var branch2 = cloneASTElement(el);\n      getAndRemoveAttr(branch2, 'v-for', true);\n      addRawAttr(branch2, ':type', typeBinding);\n      processElement(branch2, options);\n      addIfCondition(branch0, {\n        exp: ifCondition,\n        block: branch2\n      });\n\n      if (hasElse) {\n        branch0.else = true;\n      } else if (elseIfCondition) {\n        branch0.elseif = elseIfCondition;\n      }\n\n      return branch0;\n    }\n  }\n}\n\nfunction cloneASTElement(el) {\n  return createASTElement(el.tag, el.attrsList.slice(), el.parent);\n}\n\nvar model$1 = {\n  preTransformNode: preTransformNode\n};\nvar modules$1 = [klass$1, style$1, model$1];\n/*  */\n\nfunction text(el, dir) {\n  if (dir.value) {\n    addProp(el, 'textContent', \"_s(\" + dir.value + \")\", dir);\n  }\n}\n/*  */\n\n\nfunction html(el, dir) {\n  if (dir.value) {\n    addProp(el, 'innerHTML', \"_s(\" + dir.value + \")\", dir);\n  }\n}\n\nvar directives$1 = {\n  model: model,\n  text: text,\n  html: html\n};\n/*  */\n\nvar baseOptions = {\n  expectHTML: true,\n  modules: modules$1,\n  directives: directives$1,\n  isPreTag: isPreTag,\n  isUnaryTag: isUnaryTag,\n  mustUseProp: mustUseProp,\n  canBeLeftOpenTag: canBeLeftOpenTag,\n  isReservedTag: isReservedTag,\n  getTagNamespace: getTagNamespace,\n  staticKeys: genStaticKeys(modules$1)\n};\n/*  */\n\nvar isStaticKey;\nvar isPlatformReservedTag;\nvar genStaticKeysCached = cached(genStaticKeys$1);\n/**\n * Goal of the optimizer: walk the generated template AST tree\n * and detect sub-trees that are purely static, i.e. parts of\n * the DOM that never needs to change.\n *\n * Once we detect these sub-trees, we can:\n *\n * 1. Hoist them into constants, so that we no longer need to\n *    create fresh nodes for them on each re-render;\n * 2. Completely skip them in the patching process.\n */\n\nfunction optimize(root, options) {\n  if (!root) {\n    return;\n  }\n\n  isStaticKey = genStaticKeysCached(options.staticKeys || '');\n  isPlatformReservedTag = options.isReservedTag || no; // first pass: mark all non-static nodes.\n\n  markStatic$1(root); // second pass: mark static roots.\n\n  markStaticRoots(root, false);\n}\n\nfunction genStaticKeys$1(keys) {\n  return makeMap('type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' + (keys ? ',' + keys : ''));\n}\n\nfunction markStatic$1(node) {\n  node.static = isStatic(node);\n\n  if (node.type === 1) {\n    // do not make component slot content static. this avoids\n    // 1. components not able to mutate slot nodes\n    // 2. static slot content fails for hot-reloading\n    if (!isPlatformReservedTag(node.tag) && node.tag !== 'slot' && node.attrsMap['inline-template'] == null) {\n      return;\n    }\n\n    for (var i = 0, l = node.children.length; i < l; i++) {\n      var child = node.children[i];\n      markStatic$1(child);\n\n      if (!child.static) {\n        node.static = false;\n      }\n    }\n\n    if (node.ifConditions) {\n      for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n        var block = node.ifConditions[i$1].block;\n        markStatic$1(block);\n\n        if (!block.static) {\n          node.static = false;\n        }\n      }\n    }\n  }\n}\n\nfunction markStaticRoots(node, isInFor) {\n  if (node.type === 1) {\n    if (node.static || node.once) {\n      node.staticInFor = isInFor;\n    } // For a node to qualify as a static root, it should have children that\n    // are not just static text. Otherwise the cost of hoisting out will\n    // outweigh the benefits and it's better off to just always render it fresh.\n\n\n    if (node.static && node.children.length && !(node.children.length === 1 && node.children[0].type === 3)) {\n      node.staticRoot = true;\n      return;\n    } else {\n      node.staticRoot = false;\n    }\n\n    if (node.children) {\n      for (var i = 0, l = node.children.length; i < l; i++) {\n        markStaticRoots(node.children[i], isInFor || !!node.for);\n      }\n    }\n\n    if (node.ifConditions) {\n      for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n        markStaticRoots(node.ifConditions[i$1].block, isInFor);\n      }\n    }\n  }\n}\n\nfunction isStatic(node) {\n  if (node.type === 2) {\n    // expression\n    return false;\n  }\n\n  if (node.type === 3) {\n    // text\n    return true;\n  }\n\n  return !!(node.pre || !node.hasBindings && // no dynamic bindings\n  !node.if && !node.for && // not v-if or v-for or v-else\n  !isBuiltInTag(node.tag) && // not a built-in\n  isPlatformReservedTag(node.tag) && // not a component\n  !isDirectChildOfTemplateFor(node) && Object.keys(node).every(isStaticKey));\n}\n\nfunction isDirectChildOfTemplateFor(node) {\n  while (node.parent) {\n    node = node.parent;\n\n    if (node.tag !== 'template') {\n      return false;\n    }\n\n    if (node.for) {\n      return true;\n    }\n  }\n\n  return false;\n}\n/*  */\n\n\nvar fnExpRE = /^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function(?:\\s+[\\w$]+)?\\s*\\(/;\nvar fnInvokeRE = /\\([^)]*?\\);*$/;\nvar simplePathRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/; // KeyboardEvent.keyCode aliases\n\nvar keyCodes = {\n  esc: 27,\n  tab: 9,\n  enter: 13,\n  space: 32,\n  up: 38,\n  left: 37,\n  right: 39,\n  down: 40,\n  'delete': [8, 46]\n}; // KeyboardEvent.key aliases\n\nvar keyNames = {\n  // #7880: IE11 and Edge use `Esc` for Escape key name.\n  esc: ['Esc', 'Escape'],\n  tab: 'Tab',\n  enter: 'Enter',\n  // #9112: IE11 uses `Spacebar` for Space key name.\n  space: [' ', 'Spacebar'],\n  // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.\n  up: ['Up', 'ArrowUp'],\n  left: ['Left', 'ArrowLeft'],\n  right: ['Right', 'ArrowRight'],\n  down: ['Down', 'ArrowDown'],\n  // #9112: IE11 uses `Del` for Delete key name.\n  'delete': ['Backspace', 'Delete', 'Del']\n}; // #4868: modifiers that prevent the execution of the listener\n// need to explicitly return null so that we can determine whether to remove\n// the listener for .once\n\nvar genGuard = function (condition) {\n  return \"if(\" + condition + \")return null;\";\n};\n\nvar modifierCode = {\n  stop: '$event.stopPropagation();',\n  prevent: '$event.preventDefault();',\n  self: genGuard(\"$event.target !== $event.currentTarget\"),\n  ctrl: genGuard(\"!$event.ctrlKey\"),\n  shift: genGuard(\"!$event.shiftKey\"),\n  alt: genGuard(\"!$event.altKey\"),\n  meta: genGuard(\"!$event.metaKey\"),\n  left: genGuard(\"'button' in $event && $event.button !== 0\"),\n  middle: genGuard(\"'button' in $event && $event.button !== 1\"),\n  right: genGuard(\"'button' in $event && $event.button !== 2\")\n};\n\nfunction genHandlers(events, isNative) {\n  var prefix = isNative ? 'nativeOn:' : 'on:';\n  var staticHandlers = \"\";\n  var dynamicHandlers = \"\";\n\n  for (var name in events) {\n    var handlerCode = genHandler(events[name]);\n\n    if (events[name] && events[name].dynamic) {\n      dynamicHandlers += name + \",\" + handlerCode + \",\";\n    } else {\n      staticHandlers += \"\\\"\" + name + \"\\\":\" + handlerCode + \",\";\n    }\n  }\n\n  staticHandlers = \"{\" + staticHandlers.slice(0, -1) + \"}\";\n\n  if (dynamicHandlers) {\n    return prefix + \"_d(\" + staticHandlers + \",[\" + dynamicHandlers.slice(0, -1) + \"])\";\n  } else {\n    return prefix + staticHandlers;\n  }\n}\n\nfunction genHandler(handler) {\n  if (!handler) {\n    return 'function(){}';\n  }\n\n  if (Array.isArray(handler)) {\n    return \"[\" + handler.map(function (handler) {\n      return genHandler(handler);\n    }).join(',') + \"]\";\n  }\n\n  var isMethodPath = simplePathRE.test(handler.value);\n  var isFunctionExpression = fnExpRE.test(handler.value);\n  var isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, ''));\n\n  if (!handler.modifiers) {\n    if (isMethodPath || isFunctionExpression) {\n      return handler.value;\n    }\n\n    return \"function($event){\" + (isFunctionInvocation ? \"return \" + handler.value : handler.value) + \"}\"; // inline statement\n  } else {\n    var code = '';\n    var genModifierCode = '';\n    var keys = [];\n\n    for (var key in handler.modifiers) {\n      if (modifierCode[key]) {\n        genModifierCode += modifierCode[key]; // left/right\n\n        if (keyCodes[key]) {\n          keys.push(key);\n        }\n      } else if (key === 'exact') {\n        var modifiers = handler.modifiers;\n        genModifierCode += genGuard(['ctrl', 'shift', 'alt', 'meta'].filter(function (keyModifier) {\n          return !modifiers[keyModifier];\n        }).map(function (keyModifier) {\n          return \"$event.\" + keyModifier + \"Key\";\n        }).join('||'));\n      } else {\n        keys.push(key);\n      }\n    }\n\n    if (keys.length) {\n      code += genKeyFilter(keys);\n    } // Make sure modifiers like prevent and stop get executed after key filtering\n\n\n    if (genModifierCode) {\n      code += genModifierCode;\n    }\n\n    var handlerCode = isMethodPath ? \"return \" + handler.value + \".apply(null, arguments)\" : isFunctionExpression ? \"return (\" + handler.value + \").apply(null, arguments)\" : isFunctionInvocation ? \"return \" + handler.value : handler.value;\n    return \"function($event){\" + code + handlerCode + \"}\";\n  }\n}\n\nfunction genKeyFilter(keys) {\n  return (// make sure the key filters only apply to KeyboardEvents\n    // #9441: can't use 'keyCode' in $event because Chrome autofill fires fake\n    // key events that do not have keyCode property...\n    \"if(!$event.type.indexOf('key')&&\" + keys.map(genFilterCode).join('&&') + \")return null;\"\n  );\n}\n\nfunction genFilterCode(key) {\n  var keyVal = parseInt(key, 10);\n\n  if (keyVal) {\n    return \"$event.keyCode!==\" + keyVal;\n  }\n\n  var keyCode = keyCodes[key];\n  var keyName = keyNames[key];\n  return \"_k($event.keyCode,\" + JSON.stringify(key) + \",\" + JSON.stringify(keyCode) + \",\" + \"$event.key,\" + \"\" + JSON.stringify(keyName) + \")\";\n}\n/*  */\n\n\nfunction on(el, dir) {\n  if ( true && dir.modifiers) {\n    warn(\"v-on without argument does not support modifiers.\");\n  }\n\n  el.wrapListeners = function (code) {\n    return \"_g(\" + code + \",\" + dir.value + \")\";\n  };\n}\n/*  */\n\n\nfunction bind$1(el, dir) {\n  el.wrapData = function (code) {\n    return \"_b(\" + code + \",'\" + el.tag + \"',\" + dir.value + \",\" + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + \")\";\n  };\n}\n/*  */\n\n\nvar baseDirectives = {\n  on: on,\n  bind: bind$1,\n  cloak: noop\n};\n/*  */\n\nvar CodegenState = function CodegenState(options) {\n  this.options = options;\n  this.warn = options.warn || baseWarn;\n  this.transforms = pluckModuleFunction(options.modules, 'transformCode');\n  this.dataGenFns = pluckModuleFunction(options.modules, 'genData');\n  this.directives = extend(extend({}, baseDirectives), options.directives);\n  var isReservedTag = options.isReservedTag || no;\n\n  this.maybeComponent = function (el) {\n    return !!el.component || !isReservedTag(el.tag);\n  };\n\n  this.onceId = 0;\n  this.staticRenderFns = [];\n  this.pre = false;\n};\n\nfunction generate(ast, options) {\n  var state = new CodegenState(options); // fix #11483, Root level <script> tags should not be rendered.\n\n  var code = ast ? ast.tag === 'script' ? 'null' : genElement(ast, state) : '_c(\"div\")';\n  return {\n    render: \"with(this){return \" + code + \"}\",\n    staticRenderFns: state.staticRenderFns\n  };\n}\n\nfunction genElement(el, state) {\n  if (el.parent) {\n    el.pre = el.pre || el.parent.pre;\n  }\n\n  if (el.staticRoot && !el.staticProcessed) {\n    return genStatic(el, state);\n  } else if (el.once && !el.onceProcessed) {\n    return genOnce(el, state);\n  } else if (el.for && !el.forProcessed) {\n    return genFor(el, state);\n  } else if (el.if && !el.ifProcessed) {\n    return genIf(el, state);\n  } else if (el.tag === 'template' && !el.slotTarget && !state.pre) {\n    return genChildren(el, state) || 'void 0';\n  } else if (el.tag === 'slot') {\n    return genSlot(el, state);\n  } else {\n    // component or element\n    var code;\n\n    if (el.component) {\n      code = genComponent(el.component, el, state);\n    } else {\n      var data;\n\n      if (!el.plain || el.pre && state.maybeComponent(el)) {\n        data = genData$2(el, state);\n      }\n\n      var children = el.inlineTemplate ? null : genChildren(el, state, true);\n      code = \"_c('\" + el.tag + \"'\" + (data ? \",\" + data : '') + (children ? \",\" + children : '') + \")\";\n    } // module transforms\n\n\n    for (var i = 0; i < state.transforms.length; i++) {\n      code = state.transforms[i](el, code);\n    }\n\n    return code;\n  }\n} // hoist static sub-trees out\n\n\nfunction genStatic(el, state) {\n  el.staticProcessed = true; // Some elements (templates) need to behave differently inside of a v-pre\n  // node.  All pre nodes are static roots, so we can use this as a location to\n  // wrap a state change and reset it upon exiting the pre node.\n\n  var originalPreState = state.pre;\n\n  if (el.pre) {\n    state.pre = el.pre;\n  }\n\n  state.staticRenderFns.push(\"with(this){return \" + genElement(el, state) + \"}\");\n  state.pre = originalPreState;\n  return \"_m(\" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + \")\";\n} // v-once\n\n\nfunction genOnce(el, state) {\n  el.onceProcessed = true;\n\n  if (el.if && !el.ifProcessed) {\n    return genIf(el, state);\n  } else if (el.staticInFor) {\n    var key = '';\n    var parent = el.parent;\n\n    while (parent) {\n      if (parent.for) {\n        key = parent.key;\n        break;\n      }\n\n      parent = parent.parent;\n    }\n\n    if (!key) {\n       true && state.warn(\"v-once can only be used inside v-for that is keyed. \", el.rawAttrsMap['v-once']);\n      return genElement(el, state);\n    }\n\n    return \"_o(\" + genElement(el, state) + \",\" + state.onceId++ + \",\" + key + \")\";\n  } else {\n    return genStatic(el, state);\n  }\n}\n\nfunction genIf(el, state, altGen, altEmpty) {\n  el.ifProcessed = true; // avoid recursion\n\n  return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty);\n}\n\nfunction genIfConditions(conditions, state, altGen, altEmpty) {\n  if (!conditions.length) {\n    return altEmpty || '_e()';\n  }\n\n  var condition = conditions.shift();\n\n  if (condition.exp) {\n    return \"(\" + condition.exp + \")?\" + genTernaryExp(condition.block) + \":\" + genIfConditions(conditions, state, altGen, altEmpty);\n  } else {\n    return \"\" + genTernaryExp(condition.block);\n  } // v-if with v-once should generate code like (a)?_m(0):_m(1)\n\n\n  function genTernaryExp(el) {\n    return altGen ? altGen(el, state) : el.once ? genOnce(el, state) : genElement(el, state);\n  }\n}\n\nfunction genFor(el, state, altGen, altHelper) {\n  var exp = el.for;\n  var alias = el.alias;\n  var iterator1 = el.iterator1 ? \",\" + el.iterator1 : '';\n  var iterator2 = el.iterator2 ? \",\" + el.iterator2 : '';\n\n  if ( true && state.maybeComponent(el) && el.tag !== 'slot' && el.tag !== 'template' && !el.key) {\n    state.warn(\"<\" + el.tag + \" v-for=\\\"\" + alias + \" in \" + exp + \"\\\">: component lists rendered with \" + \"v-for should have explicit keys. \" + \"See https://vuejs.org/guide/list.html#key for more info.\", el.rawAttrsMap['v-for'], true\n    /* tip */\n    );\n  }\n\n  el.forProcessed = true; // avoid recursion\n\n  return (altHelper || '_l') + \"((\" + exp + \"),\" + \"function(\" + alias + iterator1 + iterator2 + \"){\" + \"return \" + (altGen || genElement)(el, state) + '})';\n}\n\nfunction genData$2(el, state) {\n  var data = '{'; // directives first.\n  // directives may mutate the el's other properties before they are generated.\n\n  var dirs = genDirectives(el, state);\n\n  if (dirs) {\n    data += dirs + ',';\n  } // key\n\n\n  if (el.key) {\n    data += \"key:\" + el.key + \",\";\n  } // ref\n\n\n  if (el.ref) {\n    data += \"ref:\" + el.ref + \",\";\n  }\n\n  if (el.refInFor) {\n    data += \"refInFor:true,\";\n  } // pre\n\n\n  if (el.pre) {\n    data += \"pre:true,\";\n  } // record original tag name for components using \"is\" attribute\n\n\n  if (el.component) {\n    data += \"tag:\\\"\" + el.tag + \"\\\",\";\n  } // module data generation functions\n\n\n  for (var i = 0; i < state.dataGenFns.length; i++) {\n    data += state.dataGenFns[i](el);\n  } // attributes\n\n\n  if (el.attrs) {\n    data += \"attrs:\" + genProps(el.attrs) + \",\";\n  } // DOM props\n\n\n  if (el.props) {\n    data += \"domProps:\" + genProps(el.props) + \",\";\n  } // event handlers\n\n\n  if (el.events) {\n    data += genHandlers(el.events, false) + \",\";\n  }\n\n  if (el.nativeEvents) {\n    data += genHandlers(el.nativeEvents, true) + \",\";\n  } // slot target\n  // only for non-scoped slots\n\n\n  if (el.slotTarget && !el.slotScope) {\n    data += \"slot:\" + el.slotTarget + \",\";\n  } // scoped slots\n\n\n  if (el.scopedSlots) {\n    data += genScopedSlots(el, el.scopedSlots, state) + \",\";\n  } // component v-model\n\n\n  if (el.model) {\n    data += \"model:{value:\" + el.model.value + \",callback:\" + el.model.callback + \",expression:\" + el.model.expression + \"},\";\n  } // inline-template\n\n\n  if (el.inlineTemplate) {\n    var inlineTemplate = genInlineTemplate(el, state);\n\n    if (inlineTemplate) {\n      data += inlineTemplate + \",\";\n    }\n  }\n\n  data = data.replace(/,$/, '') + '}'; // v-bind dynamic argument wrap\n  // v-bind with dynamic arguments must be applied using the same v-bind object\n  // merge helper so that class/style/mustUseProp attrs are handled correctly.\n\n  if (el.dynamicAttrs) {\n    data = \"_b(\" + data + \",\\\"\" + el.tag + \"\\\",\" + genProps(el.dynamicAttrs) + \")\";\n  } // v-bind data wrap\n\n\n  if (el.wrapData) {\n    data = el.wrapData(data);\n  } // v-on data wrap\n\n\n  if (el.wrapListeners) {\n    data = el.wrapListeners(data);\n  }\n\n  return data;\n}\n\nfunction genDirectives(el, state) {\n  var dirs = el.directives;\n\n  if (!dirs) {\n    return;\n  }\n\n  var res = 'directives:[';\n  var hasRuntime = false;\n  var i, l, dir, needRuntime;\n\n  for (i = 0, l = dirs.length; i < l; i++) {\n    dir = dirs[i];\n    needRuntime = true;\n    var gen = state.directives[dir.name];\n\n    if (gen) {\n      // compile-time directive that manipulates AST.\n      // returns true if it also needs a runtime counterpart.\n      needRuntime = !!gen(el, dir, state.warn);\n    }\n\n    if (needRuntime) {\n      hasRuntime = true;\n      res += \"{name:\\\"\" + dir.name + \"\\\",rawName:\\\"\" + dir.rawName + \"\\\"\" + (dir.value ? \",value:(\" + dir.value + \"),expression:\" + JSON.stringify(dir.value) : '') + (dir.arg ? \",arg:\" + (dir.isDynamicArg ? dir.arg : \"\\\"\" + dir.arg + \"\\\"\") : '') + (dir.modifiers ? \",modifiers:\" + JSON.stringify(dir.modifiers) : '') + \"},\";\n    }\n  }\n\n  if (hasRuntime) {\n    return res.slice(0, -1) + ']';\n  }\n}\n\nfunction genInlineTemplate(el, state) {\n  var ast = el.children[0];\n\n  if ( true && (el.children.length !== 1 || ast.type !== 1)) {\n    state.warn('Inline-template components must have exactly one child element.', {\n      start: el.start\n    });\n  }\n\n  if (ast && ast.type === 1) {\n    var inlineRenderFns = generate(ast, state.options);\n    return \"inlineTemplate:{render:function(){\" + inlineRenderFns.render + \"},staticRenderFns:[\" + inlineRenderFns.staticRenderFns.map(function (code) {\n      return \"function(){\" + code + \"}\";\n    }).join(',') + \"]}\";\n  }\n}\n\nfunction genScopedSlots(el, slots, state) {\n  // by default scoped slots are considered \"stable\", this allows child\n  // components with only scoped slots to skip forced updates from parent.\n  // but in some cases we have to bail-out of this optimization\n  // for example if the slot contains dynamic names, has v-if or v-for on them...\n  var needsForceUpdate = el.for || Object.keys(slots).some(function (key) {\n    var slot = slots[key];\n    return slot.slotTargetDynamic || slot.if || slot.for || containsSlotChild(slot) // is passing down slot from parent which may be dynamic\n    ;\n  }); // #9534: if a component with scoped slots is inside a conditional branch,\n  // it's possible for the same component to be reused but with different\n  // compiled slot content. To avoid that, we generate a unique key based on\n  // the generated code of all the slot contents.\n\n  var needsKey = !!el.if; // OR when it is inside another scoped slot or v-for (the reactivity may be\n  // disconnected due to the intermediate scope variable)\n  // #9438, #9506\n  // TODO: this can be further optimized by properly analyzing in-scope bindings\n  // and skip force updating ones that do not actually use scope variables.\n\n  if (!needsForceUpdate) {\n    var parent = el.parent;\n\n    while (parent) {\n      if (parent.slotScope && parent.slotScope !== emptySlotScopeToken || parent.for) {\n        needsForceUpdate = true;\n        break;\n      }\n\n      if (parent.if) {\n        needsKey = true;\n      }\n\n      parent = parent.parent;\n    }\n  }\n\n  var generatedSlots = Object.keys(slots).map(function (key) {\n    return genScopedSlot(slots[key], state);\n  }).join(',');\n  return \"scopedSlots:_u([\" + generatedSlots + \"]\" + (needsForceUpdate ? \",null,true\" : \"\") + (!needsForceUpdate && needsKey ? \",null,false,\" + hash(generatedSlots) : \"\") + \")\";\n}\n\nfunction hash(str) {\n  var hash = 5381;\n  var i = str.length;\n\n  while (i) {\n    hash = hash * 33 ^ str.charCodeAt(--i);\n  }\n\n  return hash >>> 0;\n}\n\nfunction containsSlotChild(el) {\n  if (el.type === 1) {\n    if (el.tag === 'slot') {\n      return true;\n    }\n\n    return el.children.some(containsSlotChild);\n  }\n\n  return false;\n}\n\nfunction genScopedSlot(el, state) {\n  var isLegacySyntax = el.attrsMap['slot-scope'];\n\n  if (el.if && !el.ifProcessed && !isLegacySyntax) {\n    return genIf(el, state, genScopedSlot, \"null\");\n  }\n\n  if (el.for && !el.forProcessed) {\n    return genFor(el, state, genScopedSlot);\n  }\n\n  var slotScope = el.slotScope === emptySlotScopeToken ? \"\" : String(el.slotScope);\n  var fn = \"function(\" + slotScope + \"){\" + \"return \" + (el.tag === 'template' ? el.if && isLegacySyntax ? \"(\" + el.if + \")?\" + (genChildren(el, state) || 'undefined') + \":undefined\" : genChildren(el, state) || 'undefined' : genElement(el, state)) + \"}\"; // reverse proxy v-slot without scope on this.$slots\n\n  var reverseProxy = slotScope ? \"\" : \",proxy:true\";\n  return \"{key:\" + (el.slotTarget || \"\\\"default\\\"\") + \",fn:\" + fn + reverseProxy + \"}\";\n}\n\nfunction genChildren(el, state, checkSkip, altGenElement, altGenNode) {\n  var children = el.children;\n\n  if (children.length) {\n    var el$1 = children[0]; // optimize single v-for\n\n    if (children.length === 1 && el$1.for && el$1.tag !== 'template' && el$1.tag !== 'slot') {\n      var normalizationType = checkSkip ? state.maybeComponent(el$1) ? \",1\" : \",0\" : \"\";\n      return \"\" + (altGenElement || genElement)(el$1, state) + normalizationType;\n    }\n\n    var normalizationType$1 = checkSkip ? getNormalizationType(children, state.maybeComponent) : 0;\n    var gen = altGenNode || genNode;\n    return \"[\" + children.map(function (c) {\n      return gen(c, state);\n    }).join(',') + \"]\" + (normalizationType$1 ? \",\" + normalizationType$1 : '');\n  }\n} // determine the normalization needed for the children array.\n// 0: no normalization needed\n// 1: simple normalization needed (possible 1-level deep nested array)\n// 2: full normalization needed\n\n\nfunction getNormalizationType(children, maybeComponent) {\n  var res = 0;\n\n  for (var i = 0; i < children.length; i++) {\n    var el = children[i];\n\n    if (el.type !== 1) {\n      continue;\n    }\n\n    if (needsNormalization(el) || el.ifConditions && el.ifConditions.some(function (c) {\n      return needsNormalization(c.block);\n    })) {\n      res = 2;\n      break;\n    }\n\n    if (maybeComponent(el) || el.ifConditions && el.ifConditions.some(function (c) {\n      return maybeComponent(c.block);\n    })) {\n      res = 1;\n    }\n  }\n\n  return res;\n}\n\nfunction needsNormalization(el) {\n  return el.for !== undefined || el.tag === 'template' || el.tag === 'slot';\n}\n\nfunction genNode(node, state) {\n  if (node.type === 1) {\n    return genElement(node, state);\n  } else if (node.type === 3 && node.isComment) {\n    return genComment(node);\n  } else {\n    return genText(node);\n  }\n}\n\nfunction genText(text) {\n  return \"_v(\" + (text.type === 2 ? text.expression // no need for () because already wrapped in _s()\n  : transformSpecialNewlines(JSON.stringify(text.text))) + \")\";\n}\n\nfunction genComment(comment) {\n  return \"_e(\" + JSON.stringify(comment.text) + \")\";\n}\n\nfunction genSlot(el, state) {\n  var slotName = el.slotName || '\"default\"';\n  var children = genChildren(el, state);\n  var res = \"_t(\" + slotName + (children ? \",function(){return \" + children + \"}\" : '');\n  var attrs = el.attrs || el.dynamicAttrs ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function (attr) {\n    return {\n      // slot props are camelized\n      name: camelize(attr.name),\n      value: attr.value,\n      dynamic: attr.dynamic\n    };\n  })) : null;\n  var bind$$1 = el.attrsMap['v-bind'];\n\n  if ((attrs || bind$$1) && !children) {\n    res += \",null\";\n  }\n\n  if (attrs) {\n    res += \",\" + attrs;\n  }\n\n  if (bind$$1) {\n    res += (attrs ? '' : ',null') + \",\" + bind$$1;\n  }\n\n  return res + ')';\n} // componentName is el.component, take it as argument to shun flow's pessimistic refinement\n\n\nfunction genComponent(componentName, el, state) {\n  var children = el.inlineTemplate ? null : genChildren(el, state, true);\n  return \"_c(\" + componentName + \",\" + genData$2(el, state) + (children ? \",\" + children : '') + \")\";\n}\n\nfunction genProps(props) {\n  var staticProps = \"\";\n  var dynamicProps = \"\";\n\n  for (var i = 0; i < props.length; i++) {\n    var prop = props[i];\n    var value = transformSpecialNewlines(prop.value);\n\n    if (prop.dynamic) {\n      dynamicProps += prop.name + \",\" + value + \",\";\n    } else {\n      staticProps += \"\\\"\" + prop.name + \"\\\":\" + value + \",\";\n    }\n  }\n\n  staticProps = \"{\" + staticProps.slice(0, -1) + \"}\";\n\n  if (dynamicProps) {\n    return \"_d(\" + staticProps + \",[\" + dynamicProps.slice(0, -1) + \"])\";\n  } else {\n    return staticProps;\n  }\n} // #3895, #4268\n\n\nfunction transformSpecialNewlines(text) {\n  return text.replace(/\\u2028/g, '\\\\u2028').replace(/\\u2029/g, '\\\\u2029');\n}\n/*  */\n// these keywords should not appear inside expressions, but operators like\n// typeof, instanceof and in are allowed\n\n\nvar prohibitedKeywordRE = new RegExp('\\\\b' + ('do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' + 'super,throw,while,yield,delete,export,import,return,switch,default,' + 'extends,finally,continue,debugger,function,arguments').split(',').join('\\\\b|\\\\b') + '\\\\b'); // these unary operators should not be used as property/method names\n\nvar unaryOperatorsRE = new RegExp('\\\\b' + 'delete,typeof,void'.split(',').join('\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b') + '\\\\s*\\\\([^\\\\)]*\\\\)'); // strip strings in expressions\n\nvar stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g; // detect problematic expressions in a template\n\nfunction detectErrors(ast, warn) {\n  if (ast) {\n    checkNode(ast, warn);\n  }\n}\n\nfunction checkNode(node, warn) {\n  if (node.type === 1) {\n    for (var name in node.attrsMap) {\n      if (dirRE.test(name)) {\n        var value = node.attrsMap[name];\n\n        if (value) {\n          var range = node.rawAttrsMap[name];\n\n          if (name === 'v-for') {\n            checkFor(node, \"v-for=\\\"\" + value + \"\\\"\", warn, range);\n          } else if (name === 'v-slot' || name[0] === '#') {\n            checkFunctionParameterExpression(value, name + \"=\\\"\" + value + \"\\\"\", warn, range);\n          } else if (onRE.test(name)) {\n            checkEvent(value, name + \"=\\\"\" + value + \"\\\"\", warn, range);\n          } else {\n            checkExpression(value, name + \"=\\\"\" + value + \"\\\"\", warn, range);\n          }\n        }\n      }\n    }\n\n    if (node.children) {\n      for (var i = 0; i < node.children.length; i++) {\n        checkNode(node.children[i], warn);\n      }\n    }\n  } else if (node.type === 2) {\n    checkExpression(node.expression, node.text, warn, node);\n  }\n}\n\nfunction checkEvent(exp, text, warn, range) {\n  var stripped = exp.replace(stripStringRE, '');\n  var keywordMatch = stripped.match(unaryOperatorsRE);\n\n  if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') {\n    warn(\"avoid using JavaScript unary operator as property name: \" + \"\\\"\" + keywordMatch[0] + \"\\\" in expression \" + text.trim(), range);\n  }\n\n  checkExpression(exp, text, warn, range);\n}\n\nfunction checkFor(node, text, warn, range) {\n  checkExpression(node.for || '', text, warn, range);\n  checkIdentifier(node.alias, 'v-for alias', text, warn, range);\n  checkIdentifier(node.iterator1, 'v-for iterator', text, warn, range);\n  checkIdentifier(node.iterator2, 'v-for iterator', text, warn, range);\n}\n\nfunction checkIdentifier(ident, type, text, warn, range) {\n  if (typeof ident === 'string') {\n    try {\n      new Function(\"var \" + ident + \"=_\");\n    } catch (e) {\n      warn(\"invalid \" + type + \" \\\"\" + ident + \"\\\" in expression: \" + text.trim(), range);\n    }\n  }\n}\n\nfunction checkExpression(exp, text, warn, range) {\n  try {\n    new Function(\"return \" + exp);\n  } catch (e) {\n    var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);\n\n    if (keywordMatch) {\n      warn(\"avoid using JavaScript keyword as property name: \" + \"\\\"\" + keywordMatch[0] + \"\\\"\\n  Raw expression: \" + text.trim(), range);\n    } else {\n      warn(\"invalid expression: \" + e.message + \" in\\n\\n\" + \"    \" + exp + \"\\n\\n\" + \"  Raw expression: \" + text.trim() + \"\\n\", range);\n    }\n  }\n}\n\nfunction checkFunctionParameterExpression(exp, text, warn, range) {\n  try {\n    new Function(exp, '');\n  } catch (e) {\n    warn(\"invalid function parameter expression: \" + e.message + \" in\\n\\n\" + \"    \" + exp + \"\\n\\n\" + \"  Raw expression: \" + text.trim() + \"\\n\", range);\n  }\n}\n/*  */\n\n\nvar range = 2;\n\nfunction generateCodeFrame(source, start, end) {\n  if (start === void 0) start = 0;\n  if (end === void 0) end = source.length;\n  var lines = source.split(/\\r?\\n/);\n  var count = 0;\n  var res = [];\n\n  for (var i = 0; i < lines.length; i++) {\n    count += lines[i].length + 1;\n\n    if (count >= start) {\n      for (var j = i - range; j <= i + range || end > count; j++) {\n        if (j < 0 || j >= lines.length) {\n          continue;\n        }\n\n        res.push(\"\" + (j + 1) + repeat$1(\" \", 3 - String(j + 1).length) + \"|  \" + lines[j]);\n        var lineLength = lines[j].length;\n\n        if (j === i) {\n          // push underline\n          var pad = start - (count - lineLength) + 1;\n          var length = end > count ? lineLength - pad : end - start;\n          res.push(\"   |  \" + repeat$1(\" \", pad) + repeat$1(\"^\", length));\n        } else if (j > i) {\n          if (end > count) {\n            var length$1 = Math.min(end - count, lineLength);\n            res.push(\"   |  \" + repeat$1(\"^\", length$1));\n          }\n\n          count += lineLength + 1;\n        }\n      }\n\n      break;\n    }\n  }\n\n  return res.join('\\n');\n}\n\nfunction repeat$1(str, n) {\n  var result = '';\n\n  if (n > 0) {\n    while (true) {\n      // eslint-disable-line\n      if (n & 1) {\n        result += str;\n      }\n\n      n >>>= 1;\n\n      if (n <= 0) {\n        break;\n      }\n\n      str += str;\n    }\n  }\n\n  return result;\n}\n/*  */\n\n\nfunction createFunction(code, errors) {\n  try {\n    return new Function(code);\n  } catch (err) {\n    errors.push({\n      err: err,\n      code: code\n    });\n    return noop;\n  }\n}\n\nfunction createCompileToFunctionFn(compile) {\n  var cache = Object.create(null);\n  return function compileToFunctions(template, options, vm) {\n    options = extend({}, options);\n    var warn$$1 = options.warn || warn;\n    delete options.warn;\n    /* istanbul ignore if */\n\n    if (true) {\n      // detect possible CSP restriction\n      try {\n        new Function('return 1');\n      } catch (e) {\n        if (e.toString().match(/unsafe-eval|CSP/)) {\n          warn$$1('It seems you are using the standalone build of Vue.js in an ' + 'environment with Content Security Policy that prohibits unsafe-eval. ' + 'The template compiler cannot work in this environment. Consider ' + 'relaxing the policy to allow unsafe-eval or pre-compiling your ' + 'templates into render functions.');\n        }\n      }\n    } // check cache\n\n\n    var key = options.delimiters ? String(options.delimiters) + template : template;\n\n    if (cache[key]) {\n      return cache[key];\n    } // compile\n\n\n    var compiled = compile(template, options); // check compilation errors/tips\n\n    if (true) {\n      if (compiled.errors && compiled.errors.length) {\n        if (options.outputSourceRange) {\n          compiled.errors.forEach(function (e) {\n            warn$$1(\"Error compiling template:\\n\\n\" + e.msg + \"\\n\\n\" + generateCodeFrame(template, e.start, e.end), vm);\n          });\n        } else {\n          warn$$1(\"Error compiling template:\\n\\n\" + template + \"\\n\\n\" + compiled.errors.map(function (e) {\n            return \"- \" + e;\n          }).join('\\n') + '\\n', vm);\n        }\n      }\n\n      if (compiled.tips && compiled.tips.length) {\n        if (options.outputSourceRange) {\n          compiled.tips.forEach(function (e) {\n            return tip(e.msg, vm);\n          });\n        } else {\n          compiled.tips.forEach(function (msg) {\n            return tip(msg, vm);\n          });\n        }\n      }\n    } // turn code into functions\n\n\n    var res = {};\n    var fnGenErrors = [];\n    res.render = createFunction(compiled.render, fnGenErrors);\n    res.staticRenderFns = compiled.staticRenderFns.map(function (code) {\n      return createFunction(code, fnGenErrors);\n    }); // check function generation errors.\n    // this should only happen if there is a bug in the compiler itself.\n    // mostly for codegen development use\n\n    /* istanbul ignore if */\n\n    if (true) {\n      if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {\n        warn$$1(\"Failed to generate render function:\\n\\n\" + fnGenErrors.map(function (ref) {\n          var err = ref.err;\n          var code = ref.code;\n          return err.toString() + \" in\\n\\n\" + code + \"\\n\";\n        }).join('\\n'), vm);\n      }\n    }\n\n    return cache[key] = res;\n  };\n}\n/*  */\n\n\nfunction createCompilerCreator(baseCompile) {\n  return function createCompiler(baseOptions) {\n    function compile(template, options) {\n      var finalOptions = Object.create(baseOptions);\n      var errors = [];\n      var tips = [];\n\n      var warn = function (msg, range, tip) {\n        (tip ? tips : errors).push(msg);\n      };\n\n      if (options) {\n        if ( true && options.outputSourceRange) {\n          // $flow-disable-line\n          var leadingSpaceLength = template.match(/^\\s*/)[0].length;\n\n          warn = function (msg, range, tip) {\n            var data = {\n              msg: msg\n            };\n\n            if (range) {\n              if (range.start != null) {\n                data.start = range.start + leadingSpaceLength;\n              }\n\n              if (range.end != null) {\n                data.end = range.end + leadingSpaceLength;\n              }\n            }\n\n            (tip ? tips : errors).push(data);\n          };\n        } // merge custom modules\n\n\n        if (options.modules) {\n          finalOptions.modules = (baseOptions.modules || []).concat(options.modules);\n        } // merge custom directives\n\n\n        if (options.directives) {\n          finalOptions.directives = extend(Object.create(baseOptions.directives || null), options.directives);\n        } // copy other options\n\n\n        for (var key in options) {\n          if (key !== 'modules' && key !== 'directives') {\n            finalOptions[key] = options[key];\n          }\n        }\n      }\n\n      finalOptions.warn = warn;\n      var compiled = baseCompile(template.trim(), finalOptions);\n\n      if (true) {\n        detectErrors(compiled.ast, warn);\n      }\n\n      compiled.errors = errors;\n      compiled.tips = tips;\n      return compiled;\n    }\n\n    return {\n      compile: compile,\n      compileToFunctions: createCompileToFunctionFn(compile)\n    };\n  };\n}\n/*  */\n// `createCompilerCreator` allows creating compilers that use alternative\n// parser/optimizer/codegen, e.g the SSR optimizing compiler.\n// Here we just export a default compiler using the default parts.\n\n\nvar createCompiler = createCompilerCreator(function baseCompile(template, options) {\n  var ast = parse(template.trim(), options);\n\n  if (options.optimize !== false) {\n    optimize(ast, options);\n  }\n\n  var code = generate(ast, options);\n  return {\n    ast: ast,\n    render: code.render,\n    staticRenderFns: code.staticRenderFns\n  };\n});\n/*  */\n\nvar ref$1 = createCompiler(baseOptions);\nvar compile = ref$1.compile;\nvar compileToFunctions = ref$1.compileToFunctions;\n/*  */\n// check whether current browser encodes a char inside attribute values\n\nvar div;\n\nfunction getShouldDecode(href) {\n  div = div || document.createElement('div');\n  div.innerHTML = href ? \"<a href=\\\"\\n\\\"/>\" : \"<div a=\\\"\\n\\\"/>\";\n  return div.innerHTML.indexOf('&#10;') > 0;\n} // #3663: IE encodes newlines inside attribute values while other browsers don't\n\n\nvar shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false; // #6828: chrome encodes content in a[href]\n\nvar shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;\n/*  */\n\nvar idToTemplate = cached(function (id) {\n  var el = query(id);\n  return el && el.innerHTML;\n});\nvar mount = Vue.prototype.$mount;\n\nVue.prototype.$mount = function (el, hydrating) {\n  el = el && query(el);\n  /* istanbul ignore if */\n\n  if (el === document.body || el === document.documentElement) {\n     true && warn(\"Do not mount Vue to <html> or <body> - mount to normal elements instead.\");\n    return this;\n  }\n\n  var options = this.$options; // resolve template/el and convert to render function\n\n  if (!options.render) {\n    var template = options.template;\n\n    if (template) {\n      if (typeof template === 'string') {\n        if (template.charAt(0) === '#') {\n          template = idToTemplate(template);\n          /* istanbul ignore if */\n\n          if ( true && !template) {\n            warn(\"Template element not found or is empty: \" + options.template, this);\n          }\n        }\n      } else if (template.nodeType) {\n        template = template.innerHTML;\n      } else {\n        if (true) {\n          warn('invalid template option:' + template, this);\n        }\n\n        return this;\n      }\n    } else if (el) {\n      template = getOuterHTML(el);\n    }\n\n    if (template) {\n      /* istanbul ignore if */\n      if ( true && config.performance && mark) {\n        mark('compile');\n      }\n\n      var ref = compileToFunctions(template, {\n        outputSourceRange: \"development\" !== 'production',\n        shouldDecodeNewlines: shouldDecodeNewlines,\n        shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,\n        delimiters: options.delimiters,\n        comments: options.comments\n      }, this);\n      var render = ref.render;\n      var staticRenderFns = ref.staticRenderFns;\n      options.render = render;\n      options.staticRenderFns = staticRenderFns;\n      /* istanbul ignore if */\n\n      if ( true && config.performance && mark) {\n        mark('compile end');\n        measure(\"vue \" + this._name + \" compile\", 'compile', 'compile end');\n      }\n    }\n  }\n\n  return mount.call(this, el, hydrating);\n};\n/**\n * Get outerHTML of elements, taking care\n * of SVG elements in IE as well.\n */\n\n\nfunction getOuterHTML(el) {\n  if (el.outerHTML) {\n    return el.outerHTML;\n  } else {\n    var container = document.createElement('div');\n    container.appendChild(el.cloneNode(true));\n    return container.innerHTML;\n  }\n}\n\nVue.compile = compileToFunctions;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Vue);\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\"), __webpack_require__(/*! ./../../timers-browserify/main.js */ \"./node_modules/timers-browserify/main.js\").setImmediate))\n\n//# sourceURL=webpack:///./node_modules/vue/dist/vue.esm.js?");

/***/ }),

/***/ "./node_modules/webpack/buildin/global.js":
/*!***********************************!*\
  !*** (webpack)/buildin/global.js ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var g; // This works in non-strict mode\n\ng = function () {\n  return this;\n}();\n\ntry {\n  // This works if eval is allowed (see CSP)\n  g = g || new Function(\"return this\")();\n} catch (e) {\n  // This works if the window reference is available\n  if (typeof window === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?");

/***/ }),

/***/ "./node_modules/webpack/buildin/module.js":
/*!***********************************!*\
  !*** (webpack)/buildin/module.js ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("module.exports = function (module) {\n  if (!module.webpackPolyfill) {\n    module.deprecate = function () {};\n\n    module.paths = []; // module.parent = undefined by default\n\n    if (!module.children) module.children = [];\n    Object.defineProperty(module, \"loaded\", {\n      enumerable: true,\n      get: function () {\n        return module.l;\n      }\n    });\n    Object.defineProperty(module, \"id\", {\n      enumerable: true,\n      get: function () {\n        return module.i;\n      }\n    });\n    module.webpackPolyfill = 1;\n  }\n\n  return module;\n};\n\n//# sourceURL=webpack:///(webpack)/buildin/module.js?");

/***/ }),

/***/ 0:
/*!********************************************************************************!*\
  !*** multi axios moment popper.js style-loader v-calendar vue vue-multiselect ***!
  \********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("__webpack_require__(/*! axios */\"./node_modules/axios/index.js\");\n__webpack_require__(/*! moment */\"./node_modules/moment/moment.js\");\n__webpack_require__(/*! popper.js */\"./node_modules/popper.js/dist/esm/popper.js\");\n__webpack_require__(/*! style-loader */\"./node_modules/style-loader/index.js\");\n__webpack_require__(/*! v-calendar */\"./node_modules/v-calendar/lib/v-calendar.min.js\");\n__webpack_require__(/*! vue */\"./node_modules/vue/dist/vue.esm.js\");\nmodule.exports = __webpack_require__(/*! vue-multiselect */\"./node_modules/vue-multiselect/dist/vue-multiselect.min.js\");\n\n\n//# sourceURL=webpack:///multi_axios_moment_popper.js_style-loader_v-calendar_vue_vue-multiselect?");

/***/ }),

/***/ 1:
/*!**********************!*\
  !*** util (ignored) ***!
  \**********************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///util_(ignored)?");

/***/ }),

/***/ 10:
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///buffer_(ignored)?");

/***/ }),

/***/ 11:
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///buffer_(ignored)?");

/***/ }),

/***/ 12:
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///buffer_(ignored)?");

/***/ }),

/***/ 13:
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///buffer_(ignored)?");

/***/ }),

/***/ 14:
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///buffer_(ignored)?");

/***/ }),

/***/ 2:
/*!**********************!*\
  !*** util (ignored) ***!
  \**********************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///util_(ignored)?");

/***/ }),

/***/ 3:
/*!**********************!*\
  !*** util (ignored) ***!
  \**********************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///util_(ignored)?");

/***/ }),

/***/ 4:
/*!**********************!*\
  !*** util (ignored) ***!
  \**********************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///util_(ignored)?");

/***/ }),

/***/ 5:
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///buffer_(ignored)?");

/***/ }),

/***/ 6:
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///buffer_(ignored)?");

/***/ }),

/***/ 7:
/*!************************!*\
  !*** crypto (ignored) ***!
  \************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///crypto_(ignored)?");

/***/ }),

/***/ 8:
/*!**********************!*\
  !*** util (ignored) ***!
  \**********************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///util_(ignored)?");

/***/ }),

/***/ 9:
/*!**********************!*\
  !*** util (ignored) ***!
  \**********************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("/* (ignored) */\n\n//# sourceURL=webpack:///util_(ignored)?");

/***/ })

/******/ });