diff --git a/.babelrc.json b/.babelrc.json deleted file mode 100644 index ece1d876..00000000 --- a/.babelrc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "presets": [ - ["@babel/preset-env"] - ] -} diff --git a/babel.config.json b/babel.config.json new file mode 100644 index 00000000..3c5758cb --- /dev/null +++ b/babel.config.json @@ -0,0 +1,11 @@ +{ + "presets": [ + [ + "@babel/env", + { + "useBuiltIns": "entry", + "corejs": "3.6.5" + } + ] + ] +} diff --git a/build/build-html.js b/build/build-html.js deleted file mode 100644 index 114e21f7..00000000 --- a/build/build-html.js +++ /dev/null @@ -1,148 +0,0 @@ -/* eslint-env node */ -import fs from 'promise-fs'; - -const filesAndReplacements = [ - { - input: 'src/editor/svg-editor-es.html', - output: 'src/editor/xdomain-svg-editor-es.html', - replacements: [ - [ - '', - '' - ] - ] - }, - { - input: 'src/editor/xdomain-svg-editor-es.html', - output: 'src/editor/xdomain-svg-editor.html', - replacements: [ - [ - '', - ` -` - ], - [ - '', - '' - ], - [ - '', - '' - ], - [ - '', - '' - ], - [ - '', - '' - ] - ] - }, - // Now that file has copied, we can replace the DOCTYPE in xdomain - { - input: 'src/editor/xdomain-svg-editor-es.html', - output: 'src/editor/xdomain-svg-editor-es.html', - replacements: [ - [ - '', - ` -` - ] - ] - }, - { - input: 'src/editor/svg-editor-es.html', - output: 'src/editor/svg-editor.html', - replacements: [ - [ - '', - ` -` - ], - [ - '', - '' - ], - [ - '', - '' - ], - [ - '', - '' - ], - [ - '', - '' - ] - ] - }, - { - input: 'src/editor/extensions/imagelib/openclipart-es.html', - output: 'src/editor/extensions/imagelib/openclipart.html', - replacements: [ - [ - '', - ` -` - ], - [ - '', - '' - ], - [ - '', - '' - ], - [ - '', - '' - ] - ] - }, - { - input: 'src/editor/extensions/imagelib/index-es.html', - output: 'src/editor/extensions/imagelib/index.html', - replacements: [ - [ - '', - ` -` - ], - [ - '', - '' - ], - [ - '', - '' - ] - ] - } -]; - -(async () => { -await filesAndReplacements.reduce(async (p, {input, output, replacements}) => { - await p; - let data; - try { - data = await fs.readFile(input, 'utf8'); - } catch (err) { - console.log(`Error reading ${input} file`, err); // eslint-disable-line no-console - } - - data = replacements.reduce((s, [fnd, replacement]) => { - return s.replace(fnd, replacement); - }, data); - - try { - await fs.writeFile(output, data); - } catch (err) { - console.log(`Error writing file: ${err}`, err); // eslint-disable-line no-console - return; - } - console.log(`Completed file ${input} rewriting!`); // eslint-disable-line no-console -}, Promise.resolve()); -console.log('Finished!'); // eslint-disable-line no-console -})(); diff --git a/dist/editor/extensions/ext-mathjax.js b/dist/editor/extensions/ext-mathjax.js index f64568de..3d77f7fd 100644 --- a/dist/editor/extensions/ext-mathjax.js +++ b/dist/editor/extensions/ext-mathjax.js @@ -7,8 +7,6 @@ * @copyright 2013 Jo Segaert * */ -// Todo: Wait for Mathjax 3.0 to get ES Module/avoid global -import {importScript} from '../../external/dynamic-import-polyfill/importModule.js'; export default { name: 'mathjax', @@ -204,7 +202,8 @@ export default { // We use `extIconsPath` here for now as it does not vary with // the modular type as does `extPath` try { - await importScript(svgEditor.curConfig.extIconsPath + mathjaxSrcSecure); + // eslint-disable-next-line node/no-unsupported-features/es-syntax + await import(svgEditor.curConfig.extIconsPath + mathjaxSrcSecure); // When MathJax is loaded get the div where the math will be rendered. MathJax.Hub.queue.Push(function () { math = MathJax.Hub.getAllJax('#mathjax_creator')[0]; diff --git a/dist/editor/index-iife.html b/dist/editor/index-iife.html index 57e8f3e7..e2d665d3 100644 --- a/dist/editor/index-iife.html +++ b/dist/editor/index-iife.html @@ -23,19 +23,9 @@ - - - - - - - - - - diff --git a/dist/editor/index-iife.js b/dist/editor/index-iife.js index 2360ff99..2326cac9 100644 --- a/dist/editor/index-iife.js +++ b/dist/editor/index-iife.js @@ -75,55 +75,6 @@ return Constructor; } - function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; - } - - function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys.push.apply(keys, symbols); - } - - return keys; - } - - function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - - return target; - } - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); @@ -362,6 +313,10889 @@ }; } + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(path, (base === undefined || base === null) ? module.path : base); + } + }, fn(module, module.exports), module.exports; + } + + function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); + } + + var check = function check(it) { + return it && it.Math == Math && it; + }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + + + var global_1 = // eslint-disable-next-line no-undef + check((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) == 'object' && globalThis) || check((typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window) || check((typeof self === "undefined" ? "undefined" : _typeof(self)) == 'object' && self) || check(_typeof(commonjsGlobal) == 'object' && commonjsGlobal) || // eslint-disable-next-line no-new-func + Function('return this')(); + + var fails = function fails(exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + + var descriptors = !fails(function () { + return Object.defineProperty({}, 1, { + get: function get() { + return 7; + } + })[1] != 7; + }); + + var nativePropertyIsEnumerable = {}.propertyIsEnumerable; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug + + var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ + 1: 2 + }, 1); // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable + + var f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; + } : nativePropertyIsEnumerable; + var objectPropertyIsEnumerable = { + f: f + }; + + var createPropertyDescriptor = function createPropertyDescriptor(bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + var toString = {}.toString; + + var classofRaw = function classofRaw(it) { + return toString.call(it).slice(8, -1); + }; + + var split = ''.split; // fallback for non-array-like ES3 and non-enumerable old V8 strings + + var indexedObject = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins + return !Object('z').propertyIsEnumerable(0); + }) ? function (it) { + return classofRaw(it) == 'String' ? split.call(it, '') : Object(it); + } : Object; + + // `RequireObjectCoercible` abstract operation + // https://tc39.github.io/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible = function requireObjectCoercible(it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; + }; + + var toIndexedObject = function toIndexedObject(it) { + return indexedObject(requireObjectCoercible(it)); + }; + + var isObject = function isObject(it) { + return _typeof(it) === 'object' ? it !== null : typeof it === 'function'; + }; + + // https://tc39.github.io/ecma262/#sec-toprimitive + // instead of the ES6 spec version, we didn't implement @@toPrimitive case + // and the second argument - flag - preferred type is a string + + var toPrimitive = function toPrimitive(input, PREFERRED_STRING) { + if (!isObject(input)) return input; + var fn, val; + if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; + if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; + if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; + throw TypeError("Can't convert object to primitive value"); + }; + + var hasOwnProperty = {}.hasOwnProperty; + + var has = function has(it, key) { + return hasOwnProperty.call(it, key); + }; + + var document$1 = global_1.document; // typeof document.createElement is 'object' in old IE + + var EXISTS = isObject(document$1) && isObject(document$1.createElement); + + var documentCreateElement = function documentCreateElement(it) { + return EXISTS ? document$1.createElement(it) : {}; + }; + + var ie8DomDefine = !descriptors && !fails(function () { + return Object.defineProperty(documentCreateElement('div'), 'a', { + get: function get() { + return 7; + } + }).a != 7; + }); + + var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method + // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor + + var f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (ie8DomDefine) try { + return nativeGetOwnPropertyDescriptor(O, P); + } catch (error) { + /* empty */ + } + if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]); + }; + var objectGetOwnPropertyDescriptor = { + f: f$1 + }; + + var anObject = function anObject(it) { + if (!isObject(it)) { + throw TypeError(String(it) + ' is not an object'); + } + + return it; + }; + + var nativeDefineProperty = Object.defineProperty; // `Object.defineProperty` method + // https://tc39.github.io/ecma262/#sec-object.defineproperty + + var f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (ie8DomDefine) try { + return nativeDefineProperty(O, P, Attributes); + } catch (error) { + /* empty */ + } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + var objectDefineProperty = { + f: f$2 + }; + + var createNonEnumerableProperty = descriptors ? function (object, key, value) { + return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + var setGlobal = function setGlobal(key, value) { + try { + createNonEnumerableProperty(global_1, key, value); + } catch (error) { + global_1[key] = value; + } + + return value; + }; + + var SHARED = '__core-js_shared__'; + var store = global_1[SHARED] || setGlobal(SHARED, {}); + var sharedStore = store; + + var functionToString = Function.toString; // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper + + if (typeof sharedStore.inspectSource != 'function') { + sharedStore.inspectSource = function (it) { + return functionToString.call(it); + }; + } + + var inspectSource = sharedStore.inspectSource; + + var WeakMap = global_1.WeakMap; + var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap)); + + var isPure = false; + + var shared = createCommonjsModule(function (module) { + (module.exports = function (key, value) { + return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {}); + })('versions', []).push({ + version: '3.6.5', + mode: 'global', + copyright: '© 2020 Denis Pushkarev (zloirock.ru)' + }); + }); + + var id = 0; + var postfix = Math.random(); + + var uid = function uid(key) { + return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); + }; + + var keys = shared('keys'); + + var sharedKey = function sharedKey(key) { + return keys[key] || (keys[key] = uid(key)); + }; + + var hiddenKeys = {}; + + var WeakMap$1 = global_1.WeakMap; + var set, get, has$1; + + var enforce = function enforce(it) { + return has$1(it) ? get(it) : set(it, {}); + }; + + var getterFor = function getterFor(TYPE) { + return function (it) { + var state; + + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError('Incompatible receiver, ' + TYPE + ' required'); + } + + return state; + }; + }; + + if (nativeWeakMap) { + var store$1 = new WeakMap$1(); + var wmget = store$1.get; + var wmhas = store$1.has; + var wmset = store$1.set; + + set = function set(it, metadata) { + wmset.call(store$1, it, metadata); + return metadata; + }; + + get = function get(it) { + return wmget.call(store$1, it) || {}; + }; + + has$1 = function has(it) { + return wmhas.call(store$1, it); + }; + } else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + + set = function set(it, metadata) { + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + + get = function get(it) { + return has(it, STATE) ? it[STATE] : {}; + }; + + has$1 = function has$1(it) { + return has(it, STATE); + }; + } + + var internalState = { + set: set, + get: get, + has: has$1, + enforce: enforce, + getterFor: getterFor + }; + + var redefine = createCommonjsModule(function (module) { + var getInternalState = internalState.get; + var enforceInternalState = internalState.enforce; + var TEMPLATE = String(String).split('String'); + (module.exports = function (O, key, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + + if (typeof value == 'function') { + if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key); + enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); + } + + if (O === global_1) { + if (simple) O[key] = value;else setGlobal(key, value); + return; + } else if (!unsafe) { + delete O[key]; + } else if (!noTargetGet && O[key]) { + simple = true; + } + + if (simple) O[key] = value;else createNonEnumerableProperty(O, key, value); // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + })(Function.prototype, 'toString', function toString() { + return typeof this == 'function' && getInternalState(this).source || inspectSource(this); + }); + }); + + var path = global_1; + + var aFunction = function aFunction(variable) { + return typeof variable == 'function' ? variable : undefined; + }; + + var getBuiltIn = function getBuiltIn(namespace, method) { + return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace]) : path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method]; + }; + + var ceil = Math.ceil; + var floor = Math.floor; // `ToInteger` abstract operation + // https://tc39.github.io/ecma262/#sec-tointeger + + var toInteger = function toInteger(argument) { + return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); + }; + + var min = Math.min; // `ToLength` abstract operation + // https://tc39.github.io/ecma262/#sec-tolength + + var toLength = function toLength(argument) { + return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; + + var max = Math.max; + var min$1 = Math.min; // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + + var toAbsoluteIndex = function toAbsoluteIndex(index, length) { + var integer = toInteger(index); + return integer < 0 ? max(integer + length, 0) : min$1(integer, length); + }; + + var createMethod = function createMethod(IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare + + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; // eslint-disable-next-line no-self-compare + + if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not + } else for (; length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } + return !IS_INCLUDES && -1; + }; + }; + + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.github.io/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.github.io/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) + }; + + var indexOf = arrayIncludes.indexOf; + + var objectKeysInternal = function objectKeysInternal(object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + + for (key in O) { + !has(hiddenKeys, key) && has(O, key) && result.push(key); + } // Don't enum bug & hidden keys + + + while (names.length > i) { + if (has(O, key = names[i++])) { + ~indexOf(result, key) || result.push(key); + } + } + + return result; + }; + + // IE8- don't enum bug keys + var enumBugKeys = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf']; + + var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method + // https://tc39.github.io/ecma262/#sec-object.getownpropertynames + + var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return objectKeysInternal(O, hiddenKeys$1); + }; + + var objectGetOwnPropertyNames = { + f: f$3 + }; + + var f$4 = Object.getOwnPropertySymbols; + var objectGetOwnPropertySymbols = { + f: f$4 + }; + + var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = objectGetOwnPropertyNames.f(anObject(it)); + var getOwnPropertySymbols = objectGetOwnPropertySymbols.f; + return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; + }; + + var copyConstructorProperties = function copyConstructorProperties(target, source) { + var keys = ownKeys(source); + var defineProperty = objectDefineProperty.f; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + }; + + var replacement = /#|\.prototype\./; + + var isForced = function isForced(feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails(detection) : !!detection; + }; + + var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced.data = {}; + var NATIVE = isForced.NATIVE = 'N'; + var POLYFILL = isForced.POLYFILL = 'P'; + var isForced_1 = isForced; + + var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.noTargetGet - prevent calling a getter on target + */ + + var _export = function _export(options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + + if (GLOBAL) { + target = global_1; + } else if (STATIC) { + target = global_1[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global_1[TARGET] || {}).prototype; + } + + if (target) for (key in source) { + sourceProperty = source[key]; + + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor$1(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + + FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target + + if (!FORCED && targetProperty !== undefined) { + if (_typeof(sourceProperty) === _typeof(targetProperty)) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } // add a flag to not completely full polyfills + + + if (options.sham || targetProperty && targetProperty.sham) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } // extend global + + + redefine(target, key, sourceProperty, options); + } + }; + + var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () { + // Chrome 38 Symbol has incorrect toString conversion + // eslint-disable-next-line no-undef + return !String(Symbol()); + }); + + var useSymbolAsUid = nativeSymbol // eslint-disable-next-line no-undef + && !Symbol.sham // eslint-disable-next-line no-undef + && _typeof(Symbol.iterator) == 'symbol'; + + // https://tc39.github.io/ecma262/#sec-isarray + + var isArray = Array.isArray || function isArray(arg) { + return classofRaw(arg) == 'Array'; + }; + + // https://tc39.github.io/ecma262/#sec-toobject + + var toObject = function toObject(argument) { + return Object(requireObjectCoercible(argument)); + }; + + // https://tc39.github.io/ecma262/#sec-object.keys + + var objectKeys = Object.keys || function keys(O) { + return objectKeysInternal(O, enumBugKeys); + }; + + // https://tc39.github.io/ecma262/#sec-object.defineproperties + + var objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + + while (length > index) { + objectDefineProperty.f(O, key = keys[index++], Properties[key]); + } + + return O; + }; + + var html = getBuiltIn('document', 'documentElement'); + + var GT = '>'; + var LT = '<'; + var PROTOTYPE = 'prototype'; + var SCRIPT = 'script'; + var IE_PROTO = sharedKey('IE_PROTO'); + + var EmptyConstructor = function EmptyConstructor() { + /* empty */ + }; + + var scriptTag = function scriptTag(content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; + }; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype + + + var NullProtoObjectViaActiveX = function NullProtoObjectViaActiveX(activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + + return temp; + }; // Create object with fake `null` prototype: use iframe Object with cleared prototype + + + var NullProtoObjectViaIFrame = function NullProtoObjectViaIFrame() { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); // https://github.com/zloirock/core-js/issues/475 + + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; + }; // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + // avoid IE GC bug + + + var activeXDocument; + + var _NullProtoObject = function NullProtoObject() { + try { + /* global ActiveXObject */ + activeXDocument = document.domain && new ActiveXObject('htmlfile'); + } catch (error) { + /* ignore */ + } + + _NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); + var length = enumBugKeys.length; + + while (length--) { + delete _NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + } + + return _NullProtoObject(); + }; + + hiddenKeys[IE_PROTO] = true; // `Object.create` method + // https://tc39.github.io/ecma262/#sec-object.create + + var objectCreate = Object.create || function create(O, Properties) { + var result; + + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill + + result[IE_PROTO] = O; + } else result = _NullProtoObject(); + + return Properties === undefined ? result : objectDefineProperties(result, Properties); + }; + + var nativeGetOwnPropertyNames = objectGetOwnPropertyNames.f; + var toString$1 = {}.toString; + var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; + + var getWindowNames = function getWindowNames(it) { + try { + return nativeGetOwnPropertyNames(it); + } catch (error) { + return windowNames.slice(); + } + }; // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window + + + var f$5 = function getOwnPropertyNames(it) { + return windowNames && toString$1.call(it) == '[object Window]' ? getWindowNames(it) : nativeGetOwnPropertyNames(toIndexedObject(it)); + }; + + var objectGetOwnPropertyNamesExternal = { + f: f$5 + }; + + var WellKnownSymbolsStore = shared('wks'); + var _Symbol = global_1.Symbol; + var createWellKnownSymbol = useSymbolAsUid ? _Symbol : _Symbol && _Symbol.withoutSetter || uid; + + var wellKnownSymbol = function wellKnownSymbol(name) { + if (!has(WellKnownSymbolsStore, name)) { + if (nativeSymbol && has(_Symbol, name)) WellKnownSymbolsStore[name] = _Symbol[name];else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); + } + + return WellKnownSymbolsStore[name]; + }; + + var f$6 = wellKnownSymbol; + var wellKnownSymbolWrapped = { + f: f$6 + }; + + var defineProperty = objectDefineProperty.f; + + var defineWellKnownSymbol = function defineWellKnownSymbol(NAME) { + var _Symbol = path.Symbol || (path.Symbol = {}); + + if (!has(_Symbol, NAME)) defineProperty(_Symbol, NAME, { + value: wellKnownSymbolWrapped.f(NAME) + }); + }; + + var defineProperty$1 = objectDefineProperty.f; + var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + + var setToStringTag = function setToStringTag(it, TAG, STATIC) { + if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { + defineProperty$1(it, TO_STRING_TAG, { + configurable: true, + value: TAG + }); + } + }; + + var aFunction$1 = function aFunction(it) { + if (typeof it != 'function') { + throw TypeError(String(it) + ' is not a function'); + } + + return it; + }; + + var functionBindContext = function functionBindContext(fn, that, length) { + aFunction$1(fn); + if (that === undefined) return fn; + + switch (length) { + case 0: + return function () { + return fn.call(that); + }; + + case 1: + return function (a) { + return fn.call(that, a); + }; + + case 2: + return function (a, b) { + return fn.call(that, a, b); + }; + + case 3: + return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + + return function () + /* ...args */ + { + return fn.apply(that, arguments); + }; + }; + + var SPECIES = wellKnownSymbol('species'); // `ArraySpeciesCreate` abstract operation + // https://tc39.github.io/ecma262/#sec-arrayspeciescreate + + var arraySpeciesCreate = function arraySpeciesCreate(originalArray, length) { + var C; + + if (isArray(originalArray)) { + C = originalArray.constructor; // cross-realm fallback + + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } + + return new (C === undefined ? Array : C)(length === 0 ? 0 : length); + }; + + var push = [].push; // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation + + var createMethod$1 = function createMethod(TYPE) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject($this); + var self = indexedObject(O); + var boundFunction = functionBindContext(callbackfn, that, 3); + var length = toLength(self.length); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; + var value, result; + + for (; length > index; index++) { + if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: + return true; + // some + + case 5: + return value; + // find + + case 6: + return index; + // findIndex + + case 2: + push.call(target, value); + // filter + } else if (IS_EVERY) return false; // every + } + } + } + + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; + }; + + var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.github.io/ecma262/#sec-array.prototype.foreach + forEach: createMethod$1(0), + // `Array.prototype.map` method + // https://tc39.github.io/ecma262/#sec-array.prototype.map + map: createMethod$1(1), + // `Array.prototype.filter` method + // https://tc39.github.io/ecma262/#sec-array.prototype.filter + filter: createMethod$1(2), + // `Array.prototype.some` method + // https://tc39.github.io/ecma262/#sec-array.prototype.some + some: createMethod$1(3), + // `Array.prototype.every` method + // https://tc39.github.io/ecma262/#sec-array.prototype.every + every: createMethod$1(4), + // `Array.prototype.find` method + // https://tc39.github.io/ecma262/#sec-array.prototype.find + find: createMethod$1(5), + // `Array.prototype.findIndex` method + // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod$1(6) + }; + + var $forEach = arrayIteration.forEach; + var HIDDEN = sharedKey('hidden'); + var SYMBOL = 'Symbol'; + var PROTOTYPE$1 = 'prototype'; + var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + var setInternalState = internalState.set; + var getInternalState = internalState.getterFor(SYMBOL); + var ObjectPrototype = Object[PROTOTYPE$1]; + var $Symbol = global_1.Symbol; + var $stringify = getBuiltIn('JSON', 'stringify'); + var nativeGetOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; + var nativeDefineProperty$1 = objectDefineProperty.f; + var nativeGetOwnPropertyNames$1 = objectGetOwnPropertyNamesExternal.f; + var nativePropertyIsEnumerable$1 = objectPropertyIsEnumerable.f; + var AllSymbols = shared('symbols'); + var ObjectPrototypeSymbols = shared('op-symbols'); + var StringToSymbolRegistry = shared('string-to-symbol-registry'); + var SymbolToStringRegistry = shared('symbol-to-string-registry'); + var WellKnownSymbolsStore$1 = shared('wks'); + var QObject = global_1.QObject; // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 + + var USE_SETTER = !QObject || !QObject[PROTOTYPE$1] || !QObject[PROTOTYPE$1].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 + + var setSymbolDescriptor = descriptors && fails(function () { + return objectCreate(nativeDefineProperty$1({}, 'a', { + get: function get() { + return nativeDefineProperty$1(this, 'a', { + value: 7 + }).a; + } + })).a != 7; + }) ? function (O, P, Attributes) { + var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor$1(ObjectPrototype, P); + if (ObjectPrototypeDescriptor) delete ObjectPrototype[P]; + nativeDefineProperty$1(O, P, Attributes); + + if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { + nativeDefineProperty$1(ObjectPrototype, P, ObjectPrototypeDescriptor); + } + } : nativeDefineProperty$1; + + var wrap = function wrap(tag, description) { + var symbol = AllSymbols[tag] = objectCreate($Symbol[PROTOTYPE$1]); + setInternalState(symbol, { + type: SYMBOL, + tag: tag, + description: description + }); + if (!descriptors) symbol.description = description; + return symbol; + }; + + var isSymbol = useSymbolAsUid ? function (it) { + return _typeof(it) == 'symbol'; + } : function (it) { + return Object(it) instanceof $Symbol; + }; + + var $defineProperty = function defineProperty(O, P, Attributes) { + if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes); + anObject(O); + var key = toPrimitive(P, true); + anObject(Attributes); + + if (has(AllSymbols, key)) { + if (!Attributes.enumerable) { + if (!has(O, HIDDEN)) nativeDefineProperty$1(O, HIDDEN, createPropertyDescriptor(1, {})); + O[HIDDEN][key] = true; + } else { + if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false; + Attributes = objectCreate(Attributes, { + enumerable: createPropertyDescriptor(0, false) + }); + } + + return setSymbolDescriptor(O, key, Attributes); + } + + return nativeDefineProperty$1(O, key, Attributes); + }; + + var $defineProperties = function defineProperties(O, Properties) { + anObject(O); + var properties = toIndexedObject(Properties); + var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); + $forEach(keys, function (key) { + if (!descriptors || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]); + }); + return O; + }; + + var $create = function create(O, Properties) { + return Properties === undefined ? objectCreate(O) : $defineProperties(objectCreate(O), Properties); + }; + + var $propertyIsEnumerable = function propertyIsEnumerable(V) { + var P = toPrimitive(V, true); + var enumerable = nativePropertyIsEnumerable$1.call(this, P); + if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false; + return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true; + }; + + var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { + var it = toIndexedObject(O); + var key = toPrimitive(P, true); + if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return; + var descriptor = nativeGetOwnPropertyDescriptor$1(it, key); + + if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) { + descriptor.enumerable = true; + } + + return descriptor; + }; + + var $getOwnPropertyNames = function getOwnPropertyNames(O) { + var names = nativeGetOwnPropertyNames$1(toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key); + }); + return result; + }; + + var $getOwnPropertySymbols = function getOwnPropertySymbols(O) { + var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; + var names = nativeGetOwnPropertyNames$1(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); + var result = []; + $forEach(names, function (key) { + if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) { + result.push(AllSymbols[key]); + } + }); + return result; + }; // `Symbol` constructor + // https://tc39.github.io/ecma262/#sec-symbol-constructor + + + if (!nativeSymbol) { + $Symbol = function _Symbol() { + if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor'); + var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]); + var tag = uid(description); + + var setter = function setter(value) { + if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value); + if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; + setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value)); + }; + + if (descriptors && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { + configurable: true, + set: setter + }); + return wrap(tag, description); + }; + + redefine($Symbol[PROTOTYPE$1], 'toString', function toString() { + return getInternalState(this).tag; + }); + redefine($Symbol, 'withoutSetter', function (description) { + return wrap(uid(description), description); + }); + objectPropertyIsEnumerable.f = $propertyIsEnumerable; + objectDefineProperty.f = $defineProperty; + objectGetOwnPropertyDescriptor.f = $getOwnPropertyDescriptor; + objectGetOwnPropertyNames.f = objectGetOwnPropertyNamesExternal.f = $getOwnPropertyNames; + objectGetOwnPropertySymbols.f = $getOwnPropertySymbols; + + wellKnownSymbolWrapped.f = function (name) { + return wrap(wellKnownSymbol(name), name); + }; + + if (descriptors) { + // https://github.com/tc39/proposal-Symbol-description + nativeDefineProperty$1($Symbol[PROTOTYPE$1], 'description', { + configurable: true, + get: function description() { + return getInternalState(this).description; + } + }); + + { + redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { + unsafe: true + }); + } + } + } + + _export({ + global: true, + wrap: true, + forced: !nativeSymbol, + sham: !nativeSymbol + }, { + Symbol: $Symbol + }); + $forEach(objectKeys(WellKnownSymbolsStore$1), function (name) { + defineWellKnownSymbol(name); + }); + _export({ + target: SYMBOL, + stat: true, + forced: !nativeSymbol + }, { + // `Symbol.for` method + // https://tc39.github.io/ecma262/#sec-symbol.for + 'for': function _for(key) { + var string = String(key); + if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; + var symbol = $Symbol(string); + StringToSymbolRegistry[string] = symbol; + SymbolToStringRegistry[symbol] = string; + return symbol; + }, + // `Symbol.keyFor` method + // https://tc39.github.io/ecma262/#sec-symbol.keyfor + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol'); + if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; + }, + useSetter: function useSetter() { + USE_SETTER = true; + }, + useSimple: function useSimple() { + USE_SETTER = false; + } + }); + _export({ + target: 'Object', + stat: true, + forced: !nativeSymbol, + sham: !descriptors + }, { + // `Object.create` method + // https://tc39.github.io/ecma262/#sec-object.create + create: $create, + // `Object.defineProperty` method + // https://tc39.github.io/ecma262/#sec-object.defineproperty + defineProperty: $defineProperty, + // `Object.defineProperties` method + // https://tc39.github.io/ecma262/#sec-object.defineproperties + defineProperties: $defineProperties, + // `Object.getOwnPropertyDescriptor` method + // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors + getOwnPropertyDescriptor: $getOwnPropertyDescriptor + }); + _export({ + target: 'Object', + stat: true, + forced: !nativeSymbol + }, { + // `Object.getOwnPropertyNames` method + // https://tc39.github.io/ecma262/#sec-object.getownpropertynames + getOwnPropertyNames: $getOwnPropertyNames, + // `Object.getOwnPropertySymbols` method + // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols + getOwnPropertySymbols: $getOwnPropertySymbols + }); // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives + // https://bugs.chromium.org/p/v8/issues/detail?id=3443 + + _export({ + target: 'Object', + stat: true, + forced: fails(function () { + objectGetOwnPropertySymbols.f(1); + }) + }, { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + return objectGetOwnPropertySymbols.f(toObject(it)); + } + }); // `JSON.stringify` method behavior with symbols + // https://tc39.github.io/ecma262/#sec-json.stringify + + if ($stringify) { + var FORCED_JSON_STRINGIFY = !nativeSymbol || fails(function () { + var symbol = $Symbol(); // MS Edge converts symbol values to JSON as {} + + return $stringify([symbol]) != '[null]' // WebKit converts symbol values to JSON as null + || $stringify({ + a: symbol + }) != '{}' // V8 throws on boxed symbols + || $stringify(Object(symbol)) != '{}'; + }); + _export({ + target: 'JSON', + stat: true, + forced: FORCED_JSON_STRINGIFY + }, { + // eslint-disable-next-line no-unused-vars + stringify: function stringify(it, replacer, space) { + var args = [it]; + var index = 1; + var $replacer; + + while (arguments.length > index) { + args.push(arguments[index++]); + } + + $replacer = replacer; + if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined + + if (!isArray(replacer)) replacer = function replacer(key, value) { + if (typeof $replacer == 'function') value = $replacer.call(this, key, value); + if (!isSymbol(value)) return value; + }; + args[1] = replacer; + return $stringify.apply(null, args); + } + }); + } // `Symbol.prototype[@@toPrimitive]` method + // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive + + + if (!$Symbol[PROTOTYPE$1][TO_PRIMITIVE]) { + createNonEnumerableProperty($Symbol[PROTOTYPE$1], TO_PRIMITIVE, $Symbol[PROTOTYPE$1].valueOf); + } // `Symbol.prototype[@@toStringTag]` property + // https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag + + + setToStringTag($Symbol, SYMBOL); + hiddenKeys[HIDDEN] = true; + + var defineProperty$2 = objectDefineProperty.f; + var NativeSymbol = global_1.Symbol; + + if (descriptors && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) || // Safari 12 bug + NativeSymbol().description !== undefined)) { + var EmptyStringDescriptionStore = {}; // wrap Symbol constructor for correct work with undefined description + + var SymbolWrapper = function _Symbol() { + var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]); + var result = this instanceof SymbolWrapper ? new NativeSymbol(description) // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)' + : description === undefined ? NativeSymbol() : NativeSymbol(description); + if (description === '') EmptyStringDescriptionStore[result] = true; + return result; + }; + + copyConstructorProperties(SymbolWrapper, NativeSymbol); + var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype; + symbolPrototype.constructor = SymbolWrapper; + var symbolToString = symbolPrototype.toString; + + var _native = String(NativeSymbol('test')) == 'Symbol(test)'; + + var regexp = /^Symbol\((.*)\)[^)]+$/; + defineProperty$2(symbolPrototype, 'description', { + configurable: true, + get: function description() { + var symbol = isObject(this) ? this.valueOf() : this; + var string = symbolToString.call(symbol); + if (has(EmptyStringDescriptionStore, symbol)) return ''; + var desc = _native ? string.slice(7, -1) : string.replace(regexp, '$1'); + return desc === '' ? undefined : desc; + } + }); + _export({ + global: true, + forced: true + }, { + Symbol: SymbolWrapper + }); + } + + // https://tc39.github.io/ecma262/#sec-symbol.asynciterator + + defineWellKnownSymbol('asyncIterator'); + + // https://tc39.github.io/ecma262/#sec-symbol.hasinstance + + defineWellKnownSymbol('hasInstance'); + + // https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable + + defineWellKnownSymbol('isConcatSpreadable'); + + // https://tc39.github.io/ecma262/#sec-symbol.iterator + + defineWellKnownSymbol('iterator'); + + // https://tc39.github.io/ecma262/#sec-symbol.match + + defineWellKnownSymbol('match'); + + defineWellKnownSymbol('matchAll'); + + // https://tc39.github.io/ecma262/#sec-symbol.replace + + defineWellKnownSymbol('replace'); + + // https://tc39.github.io/ecma262/#sec-symbol.search + + defineWellKnownSymbol('search'); + + // https://tc39.github.io/ecma262/#sec-symbol.species + + defineWellKnownSymbol('species'); + + // https://tc39.github.io/ecma262/#sec-symbol.split + + defineWellKnownSymbol('split'); + + // https://tc39.github.io/ecma262/#sec-symbol.toprimitive + + defineWellKnownSymbol('toPrimitive'); + + // https://tc39.github.io/ecma262/#sec-symbol.tostringtag + + defineWellKnownSymbol('toStringTag'); + + // https://tc39.github.io/ecma262/#sec-symbol.unscopables + + defineWellKnownSymbol('unscopables'); + + var createProperty = function createProperty(object, key, value) { + var propertyKey = toPrimitive(key); + if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));else object[propertyKey] = value; + }; + + var engineUserAgent = getBuiltIn('navigator', 'userAgent') || ''; + + var process = global_1.process; + var versions = process && process.versions; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + version = match[0] + match[1]; + } else if (engineUserAgent) { + match = engineUserAgent.match(/Edge\/(\d+)/); + + if (!match || match[1] >= 74) { + match = engineUserAgent.match(/Chrome\/(\d+)/); + if (match) version = match[1]; + } + } + + var engineV8Version = version && +version; + + var SPECIES$1 = wellKnownSymbol('species'); + + var arrayMethodHasSpeciesSupport = function arrayMethodHasSpeciesSupport(METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return engineV8Version >= 51 || !fails(function () { + var array = []; + var constructor = array.constructor = {}; + + constructor[SPECIES$1] = function () { + return { + foo: 1 + }; + }; + + return array[METHOD_NAME](Boolean).foo !== 1; + }); + }; + + var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); + var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; + var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/679 + + var IS_CONCAT_SPREADABLE_SUPPORT = engineV8Version >= 51 || !fails(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; + }); + var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat'); + + var isConcatSpreadable = function isConcatSpreadable(O) { + if (!isObject(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray(O); + }; + + var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; // `Array.prototype.concat` method + // https://tc39.github.io/ecma262/#sec-array.prototype.concat + // with adding support of @@isConcatSpreadable and @@species + + _export({ + target: 'Array', + proto: true, + forced: FORCED + }, { + concat: function concat(arg) { + // eslint-disable-line no-unused-vars + var O = toObject(this); + var A = arraySpeciesCreate(O, 0); + var n = 0; + var i, k, length, len, E; + + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + + if (isConcatSpreadable(E)) { + len = toLength(E.length); + if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); + + for (k = 0; k < len; k++, n++) { + if (k in E) createProperty(A, n, E[k]); + } + } else { + if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); + createProperty(A, n++, E); + } + } + + A.length = n; + return A; + } + }); + + var min$2 = Math.min; // `Array.prototype.copyWithin` method implementation + // https://tc39.github.io/ecma262/#sec-array.prototype.copywithin + + var arrayCopyWithin = [].copyWithin || function copyWithin(target + /* = 0 */ + , start + /* = 0, end = @length */ + ) { + var O = toObject(this); + var len = toLength(O.length); + var to = toAbsoluteIndex(target, len); + var from = toAbsoluteIndex(start, len); + var end = arguments.length > 2 ? arguments[2] : undefined; + var count = min$2((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); + var inc = 1; + + if (from < to && to < from + count) { + inc = -1; + from += count - 1; + to += count - 1; + } + + while (count-- > 0) { + if (from in O) O[to] = O[from];else delete O[to]; + to += inc; + from += inc; + } + + return O; + }; + + var UNSCOPABLES = wellKnownSymbol('unscopables'); + var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables] + // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables + + if (ArrayPrototype[UNSCOPABLES] == undefined) { + objectDefineProperty.f(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: objectCreate(null) + }); + } // add a key to Array.prototype[@@unscopables] + + + var addToUnscopables = function addToUnscopables(key) { + ArrayPrototype[UNSCOPABLES][key] = true; + }; + + // https://tc39.github.io/ecma262/#sec-array.prototype.copywithin + + _export({ + target: 'Array', + proto: true + }, { + copyWithin: arrayCopyWithin + }); // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables + + addToUnscopables('copyWithin'); + + var arrayMethodIsStrict = function arrayMethodIsStrict(METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call,no-throw-literal + method.call(null, argument || function () { + throw 1; + }, 1); + }); + }; + + var defineProperty$3 = Object.defineProperty; + var cache = {}; + + var thrower = function thrower(it) { + throw it; + }; + + var arrayMethodUsesToLength = function arrayMethodUsesToLength(METHOD_NAME, options) { + if (has(cache, METHOD_NAME)) return cache[METHOD_NAME]; + if (!options) options = {}; + var method = [][METHOD_NAME]; + var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false; + var argument0 = has(options, 0) ? options[0] : thrower; + var argument1 = has(options, 1) ? options[1] : undefined; + return cache[METHOD_NAME] = !!method && !fails(function () { + if (ACCESSORS && !descriptors) return true; + var O = { + length: -1 + }; + if (ACCESSORS) defineProperty$3(O, 1, { + enumerable: true, + get: thrower + });else O[1] = 1; + method.call(O, argument0, argument1); + }); + }; + + var $every = arrayIteration.every; + var STRICT_METHOD = arrayMethodIsStrict('every'); + var USES_TO_LENGTH = arrayMethodUsesToLength('every'); // `Array.prototype.every` method + // https://tc39.github.io/ecma262/#sec-array.prototype.every + + _export({ + target: 'Array', + proto: true, + forced: !STRICT_METHOD || !USES_TO_LENGTH + }, { + every: function every(callbackfn + /* , thisArg */ + ) { + return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + // https://tc39.github.io/ecma262/#sec-array.prototype.fill + + + var arrayFill = function fill(value + /* , start = 0, end = @length */ + ) { + var O = toObject(this); + var length = toLength(O.length); + var argumentsLength = arguments.length; + var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length); + var end = argumentsLength > 2 ? arguments[2] : undefined; + var endPos = end === undefined ? length : toAbsoluteIndex(end, length); + + while (endPos > index) { + O[index++] = value; + } + + return O; + }; + + // https://tc39.github.io/ecma262/#sec-array.prototype.fill + + _export({ + target: 'Array', + proto: true + }, { + fill: arrayFill + }); // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables + + addToUnscopables('fill'); + + var $filter = arrayIteration.filter; + var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); // Edge 14- issue + + var USES_TO_LENGTH$1 = arrayMethodUsesToLength('filter'); // `Array.prototype.filter` method + // https://tc39.github.io/ecma262/#sec-array.prototype.filter + // with adding support of @@species + + _export({ + target: 'Array', + proto: true, + forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH$1 + }, { + filter: function filter(callbackfn + /* , thisArg */ + ) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var $find = arrayIteration.find; + var FIND = 'find'; + var SKIPS_HOLES = true; + var USES_TO_LENGTH$2 = arrayMethodUsesToLength(FIND); // Shouldn't skip holes + + if (FIND in []) Array(1)[FIND](function () { + SKIPS_HOLES = false; + }); // `Array.prototype.find` method + // https://tc39.github.io/ecma262/#sec-array.prototype.find + + _export({ + target: 'Array', + proto: true, + forced: SKIPS_HOLES || !USES_TO_LENGTH$2 + }, { + find: function find(callbackfn + /* , that = undefined */ + ) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables + + addToUnscopables(FIND); + + var $findIndex = arrayIteration.findIndex; + var FIND_INDEX = 'findIndex'; + var SKIPS_HOLES$1 = true; + var USES_TO_LENGTH$3 = arrayMethodUsesToLength(FIND_INDEX); // Shouldn't skip holes + + if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { + SKIPS_HOLES$1 = false; + }); // `Array.prototype.findIndex` method + // https://tc39.github.io/ecma262/#sec-array.prototype.findindex + + _export({ + target: 'Array', + proto: true, + forced: SKIPS_HOLES$1 || !USES_TO_LENGTH$3 + }, { + findIndex: function findIndex(callbackfn + /* , that = undefined */ + ) { + return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables + + addToUnscopables(FIND_INDEX); + + // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray + + + var flattenIntoArray = function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? functionBindContext(mapper, thisArg, 3) : false; + var element; + + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + + if (depth > 0 && isArray(element)) { + targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1; + } else { + if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length'); + target[targetIndex] = element; + } + + targetIndex++; + } + + sourceIndex++; + } + + return targetIndex; + }; + + var flattenIntoArray_1 = flattenIntoArray; + + // https://github.com/tc39/proposal-flatMap + + + _export({ + target: 'Array', + proto: true + }, { + flat: function flat() + /* depthArg = 1 */ + { + var depthArg = arguments.length ? arguments[0] : undefined; + var O = toObject(this); + var sourceLen = toLength(O.length); + var A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray_1(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg)); + return A; + } + }); + + // https://github.com/tc39/proposal-flatMap + + + _export({ + target: 'Array', + proto: true + }, { + flatMap: function flatMap(callbackfn + /* , thisArg */ + ) { + var O = toObject(this); + var sourceLen = toLength(O.length); + var A; + aFunction$1(callbackfn); + A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray_1(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return A; + } + }); + + var $forEach$1 = arrayIteration.forEach; + var STRICT_METHOD$1 = arrayMethodIsStrict('forEach'); + var USES_TO_LENGTH$4 = arrayMethodUsesToLength('forEach'); // `Array.prototype.forEach` method implementation + // https://tc39.github.io/ecma262/#sec-array.prototype.foreach + + var arrayForEach = !STRICT_METHOD$1 || !USES_TO_LENGTH$4 ? function forEach(callbackfn + /* , thisArg */ + ) { + return $forEach$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } : [].forEach; + + // https://tc39.github.io/ecma262/#sec-array.prototype.foreach + + + _export({ + target: 'Array', + proto: true, + forced: [].forEach != arrayForEach + }, { + forEach: arrayForEach + }); + + var callWithSafeIterationClosing = function callWithSafeIterationClosing(iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); // 7.4.6 IteratorClose(iterator, completion) + } catch (error) { + var returnMethod = iterator['return']; + if (returnMethod !== undefined) anObject(returnMethod.call(iterator)); + throw error; + } + }; + + var iterators = {}; + + var ITERATOR = wellKnownSymbol('iterator'); + var ArrayPrototype$1 = Array.prototype; // check on default Array iterator + + var isArrayIteratorMethod = function isArrayIteratorMethod(it) { + return it !== undefined && (iterators.Array === it || ArrayPrototype$1[ITERATOR] === it); + }; + + var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag'); + var test = {}; + test[TO_STRING_TAG$1] = 'z'; + var toStringTagSupport = String(test) === '[object z]'; + + var TO_STRING_TAG$2 = wellKnownSymbol('toStringTag'); // ES3 wrong here + + var CORRECT_ARGUMENTS = classofRaw(function () { + return arguments; + }()) == 'Arguments'; // fallback for IE11 Script Access Denied error + + var tryGet = function tryGet(it, key) { + try { + return it[key]; + } catch (error) { + /* empty */ + } + }; // getting tag from ES6+ `Object.prototype.toString` + + + var classof = toStringTagSupport ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case + : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG$2)) == 'string' ? tag // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback + : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; + }; + + var ITERATOR$1 = wellKnownSymbol('iterator'); + + var getIteratorMethod = function getIteratorMethod(it) { + if (it != undefined) return it[ITERATOR$1] || it['@@iterator'] || iterators[classof(it)]; + }; + + // https://tc39.github.io/ecma262/#sec-array.from + + + var arrayFrom = function from(arrayLike + /* , mapfn = undefined, thisArg = undefined */ + ) { + var O = toObject(arrayLike); + var C = typeof this == 'function' ? this : Array; + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var iteratorMethod = getIteratorMethod(O); + var index = 0; + var length, result, step, iterator, next, value; + if (mapping) mapfn = functionBindContext(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2); // if the target is not iterable or it's an array with the default iterator - use a simple case + + if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { + iterator = iteratorMethod.call(O); + next = iterator.next; + result = new C(); + + for (; !(step = next.call(iterator)).done; index++) { + value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; + createProperty(result, index, value); + } + } else { + length = toLength(O.length); + result = new C(length); + + for (; length > index; index++) { + value = mapping ? mapfn(O[index], index) : O[index]; + createProperty(result, index, value); + } + } + + result.length = index; + return result; + }; + + var ITERATOR$2 = wellKnownSymbol('iterator'); + var SAFE_CLOSING = false; + + try { + var called = 0; + var iteratorWithReturn = { + next: function next() { + return { + done: !!called++ + }; + }, + 'return': function _return() { + SAFE_CLOSING = true; + } + }; + + iteratorWithReturn[ITERATOR$2] = function () { + return this; + }; // eslint-disable-next-line no-throw-literal + + + Array.from(iteratorWithReturn, function () { + throw 2; + }); + } catch (error) { + /* empty */ + } + + var checkCorrectnessOfIteration = function checkCorrectnessOfIteration(exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + + try { + var object = {}; + + object[ITERATOR$2] = function () { + return { + next: function next() { + return { + done: ITERATION_SUPPORT = true + }; + } + }; + }; + + exec(object); + } catch (error) { + /* empty */ + } + + return ITERATION_SUPPORT; + }; + + var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { + Array.from(iterable); + }); // `Array.from` method + // https://tc39.github.io/ecma262/#sec-array.from + + _export({ + target: 'Array', + stat: true, + forced: INCORRECT_ITERATION + }, { + from: arrayFrom + }); + + var $includes = arrayIncludes.includes; + var USES_TO_LENGTH$5 = arrayMethodUsesToLength('indexOf', { + ACCESSORS: true, + 1: 0 + }); // `Array.prototype.includes` method + // https://tc39.github.io/ecma262/#sec-array.prototype.includes + + _export({ + target: 'Array', + proto: true, + forced: !USES_TO_LENGTH$5 + }, { + includes: function includes(el + /* , fromIndex = 0 */ + ) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } + }); // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables + + addToUnscopables('includes'); + + var $indexOf = arrayIncludes.indexOf; + var nativeIndexOf = [].indexOf; + var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0; + var STRICT_METHOD$2 = arrayMethodIsStrict('indexOf'); + var USES_TO_LENGTH$6 = arrayMethodUsesToLength('indexOf', { + ACCESSORS: true, + 1: 0 + }); // `Array.prototype.indexOf` method + // https://tc39.github.io/ecma262/#sec-array.prototype.indexof + + _export({ + target: 'Array', + proto: true, + forced: NEGATIVE_ZERO || !STRICT_METHOD$2 || !USES_TO_LENGTH$6 + }, { + indexOf: function indexOf(searchElement + /* , fromIndex = 0 */ + ) { + return NEGATIVE_ZERO // convert -0 to +0 + ? nativeIndexOf.apply(this, arguments) || 0 : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + // https://tc39.github.io/ecma262/#sec-array.isarray + + _export({ + target: 'Array', + stat: true + }, { + isArray: isArray + }); + + var correctPrototypeGetter = !fails(function () { + function F() { + /* empty */ + } + + F.prototype.constructor = null; + return Object.getPrototypeOf(new F()) !== F.prototype; + }); + + var IE_PROTO$1 = sharedKey('IE_PROTO'); + var ObjectPrototype$1 = Object.prototype; // `Object.getPrototypeOf` method + // https://tc39.github.io/ecma262/#sec-object.getprototypeof + + var objectGetPrototypeOf = correctPrototypeGetter ? Object.getPrototypeOf : function (O) { + O = toObject(O); + if (has(O, IE_PROTO$1)) return O[IE_PROTO$1]; + + if (typeof O.constructor == 'function' && O instanceof O.constructor) { + return O.constructor.prototype; + } + + return O instanceof Object ? ObjectPrototype$1 : null; + }; + + var ITERATOR$3 = wellKnownSymbol('iterator'); + var BUGGY_SAFARI_ITERATORS = false; + + var returnThis = function returnThis() { + return this; + }; // `%IteratorPrototype%` object + // https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object + + + var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + + if ([].keys) { + arrayIterator = [].keys(); // Safari 8 has buggy iterators w/o `next` + + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;else { + PrototypeOfArrayIteratorPrototype = objectGetPrototypeOf(objectGetPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } + } + + if (IteratorPrototype == undefined) IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() + + if ( !has(IteratorPrototype, ITERATOR$3)) { + createNonEnumerableProperty(IteratorPrototype, ITERATOR$3, returnThis); + } + + var iteratorsCore = { + IteratorPrototype: IteratorPrototype, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS + }; + + var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; + + var returnThis$1 = function returnThis() { + return this; + }; + + var createIteratorConstructor = function createIteratorConstructor(IteratorConstructor, NAME, next) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = objectCreate(IteratorPrototype$1, { + next: createPropertyDescriptor(1, next) + }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false); + iterators[TO_STRING_TAG] = returnThis$1; + return IteratorConstructor; + }; + + var aPossiblePrototype = function aPossiblePrototype(it) { + if (!isObject(it) && it !== null) { + throw TypeError("Can't set " + String(it) + ' as a prototype'); + } + + return it; + }; + + // https://tc39.github.io/ecma262/#sec-object.setprototypeof + // Works with __proto__ only. Old v8 can't work with null proto objects. + + /* eslint-disable no-proto */ + + var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + + try { + setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; + setter.call(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { + /* empty */ + } + + return function setPrototypeOf(O, proto) { + anObject(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter.call(O, proto);else O.__proto__ = proto; + return O; + }; + }() : undefined); + + var IteratorPrototype$2 = iteratorsCore.IteratorPrototype; + var BUGGY_SAFARI_ITERATORS$1 = iteratorsCore.BUGGY_SAFARI_ITERATORS; + var ITERATOR$4 = wellKnownSymbol('iterator'); + var KEYS = 'keys'; + var VALUES = 'values'; + var ENTRIES = 'entries'; + + var returnThis$2 = function returnThis() { + return this; + }; + + var defineIterator = function defineIterator(Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function getIterationMethod(KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS$1 && KIND in IterablePrototype) return IterablePrototype[KIND]; + + switch (KIND) { + case KEYS: + return function keys() { + return new IteratorConstructor(this, KIND); + }; + + case VALUES: + return function values() { + return new IteratorConstructor(this, KIND); + }; + + case ENTRIES: + return function entries() { + return new IteratorConstructor(this, KIND); + }; + } + + return function () { + return new IteratorConstructor(this); + }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR$4] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS$1 && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; // fix native + + if (anyNativeIterator) { + CurrentIteratorPrototype = objectGetPrototypeOf(anyNativeIterator.call(new Iterable())); + + if (IteratorPrototype$2 !== Object.prototype && CurrentIteratorPrototype.next) { + if ( objectGetPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype$2) { + if (objectSetPrototypeOf) { + objectSetPrototypeOf(CurrentIteratorPrototype, IteratorPrototype$2); + } else if (typeof CurrentIteratorPrototype[ITERATOR$4] != 'function') { + createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR$4, returnThis$2); + } + } // Set @@toStringTag to native iterators + + + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true); + } + } // fix Array#{values, @@iterator}.name in V8 / FF + + + if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + INCORRECT_VALUES_NAME = true; + + defaultIterator = function values() { + return nativeIterator.call(this); + }; + } // define iterator + + + if ( IterablePrototype[ITERATOR$4] !== defaultIterator) { + createNonEnumerableProperty(IterablePrototype, ITERATOR$4, defaultIterator); + } + + iterators[NAME] = defaultIterator; // export additional methods + + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS$1 || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + redefine(IterablePrototype, KEY, methods[KEY]); + } + } else _export({ + target: NAME, + proto: true, + forced: BUGGY_SAFARI_ITERATORS$1 || INCORRECT_VALUES_NAME + }, methods); + } + + return methods; + }; + + var ARRAY_ITERATOR = 'Array Iterator'; + var setInternalState$1 = internalState.set; + var getInternalState$1 = internalState.getterFor(ARRAY_ITERATOR); // `Array.prototype.entries` method + // https://tc39.github.io/ecma262/#sec-array.prototype.entries + // `Array.prototype.keys` method + // https://tc39.github.io/ecma262/#sec-array.prototype.keys + // `Array.prototype.values` method + // https://tc39.github.io/ecma262/#sec-array.prototype.values + // `Array.prototype[@@iterator]` method + // https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator + // `CreateArrayIterator` internal method + // https://tc39.github.io/ecma262/#sec-createarrayiterator + + var es_array_iterator = defineIterator(Array, 'Array', function (iterated, kind) { + setInternalState$1(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject(iterated), + // target + index: 0, + // next index + kind: kind // kind + + }); // `%ArrayIteratorPrototype%.next` method + // https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next + }, function () { + var state = getInternalState$1(this); + var target = state.target; + var kind = state.kind; + var index = state.index++; + + if (!target || index >= target.length) { + state.target = undefined; + return { + value: undefined, + done: true + }; + } + + if (kind == 'keys') return { + value: index, + done: false + }; + if (kind == 'values') return { + value: target[index], + done: false + }; + return { + value: [index, target[index]], + done: false + }; + }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% + // https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject + // https://tc39.github.io/ecma262/#sec-createmappedargumentsobject + + iterators.Arguments = iterators.Array; // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables + + addToUnscopables('keys'); + addToUnscopables('values'); + addToUnscopables('entries'); + + var nativeJoin = [].join; + var ES3_STRINGS = indexedObject != Object; + var STRICT_METHOD$3 = arrayMethodIsStrict('join', ','); // `Array.prototype.join` method + // https://tc39.github.io/ecma262/#sec-array.prototype.join + + _export({ + target: 'Array', + proto: true, + forced: ES3_STRINGS || !STRICT_METHOD$3 + }, { + join: function join(separator) { + return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator); + } + }); + + var min$3 = Math.min; + var nativeLastIndexOf = [].lastIndexOf; + var NEGATIVE_ZERO$1 = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; + var STRICT_METHOD$4 = arrayMethodIsStrict('lastIndexOf'); // For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method + + var USES_TO_LENGTH$7 = arrayMethodUsesToLength('indexOf', { + ACCESSORS: true, + 1: 0 + }); + var FORCED$1 = NEGATIVE_ZERO$1 || !STRICT_METHOD$4 || !USES_TO_LENGTH$7; // `Array.prototype.lastIndexOf` method implementation + // https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof + + var arrayLastIndexOf = FORCED$1 ? function lastIndexOf(searchElement + /* , fromIndex = @[*-1] */ + ) { + // convert -0 to +0 + if (NEGATIVE_ZERO$1) return nativeLastIndexOf.apply(this, arguments) || 0; + var O = toIndexedObject(this); + var length = toLength(O.length); + var index = length - 1; + if (arguments.length > 1) index = min$3(index, toInteger(arguments[1])); + if (index < 0) index = length + index; + + for (; index >= 0; index--) { + if (index in O && O[index] === searchElement) return index || 0; + } + + return -1; + } : nativeLastIndexOf; + + // https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof + + _export({ + target: 'Array', + proto: true, + forced: arrayLastIndexOf !== [].lastIndexOf + }, { + lastIndexOf: arrayLastIndexOf + }); + + var $map = arrayIteration.map; + var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport('map'); // FF49- issue + + var USES_TO_LENGTH$8 = arrayMethodUsesToLength('map'); // `Array.prototype.map` method + // https://tc39.github.io/ecma262/#sec-array.prototype.map + // with adding support of @@species + + _export({ + target: 'Array', + proto: true, + forced: !HAS_SPECIES_SUPPORT$1 || !USES_TO_LENGTH$8 + }, { + map: function map(callbackfn + /* , thisArg */ + ) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var ISNT_GENERIC = fails(function () { + function F() { + /* empty */ + } + + return !(Array.of.call(F) instanceof F); + }); // `Array.of` method + // https://tc39.github.io/ecma262/#sec-array.of + // WebKit Array.of isn't generic + + _export({ + target: 'Array', + stat: true, + forced: ISNT_GENERIC + }, { + of: function of() + /* ...args */ + { + var index = 0; + var argumentsLength = arguments.length; + var result = new (typeof this == 'function' ? this : Array)(argumentsLength); + + while (argumentsLength > index) { + createProperty(result, index, arguments[index++]); + } + + result.length = argumentsLength; + return result; + } + }); + + var createMethod$2 = function createMethod(IS_RIGHT) { + return function (that, callbackfn, argumentsLength, memo) { + aFunction$1(callbackfn); + var O = toObject(that); + var self = indexedObject(O); + var length = toLength(O.length); + var index = IS_RIGHT ? length - 1 : 0; + var i = IS_RIGHT ? -1 : 1; + if (argumentsLength < 2) while (true) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + + index += i; + + if (IS_RIGHT ? index < 0 : length <= index) { + throw TypeError('Reduce of empty array with no initial value'); + } + } + + for (; IS_RIGHT ? index >= 0 : length > index; index += i) { + if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + } + + return memo; + }; + }; + + var arrayReduce = { + // `Array.prototype.reduce` method + // https://tc39.github.io/ecma262/#sec-array.prototype.reduce + left: createMethod$2(false), + // `Array.prototype.reduceRight` method + // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright + right: createMethod$2(true) + }; + + var $reduce = arrayReduce.left; + var STRICT_METHOD$5 = arrayMethodIsStrict('reduce'); + var USES_TO_LENGTH$9 = arrayMethodUsesToLength('reduce', { + 1: 0 + }); // `Array.prototype.reduce` method + // https://tc39.github.io/ecma262/#sec-array.prototype.reduce + + _export({ + target: 'Array', + proto: true, + forced: !STRICT_METHOD$5 || !USES_TO_LENGTH$9 + }, { + reduce: function reduce(callbackfn + /* , initialValue */ + ) { + return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var $reduceRight = arrayReduce.right; + var STRICT_METHOD$6 = arrayMethodIsStrict('reduceRight'); // For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method + + var USES_TO_LENGTH$a = arrayMethodUsesToLength('reduce', { + 1: 0 + }); // `Array.prototype.reduceRight` method + // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright + + _export({ + target: 'Array', + proto: true, + forced: !STRICT_METHOD$6 || !USES_TO_LENGTH$a + }, { + reduceRight: function reduceRight(callbackfn + /* , initialValue */ + ) { + return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var nativeReverse = [].reverse; + var test$1 = [1, 2]; // `Array.prototype.reverse` method + // https://tc39.github.io/ecma262/#sec-array.prototype.reverse + // fix for Safari 12.0 bug + // https://bugs.webkit.org/show_bug.cgi?id=188794 + + _export({ + target: 'Array', + proto: true, + forced: String(test$1) === String(test$1.reverse()) + }, { + reverse: function reverse() { + // eslint-disable-next-line no-self-assign + if (isArray(this)) this.length = this.length; + return nativeReverse.call(this); + } + }); + + var HAS_SPECIES_SUPPORT$2 = arrayMethodHasSpeciesSupport('slice'); + var USES_TO_LENGTH$b = arrayMethodUsesToLength('slice', { + ACCESSORS: true, + 0: 0, + 1: 2 + }); + var SPECIES$2 = wellKnownSymbol('species'); + var nativeSlice = [].slice; + var max$1 = Math.max; // `Array.prototype.slice` method + // https://tc39.github.io/ecma262/#sec-array.prototype.slice + // fallback for not array-like ES3 strings and DOM objects + + _export({ + target: 'Array', + proto: true, + forced: !HAS_SPECIES_SUPPORT$2 || !USES_TO_LENGTH$b + }, { + slice: function slice(start, end) { + var O = toIndexedObject(this); + var length = toLength(O.length); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + + var Constructor, result, n; + + if (isArray(O)) { + Constructor = O.constructor; // cross-realm fallback + + if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject(Constructor)) { + Constructor = Constructor[SPECIES$2]; + if (Constructor === null) Constructor = undefined; + } + + if (Constructor === Array || Constructor === undefined) { + return nativeSlice.call(O, k, fin); + } + } + + result = new (Constructor === undefined ? Array : Constructor)(max$1(fin - k, 0)); + + for (n = 0; k < fin; k++, n++) { + if (k in O) createProperty(result, n, O[k]); + } + + result.length = n; + return result; + } + }); + + var $some = arrayIteration.some; + var STRICT_METHOD$7 = arrayMethodIsStrict('some'); + var USES_TO_LENGTH$c = arrayMethodUsesToLength('some'); // `Array.prototype.some` method + // https://tc39.github.io/ecma262/#sec-array.prototype.some + + _export({ + target: 'Array', + proto: true, + forced: !STRICT_METHOD$7 || !USES_TO_LENGTH$c + }, { + some: function some(callbackfn + /* , thisArg */ + ) { + return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var test$2 = []; + var nativeSort = test$2.sort; // IE8- + + var FAILS_ON_UNDEFINED = fails(function () { + test$2.sort(undefined); + }); // V8 bug + + var FAILS_ON_NULL = fails(function () { + test$2.sort(null); + }); // Old WebKit + + var STRICT_METHOD$8 = arrayMethodIsStrict('sort'); + var FORCED$2 = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD$8; // `Array.prototype.sort` method + // https://tc39.github.io/ecma262/#sec-array.prototype.sort + + _export({ + target: 'Array', + proto: true, + forced: FORCED$2 + }, { + sort: function sort(comparefn) { + return comparefn === undefined ? nativeSort.call(toObject(this)) : nativeSort.call(toObject(this), aFunction$1(comparefn)); + } + }); + + var SPECIES$3 = wellKnownSymbol('species'); + + var setSpecies = function setSpecies(CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn(CONSTRUCTOR_NAME); + var defineProperty = objectDefineProperty.f; + + if (descriptors && Constructor && !Constructor[SPECIES$3]) { + defineProperty(Constructor, SPECIES$3, { + configurable: true, + get: function get() { + return this; + } + }); + } + }; + + // https://tc39.github.io/ecma262/#sec-get-array-@@species + + setSpecies('Array'); + + var HAS_SPECIES_SUPPORT$3 = arrayMethodHasSpeciesSupport('splice'); + var USES_TO_LENGTH$d = arrayMethodUsesToLength('splice', { + ACCESSORS: true, + 0: 0, + 1: 2 + }); + var max$2 = Math.max; + var min$4 = Math.min; + var MAX_SAFE_INTEGER$1 = 0x1FFFFFFFFFFFFF; + var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded'; // `Array.prototype.splice` method + // https://tc39.github.io/ecma262/#sec-array.prototype.splice + // with adding support of @@species + + _export({ + target: 'Array', + proto: true, + forced: !HAS_SPECIES_SUPPORT$3 || !USES_TO_LENGTH$d + }, { + splice: function splice(start, deleteCount + /* , ...items */ + ) { + var O = toObject(this); + var len = toLength(O.length); + var actualStart = toAbsoluteIndex(start, len); + var argumentsLength = arguments.length; + var insertCount, actualDeleteCount, A, k, from, to; + + if (argumentsLength === 0) { + insertCount = actualDeleteCount = 0; + } else if (argumentsLength === 1) { + insertCount = 0; + actualDeleteCount = len - actualStart; + } else { + insertCount = argumentsLength - 2; + actualDeleteCount = min$4(max$2(toInteger(deleteCount), 0), len - actualStart); + } + + if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER$1) { + throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED); + } + + A = arraySpeciesCreate(O, actualDeleteCount); + + for (k = 0; k < actualDeleteCount; k++) { + from = actualStart + k; + if (from in O) createProperty(A, k, O[from]); + } + + A.length = actualDeleteCount; + + if (insertCount < actualDeleteCount) { + for (k = actualStart; k < len - actualDeleteCount; k++) { + from = k + actualDeleteCount; + to = k + insertCount; + if (from in O) O[to] = O[from];else delete O[to]; + } + + for (k = len; k > len - actualDeleteCount + insertCount; k--) { + delete O[k - 1]; + } + } else if (insertCount > actualDeleteCount) { + for (k = len - actualDeleteCount; k > actualStart; k--) { + from = k + actualDeleteCount - 1; + to = k + insertCount - 1; + if (from in O) O[to] = O[from];else delete O[to]; + } + } + + for (k = 0; k < insertCount; k++) { + O[k + actualStart] = arguments[k + 2]; + } + + O.length = len - actualDeleteCount + insertCount; + return A; + } + }); + + // in popular engines, so it's moved to a separate module + + addToUnscopables('flat'); + + // in popular engines, so it's moved to a separate module + + addToUnscopables('flatMap'); + + var arrayBufferNative = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined'; + + var redefineAll = function redefineAll(target, src, options) { + for (var key in src) { + redefine(target, key, src[key], options); + } + + return target; + }; + + var anInstance = function anInstance(it, Constructor, name) { + if (!(it instanceof Constructor)) { + throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); + } + + return it; + }; + + // https://tc39.github.io/ecma262/#sec-toindex + + var toIndex = function toIndex(it) { + if (it === undefined) return 0; + var number = toInteger(it); + var length = toLength(number); + if (number !== length) throw RangeError('Wrong length or index'); + return length; + }; + + // IEEE754 conversions based on https://github.com/feross/ieee754 + // eslint-disable-next-line no-shadow-restricted-names + var Infinity$1 = 1 / 0; + var abs = Math.abs; + var pow = Math.pow; + var floor$1 = Math.floor; + var log = Math.log; + var LN2 = Math.LN2; + + var pack = function pack(number, mantissaLength, bytes) { + var buffer = new Array(bytes); + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0; + var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0; + var index = 0; + var exponent, mantissa, c; + number = abs(number); // eslint-disable-next-line no-self-compare + + if (number != number || number === Infinity$1) { + // eslint-disable-next-line no-self-compare + mantissa = number != number ? 1 : 0; + exponent = eMax; + } else { + exponent = floor$1(log(number) / LN2); + + if (number * (c = pow(2, -exponent)) < 1) { + exponent--; + c *= 2; + } + + if (exponent + eBias >= 1) { + number += rt / c; + } else { + number += rt * pow(2, 1 - eBias); + } + + if (number * c >= 2) { + exponent++; + c /= 2; + } + + if (exponent + eBias >= eMax) { + mantissa = 0; + exponent = eMax; + } else if (exponent + eBias >= 1) { + mantissa = (number * c - 1) * pow(2, mantissaLength); + exponent = exponent + eBias; + } else { + mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength); + exponent = 0; + } + } + + for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8) { + } + + exponent = exponent << mantissaLength | mantissa; + exponentLength += mantissaLength; + + for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8) { + } + + buffer[--index] |= sign * 128; + return buffer; + }; + + var unpack = function unpack(buffer, mantissaLength) { + var bytes = buffer.length; + var exponentLength = bytes * 8 - mantissaLength - 1; + var eMax = (1 << exponentLength) - 1; + var eBias = eMax >> 1; + var nBits = exponentLength - 7; + var index = bytes - 1; + var sign = buffer[index--]; + var exponent = sign & 127; + var mantissa; + sign >>= 7; + + for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8) { + } + + mantissa = exponent & (1 << -nBits) - 1; + exponent >>= -nBits; + nBits += mantissaLength; + + for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8) { + } + + if (exponent === 0) { + exponent = 1 - eBias; + } else if (exponent === eMax) { + return mantissa ? NaN : sign ? -Infinity$1 : Infinity$1; + } else { + mantissa = mantissa + pow(2, mantissaLength); + exponent = exponent - eBias; + } + + return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength); + }; + + var ieee754 = { + pack: pack, + unpack: unpack + }; + + var getOwnPropertyNames = objectGetOwnPropertyNames.f; + var defineProperty$4 = objectDefineProperty.f; + var getInternalState$2 = internalState.get; + var setInternalState$2 = internalState.set; + var ARRAY_BUFFER = 'ArrayBuffer'; + var DATA_VIEW = 'DataView'; + var PROTOTYPE$2 = 'prototype'; + var WRONG_LENGTH = 'Wrong length'; + var WRONG_INDEX = 'Wrong index'; + var NativeArrayBuffer = global_1[ARRAY_BUFFER]; + var $ArrayBuffer = NativeArrayBuffer; + var $DataView = global_1[DATA_VIEW]; + var $DataViewPrototype = $DataView && $DataView[PROTOTYPE$2]; + var ObjectPrototype$2 = Object.prototype; + var RangeError$1 = global_1.RangeError; + var packIEEE754 = ieee754.pack; + var unpackIEEE754 = ieee754.unpack; + + var packInt8 = function packInt8(number) { + return [number & 0xFF]; + }; + + var packInt16 = function packInt16(number) { + return [number & 0xFF, number >> 8 & 0xFF]; + }; + + var packInt32 = function packInt32(number) { + return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF]; + }; + + var unpackInt32 = function unpackInt32(buffer) { + return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0]; + }; + + var packFloat32 = function packFloat32(number) { + return packIEEE754(number, 23, 4); + }; + + var packFloat64 = function packFloat64(number) { + return packIEEE754(number, 52, 8); + }; + + var addGetter = function addGetter(Constructor, key) { + defineProperty$4(Constructor[PROTOTYPE$2], key, { + get: function get() { + return getInternalState$2(this)[key]; + } + }); + }; + + var get$1 = function get(view, count, index, isLittleEndian) { + var intIndex = toIndex(index); + var store = getInternalState$2(view); + if (intIndex + count > store.byteLength) throw RangeError$1(WRONG_INDEX); + var bytes = getInternalState$2(store.buffer).bytes; + var start = intIndex + store.byteOffset; + var pack = bytes.slice(start, start + count); + return isLittleEndian ? pack : pack.reverse(); + }; + + var set$1 = function set(view, count, index, conversion, value, isLittleEndian) { + var intIndex = toIndex(index); + var store = getInternalState$2(view); + if (intIndex + count > store.byteLength) throw RangeError$1(WRONG_INDEX); + var bytes = getInternalState$2(store.buffer).bytes; + var start = intIndex + store.byteOffset; + var pack = conversion(+value); + + for (var i = 0; i < count; i++) { + bytes[start + i] = pack[isLittleEndian ? i : count - i - 1]; + } + }; + + if (!arrayBufferNative) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, $ArrayBuffer, ARRAY_BUFFER); + var byteLength = toIndex(length); + setInternalState$2(this, { + bytes: arrayFill.call(new Array(byteLength), 0), + byteLength: byteLength + }); + if (!descriptors) this.byteLength = byteLength; + }; + + $DataView = function DataView(buffer, byteOffset, byteLength) { + anInstance(this, $DataView, DATA_VIEW); + anInstance(buffer, $ArrayBuffer, DATA_VIEW); + var bufferLength = getInternalState$2(buffer).byteLength; + var offset = toInteger(byteOffset); + if (offset < 0 || offset > bufferLength) throw RangeError$1('Wrong offset'); + byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); + if (offset + byteLength > bufferLength) throw RangeError$1(WRONG_LENGTH); + setInternalState$2(this, { + buffer: buffer, + byteLength: byteLength, + byteOffset: offset + }); + + if (!descriptors) { + this.buffer = buffer; + this.byteLength = byteLength; + this.byteOffset = offset; + } + }; + + if (descriptors) { + addGetter($ArrayBuffer, 'byteLength'); + addGetter($DataView, 'buffer'); + addGetter($DataView, 'byteLength'); + addGetter($DataView, 'byteOffset'); + } + + redefineAll($DataView[PROTOTYPE$2], { + getInt8: function getInt8(byteOffset) { + return get$1(this, 1, byteOffset)[0] << 24 >> 24; + }, + getUint8: function getUint8(byteOffset) { + return get$1(this, 1, byteOffset)[0]; + }, + getInt16: function getInt16(byteOffset + /* , littleEndian */ + ) { + var bytes = get$1(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined); + return (bytes[1] << 8 | bytes[0]) << 16 >> 16; + }, + getUint16: function getUint16(byteOffset + /* , littleEndian */ + ) { + var bytes = get$1(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined); + return bytes[1] << 8 | bytes[0]; + }, + getInt32: function getInt32(byteOffset + /* , littleEndian */ + ) { + return unpackInt32(get$1(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)); + }, + getUint32: function getUint32(byteOffset + /* , littleEndian */ + ) { + return unpackInt32(get$1(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0; + }, + getFloat32: function getFloat32(byteOffset + /* , littleEndian */ + ) { + return unpackIEEE754(get$1(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23); + }, + getFloat64: function getFloat64(byteOffset + /* , littleEndian */ + ) { + return unpackIEEE754(get$1(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52); + }, + setInt8: function setInt8(byteOffset, value) { + set$1(this, 1, byteOffset, packInt8, value); + }, + setUint8: function setUint8(byteOffset, value) { + set$1(this, 1, byteOffset, packInt8, value); + }, + setInt16: function setInt16(byteOffset, value + /* , littleEndian */ + ) { + set$1(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined); + }, + setUint16: function setUint16(byteOffset, value + /* , littleEndian */ + ) { + set$1(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined); + }, + setInt32: function setInt32(byteOffset, value + /* , littleEndian */ + ) { + set$1(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined); + }, + setUint32: function setUint32(byteOffset, value + /* , littleEndian */ + ) { + set$1(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined); + }, + setFloat32: function setFloat32(byteOffset, value + /* , littleEndian */ + ) { + set$1(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined); + }, + setFloat64: function setFloat64(byteOffset, value + /* , littleEndian */ + ) { + set$1(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined); + } + }); + } else { + if (!fails(function () { + NativeArrayBuffer(1); + }) || !fails(function () { + new NativeArrayBuffer(-1); // eslint-disable-line no-new + }) || fails(function () { + new NativeArrayBuffer(); // eslint-disable-line no-new + + new NativeArrayBuffer(1.5); // eslint-disable-line no-new + + new NativeArrayBuffer(NaN); // eslint-disable-line no-new + + return NativeArrayBuffer.name != ARRAY_BUFFER; + })) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, $ArrayBuffer); + return new NativeArrayBuffer(toIndex(length)); + }; + + var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE$2] = NativeArrayBuffer[PROTOTYPE$2]; + + for (var keys$1 = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys$1.length > j;) { + if (!((key = keys$1[j++]) in $ArrayBuffer)) { + createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]); + } + } + + ArrayBufferPrototype.constructor = $ArrayBuffer; + } // WebKit bug - the same parent prototype for typed arrays and data view + + + if (objectSetPrototypeOf && objectGetPrototypeOf($DataViewPrototype) !== ObjectPrototype$2) { + objectSetPrototypeOf($DataViewPrototype, ObjectPrototype$2); + } // iOS Safari 7.x bug + + + var testView = new $DataView(new $ArrayBuffer(2)); + var nativeSetInt8 = $DataViewPrototype.setInt8; + testView.setInt8(0, 2147483648); + testView.setInt8(1, 2147483649); + if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, { + setInt8: function setInt8(byteOffset, value) { + nativeSetInt8.call(this, byteOffset, value << 24 >> 24); + }, + setUint8: function setUint8(byteOffset, value) { + nativeSetInt8.call(this, byteOffset, value << 24 >> 24); + } + }, { + unsafe: true + }); + } + + setToStringTag($ArrayBuffer, ARRAY_BUFFER); + setToStringTag($DataView, DATA_VIEW); + var arrayBuffer = { + ArrayBuffer: $ArrayBuffer, + DataView: $DataView + }; + + var ARRAY_BUFFER$1 = 'ArrayBuffer'; + var ArrayBuffer$1 = arrayBuffer[ARRAY_BUFFER$1]; + var NativeArrayBuffer$1 = global_1[ARRAY_BUFFER$1]; // `ArrayBuffer` constructor + // https://tc39.github.io/ecma262/#sec-arraybuffer-constructor + + _export({ + global: true, + forced: NativeArrayBuffer$1 !== ArrayBuffer$1 + }, { + ArrayBuffer: ArrayBuffer$1 + }); + setSpecies(ARRAY_BUFFER$1); + + var defineProperty$5 = objectDefineProperty.f; + var Int8Array$1 = global_1.Int8Array; + var Int8ArrayPrototype = Int8Array$1 && Int8Array$1.prototype; + var Uint8ClampedArray$1 = global_1.Uint8ClampedArray; + var Uint8ClampedArrayPrototype = Uint8ClampedArray$1 && Uint8ClampedArray$1.prototype; + var TypedArray = Int8Array$1 && objectGetPrototypeOf(Int8Array$1); + var TypedArrayPrototype = Int8ArrayPrototype && objectGetPrototypeOf(Int8ArrayPrototype); + var ObjectPrototype$3 = Object.prototype; + var isPrototypeOf = ObjectPrototype$3.isPrototypeOf; + var TO_STRING_TAG$3 = wellKnownSymbol('toStringTag'); + var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); // Fixing native typed arrays in Opera Presto crashes the browser, see #595 + + var NATIVE_ARRAY_BUFFER_VIEWS = arrayBufferNative && !!objectSetPrototypeOf && classof(global_1.opera) !== 'Opera'; + var TYPED_ARRAY_TAG_REQIRED = false; + var NAME; + var TypedArrayConstructorsList = { + Int8Array: 1, + Uint8Array: 1, + Uint8ClampedArray: 1, + Int16Array: 2, + Uint16Array: 2, + Int32Array: 4, + Uint32Array: 4, + Float32Array: 4, + Float64Array: 8 + }; + + var isView = function isView(it) { + var klass = classof(it); + return klass === 'DataView' || has(TypedArrayConstructorsList, klass); + }; + + var isTypedArray = function isTypedArray(it) { + return isObject(it) && has(TypedArrayConstructorsList, classof(it)); + }; + + var aTypedArray = function aTypedArray(it) { + if (isTypedArray(it)) return it; + throw TypeError('Target is not a typed array'); + }; + + var aTypedArrayConstructor = function aTypedArrayConstructor(C) { + if (objectSetPrototypeOf) { + if (isPrototypeOf.call(TypedArray, C)) return C; + } else for (var ARRAY in TypedArrayConstructorsList) { + if (has(TypedArrayConstructorsList, NAME)) { + var TypedArrayConstructor = global_1[ARRAY]; + + if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) { + return C; + } + } + } + + throw TypeError('Target is not a typed array constructor'); + }; + + var exportTypedArrayMethod = function exportTypedArrayMethod(KEY, property, forced) { + if (!descriptors) return; + if (forced) for (var ARRAY in TypedArrayConstructorsList) { + var TypedArrayConstructor = global_1[ARRAY]; + + if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) { + delete TypedArrayConstructor.prototype[KEY]; + } + } + + if (!TypedArrayPrototype[KEY] || forced) { + redefine(TypedArrayPrototype, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property); + } + }; + + var exportTypedArrayStaticMethod = function exportTypedArrayStaticMethod(KEY, property, forced) { + var ARRAY, TypedArrayConstructor; + if (!descriptors) return; + + if (objectSetPrototypeOf) { + if (forced) for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global_1[ARRAY]; + + if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) { + delete TypedArrayConstructor[KEY]; + } + } + + if (!TypedArray[KEY] || forced) { + // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable + try { + return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array$1[KEY] || property); + } catch (error) { + /* empty */ + } + } else return; + } + + for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global_1[ARRAY]; + + if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { + redefine(TypedArrayConstructor, KEY, property); + } + } + }; + + for (NAME in TypedArrayConstructorsList) { + if (!global_1[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false; + } // WebKit bug - typed arrays constructors prototype is Object.prototype + + + if (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) { + // eslint-disable-next-line no-shadow + TypedArray = function TypedArray() { + throw TypeError('Incorrect invocation'); + }; + + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global_1[NAME]) objectSetPrototypeOf(global_1[NAME], TypedArray); + } + } + + if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype$3) { + TypedArrayPrototype = TypedArray.prototype; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global_1[NAME]) objectSetPrototypeOf(global_1[NAME].prototype, TypedArrayPrototype); + } + } // WebKit bug - one more object in Uint8ClampedArray prototype chain + + + if (NATIVE_ARRAY_BUFFER_VIEWS && objectGetPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) { + objectSetPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); + } + + if (descriptors && !has(TypedArrayPrototype, TO_STRING_TAG$3)) { + TYPED_ARRAY_TAG_REQIRED = true; + defineProperty$5(TypedArrayPrototype, TO_STRING_TAG$3, { + get: function get() { + return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; + } + }); + + for (NAME in TypedArrayConstructorsList) { + if (global_1[NAME]) { + createNonEnumerableProperty(global_1[NAME], TYPED_ARRAY_TAG, NAME); + } + } + } + + var arrayBufferViewCore = { + NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS, + TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG, + aTypedArray: aTypedArray, + aTypedArrayConstructor: aTypedArrayConstructor, + exportTypedArrayMethod: exportTypedArrayMethod, + exportTypedArrayStaticMethod: exportTypedArrayStaticMethod, + isView: isView, + isTypedArray: isTypedArray, + TypedArray: TypedArray, + TypedArrayPrototype: TypedArrayPrototype + }; + + var NATIVE_ARRAY_BUFFER_VIEWS$1 = arrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; // `ArrayBuffer.isView` method + // https://tc39.github.io/ecma262/#sec-arraybuffer.isview + + _export({ + target: 'ArrayBuffer', + stat: true, + forced: !NATIVE_ARRAY_BUFFER_VIEWS$1 + }, { + isView: arrayBufferViewCore.isView + }); + + var SPECIES$4 = wellKnownSymbol('species'); // `SpeciesConstructor` abstract operation + // https://tc39.github.io/ecma262/#sec-speciesconstructor + + var speciesConstructor = function speciesConstructor(O, defaultConstructor) { + var C = anObject(O).constructor; + var S; + return C === undefined || (S = anObject(C)[SPECIES$4]) == undefined ? defaultConstructor : aFunction$1(S); + }; + + var ArrayBuffer$2 = arrayBuffer.ArrayBuffer; + var DataView$1 = arrayBuffer.DataView; + var nativeArrayBufferSlice = ArrayBuffer$2.prototype.slice; + var INCORRECT_SLICE = fails(function () { + return !new ArrayBuffer$2(2).slice(1, undefined).byteLength; + }); // `ArrayBuffer.prototype.slice` method + // https://tc39.github.io/ecma262/#sec-arraybuffer.prototype.slice + + _export({ + target: 'ArrayBuffer', + proto: true, + unsafe: true, + forced: INCORRECT_SLICE + }, { + slice: function slice(start, end) { + if (nativeArrayBufferSlice !== undefined && end === undefined) { + return nativeArrayBufferSlice.call(anObject(this), start); // FF fix + } + + var length = anObject(this).byteLength; + var first = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = new (speciesConstructor(this, ArrayBuffer$2))(toLength(fin - first)); + var viewSource = new DataView$1(this); + var viewTarget = new DataView$1(result); + var index = 0; + + while (first < fin) { + viewTarget.setUint8(index++, viewSource.getUint8(first++)); + } + + return result; + } + }); + + // https://tc39.github.io/ecma262/#sec-dataview-constructor + + _export({ + global: true, + forced: !arrayBufferNative + }, { + DataView: arrayBuffer.DataView + }); + + // https://tc39.github.io/ecma262/#sec-date.now + + _export({ + target: 'Date', + stat: true + }, { + now: function now() { + return new Date().getTime(); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.repeat + + + var stringRepeat = ''.repeat || function repeat(count) { + var str = String(requireObjectCoercible(this)); + var result = ''; + var n = toInteger(count); + if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions'); + + for (; n > 0; (n >>>= 1) && (str += str)) { + if (n & 1) result += str; + } + + return result; + }; + + var ceil$1 = Math.ceil; // `String.prototype.{ padStart, padEnd }` methods implementation + + var createMethod$3 = function createMethod(IS_END) { + return function ($this, maxLength, fillString) { + var S = String(requireObjectCoercible($this)); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : String(fillString); + var intMaxLength = toLength(maxLength); + var fillLen, stringFiller; + if (intMaxLength <= stringLength || fillStr == '') return S; + fillLen = intMaxLength - stringLength; + stringFiller = stringRepeat.call(fillStr, ceil$1(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); + return IS_END ? S + stringFiller : stringFiller + S; + }; + }; + + var stringPad = { + // `String.prototype.padStart` method + // https://tc39.github.io/ecma262/#sec-string.prototype.padstart + start: createMethod$3(false), + // `String.prototype.padEnd` method + // https://tc39.github.io/ecma262/#sec-string.prototype.padend + end: createMethod$3(true) + }; + + var padStart = stringPad.start; + var abs$1 = Math.abs; + var DatePrototype = Date.prototype; + var getTime = DatePrototype.getTime; + var nativeDateToISOString = DatePrototype.toISOString; // `Date.prototype.toISOString` method implementation + // https://tc39.github.io/ecma262/#sec-date.prototype.toisostring + // PhantomJS / old WebKit fails here: + + var dateToIsoString = fails(function () { + return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; + }) || !fails(function () { + nativeDateToISOString.call(new Date(NaN)); + }) ? function toISOString() { + if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); + var date = this; + var year = date.getUTCFullYear(); + var milliseconds = date.getUTCMilliseconds(); + var sign = year < 0 ? '-' : year > 9999 ? '+' : ''; + return sign + padStart(abs$1(year), sign ? 6 : 4, 0) + '-' + padStart(date.getUTCMonth() + 1, 2, 0) + '-' + padStart(date.getUTCDate(), 2, 0) + 'T' + padStart(date.getUTCHours(), 2, 0) + ':' + padStart(date.getUTCMinutes(), 2, 0) + ':' + padStart(date.getUTCSeconds(), 2, 0) + '.' + padStart(milliseconds, 3, 0) + 'Z'; + } : nativeDateToISOString; + + // https://tc39.github.io/ecma262/#sec-date.prototype.toisostring + // PhantomJS / old WebKit has a broken implementations + + _export({ + target: 'Date', + proto: true, + forced: Date.prototype.toISOString !== dateToIsoString + }, { + toISOString: dateToIsoString + }); + + var FORCED$3 = fails(function () { + return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({ + toISOString: function toISOString() { + return 1; + } + }) !== 1; + }); // `Date.prototype.toJSON` method + // https://tc39.github.io/ecma262/#sec-date.prototype.tojson + + _export({ + target: 'Date', + proto: true, + forced: FORCED$3 + }, { + // eslint-disable-next-line no-unused-vars + toJSON: function toJSON(key) { + var O = toObject(this); + var pv = toPrimitive(O); + return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); + } + }); + + var dateToPrimitive = function dateToPrimitive(hint) { + if (hint !== 'string' && hint !== 'number' && hint !== 'default') { + throw TypeError('Incorrect hint'); + } + + return toPrimitive(anObject(this), hint !== 'number'); + }; + + var TO_PRIMITIVE$1 = wellKnownSymbol('toPrimitive'); + var DatePrototype$1 = Date.prototype; // `Date.prototype[@@toPrimitive]` method + // https://tc39.github.io/ecma262/#sec-date.prototype-@@toprimitive + + if (!(TO_PRIMITIVE$1 in DatePrototype$1)) { + createNonEnumerableProperty(DatePrototype$1, TO_PRIMITIVE$1, dateToPrimitive); + } + + var DatePrototype$2 = Date.prototype; + var INVALID_DATE = 'Invalid Date'; + var TO_STRING = 'toString'; + var nativeDateToString = DatePrototype$2[TO_STRING]; + var getTime$1 = DatePrototype$2.getTime; // `Date.prototype.toString` method + // https://tc39.github.io/ecma262/#sec-date.prototype.tostring + + if (new Date(NaN) + '' != INVALID_DATE) { + redefine(DatePrototype$2, TO_STRING, function toString() { + var value = getTime$1.call(this); // eslint-disable-next-line no-self-compare + + return value === value ? nativeDateToString.call(this) : INVALID_DATE; + }); + } + + var slice = [].slice; + var factories = {}; + + var construct = function construct(C, argsLength, args) { + if (!(argsLength in factories)) { + for (var list = [], i = 0; i < argsLength; i++) { + list[i] = 'a[' + i + ']'; + } // eslint-disable-next-line no-new-func + + + factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')'); + } + + return factories[argsLength](C, args); + }; // `Function.prototype.bind` method implementation + // https://tc39.github.io/ecma262/#sec-function.prototype.bind + + + var functionBind = Function.bind || function bind(that + /* , ...args */ + ) { + var fn = aFunction$1(this); + var partArgs = slice.call(arguments, 1); + + var boundFunction = function bound() + /* args... */ + { + var args = partArgs.concat(slice.call(arguments)); + return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args); + }; + + if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype; + return boundFunction; + }; + + // https://tc39.github.io/ecma262/#sec-function.prototype.bind + + _export({ + target: 'Function', + proto: true + }, { + bind: functionBind + }); + + var HAS_INSTANCE = wellKnownSymbol('hasInstance'); + var FunctionPrototype = Function.prototype; // `Function.prototype[@@hasInstance]` method + // https://tc39.github.io/ecma262/#sec-function.prototype-@@hasinstance + + if (!(HAS_INSTANCE in FunctionPrototype)) { + objectDefineProperty.f(FunctionPrototype, HAS_INSTANCE, { + value: function value(O) { + if (typeof this != 'function' || !isObject(O)) return false; + if (!isObject(this.prototype)) return O instanceof this; // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: + + while (O = objectGetPrototypeOf(O)) { + if (this.prototype === O) return true; + } + + return false; + } + }); + } + + var defineProperty$6 = objectDefineProperty.f; + var FunctionPrototype$1 = Function.prototype; + var FunctionPrototypeToString = FunctionPrototype$1.toString; + var nameRE = /^\s*function ([^ (]*)/; + var NAME$1 = 'name'; // Function instances `.name` property + // https://tc39.github.io/ecma262/#sec-function-instances-name + + if (descriptors && !(NAME$1 in FunctionPrototype$1)) { + defineProperty$6(FunctionPrototype$1, NAME$1, { + configurable: true, + get: function get() { + try { + return FunctionPrototypeToString.call(this).match(nameRE)[1]; + } catch (error) { + return ''; + } + } + }); + } + + // https://github.com/tc39/proposal-global + + _export({ + global: true + }, { + globalThis: global_1 + }); + + var $stringify$1 = getBuiltIn('JSON', 'stringify'); + var re = /[\uD800-\uDFFF]/g; + var low = /^[\uD800-\uDBFF]$/; + var hi = /^[\uDC00-\uDFFF]$/; + + var fix = function fix(match, offset, string) { + var prev = string.charAt(offset - 1); + var next = string.charAt(offset + 1); + + if (low.test(match) && !hi.test(next) || hi.test(match) && !low.test(prev)) { + return "\\u" + match.charCodeAt(0).toString(16); + } + + return match; + }; + + var FORCED$4 = fails(function () { + return $stringify$1("\uDF06\uD834") !== "\"\\udf06\\ud834\"" || $stringify$1("\uDEAD") !== "\"\\udead\""; + }); + + if ($stringify$1) { + // https://github.com/tc39/proposal-well-formed-stringify + _export({ + target: 'JSON', + stat: true, + forced: FORCED$4 + }, { + // eslint-disable-next-line no-unused-vars + stringify: function stringify(it, replacer, space) { + var result = $stringify$1.apply(null, arguments); + return typeof result == 'string' ? result.replace(re, fix) : result; + } + }); + } + + // https://tc39.github.io/ecma262/#sec-json-@@tostringtag + + setToStringTag(global_1.JSON, 'JSON', true); + + var freezing = !fails(function () { + return Object.isExtensible(Object.preventExtensions({})); + }); + + var internalMetadata = createCommonjsModule(function (module) { + var defineProperty = objectDefineProperty.f; + var METADATA = uid('meta'); + var id = 0; + + var isExtensible = Object.isExtensible || function () { + return true; + }; + + var setMetadata = function setMetadata(it) { + defineProperty(it, METADATA, { + value: { + objectID: 'O' + ++id, + // object ID + weakData: {} // weak collections IDs + + } + }); + }; + + var fastKey = function fastKey(it, create) { + // return a primitive with prefix + if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + + if (!has(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; // not necessary to add metadata + + if (!create) return 'E'; // add missing metadata + + setMetadata(it); // return object ID + } + + return it[METADATA].objectID; + }; + + var getWeakData = function getWeakData(it, create) { + if (!has(it, METADATA)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; // not necessary to add metadata + + if (!create) return false; // add missing metadata + + setMetadata(it); // return the store of weak collections IDs + } + + return it[METADATA].weakData; + }; // add metadata on freeze-family methods calling + + + var onFreeze = function onFreeze(it) { + if (freezing && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it); + return it; + }; + + var meta = module.exports = { + REQUIRED: false, + fastKey: fastKey, + getWeakData: getWeakData, + onFreeze: onFreeze + }; + hiddenKeys[METADATA] = true; + }); + + var iterate_1 = createCommonjsModule(function (module) { + var Result = function Result(stopped, result) { + this.stopped = stopped; + this.result = result; + }; + + var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) { + var boundFunction = functionBindContext(fn, that, AS_ENTRIES ? 2 : 1); + var iterator, iterFn, index, length, result, next, step; + + if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); // optimisation for array iterators + + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = toLength(iterable.length); length > index; index++) { + result = AS_ENTRIES ? boundFunction(anObject(step = iterable[index])[0], step[1]) : boundFunction(iterable[index]); + if (result && result instanceof Result) return result; + } + + return new Result(false); + } + + iterator = iterFn.call(iterable); + } + + next = iterator.next; + + while (!(step = next.call(iterator)).done) { + result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES); + if (_typeof(result) == 'object' && result && result instanceof Result) return result; + } + + return new Result(false); + }; + + iterate.stop = function (result) { + return new Result(true, result); + }; + }); + + var inheritIfRequired = function inheritIfRequired($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( // it can work only with native `setPrototypeOf` + objectSetPrototypeOf && // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + typeof (NewTarget = dummy.constructor) == 'function' && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype) objectSetPrototypeOf($this, NewTargetPrototype); + return $this; + }; + + var collection = function collection(CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global_1[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + + var fixMethod = function fixMethod(KEY) { + var nativeMethod = NativePrototype[KEY]; + redefine(NativePrototype, KEY, KEY == 'add' ? function add(value) { + nativeMethod.call(this, value === 0 ? 0 : value); + return this; + } : KEY == 'delete' ? function (key) { + return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); + } : KEY == 'get' ? function get(key) { + return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key); + } : KEY == 'has' ? function has(key) { + return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); + } : function set(key, value) { + nativeMethod.call(this, key === 0 ? 0 : key, value); + return this; + }); + }; // eslint-disable-next-line max-len + + + if (isForced_1(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () { + new NativeConstructor().entries().next(); + })))) { + // create collection constructor + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + internalMetadata.REQUIRED = true; + } else if (isForced_1(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); // early implementations not supports chaining + + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + + var THROWS_ON_PRIMITIVES = fails(function () { + instance.has(1); + }); // most early implementations doesn't supports iterables, most modern - not close it correctly + // eslint-disable-next-line no-new + + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { + new NativeConstructor(iterable); + }); // for early implementations -0 and +0 not the same + + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new NativeConstructor(); + var index = 5; + + while (index--) { + $instance[ADDER](index, index); + } + + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance(dummy, Constructor, CONSTRUCTOR_NAME); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (iterable != undefined) iterate_1(iterable, that[ADDER], that, IS_MAP); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); // weak collections should not contains .clear method + + if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; + } + + exported[CONSTRUCTOR_NAME] = Constructor; + _export({ + global: true, + forced: Constructor != NativeConstructor + }, exported); + setToStringTag(Constructor, CONSTRUCTOR_NAME); + if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + return Constructor; + }; + + var defineProperty$7 = objectDefineProperty.f; + var fastKey = internalMetadata.fastKey; + var setInternalState$3 = internalState.set; + var internalStateGetterFor = internalState.getterFor; + var collectionStrong = { + getConstructor: function getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, CONSTRUCTOR_NAME); + setInternalState$3(that, { + type: CONSTRUCTOR_NAME, + index: objectCreate(null), + first: undefined, + last: undefined, + size: 0 + }); + if (!descriptors) that.size = 0; + if (iterable != undefined) iterate_1(iterable, that[ADDER], that, IS_MAP); + }); + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + + var define = function define(that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; // change existing entry + + if (entry) { + entry.value = value; // create new entry + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) state.first = entry; + if (previous) previous.next = entry; + if (descriptors) state.size++;else that.size++; // add to index + + if (index !== 'F') state.index[index] = entry; + } + + return that; + }; + + var getEntry = function getEntry(that, key) { + var state = getInternalState(that); // fast case + + var index = fastKey(key); + var entry; + if (index !== 'F') return state.index[index]; // frozen object case + + for (entry = state.first; entry; entry = entry.next) { + if (entry.key == key) return entry; + } + }; + + redefineAll(C.prototype, { + // 23.1.3.1 Map.prototype.clear() + // 23.2.3.2 Set.prototype.clear() + clear: function clear() { + var that = this; + var state = getInternalState(that); + var data = state.index; + var entry = state.first; + + while (entry) { + entry.removed = true; + if (entry.previous) entry.previous = entry.previous.next = undefined; + delete data[entry.index]; + entry = entry.next; + } + + state.first = state.last = undefined; + if (descriptors) state.size = 0;else that.size = 0; + }, + // 23.1.3.3 Map.prototype.delete(key) + // 23.2.3.4 Set.prototype.delete(value) + 'delete': function _delete(key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) prev.next = next; + if (next) next.previous = prev; + if (state.first == entry) state.first = next; + if (state.last == entry) state.last = prev; + if (descriptors) state.size--;else that.size--; + } + + return !!entry; + }, + // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) + // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) + forEach: function forEach(callbackfn + /* , that = undefined */ + ) { + var state = getInternalState(this); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var entry; + + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); // revert to the last existing entry + + while (entry && entry.removed) { + entry = entry.previous; + } + } + }, + // 23.1.3.7 Map.prototype.has(key) + // 23.2.3.7 Set.prototype.has(value) + has: function has(key) { + return !!getEntry(this, key); + } + }); + redefineAll(C.prototype, IS_MAP ? { + // 23.1.3.6 Map.prototype.get(key) + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + // 23.1.3.9 Map.prototype.set(key, value) + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + // 23.2.3.1 Set.prototype.add(value) + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (descriptors) defineProperty$7(C.prototype, 'size', { + get: function get() { + return getInternalState(this).size; + } + }); + return C; + }, + setStrong: function setStrong(C, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); // add .keys, .values, .entries, [@@iterator] + // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 + + defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState$3(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined + }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; // revert to the last existing entry + + while (entry && entry.removed) { + entry = entry.previous; + } // get next entry + + + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + // or finish the iteration + state.target = undefined; + return { + value: undefined, + done: true + }; + } // return step by kind + + + if (kind == 'keys') return { + value: entry.key, + done: false + }; + if (kind == 'values') return { + value: entry.value, + done: false + }; + return { + value: [entry.key, entry.value], + done: false + }; + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); // add [@@species], 23.1.2.2, 23.2.2.2 + + setSpecies(CONSTRUCTOR_NAME); + } + }; + + // https://tc39.github.io/ecma262/#sec-map-objects + + + var es_map = collection('Map', function (init) { + return function Map() { + return init(this, arguments.length ? arguments[0] : undefined); + }; + }, collectionStrong); + + var log$1 = Math.log; // `Math.log1p` method implementation + // https://tc39.github.io/ecma262/#sec-math.log1p + + var mathLog1p = Math.log1p || function log1p(x) { + return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log$1(1 + x); + }; + + var nativeAcosh = Math.acosh; + var log$2 = Math.log; + var sqrt = Math.sqrt; + var LN2$1 = Math.LN2; + var FORCED$5 = !nativeAcosh // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 + || Math.floor(nativeAcosh(Number.MAX_VALUE)) != 710 // Tor Browser bug: Math.acosh(Infinity) -> NaN + || nativeAcosh(Infinity) != Infinity; // `Math.acosh` method + // https://tc39.github.io/ecma262/#sec-math.acosh + + _export({ + target: 'Math', + stat: true, + forced: FORCED$5 + }, { + acosh: function acosh(x) { + return (x = +x) < 1 ? NaN : x > 94906265.62425156 ? log$2(x) + LN2$1 : mathLog1p(x - 1 + sqrt(x - 1) * sqrt(x + 1)); + } + }); + + var nativeAsinh = Math.asinh; + var log$3 = Math.log; + var sqrt$1 = Math.sqrt; + + function asinh(x) { + return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log$3(x + sqrt$1(x * x + 1)); + } // `Math.asinh` method + // https://tc39.github.io/ecma262/#sec-math.asinh + // Tor Browser bug: Math.asinh(0) -> -0 + + + _export({ + target: 'Math', + stat: true, + forced: !(nativeAsinh && 1 / nativeAsinh(0) > 0) + }, { + asinh: asinh + }); + + var nativeAtanh = Math.atanh; + var log$4 = Math.log; // `Math.atanh` method + // https://tc39.github.io/ecma262/#sec-math.atanh + // Tor Browser bug: Math.atanh(-0) -> 0 + + _export({ + target: 'Math', + stat: true, + forced: !(nativeAtanh && 1 / nativeAtanh(-0) < 0) + }, { + atanh: function atanh(x) { + return (x = +x) == 0 ? x : log$4((1 + x) / (1 - x)) / 2; + } + }); + + // `Math.sign` method implementation + // https://tc39.github.io/ecma262/#sec-math.sign + var mathSign = Math.sign || function sign(x) { + // eslint-disable-next-line no-self-compare + return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; + }; + + var abs$2 = Math.abs; + var pow$1 = Math.pow; // `Math.cbrt` method + // https://tc39.github.io/ecma262/#sec-math.cbrt + + _export({ + target: 'Math', + stat: true + }, { + cbrt: function cbrt(x) { + return mathSign(x = +x) * pow$1(abs$2(x), 1 / 3); + } + }); + + var floor$2 = Math.floor; + var log$5 = Math.log; + var LOG2E = Math.LOG2E; // `Math.clz32` method + // https://tc39.github.io/ecma262/#sec-math.clz32 + + _export({ + target: 'Math', + stat: true + }, { + clz32: function clz32(x) { + return (x >>>= 0) ? 31 - floor$2(log$5(x + 0.5) * LOG2E) : 32; + } + }); + + var nativeExpm1 = Math.expm1; + var exp = Math.exp; // `Math.expm1` method implementation + // https://tc39.github.io/ecma262/#sec-math.expm1 + + var mathExpm1 = !nativeExpm1 // Old FF bug + || nativeExpm1(10) > 22025.465794806719 || nativeExpm1(10) < 22025.4657948067165168 // Tor Browser bug + || nativeExpm1(-2e-17) != -2e-17 ? function expm1(x) { + return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1; + } : nativeExpm1; + + var nativeCosh = Math.cosh; + var abs$3 = Math.abs; + var E = Math.E; // `Math.cosh` method + // https://tc39.github.io/ecma262/#sec-math.cosh + + _export({ + target: 'Math', + stat: true, + forced: !nativeCosh || nativeCosh(710) === Infinity + }, { + cosh: function cosh(x) { + var t = mathExpm1(abs$3(x) - 1) + 1; + return (t + 1 / (t * E * E)) * (E / 2); + } + }); + + // https://tc39.github.io/ecma262/#sec-math.expm1 + + _export({ + target: 'Math', + stat: true, + forced: mathExpm1 != Math.expm1 + }, { + expm1: mathExpm1 + }); + + var abs$4 = Math.abs; + var pow$2 = Math.pow; + var EPSILON = pow$2(2, -52); + var EPSILON32 = pow$2(2, -23); + var MAX32 = pow$2(2, 127) * (2 - EPSILON32); + var MIN32 = pow$2(2, -126); + + var roundTiesToEven = function roundTiesToEven(n) { + return n + 1 / EPSILON - 1 / EPSILON; + }; // `Math.fround` method implementation + // https://tc39.github.io/ecma262/#sec-math.fround + + + var mathFround = Math.fround || function fround(x) { + var $abs = abs$4(x); + var $sign = mathSign(x); + var a, result; + if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; + a = (1 + EPSILON32 / EPSILON) * $abs; + result = a - (a - $abs); // eslint-disable-next-line no-self-compare + + if (result > MAX32 || result != result) return $sign * Infinity; + return $sign * result; + }; + + // https://tc39.github.io/ecma262/#sec-math.fround + + _export({ + target: 'Math', + stat: true + }, { + fround: mathFround + }); + + var $hypot = Math.hypot; + var abs$5 = Math.abs; + var sqrt$2 = Math.sqrt; // Chrome 77 bug + // https://bugs.chromium.org/p/v8/issues/detail?id=9546 + + var BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity; // `Math.hypot` method + // https://tc39.github.io/ecma262/#sec-math.hypot + + _export({ + target: 'Math', + stat: true, + forced: BUGGY + }, { + hypot: function hypot(value1, value2) { + // eslint-disable-line no-unused-vars + var sum = 0; + var i = 0; + var aLen = arguments.length; + var larg = 0; + var arg, div; + + while (i < aLen) { + arg = abs$5(arguments[i++]); + + if (larg < arg) { + div = larg / arg; + sum = sum * div * div + 1; + larg = arg; + } else if (arg > 0) { + div = arg / larg; + sum += div * div; + } else sum += arg; + } + + return larg === Infinity ? Infinity : larg * sqrt$2(sum); + } + }); + + var nativeImul = Math.imul; + var FORCED$6 = fails(function () { + return nativeImul(0xFFFFFFFF, 5) != -5 || nativeImul.length != 2; + }); // `Math.imul` method + // https://tc39.github.io/ecma262/#sec-math.imul + // some WebKit versions fails with big numbers, some has wrong arity + + _export({ + target: 'Math', + stat: true, + forced: FORCED$6 + }, { + imul: function imul(x, y) { + var UINT16 = 0xFFFF; + var xn = +x; + var yn = +y; + var xl = UINT16 & xn; + var yl = UINT16 & yn; + return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); + } + }); + + var log$6 = Math.log; + var LOG10E = Math.LOG10E; // `Math.log10` method + // https://tc39.github.io/ecma262/#sec-math.log10 + + _export({ + target: 'Math', + stat: true + }, { + log10: function log10(x) { + return log$6(x) * LOG10E; + } + }); + + // https://tc39.github.io/ecma262/#sec-math.log1p + + _export({ + target: 'Math', + stat: true + }, { + log1p: mathLog1p + }); + + var log$7 = Math.log; + var LN2$2 = Math.LN2; // `Math.log2` method + // https://tc39.github.io/ecma262/#sec-math.log2 + + _export({ + target: 'Math', + stat: true + }, { + log2: function log2(x) { + return log$7(x) / LN2$2; + } + }); + + // https://tc39.github.io/ecma262/#sec-math.sign + + _export({ + target: 'Math', + stat: true + }, { + sign: mathSign + }); + + var abs$6 = Math.abs; + var exp$1 = Math.exp; + var E$1 = Math.E; + var FORCED$7 = fails(function () { + return Math.sinh(-2e-17) != -2e-17; + }); // `Math.sinh` method + // https://tc39.github.io/ecma262/#sec-math.sinh + // V8 near Chromium 38 has a problem with very small numbers + + _export({ + target: 'Math', + stat: true, + forced: FORCED$7 + }, { + sinh: function sinh(x) { + return abs$6(x = +x) < 1 ? (mathExpm1(x) - mathExpm1(-x)) / 2 : (exp$1(x - 1) - exp$1(-x - 1)) * (E$1 / 2); + } + }); + + var exp$2 = Math.exp; // `Math.tanh` method + // https://tc39.github.io/ecma262/#sec-math.tanh + + _export({ + target: 'Math', + stat: true + }, { + tanh: function tanh(x) { + var a = mathExpm1(x = +x); + var b = mathExpm1(-x); + return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp$2(x) + exp$2(-x)); + } + }); + + // https://tc39.github.io/ecma262/#sec-math-@@tostringtag + + setToStringTag(Math, 'Math', true); + + var ceil$2 = Math.ceil; + var floor$3 = Math.floor; // `Math.trunc` method + // https://tc39.github.io/ecma262/#sec-math.trunc + + _export({ + target: 'Math', + stat: true + }, { + trunc: function trunc(it) { + return (it > 0 ? floor$3 : ceil$2)(it); + } + }); + + // a string of all valid unicode whitespaces + // eslint-disable-next-line max-len + var whitespaces = "\t\n\x0B\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF"; + + var whitespace = '[' + whitespaces + ']'; + var ltrim = RegExp('^' + whitespace + whitespace + '*'); + var rtrim = RegExp(whitespace + whitespace + '*$'); // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation + + var createMethod$4 = function createMethod(TYPE) { + return function ($this) { + var string = String(requireObjectCoercible($this)); + if (TYPE & 1) string = string.replace(ltrim, ''); + if (TYPE & 2) string = string.replace(rtrim, ''); + return string; + }; + }; + + var stringTrim = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart + start: createMethod$4(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.github.io/ecma262/#sec-string.prototype.trimend + end: createMethod$4(2), + // `String.prototype.trim` method + // https://tc39.github.io/ecma262/#sec-string.prototype.trim + trim: createMethod$4(3) + }; + + var getOwnPropertyNames$1 = objectGetOwnPropertyNames.f; + var getOwnPropertyDescriptor$2 = objectGetOwnPropertyDescriptor.f; + var defineProperty$8 = objectDefineProperty.f; + var trim = stringTrim.trim; + var NUMBER = 'Number'; + var NativeNumber = global_1[NUMBER]; + var NumberPrototype = NativeNumber.prototype; // Opera ~12 has broken Object#toString + + var BROKEN_CLASSOF = classofRaw(objectCreate(NumberPrototype)) == NUMBER; // `ToNumber` abstract operation + // https://tc39.github.io/ecma262/#sec-tonumber + + var toNumber = function toNumber(argument) { + var it = toPrimitive(argument, false); + var first, third, radix, maxCode, digits, length, index, code; + + if (typeof it == 'string' && it.length > 2) { + it = trim(it); + first = it.charCodeAt(0); + + if (first === 43 || first === 45) { + third = it.charCodeAt(2); + if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix + } else if (first === 48) { + switch (it.charCodeAt(1)) { + case 66: + case 98: + radix = 2; + maxCode = 49; + break; + // fast equal of /^0b[01]+$/i + + case 79: + case 111: + radix = 8; + maxCode = 55; + break; + // fast equal of /^0o[0-7]+$/i + + default: + return +it; + } + + digits = it.slice(2); + length = digits.length; + + for (index = 0; index < length; index++) { + code = digits.charCodeAt(index); // parseInt parses a string to a first unavailable symbol + // but ToNumber should return NaN if a string contains unavailable symbols + + if (code < 48 || code > maxCode) return NaN; + } + + return parseInt(digits, radix); + } + } + + return +it; + }; // `Number` constructor + // https://tc39.github.io/ecma262/#sec-number-constructor + + + if (isForced_1(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) { + var NumberWrapper = function Number(value) { + var it = arguments.length < 1 ? 0 : value; + var dummy = this; + return dummy instanceof NumberWrapper // check on 1..constructor(foo) case + && (BROKEN_CLASSOF ? fails(function () { + NumberPrototype.valueOf.call(dummy); + }) : classofRaw(dummy) != NUMBER) ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it); + }; + + for (var keys$2 = descriptors ? getOwnPropertyNames$1(NativeNumber) : ( // ES3: + 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + // ES2015 (in case, if modules with ES2015 Number statics required before): + 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger').split(','), j$1 = 0, key$1; keys$2.length > j$1; j$1++) { + if (has(NativeNumber, key$1 = keys$2[j$1]) && !has(NumberWrapper, key$1)) { + defineProperty$8(NumberWrapper, key$1, getOwnPropertyDescriptor$2(NativeNumber, key$1)); + } + } + + NumberWrapper.prototype = NumberPrototype; + NumberPrototype.constructor = NumberWrapper; + redefine(global_1, NUMBER, NumberWrapper); + } + + // https://tc39.github.io/ecma262/#sec-number.epsilon + + _export({ + target: 'Number', + stat: true + }, { + EPSILON: Math.pow(2, -52) + }); + + var globalIsFinite = global_1.isFinite; // `Number.isFinite` method + // https://tc39.github.io/ecma262/#sec-number.isfinite + + var numberIsFinite = Number.isFinite || function isFinite(it) { + return typeof it == 'number' && globalIsFinite(it); + }; + + // https://tc39.github.io/ecma262/#sec-number.isfinite + + _export({ + target: 'Number', + stat: true + }, { + isFinite: numberIsFinite + }); + + var floor$4 = Math.floor; // `Number.isInteger` method implementation + // https://tc39.github.io/ecma262/#sec-number.isinteger + + var isInteger = function isInteger(it) { + return !isObject(it) && isFinite(it) && floor$4(it) === it; + }; + + // https://tc39.github.io/ecma262/#sec-number.isinteger + + _export({ + target: 'Number', + stat: true + }, { + isInteger: isInteger + }); + + // https://tc39.github.io/ecma262/#sec-number.isnan + + _export({ + target: 'Number', + stat: true + }, { + isNaN: function isNaN(number) { + // eslint-disable-next-line no-self-compare + return number != number; + } + }); + + var abs$7 = Math.abs; // `Number.isSafeInteger` method + // https://tc39.github.io/ecma262/#sec-number.issafeinteger + + _export({ + target: 'Number', + stat: true + }, { + isSafeInteger: function isSafeInteger(number) { + return isInteger(number) && abs$7(number) <= 0x1FFFFFFFFFFFFF; + } + }); + + // https://tc39.github.io/ecma262/#sec-number.max_safe_integer + + _export({ + target: 'Number', + stat: true + }, { + MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF + }); + + // https://tc39.github.io/ecma262/#sec-number.min_safe_integer + + _export({ + target: 'Number', + stat: true + }, { + MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF + }); + + var trim$1 = stringTrim.trim; + var $parseFloat = global_1.parseFloat; + var FORCED$8 = 1 / $parseFloat(whitespaces + '-0') !== -Infinity; // `parseFloat` method + // https://tc39.github.io/ecma262/#sec-parsefloat-string + + var numberParseFloat = FORCED$8 ? function parseFloat(string) { + var trimmedString = trim$1(String(string)); + var result = $parseFloat(trimmedString); + return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result; + } : $parseFloat; + + // https://tc39.github.io/ecma262/#sec-number.parseFloat + + _export({ + target: 'Number', + stat: true, + forced: Number.parseFloat != numberParseFloat + }, { + parseFloat: numberParseFloat + }); + + var trim$2 = stringTrim.trim; + var $parseInt = global_1.parseInt; + var hex = /^[+-]?0[Xx]/; + var FORCED$9 = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22; // `parseInt` method + // https://tc39.github.io/ecma262/#sec-parseint-string-radix + + var numberParseInt = FORCED$9 ? function parseInt(string, radix) { + var S = trim$2(String(string)); + return $parseInt(S, radix >>> 0 || (hex.test(S) ? 16 : 10)); + } : $parseInt; + + // https://tc39.github.io/ecma262/#sec-number.parseint + + _export({ + target: 'Number', + stat: true, + forced: Number.parseInt != numberParseInt + }, { + parseInt: numberParseInt + }); + + // https://tc39.github.io/ecma262/#sec-thisnumbervalue + + var thisNumberValue = function thisNumberValue(value) { + if (typeof value != 'number' && classofRaw(value) != 'Number') { + throw TypeError('Incorrect invocation'); + } + + return +value; + }; + + var nativeToFixed = 1.0.toFixed; + var floor$5 = Math.floor; + + var pow$3 = function pow(x, n, acc) { + return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); + }; + + var log$8 = function log(x) { + var n = 0; + var x2 = x; + + while (x2 >= 4096) { + n += 12; + x2 /= 4096; + } + + while (x2 >= 2) { + n += 1; + x2 /= 2; + } + + return n; + }; + + var FORCED$a = nativeToFixed && (0.00008.toFixed(3) !== '0.000' || 0.9.toFixed(0) !== '1' || 1.255.toFixed(2) !== '1.25' || 1000000000000000128.0.toFixed(0) !== '1000000000000000128') || !fails(function () { + // V8 ~ Android 4.3- + nativeToFixed.call({}); + }); // `Number.prototype.toFixed` method + // https://tc39.github.io/ecma262/#sec-number.prototype.tofixed + + _export({ + target: 'Number', + proto: true, + forced: FORCED$a + }, { + // eslint-disable-next-line max-statements + toFixed: function toFixed(fractionDigits) { + var number = thisNumberValue(this); + var fractDigits = toInteger(fractionDigits); + var data = [0, 0, 0, 0, 0, 0]; + var sign = ''; + var result = '0'; + var e, z, j, k; + + var multiply = function multiply(n, c) { + var index = -1; + var c2 = c; + + while (++index < 6) { + c2 += n * data[index]; + data[index] = c2 % 1e7; + c2 = floor$5(c2 / 1e7); + } + }; + + var divide = function divide(n) { + var index = 6; + var c = 0; + + while (--index >= 0) { + c += data[index]; + data[index] = floor$5(c / n); + c = c % n * 1e7; + } + }; + + var dataToString = function dataToString() { + var index = 6; + var s = ''; + + while (--index >= 0) { + if (s !== '' || index === 0 || data[index] !== 0) { + var t = String(data[index]); + s = s === '' ? t : s + stringRepeat.call('0', 7 - t.length) + t; + } + } + + return s; + }; + + if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits'); // eslint-disable-next-line no-self-compare + + if (number != number) return 'NaN'; + if (number <= -1e21 || number >= 1e21) return String(number); + + if (number < 0) { + sign = '-'; + number = -number; + } + + if (number > 1e-21) { + e = log$8(number * pow$3(2, 69, 1)) - 69; + z = e < 0 ? number * pow$3(2, -e, 1) : number / pow$3(2, e, 1); + z *= 0x10000000000000; + e = 52 - e; + + if (e > 0) { + multiply(0, z); + j = fractDigits; + + while (j >= 7) { + multiply(1e7, 0); + j -= 7; + } + + multiply(pow$3(10, j, 1), 0); + j = e - 1; + + while (j >= 23) { + divide(1 << 23); + j -= 23; + } + + divide(1 << j); + multiply(1, 1); + divide(2); + result = dataToString(); + } else { + multiply(0, z); + multiply(1 << -e, 0); + result = dataToString() + stringRepeat.call('0', fractDigits); + } + } + + if (fractDigits > 0) { + k = result.length; + result = sign + (k <= fractDigits ? '0.' + stringRepeat.call('0', fractDigits - k) + result : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits)); + } else { + result = sign + result; + } + + return result; + } + }); + + var nativeToPrecision = 1.0.toPrecision; + var FORCED$b = fails(function () { + // IE7- + return nativeToPrecision.call(1, undefined) !== '1'; + }) || !fails(function () { + // V8 ~ Android 4.3- + nativeToPrecision.call({}); + }); // `Number.prototype.toPrecision` method + // https://tc39.github.io/ecma262/#sec-number.prototype.toprecision + + _export({ + target: 'Number', + proto: true, + forced: FORCED$b + }, { + toPrecision: function toPrecision(precision) { + return precision === undefined ? nativeToPrecision.call(thisNumberValue(this)) : nativeToPrecision.call(thisNumberValue(this), precision); + } + }); + + var nativeAssign = Object.assign; + var defineProperty$9 = Object.defineProperty; // `Object.assign` method + // https://tc39.github.io/ecma262/#sec-object.assign + + var objectAssign = !nativeAssign || fails(function () { + // should have correct order of operations (Edge bug) + if (descriptors && nativeAssign({ + b: 1 + }, nativeAssign(defineProperty$9({}, 'a', { + enumerable: true, + get: function get() { + defineProperty$9(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { + b: 2 + })).b !== 1) return true; // should work with symbols and should have deterministic property order (V8 bug) + + var A = {}; + var B = {}; // eslint-disable-next-line no-undef + + var symbol = Symbol(); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { + B[chr] = chr; + }); + return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet; + }) ? function assign(target, source) { + // eslint-disable-line no-unused-vars + var T = toObject(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = objectGetOwnPropertySymbols.f; + var propertyIsEnumerable = objectPropertyIsEnumerable.f; + + while (argumentsLength > index) { + var S = indexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + + while (length > j) { + key = keys[j++]; + if (!descriptors || propertyIsEnumerable.call(S, key)) T[key] = S[key]; + } + } + + return T; + } : nativeAssign; + + // https://tc39.github.io/ecma262/#sec-object.assign + + _export({ + target: 'Object', + stat: true, + forced: Object.assign !== objectAssign + }, { + assign: objectAssign + }); + + // https://tc39.github.io/ecma262/#sec-object.create + + _export({ + target: 'Object', + stat: true, + sham: !descriptors + }, { + create: objectCreate + }); + + var objectPrototypeAccessorsForced = !fails(function () { + var key = Math.random(); // In FF throws only define methods + // eslint-disable-next-line no-undef, no-useless-call + + __defineSetter__.call(null, key, function () { + /* empty */ + }); + + delete global_1[key]; + }); + + // https://tc39.github.io/ecma262/#sec-object.prototype.__defineGetter__ + + + if (descriptors) { + _export({ + target: 'Object', + proto: true, + forced: objectPrototypeAccessorsForced + }, { + __defineGetter__: function __defineGetter__(P, getter) { + objectDefineProperty.f(toObject(this), P, { + get: aFunction$1(getter), + enumerable: true, + configurable: true + }); + } + }); + } + + // https://tc39.github.io/ecma262/#sec-object.defineproperties + + _export({ + target: 'Object', + stat: true, + forced: !descriptors, + sham: !descriptors + }, { + defineProperties: objectDefineProperties + }); + + // https://tc39.github.io/ecma262/#sec-object.defineproperty + + _export({ + target: 'Object', + stat: true, + forced: !descriptors, + sham: !descriptors + }, { + defineProperty: objectDefineProperty.f + }); + + // https://tc39.github.io/ecma262/#sec-object.prototype.__defineSetter__ + + + if (descriptors) { + _export({ + target: 'Object', + proto: true, + forced: objectPrototypeAccessorsForced + }, { + __defineSetter__: function __defineSetter__(P, setter) { + objectDefineProperty.f(toObject(this), P, { + set: aFunction$1(setter), + enumerable: true, + configurable: true + }); + } + }); + } + + var propertyIsEnumerable = objectPropertyIsEnumerable.f; // `Object.{ entries, values }` methods implementation + + var createMethod$5 = function createMethod(TO_ENTRIES) { + return function (it) { + var O = toIndexedObject(it); + var keys = objectKeys(O); + var length = keys.length; + var i = 0; + var result = []; + var key; + + while (length > i) { + key = keys[i++]; + + if (!descriptors || propertyIsEnumerable.call(O, key)) { + result.push(TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + + return result; + }; + }; + + var objectToArray = { + // `Object.entries` method + // https://tc39.github.io/ecma262/#sec-object.entries + entries: createMethod$5(true), + // `Object.values` method + // https://tc39.github.io/ecma262/#sec-object.values + values: createMethod$5(false) + }; + + var $entries = objectToArray.entries; // `Object.entries` method + // https://tc39.github.io/ecma262/#sec-object.entries + + _export({ + target: 'Object', + stat: true + }, { + entries: function entries(O) { + return $entries(O); + } + }); + + var onFreeze = internalMetadata.onFreeze; + var nativeFreeze = Object.freeze; + var FAILS_ON_PRIMITIVES = fails(function () { + nativeFreeze(1); + }); // `Object.freeze` method + // https://tc39.github.io/ecma262/#sec-object.freeze + + _export({ + target: 'Object', + stat: true, + forced: FAILS_ON_PRIMITIVES, + sham: !freezing + }, { + freeze: function freeze(it) { + return nativeFreeze && isObject(it) ? nativeFreeze(onFreeze(it)) : it; + } + }); + + // https://github.com/tc39/proposal-object-from-entries + + _export({ + target: 'Object', + stat: true + }, { + fromEntries: function fromEntries(iterable) { + var obj = {}; + iterate_1(iterable, function (k, v) { + createProperty(obj, k, v); + }, undefined, true); + return obj; + } + }); + + var nativeGetOwnPropertyDescriptor$2 = objectGetOwnPropertyDescriptor.f; + var FAILS_ON_PRIMITIVES$1 = fails(function () { + nativeGetOwnPropertyDescriptor$2(1); + }); + var FORCED$c = !descriptors || FAILS_ON_PRIMITIVES$1; // `Object.getOwnPropertyDescriptor` method + // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor + + _export({ + target: 'Object', + stat: true, + forced: FORCED$c, + sham: !descriptors + }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { + return nativeGetOwnPropertyDescriptor$2(toIndexedObject(it), key); + } + }); + + // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors + + _export({ + target: 'Object', + stat: true, + sham: !descriptors + }, { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { + var O = toIndexedObject(object); + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + var keys = ownKeys(O); + var result = {}; + var index = 0; + var key, descriptor; + + while (keys.length > index) { + descriptor = getOwnPropertyDescriptor(O, key = keys[index++]); + if (descriptor !== undefined) createProperty(result, key, descriptor); + } + + return result; + } + }); + + var nativeGetOwnPropertyNames$2 = objectGetOwnPropertyNamesExternal.f; + var FAILS_ON_PRIMITIVES$2 = fails(function () { + return !Object.getOwnPropertyNames(1); + }); // `Object.getOwnPropertyNames` method + // https://tc39.github.io/ecma262/#sec-object.getownpropertynames + + _export({ + target: 'Object', + stat: true, + forced: FAILS_ON_PRIMITIVES$2 + }, { + getOwnPropertyNames: nativeGetOwnPropertyNames$2 + }); + + var FAILS_ON_PRIMITIVES$3 = fails(function () { + objectGetPrototypeOf(1); + }); // `Object.getPrototypeOf` method + // https://tc39.github.io/ecma262/#sec-object.getprototypeof + + _export({ + target: 'Object', + stat: true, + forced: FAILS_ON_PRIMITIVES$3, + sham: !correctPrototypeGetter + }, { + getPrototypeOf: function getPrototypeOf(it) { + return objectGetPrototypeOf(toObject(it)); + } + }); + + // `SameValue` abstract operation + // https://tc39.github.io/ecma262/#sec-samevalue + var sameValue = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare + return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; + }; + + // https://tc39.github.io/ecma262/#sec-object.is + + _export({ + target: 'Object', + stat: true + }, { + is: sameValue + }); + + var nativeIsExtensible = Object.isExtensible; + var FAILS_ON_PRIMITIVES$4 = fails(function () { + nativeIsExtensible(1); + }); // `Object.isExtensible` method + // https://tc39.github.io/ecma262/#sec-object.isextensible + + _export({ + target: 'Object', + stat: true, + forced: FAILS_ON_PRIMITIVES$4 + }, { + isExtensible: function isExtensible(it) { + return isObject(it) ? nativeIsExtensible ? nativeIsExtensible(it) : true : false; + } + }); + + var nativeIsFrozen = Object.isFrozen; + var FAILS_ON_PRIMITIVES$5 = fails(function () { + nativeIsFrozen(1); + }); // `Object.isFrozen` method + // https://tc39.github.io/ecma262/#sec-object.isfrozen + + _export({ + target: 'Object', + stat: true, + forced: FAILS_ON_PRIMITIVES$5 + }, { + isFrozen: function isFrozen(it) { + return isObject(it) ? nativeIsFrozen ? nativeIsFrozen(it) : false : true; + } + }); + + var nativeIsSealed = Object.isSealed; + var FAILS_ON_PRIMITIVES$6 = fails(function () { + nativeIsSealed(1); + }); // `Object.isSealed` method + // https://tc39.github.io/ecma262/#sec-object.issealed + + _export({ + target: 'Object', + stat: true, + forced: FAILS_ON_PRIMITIVES$6 + }, { + isSealed: function isSealed(it) { + return isObject(it) ? nativeIsSealed ? nativeIsSealed(it) : false : true; + } + }); + + var FAILS_ON_PRIMITIVES$7 = fails(function () { + objectKeys(1); + }); // `Object.keys` method + // https://tc39.github.io/ecma262/#sec-object.keys + + _export({ + target: 'Object', + stat: true, + forced: FAILS_ON_PRIMITIVES$7 + }, { + keys: function keys(it) { + return objectKeys(toObject(it)); + } + }); + + var getOwnPropertyDescriptor$3 = objectGetOwnPropertyDescriptor.f; // `Object.prototype.__lookupGetter__` method + // https://tc39.github.io/ecma262/#sec-object.prototype.__lookupGetter__ + + if (descriptors) { + _export({ + target: 'Object', + proto: true, + forced: objectPrototypeAccessorsForced + }, { + __lookupGetter__: function __lookupGetter__(P) { + var O = toObject(this); + var key = toPrimitive(P, true); + var desc; + + do { + if (desc = getOwnPropertyDescriptor$3(O, key)) return desc.get; + } while (O = objectGetPrototypeOf(O)); + } + }); + } + + var getOwnPropertyDescriptor$4 = objectGetOwnPropertyDescriptor.f; // `Object.prototype.__lookupSetter__` method + // https://tc39.github.io/ecma262/#sec-object.prototype.__lookupSetter__ + + if (descriptors) { + _export({ + target: 'Object', + proto: true, + forced: objectPrototypeAccessorsForced + }, { + __lookupSetter__: function __lookupSetter__(P) { + var O = toObject(this); + var key = toPrimitive(P, true); + var desc; + + do { + if (desc = getOwnPropertyDescriptor$4(O, key)) return desc.set; + } while (O = objectGetPrototypeOf(O)); + } + }); + } + + var onFreeze$1 = internalMetadata.onFreeze; + var nativePreventExtensions = Object.preventExtensions; + var FAILS_ON_PRIMITIVES$8 = fails(function () { + nativePreventExtensions(1); + }); // `Object.preventExtensions` method + // https://tc39.github.io/ecma262/#sec-object.preventextensions + + _export({ + target: 'Object', + stat: true, + forced: FAILS_ON_PRIMITIVES$8, + sham: !freezing + }, { + preventExtensions: function preventExtensions(it) { + return nativePreventExtensions && isObject(it) ? nativePreventExtensions(onFreeze$1(it)) : it; + } + }); + + var onFreeze$2 = internalMetadata.onFreeze; + var nativeSeal = Object.seal; + var FAILS_ON_PRIMITIVES$9 = fails(function () { + nativeSeal(1); + }); // `Object.seal` method + // https://tc39.github.io/ecma262/#sec-object.seal + + _export({ + target: 'Object', + stat: true, + forced: FAILS_ON_PRIMITIVES$9, + sham: !freezing + }, { + seal: function seal(it) { + return nativeSeal && isObject(it) ? nativeSeal(onFreeze$2(it)) : it; + } + }); + + // https://tc39.github.io/ecma262/#sec-object.setprototypeof + + _export({ + target: 'Object', + stat: true + }, { + setPrototypeOf: objectSetPrototypeOf + }); + + // https://tc39.github.io/ecma262/#sec-object.prototype.tostring + + + var objectToString = toStringTagSupport ? {}.toString : function toString() { + return '[object ' + classof(this) + ']'; + }; + + // https://tc39.github.io/ecma262/#sec-object.prototype.tostring + + if (!toStringTagSupport) { + redefine(Object.prototype, 'toString', objectToString, { + unsafe: true + }); + } + + var $values = objectToArray.values; // `Object.values` method + // https://tc39.github.io/ecma262/#sec-object.values + + _export({ + target: 'Object', + stat: true + }, { + values: function values(O) { + return $values(O); + } + }); + + // https://tc39.github.io/ecma262/#sec-parsefloat-string + + _export({ + global: true, + forced: parseFloat != numberParseFloat + }, { + parseFloat: numberParseFloat + }); + + // https://tc39.github.io/ecma262/#sec-parseint-string-radix + + _export({ + global: true, + forced: parseInt != numberParseInt + }, { + parseInt: numberParseInt + }); + + var nativePromiseConstructor = global_1.Promise; + + var engineIsIos = /(iphone|ipod|ipad).*applewebkit/i.test(engineUserAgent); + + var location$1 = global_1.location; + var set$2 = global_1.setImmediate; + var clear = global_1.clearImmediate; + var process$1 = global_1.process; + var MessageChannel = global_1.MessageChannel; + var Dispatch = global_1.Dispatch; + var counter = 0; + var queue = {}; + var ONREADYSTATECHANGE = 'onreadystatechange'; + var defer, channel, port; + + var run = function run(id) { + // eslint-disable-next-line no-prototype-builtins + if (queue.hasOwnProperty(id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } + }; + + var runner = function runner(id) { + return function () { + run(id); + }; + }; + + var listener = function listener(event) { + run(event.data); + }; + + var post = function post(id) { + // old engines have not location.origin + global_1.postMessage(id + '', location$1.protocol + '//' + location$1.host); + }; // Node.js 0.9+ & IE10+ has setImmediate, otherwise: + + + if (!set$2 || !clear) { + set$2 = function setImmediate(fn) { + var args = []; + var i = 1; + + while (arguments.length > i) { + args.push(arguments[i++]); + } + + queue[++counter] = function () { + // eslint-disable-next-line no-new-func + (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args); + }; + + defer(counter); + return counter; + }; + + clear = function clearImmediate(id) { + delete queue[id]; + }; // Node.js 0.8- + + + if (classofRaw(process$1) == 'process') { + defer = function defer(id) { + process$1.nextTick(runner(id)); + }; // Sphere (JS game engine) Dispatch API + + } else if (Dispatch && Dispatch.now) { + defer = function defer(id) { + Dispatch.now(runner(id)); + }; // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + + } else if (MessageChannel && !engineIsIos) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = listener; + defer = functionBindContext(port.postMessage, port, 1); // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if (global_1.addEventListener && typeof postMessage == 'function' && !global_1.importScripts && !fails(post) && location$1.protocol !== 'file:') { + defer = post; + global_1.addEventListener('message', listener, false); // IE8- + } else if (ONREADYSTATECHANGE in documentCreateElement('script')) { + defer = function defer(id) { + html.appendChild(documentCreateElement('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run(id); + }; + }; // Rest old browsers + + } else { + defer = function defer(id) { + setTimeout(runner(id), 0); + }; + } + } + + var task = { + set: set$2, + clear: clear + }; + + var getOwnPropertyDescriptor$5 = objectGetOwnPropertyDescriptor.f; + var macrotask = task.set; + var MutationObserver$1 = global_1.MutationObserver || global_1.WebKitMutationObserver; + var process$2 = global_1.process; + var Promise$1 = global_1.Promise; + var IS_NODE = classofRaw(process$2) == 'process'; // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` + + var queueMicrotaskDescriptor = getOwnPropertyDescriptor$5(global_1, 'queueMicrotask'); + var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; + var flush, head, last, notify, toggle, node, promise, then; // modern engines have queueMicrotask method + + if (!queueMicrotask) { + flush = function flush() { + var parent, fn; + if (IS_NODE && (parent = process$2.domain)) parent.exit(); + + while (head) { + fn = head.fn; + head = head.next; + + try { + fn(); + } catch (error) { + if (head) notify();else last = undefined; + throw error; + } + } + + last = undefined; + if (parent) parent.enter(); + }; // Node.js + + + if (IS_NODE) { + notify = function notify() { + process$2.nextTick(flush); + }; // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + + } else if (MutationObserver$1 && !engineIsIos) { + toggle = true; + node = document.createTextNode(''); + new MutationObserver$1(flush).observe(node, { + characterData: true + }); + + notify = function notify() { + node.data = toggle = !toggle; + }; // environments with maybe non-completely correct, but existent Promise + + } else if (Promise$1 && Promise$1.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise$1.resolve(undefined); + then = promise.then; + + notify = function notify() { + then.call(promise, flush); + }; // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessag + // - onreadystatechange + // - setTimeout + + } else { + notify = function notify() { + // strange IE + webpack dev server bug - use .call(global) + macrotask.call(global_1, flush); + }; + } + } + + var microtask = queueMicrotask || function (fn) { + var task = { + fn: fn, + next: undefined + }; + if (last) last.next = task; + + if (!head) { + head = task; + notify(); + } + + last = task; + }; + + var PromiseCapability = function PromiseCapability(C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aFunction$1(resolve); + this.reject = aFunction$1(reject); + }; // 25.4.1.5 NewPromiseCapability(C) + + + var f$7 = function f(C) { + return new PromiseCapability(C); + }; + + var newPromiseCapability = { + f: f$7 + }; + + var promiseResolve = function promiseResolve(C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; + }; + + var hostReportErrors = function hostReportErrors(a, b) { + var console = global_1.console; + + if (console && console.error) { + arguments.length === 1 ? console.error(a) : console.error(a, b); + } + }; + + var perform = function perform(exec) { + try { + return { + error: false, + value: exec() + }; + } catch (error) { + return { + error: true, + value: error + }; + } + }; + + var task$1 = task.set; + var SPECIES$5 = wellKnownSymbol('species'); + var PROMISE = 'Promise'; + var getInternalState$3 = internalState.get; + var setInternalState$4 = internalState.set; + var getInternalPromiseState = internalState.getterFor(PROMISE); + var PromiseConstructor = nativePromiseConstructor; + var TypeError$1 = global_1.TypeError; + var document$2 = global_1.document; + var process$3 = global_1.process; + var $fetch = getBuiltIn('fetch'); + var newPromiseCapability$1 = newPromiseCapability.f; + var newGenericPromiseCapability = newPromiseCapability$1; + var IS_NODE$1 = classofRaw(process$3) == 'process'; + var DISPATCH_EVENT = !!(document$2 && document$2.createEvent && global_1.dispatchEvent); + var UNHANDLED_REJECTION = 'unhandledrejection'; + var REJECTION_HANDLED = 'rejectionhandled'; + var PENDING = 0; + var FULFILLED = 1; + var REJECTED = 2; + var HANDLED = 1; + var UNHANDLED = 2; + var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + var FORCED$d = isForced_1(PROMISE, function () { + var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor); + + if (!GLOBAL_CORE_JS_PROMISE) { + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (engineV8Version === 66) return true; // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + + if (!IS_NODE$1 && typeof PromiseRejectionEvent != 'function') return true; + } // We need Promise#finally in the pure version for preventing prototype pollution + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + + if (engineV8Version >= 51 && /native code/.test(PromiseConstructor)) return false; // Detect correctness of subclassing with @@species support + + var promise = PromiseConstructor.resolve(1); + + var FakePromise = function FakePromise(exec) { + exec(function () { + /* empty */ + }, function () { + /* empty */ + }); + }; + + var constructor = promise.constructor = {}; + constructor[SPECIES$5] = FakePromise; + return !(promise.then(function () { + /* empty */ + }) instanceof FakePromise); + }); + var INCORRECT_ITERATION$1 = FORCED$d || !checkCorrectnessOfIteration(function (iterable) { + PromiseConstructor.all(iterable)['catch'](function () { + /* empty */ + }); + }); // helpers + + var isThenable = function isThenable(it) { + var then; + return isObject(it) && typeof (then = it.then) == 'function' ? then : false; + }; + + var notify$1 = function notify(promise, state, isReject) { + if (state.notified) return; + state.notified = true; + var chain = state.reactions; + microtask(function () { + var value = state.value; + var ok = state.state == FULFILLED; + var index = 0; // variable length - can't use forEach + + while (chain.length > index) { + var reaction = chain[index++]; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state); + state.rejection = HANDLED; + } + + if (handler === true) result = value;else { + if (domain) domain.enter(); + result = handler(value); // can throw + + if (domain) { + domain.exit(); + exited = true; + } + } + + if (result === reaction.promise) { + reject(TypeError$1('Promise-chain cycle')); + } else if (then = isThenable(result)) { + then.call(result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } + } + + state.reactions = []; + state.notified = false; + if (isReject && !state.rejection) onUnhandled(promise, state); + }); + }; + + var dispatchEvent = function dispatchEvent(name, promise, reason) { + var event, handler; + + if (DISPATCH_EVENT) { + event = document$2.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global_1.dispatchEvent(event); + } else event = { + promise: promise, + reason: reason + }; + + if (handler = global_1['on' + name]) handler(event);else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); + }; + + var onUnhandled = function onUnhandled(promise, state) { + task$1.call(global_1, function () { + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + + if (IS_UNHANDLED) { + result = perform(function () { + if (IS_NODE$1) { + process$3.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + + state.rejection = IS_NODE$1 || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); + }; + + var isUnhandled = function isUnhandled(state) { + return state.rejection !== HANDLED && !state.parent; + }; + + var onHandleUnhandled = function onHandleUnhandled(promise, state) { + task$1.call(global_1, function () { + if (IS_NODE$1) { + process$3.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); + }; + + var bind = function bind(fn, promise, state, unwrap) { + return function (value) { + fn(promise, state, value, unwrap); + }; + }; + + var internalReject = function internalReject(promise, state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify$1(promise, state, true); + }; + + var internalResolve = function internalResolve(promise, state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + + try { + if (promise === value) throw TypeError$1("Promise can't be resolved itself"); + var then = isThenable(value); + + if (then) { + microtask(function () { + var wrapper = { + done: false + }; + + try { + then.call(value, bind(internalResolve, promise, wrapper, state), bind(internalReject, promise, wrapper, state)); + } catch (error) { + internalReject(promise, wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify$1(promise, state, false); + } + } catch (error) { + internalReject(promise, { + done: false + }, error, state); + } + }; // constructor polyfill + + + if (FORCED$d) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance(this, PromiseConstructor, PROMISE); + aFunction$1(executor); + Internal.call(this); + var state = getInternalState$3(this); + + try { + executor(bind(internalResolve, this, state), bind(internalReject, this, state)); + } catch (error) { + internalReject(this, state, error); + } + }; // eslint-disable-next-line no-unused-vars + + + Internal = function Promise(executor) { + setInternalState$4(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: [], + rejection: false, + state: PENDING, + value: undefined + }); + }; + + Internal.prototype = redefineAll(PromiseConstructor.prototype, { + // `Promise.prototype.then` method + // https://tc39.github.io/ecma262/#sec-promise.prototype.then + then: function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability$1(speciesConstructor(this, PromiseConstructor)); + reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; + reaction.fail = typeof onRejected == 'function' && onRejected; + reaction.domain = IS_NODE$1 ? process$3.domain : undefined; + state.parent = true; + state.reactions.push(reaction); + if (state.state != PENDING) notify$1(this, state, false); + return reaction.promise; + }, + // `Promise.prototype.catch` method + // https://tc39.github.io/ecma262/#sec-promise.prototype.catch + 'catch': function _catch(onRejected) { + return this.then(undefined, onRejected); + } + }); + + OwnPromiseCapability = function OwnPromiseCapability() { + var promise = new Internal(); + var state = getInternalState$3(promise); + this.promise = promise; + this.resolve = bind(internalResolve, promise, state); + this.reject = bind(internalReject, promise, state); + }; + + newPromiseCapability.f = newPromiseCapability$1 = function newPromiseCapability(C) { + return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); + }; + + if ( typeof nativePromiseConstructor == 'function') { + nativeThen = nativePromiseConstructor.prototype.then; // wrap native Promise#then for native async functions + + redefine(nativePromiseConstructor.prototype, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + nativeThen.call(that, resolve, reject); + }).then(onFulfilled, onRejected); // https://github.com/zloirock/core-js/issues/640 + }, { + unsafe: true + }); // wrap fetch result + + if (typeof $fetch == 'function') _export({ + global: true, + enumerable: true, + forced: true + }, { + // eslint-disable-next-line no-unused-vars + fetch: function fetch(input + /* , init */ + ) { + return promiseResolve(PromiseConstructor, $fetch.apply(global_1, arguments)); + } + }); + } + } + + _export({ + global: true, + wrap: true, + forced: FORCED$d + }, { + Promise: PromiseConstructor + }); + setToStringTag(PromiseConstructor, PROMISE, false); + setSpecies(PROMISE); + PromiseWrapper = getBuiltIn(PROMISE); // statics + + _export({ + target: PROMISE, + stat: true, + forced: FORCED$d + }, { + // `Promise.reject` method + // https://tc39.github.io/ecma262/#sec-promise.reject + reject: function reject(r) { + var capability = newPromiseCapability$1(this); + capability.reject.call(undefined, r); + return capability.promise; + } + }); + _export({ + target: PROMISE, + stat: true, + forced: FORCED$d + }, { + // `Promise.resolve` method + // https://tc39.github.io/ecma262/#sec-promise.resolve + resolve: function resolve(x) { + return promiseResolve( this, x); + } + }); + _export({ + target: PROMISE, + stat: true, + forced: INCORRECT_ITERATION$1 + }, { + // `Promise.all` method + // https://tc39.github.io/ecma262/#sec-promise.all + all: function all(iterable) { + var C = this; + var capability = newPromiseCapability$1(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aFunction$1(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate_1(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + values.push(undefined); + remaining++; + $promiseResolve.call(C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + }, + // `Promise.race` method + // https://tc39.github.io/ecma262/#sec-promise.race + race: function race(iterable) { + var C = this; + var capability = newPromiseCapability$1(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aFunction$1(C.resolve); + iterate_1(iterable, function (promise) { + $promiseResolve.call(C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + // https://github.com/tc39/proposal-promise-allSettled + + + _export({ + target: 'Promise', + stat: true + }, { + allSettled: function allSettled(iterable) { + var C = this; + var capability = newPromiseCapability.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aFunction$1(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate_1(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + values.push(undefined); + remaining++; + promiseResolve.call(C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { + status: 'fulfilled', + value: value + }; + --remaining || resolve(values); + }, function (e) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { + status: 'rejected', + reason: e + }; + --remaining || resolve(values); + }); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var NON_GENERIC = !!nativePromiseConstructor && fails(function () { + nativePromiseConstructor.prototype['finally'].call({ + then: function then() { + /* empty */ + } + }, function () { + /* empty */ + }); + }); // `Promise.prototype.finally` method + // https://tc39.github.io/ecma262/#sec-promise.prototype.finally + + _export({ + target: 'Promise', + proto: true, + real: true, + forced: NON_GENERIC + }, { + 'finally': function _finally(onFinally) { + var C = speciesConstructor(this, getBuiltIn('Promise')); + var isFunction = typeof onFinally == 'function'; + return this.then(isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { + return x; + }); + } : onFinally, isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { + throw e; + }); + } : onFinally); + } + }); // patch native Promise.prototype for native async functions + + if ( typeof nativePromiseConstructor == 'function' && !nativePromiseConstructor.prototype['finally']) { + redefine(nativePromiseConstructor.prototype, 'finally', getBuiltIn('Promise').prototype['finally']); + } + + var nativeApply = getBuiltIn('Reflect', 'apply'); + var functionApply = Function.apply; // MS Edge argumentsList argument is optional + + var OPTIONAL_ARGUMENTS_LIST = !fails(function () { + nativeApply(function () { + /* empty */ + }); + }); // `Reflect.apply` method + // https://tc39.github.io/ecma262/#sec-reflect.apply + + _export({ + target: 'Reflect', + stat: true, + forced: OPTIONAL_ARGUMENTS_LIST + }, { + apply: function apply(target, thisArgument, argumentsList) { + aFunction$1(target); + anObject(argumentsList); + return nativeApply ? nativeApply(target, thisArgument, argumentsList) : functionApply.call(target, thisArgument, argumentsList); + } + }); + + var nativeConstruct = getBuiltIn('Reflect', 'construct'); // `Reflect.construct` method + // https://tc39.github.io/ecma262/#sec-reflect.construct + // MS Edge supports only 2 arguments and argumentsList argument is optional + // FF Nightly sets third argument as `new.target`, but does not create `this` from it + + var NEW_TARGET_BUG = fails(function () { + function F() { + /* empty */ + } + + return !(nativeConstruct(function () { + /* empty */ + }, [], F) instanceof F); + }); + var ARGS_BUG = !fails(function () { + nativeConstruct(function () { + /* empty */ + }); + }); + var FORCED$e = NEW_TARGET_BUG || ARGS_BUG; + _export({ + target: 'Reflect', + stat: true, + forced: FORCED$e, + sham: FORCED$e + }, { + construct: function construct(Target, args + /* , newTarget */ + ) { + aFunction$1(Target); + anObject(args); + var newTarget = arguments.length < 3 ? Target : aFunction$1(arguments[2]); + if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget); + + if (Target == newTarget) { + // w/o altered newTarget, optimization for 0-4 arguments + switch (args.length) { + case 0: + return new Target(); + + case 1: + return new Target(args[0]); + + case 2: + return new Target(args[0], args[1]); + + case 3: + return new Target(args[0], args[1], args[2]); + + case 4: + return new Target(args[0], args[1], args[2], args[3]); + } // w/o altered newTarget, lot of arguments case + + + var $args = [null]; + $args.push.apply($args, args); + return new (functionBind.apply(Target, $args))(); + } // with altered newTarget, not support built-in constructors + + + var proto = newTarget.prototype; + var instance = objectCreate(isObject(proto) ? proto : Object.prototype); + var result = Function.apply.call(Target, instance, args); + return isObject(result) ? result : instance; + } + }); + + var ERROR_INSTEAD_OF_FALSE = fails(function () { + // eslint-disable-next-line no-undef + Reflect.defineProperty(objectDefineProperty.f({}, 1, { + value: 1 + }), 1, { + value: 2 + }); + }); // `Reflect.defineProperty` method + // https://tc39.github.io/ecma262/#sec-reflect.defineproperty + + _export({ + target: 'Reflect', + stat: true, + forced: ERROR_INSTEAD_OF_FALSE, + sham: !descriptors + }, { + defineProperty: function defineProperty(target, propertyKey, attributes) { + anObject(target); + var key = toPrimitive(propertyKey, true); + anObject(attributes); + + try { + objectDefineProperty.f(target, key, attributes); + return true; + } catch (error) { + return false; + } + } + }); + + var getOwnPropertyDescriptor$6 = objectGetOwnPropertyDescriptor.f; // `Reflect.deleteProperty` method + // https://tc39.github.io/ecma262/#sec-reflect.deleteproperty + + _export({ + target: 'Reflect', + stat: true + }, { + deleteProperty: function deleteProperty(target, propertyKey) { + var descriptor = getOwnPropertyDescriptor$6(anObject(target), propertyKey); + return descriptor && !descriptor.configurable ? false : delete target[propertyKey]; + } + }); + + // https://tc39.github.io/ecma262/#sec-reflect.get + + function get$2(target, propertyKey + /* , receiver */ + ) { + var receiver = arguments.length < 3 ? target : arguments[2]; + var descriptor, prototype; + if (anObject(target) === receiver) return target[propertyKey]; + if (descriptor = objectGetOwnPropertyDescriptor.f(target, propertyKey)) return has(descriptor, 'value') ? descriptor.value : descriptor.get === undefined ? undefined : descriptor.get.call(receiver); + if (isObject(prototype = objectGetPrototypeOf(target))) return get$2(prototype, propertyKey, receiver); + } + + _export({ + target: 'Reflect', + stat: true + }, { + get: get$2 + }); + + // https://tc39.github.io/ecma262/#sec-reflect.getownpropertydescriptor + + _export({ + target: 'Reflect', + stat: true, + sham: !descriptors + }, { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { + return objectGetOwnPropertyDescriptor.f(anObject(target), propertyKey); + } + }); + + // https://tc39.github.io/ecma262/#sec-reflect.getprototypeof + + _export({ + target: 'Reflect', + stat: true, + sham: !correctPrototypeGetter + }, { + getPrototypeOf: function getPrototypeOf(target) { + return objectGetPrototypeOf(anObject(target)); + } + }); + + // https://tc39.github.io/ecma262/#sec-reflect.has + + _export({ + target: 'Reflect', + stat: true + }, { + has: function has(target, propertyKey) { + return propertyKey in target; + } + }); + + var objectIsExtensible = Object.isExtensible; // `Reflect.isExtensible` method + // https://tc39.github.io/ecma262/#sec-reflect.isextensible + + _export({ + target: 'Reflect', + stat: true + }, { + isExtensible: function isExtensible(target) { + anObject(target); + return objectIsExtensible ? objectIsExtensible(target) : true; + } + }); + + // https://tc39.github.io/ecma262/#sec-reflect.ownkeys + + _export({ + target: 'Reflect', + stat: true + }, { + ownKeys: ownKeys + }); + + // https://tc39.github.io/ecma262/#sec-reflect.preventextensions + + _export({ + target: 'Reflect', + stat: true, + sham: !freezing + }, { + preventExtensions: function preventExtensions(target) { + anObject(target); + + try { + var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions'); + if (objectPreventExtensions) objectPreventExtensions(target); + return true; + } catch (error) { + return false; + } + } + }); + + // https://tc39.github.io/ecma262/#sec-reflect.set + + function set$3(target, propertyKey, V + /* , receiver */ + ) { + var receiver = arguments.length < 4 ? target : arguments[3]; + var ownDescriptor = objectGetOwnPropertyDescriptor.f(anObject(target), propertyKey); + var existingDescriptor, prototype; + + if (!ownDescriptor) { + if (isObject(prototype = objectGetPrototypeOf(target))) { + return set$3(prototype, propertyKey, V, receiver); + } + + ownDescriptor = createPropertyDescriptor(0); + } + + if (has(ownDescriptor, 'value')) { + if (ownDescriptor.writable === false || !isObject(receiver)) return false; + + if (existingDescriptor = objectGetOwnPropertyDescriptor.f(receiver, propertyKey)) { + if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; + existingDescriptor.value = V; + objectDefineProperty.f(receiver, propertyKey, existingDescriptor); + } else objectDefineProperty.f(receiver, propertyKey, createPropertyDescriptor(0, V)); + + return true; + } + + return ownDescriptor.set === undefined ? false : (ownDescriptor.set.call(receiver, V), true); + } // MS Edge 17-18 Reflect.set allows setting the property to object + // with non-writable property on the prototype + + + var MS_EDGE_BUG = fails(function () { + var object = objectDefineProperty.f({}, 'a', { + configurable: true + }); // eslint-disable-next-line no-undef + + return Reflect.set(objectGetPrototypeOf(object), 'a', 1, object) !== false; + }); + _export({ + target: 'Reflect', + stat: true, + forced: MS_EDGE_BUG + }, { + set: set$3 + }); + + // https://tc39.github.io/ecma262/#sec-reflect.setprototypeof + + if (objectSetPrototypeOf) _export({ + target: 'Reflect', + stat: true + }, { + setPrototypeOf: function setPrototypeOf(target, proto) { + anObject(target); + aPossiblePrototype(proto); + + try { + objectSetPrototypeOf(target, proto); + return true; + } catch (error) { + return false; + } + } + }); + + var MATCH = wellKnownSymbol('match'); // `IsRegExp` abstract operation + // https://tc39.github.io/ecma262/#sec-isregexp + + var isRegexp = function isRegexp(it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classofRaw(it) == 'RegExp'); + }; + + // https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags + + + var regexpFlags = function regexpFlags() { + var that = anObject(this); + var result = ''; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.sticky) result += 'y'; + return result; + }; + + // so we use an intermediate function. + + + function RE(s, f) { + return RegExp(s, f); + } + + var UNSUPPORTED_Y = fails(function () { + // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError + var re = RE('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') != null; + }); + var BROKEN_CARET = fails(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = RE('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') != null; + }); + var regexpStickyHelpers = { + UNSUPPORTED_Y: UNSUPPORTED_Y, + BROKEN_CARET: BROKEN_CARET + }; + + var defineProperty$a = objectDefineProperty.f; + var getOwnPropertyNames$2 = objectGetOwnPropertyNames.f; + var setInternalState$5 = internalState.set; + var MATCH$1 = wellKnownSymbol('match'); + var NativeRegExp = global_1.RegExp; + var RegExpPrototype = NativeRegExp.prototype; + var re1 = /a/g; + var re2 = /a/g; // "new" should create a new object, old webkit bug + + var CORRECT_NEW = new NativeRegExp(re1) !== re1; + var UNSUPPORTED_Y$1 = regexpStickyHelpers.UNSUPPORTED_Y; + var FORCED$f = descriptors && isForced_1('RegExp', !CORRECT_NEW || UNSUPPORTED_Y$1 || fails(function () { + re2[MATCH$1] = false; // RegExp constructor can alter flags and IsRegExp works correct with @@match + + return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i'; + })); // `RegExp` constructor + // https://tc39.github.io/ecma262/#sec-regexp-constructor + + if (FORCED$f) { + var RegExpWrapper = function RegExp(pattern, flags) { + var thisIsRegExp = this instanceof RegExpWrapper; + var patternIsRegExp = isRegexp(pattern); + var flagsAreUndefined = flags === undefined; + var sticky; + + if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) { + return pattern; + } + + if (CORRECT_NEW) { + if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source; + } else if (pattern instanceof RegExpWrapper) { + if (flagsAreUndefined) flags = regexpFlags.call(pattern); + pattern = pattern.source; + } + + if (UNSUPPORTED_Y$1) { + sticky = !!flags && flags.indexOf('y') > -1; + if (sticky) flags = flags.replace(/y/g, ''); + } + + var result = inheritIfRequired(CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper); + if (UNSUPPORTED_Y$1 && sticky) setInternalState$5(result, { + sticky: sticky + }); + return result; + }; + + var proxy = function proxy(key) { + key in RegExpWrapper || defineProperty$a(RegExpWrapper, key, { + configurable: true, + get: function get() { + return NativeRegExp[key]; + }, + set: function set(it) { + NativeRegExp[key] = it; + } + }); + }; + + var keys$3 = getOwnPropertyNames$2(NativeRegExp); + var index = 0; + + while (keys$3.length > index) { + proxy(keys$3[index++]); + } + + RegExpPrototype.constructor = RegExpWrapper; + RegExpWrapper.prototype = RegExpPrototype; + redefine(global_1, 'RegExp', RegExpWrapper); + } // https://tc39.github.io/ecma262/#sec-get-regexp-@@species + + + setSpecies('RegExp'); + + var nativeExec = RegExp.prototype.exec; // This always refers to the native implementation, because the + // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, + // which loads this file before patching the method. + + var nativeReplace = String.prototype.replace; + var patchedExec = nativeExec; + + var UPDATES_LAST_INDEX_WRONG = function () { + var re1 = /a/; + var re2 = /b*/g; + nativeExec.call(re1, 'a'); + nativeExec.call(re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; + }(); + + var UNSUPPORTED_Y$2 = regexpStickyHelpers.UNSUPPORTED_Y || regexpStickyHelpers.BROKEN_CARET; // nonparticipating capturing group, copied from es5-shim's String#split patch. + + var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$2; + + if (PATCH) { + patchedExec = function exec(str) { + var re = this; + var lastIndex, reCopy, match, i; + var sticky = UNSUPPORTED_Y$2 && re.sticky; + var flags = regexpFlags.call(re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = flags.replace('y', ''); + + if (flags.indexOf('g') === -1) { + flags += 'g'; + } + + strCopy = String(str).slice(re.lastIndex); // Support anchored sticky behavior. + + if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + + + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + match = nativeExec.call(sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = match.input.slice(charsAdded); + match[0] = match[0].slice(charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ + nativeReplace.call(match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + return match; + }; + } + + var regexpExec = patchedExec; + + _export({ + target: 'RegExp', + proto: true, + forced: /./.exec !== regexpExec + }, { + exec: regexpExec + }); + + var UNSUPPORTED_Y$3 = regexpStickyHelpers.UNSUPPORTED_Y; // `RegExp.prototype.flags` getter + // https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags + + if (descriptors && (/./g.flags != 'g' || UNSUPPORTED_Y$3)) { + objectDefineProperty.f(RegExp.prototype, 'flags', { + configurable: true, + get: regexpFlags + }); + } + + var UNSUPPORTED_Y$4 = regexpStickyHelpers.UNSUPPORTED_Y; + var defineProperty$b = objectDefineProperty.f; + var getInternalState$4 = internalState.get; + var RegExpPrototype$1 = RegExp.prototype; // `RegExp.prototype.sticky` getter + + if (descriptors && UNSUPPORTED_Y$4) { + defineProperty$b(RegExp.prototype, 'sticky', { + configurable: true, + get: function get() { + if (this === RegExpPrototype$1) return undefined; // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + + if (this instanceof RegExp) { + return !!getInternalState$4(this).sticky; + } + + throw TypeError('Incompatible receiver, RegExp required'); + } + }); + } + + var DELEGATES_TO_EXEC = function () { + var execCalled = false; + var re = /[ac]/; + + re.exec = function () { + execCalled = true; + return /./.exec.apply(this, arguments); + }; + + return re.test('abc') === true && execCalled; + }(); + + var nativeTest = /./.test; + _export({ + target: 'RegExp', + proto: true, + forced: !DELEGATES_TO_EXEC + }, { + test: function test(str) { + if (typeof this.exec !== 'function') { + return nativeTest.call(this, str); + } + + var result = this.exec(str); + + if (result !== null && !isObject(result)) { + throw new Error('RegExp exec method returned something other than an Object or null'); + } + + return !!result; + } + }); + + var TO_STRING$1 = 'toString'; + var RegExpPrototype$2 = RegExp.prototype; + var nativeToString = RegExpPrototype$2[TO_STRING$1]; + var NOT_GENERIC = fails(function () { + return nativeToString.call({ + source: 'a', + flags: 'b' + }) != '/a/b'; + }); // FF44- RegExp#toString has a wrong name + + var INCORRECT_NAME = nativeToString.name != TO_STRING$1; // `RegExp.prototype.toString` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring + + if (NOT_GENERIC || INCORRECT_NAME) { + redefine(RegExp.prototype, TO_STRING$1, function toString() { + var R = anObject(this); + var p = String(R.source); + var rf = R.flags; + var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype$2) ? regexpFlags.call(R) : rf); + return '/' + p + '/' + f; + }, { + unsafe: true + }); + } + + // https://tc39.github.io/ecma262/#sec-set-objects + + + var es_set = collection('Set', function (init) { + return function Set() { + return init(this, arguments.length ? arguments[0] : undefined); + }; + }, collectionStrong); + + var createMethod$6 = function createMethod(CONVERT_TO_STRING) { + return function ($this, pos) { + var S = String(requireObjectCoercible($this)); + var position = toInteger(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = S.charCodeAt(position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; + }; + + var stringMultibyte = { + // `String.prototype.codePointAt` method + // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod$6(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod$6(true) + }; + + var codeAt = stringMultibyte.codeAt; // `String.prototype.codePointAt` method + // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat + + _export({ + target: 'String', + proto: true + }, { + codePointAt: function codePointAt(pos) { + return codeAt(this, pos); + } + }); + + var notARegexp = function notARegexp(it) { + if (isRegexp(it)) { + throw TypeError("The method doesn't accept regular expressions"); + } + + return it; + }; + + var MATCH$2 = wellKnownSymbol('match'); + + var correctIsRegexpLogic = function correctIsRegexpLogic(METHOD_NAME) { + var regexp = /./; + + try { + '/./'[METHOD_NAME](regexp); + } catch (e) { + try { + regexp[MATCH$2] = false; + return '/./'[METHOD_NAME](regexp); + } catch (f) { + /* empty */ + } + } + + return false; + }; + + var getOwnPropertyDescriptor$7 = objectGetOwnPropertyDescriptor.f; + var nativeEndsWith = ''.endsWith; + var min$5 = Math.min; + var CORRECT_IS_REGEXP_LOGIC = correctIsRegexpLogic('endsWith'); // https://github.com/zloirock/core-js/pull/702 + + var MDN_POLYFILL_BUG = !CORRECT_IS_REGEXP_LOGIC && !!function () { + var descriptor = getOwnPropertyDescriptor$7(String.prototype, 'endsWith'); + return descriptor && !descriptor.writable; + }(); // `String.prototype.endsWith` method + // https://tc39.github.io/ecma262/#sec-string.prototype.endswith + + _export({ + target: 'String', + proto: true, + forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC + }, { + endsWith: function endsWith(searchString + /* , endPosition = @length */ + ) { + var that = String(requireObjectCoercible(this)); + notARegexp(searchString); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = toLength(that.length); + var end = endPosition === undefined ? len : min$5(toLength(endPosition), len); + var search = String(searchString); + return nativeEndsWith ? nativeEndsWith.call(that, search, end) : that.slice(end - search.length, end) === search; + } + }); + + var fromCharCode = String.fromCharCode; + var nativeFromCodePoint = String.fromCodePoint; // length should be 1, old FF problem + + var INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1; // `String.fromCodePoint` method + // https://tc39.github.io/ecma262/#sec-string.fromcodepoint + + _export({ + target: 'String', + stat: true, + forced: INCORRECT_LENGTH + }, { + fromCodePoint: function fromCodePoint(x) { + // eslint-disable-line no-unused-vars + var elements = []; + var length = arguments.length; + var i = 0; + var code; + + while (length > i) { + code = +arguments[i++]; + if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point'); + elements.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)); + } + + return elements.join(''); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.includes + + + _export({ + target: 'String', + proto: true, + forced: !correctIsRegexpLogic('includes') + }, { + includes: function includes(searchString + /* , position = 0 */ + ) { + return !!~String(requireObjectCoercible(this)).indexOf(notARegexp(searchString), arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var charAt = stringMultibyte.charAt; + var STRING_ITERATOR = 'String Iterator'; + var setInternalState$6 = internalState.set; + var getInternalState$5 = internalState.getterFor(STRING_ITERATOR); // `String.prototype[@@iterator]` method + // https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator + + defineIterator(String, 'String', function (iterated) { + setInternalState$6(this, { + type: STRING_ITERATOR, + string: String(iterated), + index: 0 + }); // `%StringIteratorPrototype%.next` method + // https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next + }, function next() { + var state = getInternalState$5(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return { + value: undefined, + done: true + }; + point = charAt(string, index); + state.index += point.length; + return { + value: point, + done: false + }; + }); + + var SPECIES$6 = wellKnownSymbol('species'); + var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + // #replace needs built-in support for named groups. + // #match works fine because it just return the exec results, even if it has + // a "grops" property. + var re = /./; + + re.exec = function () { + var result = []; + result.groups = { + a: '7' + }; + return result; + }; + + return ''.replace(re, '$') !== '7'; + }); // IE <= 11 replaces $0 with the whole match, as if it was $& + // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 + + var REPLACE_KEEPS_$0 = function () { + return 'a'.replace(/./, '$0') === '$0'; + }(); + + var REPLACE = wellKnownSymbol('replace'); // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string + + var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = function () { + if (/./[REPLACE]) { + return /./[REPLACE]('a', '$0') === ''; + } + + return false; + }(); // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec + // Weex JS has frozen built-in prototypes, so use try / catch wrapper + + + var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { + var re = /(?:)/; + var originalExec = re.exec; + + re.exec = function () { + return originalExec.apply(this, arguments); + }; + + var result = 'ab'.split(re); + return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; + }); + + var fixRegexpWellKnownSymbolLogic = function fixRegexpWellKnownSymbolLogic(KEY, length, exec, sham) { + var SYMBOL = wellKnownSymbol(KEY); + var DELEGATES_TO_SYMBOL = !fails(function () { + // String methods call symbol-named RegEp methods + var O = {}; + + O[SYMBOL] = function () { + return 7; + }; + + return ''[KEY](O) != 7; + }); + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + if (KEY === 'split') { + // We can't use real regex here since it causes deoptimization + // and serious performance degradation in V8 + // https://github.com/zloirock/core-js/issues/306 + re = {}; // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + + re.constructor = {}; + + re.constructor[SPECIES$6] = function () { + return re; + }; + + re.flags = ''; + re[SYMBOL] = /./[SYMBOL]; + } + + re.exec = function () { + execCalled = true; + return null; + }; + + re[SYMBOL](''); + return !execCalled; + }); + + if (!DELEGATES_TO_SYMBOL || !DELEGATES_TO_EXEC || KEY === 'replace' && !(REPLACE_SUPPORTS_NAMED_GROUPS && REPLACE_KEEPS_$0 && !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE) || KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) { + var nativeRegExpMethod = /./[SYMBOL]; + var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + if (regexp.exec === regexpExec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { + done: true, + value: nativeRegExpMethod.call(regexp, str, arg2) + }; + } + + return { + done: true, + value: nativeMethod.call(str, regexp, arg2) + }; + } + + return { + done: false + }; + }, { + REPLACE_KEEPS_$0: REPLACE_KEEPS_$0, + REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE + }); + var stringMethod = methods[0]; + var regexMethod = methods[1]; + redefine(String.prototype, KEY, stringMethod); + redefine(RegExp.prototype, SYMBOL, length == 2 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) + // 21.2.5.11 RegExp.prototype[@@split](string, limit) + ? function (string, arg) { + return regexMethod.call(string, this, arg); + } // 21.2.5.6 RegExp.prototype[@@match](string) + // 21.2.5.9 RegExp.prototype[@@search](string) + : function (string) { + return regexMethod.call(string, this); + }); + } + + if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true); + }; + + var charAt$1 = stringMultibyte.charAt; // `AdvanceStringIndex` abstract operation + // https://tc39.github.io/ecma262/#sec-advancestringindex + + var advanceStringIndex = function advanceStringIndex(S, index, unicode) { + return index + (unicode ? charAt$1(S, index).length : 1); + }; + + // https://tc39.github.io/ecma262/#sec-regexpexec + + var regexpExecAbstract = function regexpExecAbstract(R, S) { + var exec = R.exec; + + if (typeof exec === 'function') { + var result = exec.call(R, S); + + if (_typeof(result) !== 'object') { + throw TypeError('RegExp exec method returned something other than an Object or null'); + } + + return result; + } + + if (classofRaw(R) !== 'RegExp') { + throw TypeError('RegExp#exec called on incompatible receiver'); + } + + return regexpExec.call(R, S); + }; + + fixRegexpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) { + return [// `String.prototype.match` method + // https://tc39.github.io/ecma262/#sec-string.prototype.match + function match(regexp) { + var O = requireObjectCoercible(this); + var matcher = regexp == undefined ? undefined : regexp[MATCH]; + return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); + }, // `RegExp.prototype[@@match]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match + function (regexp) { + var res = maybeCallNative(nativeMatch, regexp, this); + if (res.done) return res.value; + var rx = anObject(regexp); + var S = String(this); + if (!rx.global) return regexpExecAbstract(rx, S); + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + var A = []; + var n = 0; + var result; + + while ((result = regexpExecAbstract(rx, S)) !== null) { + var matchStr = String(result[0]); + A[n] = matchStr; + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + n++; + } + + return n === 0 ? null : A; + }]; + }); + + var MATCH_ALL = wellKnownSymbol('matchAll'); + var REGEXP_STRING = 'RegExp String'; + var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator'; + var setInternalState$7 = internalState.set; + var getInternalState$6 = internalState.getterFor(REGEXP_STRING_ITERATOR); + var RegExpPrototype$3 = RegExp.prototype; + var regExpBuiltinExec = RegExpPrototype$3.exec; + var nativeMatchAll = ''.matchAll; + var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () { + 'a'.matchAll(/./); + }); + + var regExpExec = function regExpExec(R, S) { + var exec = R.exec; + var result; + + if (typeof exec == 'function') { + result = exec.call(R, S); + if (_typeof(result) != 'object') throw TypeError('Incorrect exec result'); + return result; + } + + return regExpBuiltinExec.call(R, S); + }; // eslint-disable-next-line max-len + + + var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) { + setInternalState$7(this, { + type: REGEXP_STRING_ITERATOR, + regexp: regexp, + string: string, + global: global, + unicode: fullUnicode, + done: false + }); + }, REGEXP_STRING, function next() { + var state = getInternalState$6(this); + if (state.done) return { + value: undefined, + done: true + }; + var R = state.regexp; + var S = state.string; + var match = regExpExec(R, S); + if (match === null) return { + value: undefined, + done: state.done = true + }; + + if (state.global) { + if (String(match[0]) == '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode); + return { + value: match, + done: false + }; + } + + state.done = true; + return { + value: match, + done: false + }; + }); + + var $matchAll = function $matchAll(string) { + var R = anObject(this); + var S = String(string); + var C, flagsValue, flags, matcher, global, fullUnicode; + C = speciesConstructor(R, RegExp); + flagsValue = R.flags; + + if (flagsValue === undefined && R instanceof RegExp && !('flags' in RegExpPrototype$3)) { + flagsValue = regexpFlags.call(R); + } + + flags = flagsValue === undefined ? '' : String(flagsValue); + matcher = new C(C === RegExp ? R.source : R, flags); + global = !!~flags.indexOf('g'); + fullUnicode = !!~flags.indexOf('u'); + matcher.lastIndex = toLength(R.lastIndex); + return new $RegExpStringIterator(matcher, S, global, fullUnicode); + }; // `String.prototype.matchAll` method + // https://github.com/tc39/proposal-string-matchall + + + _export({ + target: 'String', + proto: true, + forced: WORKS_WITH_NON_GLOBAL_REGEX + }, { + matchAll: function matchAll(regexp) { + var O = requireObjectCoercible(this); + var flags, S, matcher, rx; + + if (regexp != null) { + if (isRegexp(regexp)) { + flags = String(requireObjectCoercible('flags' in RegExpPrototype$3 ? regexp.flags : regexpFlags.call(regexp))); + if (!~flags.indexOf('g')) throw TypeError('`.matchAll` does not allow non-global regexes'); + } + + if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments); + matcher = regexp[MATCH_ALL]; + if (matcher === undefined && isPure && classofRaw(regexp) == 'RegExp') matcher = $matchAll; + if (matcher != null) return aFunction$1(matcher).call(regexp, O); + } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments); + + S = String(O); + rx = new RegExp(regexp, 'g'); + return rx[MATCH_ALL](S); + } + }); + MATCH_ALL in RegExpPrototype$3 || createNonEnumerableProperty(RegExpPrototype$3, MATCH_ALL, $matchAll); + + // eslint-disable-next-line unicorn/no-unsafe-regex + + var stringPadWebkitBug = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(engineUserAgent); + + var $padEnd = stringPad.end; // `String.prototype.padEnd` method + // https://tc39.github.io/ecma262/#sec-string.prototype.padend + + _export({ + target: 'String', + proto: true, + forced: stringPadWebkitBug + }, { + padEnd: function padEnd(maxLength + /* , fillString = ' ' */ + ) { + return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + var $padStart = stringPad.start; // `String.prototype.padStart` method + // https://tc39.github.io/ecma262/#sec-string.prototype.padstart + + _export({ + target: 'String', + proto: true, + forced: stringPadWebkitBug + }, { + padStart: function padStart(maxLength + /* , fillString = ' ' */ + ) { + return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.raw + + _export({ + target: 'String', + stat: true + }, { + raw: function raw(template) { + var rawTemplate = toIndexedObject(template.raw); + var literalSegments = toLength(rawTemplate.length); + var argumentsLength = arguments.length; + var elements = []; + var i = 0; + + while (literalSegments > i) { + elements.push(String(rawTemplate[i++])); + if (i < argumentsLength) elements.push(String(arguments[i])); + } + + return elements.join(''); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.repeat + + _export({ + target: 'String', + proto: true + }, { + repeat: stringRepeat + }); + + var max$3 = Math.max; + var min$6 = Math.min; + var floor$6 = Math.floor; + var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g; + var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g; + + var maybeToString = function maybeToString(it) { + return it === undefined ? it : String(it); + }; // @@replace logic + + + fixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) { + var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE; + var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0; + var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; + return [// `String.prototype.replace` method + // https://tc39.github.io/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = requireObjectCoercible(this); + var replacer = searchValue == undefined ? undefined : searchValue[REPLACE]; + return replacer !== undefined ? replacer.call(searchValue, O, replaceValue) : nativeReplace.call(String(O), searchValue, replaceValue); + }, // `RegExp.prototype[@@replace]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace + function (regexp, replaceValue) { + if (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0 || typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1) { + var res = maybeCallNative(nativeReplace, regexp, this, replaceValue); + if (res.done) return res.value; + } + + var rx = anObject(regexp); + var S = String(this); + var functionalReplace = typeof replaceValue === 'function'; + if (!functionalReplace) replaceValue = String(replaceValue); + var global = rx.global; + + if (global) { + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + + var results = []; + + while (true) { + var result = regexpExecAbstract(rx, S); + if (result === null) break; + results.push(result); + if (!global) break; + var matchStr = String(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + + var accumulatedResult = ''; + var nextSourcePosition = 0; + + for (var i = 0; i < results.length; i++) { + result = results[i]; + var matched = String(result[0]); + var position = max$3(min$6(toInteger(result.index), S.length), 0); + var captures = []; // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + + for (var j = 1; j < result.length; j++) { + captures.push(maybeToString(result[j])); + } + + var namedCaptures = result.groups; + + if (functionalReplace) { + var replacerArgs = [matched].concat(captures, position, S); + if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); + var replacement = String(replaceValue.apply(undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + + if (position >= nextSourcePosition) { + accumulatedResult += S.slice(nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + + return accumulatedResult + S.slice(nextSourcePosition); + }]; // https://tc39.github.io/ecma262/#sec-getsubstitution + + function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + + return nativeReplace.call(replacement, symbols, function (match, ch) { + var capture; + + switch (ch.charAt(0)) { + case '$': + return '$'; + + case '&': + return matched; + + case '`': + return str.slice(0, position); + + case "'": + return str.slice(tailPos); + + case '<': + capture = namedCaptures[ch.slice(1, -1)]; + break; + + default: + // \d\d? + var n = +ch; + if (n === 0) return match; + + if (n > m) { + var f = floor$6(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); + return match; + } + + capture = captures[n - 1]; + } + + return capture === undefined ? '' : capture; + }); + } + }); + + fixRegexpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) { + return [// `String.prototype.search` method + // https://tc39.github.io/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = requireObjectCoercible(this); + var searcher = regexp == undefined ? undefined : regexp[SEARCH]; + return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); + }, // `RegExp.prototype[@@search]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search + function (regexp) { + var res = maybeCallNative(nativeSearch, regexp, this); + if (res.done) return res.value; + var rx = anObject(regexp); + var S = String(this); + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regexpExecAbstract(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + }]; + }); + + var arrayPush = [].push; + var min$7 = Math.min; + var MAX_UINT32 = 0xFFFFFFFF; // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError + + var SUPPORTS_Y = !fails(function () { + return !RegExp(MAX_UINT32, 'y'); + }); // @@split logic + + fixRegexpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) { + var internalSplit; + + if ('abbc'.split(/(b)*/)[1] == 'c' || 'test'.split(/(?:)/, -1).length != 4 || 'ab'.split(/(?:ab)*/).length != 2 || '.'.split(/(.?)(.?)/).length != 4 || '.'.split(/()()/).length > 1 || ''.split(/.?/).length) { + // based on es5-shim implementation, need to rework it + internalSplit = function internalSplit(separator, limit) { + var string = String(requireObjectCoercible(this)); + var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; + if (lim === 0) return []; + if (separator === undefined) return [string]; // If `separator` is not a regex, use native split + + if (!isRegexp(separator)) { + return nativeSplit.call(string, separator, lim); + } + + var output = []; + var flags = (separator.ignoreCase ? 'i' : '') + (separator.multiline ? 'm' : '') + (separator.unicode ? 'u' : '') + (separator.sticky ? 'y' : ''); + var lastLastIndex = 0; // Make `global` and avoid `lastIndex` issues by working with a copy + + var separatorCopy = new RegExp(separator.source, flags + 'g'); + var match, lastIndex, lastLength; + + while (match = regexpExec.call(separatorCopy, string)) { + lastIndex = separatorCopy.lastIndex; + + if (lastIndex > lastLastIndex) { + output.push(string.slice(lastLastIndex, match.index)); + if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1)); + lastLength = match[0].length; + lastLastIndex = lastIndex; + if (output.length >= lim) break; + } + + if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop + } + + if (lastLastIndex === string.length) { + if (lastLength || !separatorCopy.test('')) output.push(''); + } else output.push(string.slice(lastLastIndex)); + + return output.length > lim ? output.slice(0, lim) : output; + }; // Chakra, V8 + + } else if ('0'.split(undefined, 0).length) { + internalSplit = function internalSplit(separator, limit) { + return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit); + }; + } else internalSplit = nativeSplit; + + return [// `String.prototype.split` method + // https://tc39.github.io/ecma262/#sec-string.prototype.split + function split(separator, limit) { + var O = requireObjectCoercible(this); + var splitter = separator == undefined ? undefined : separator[SPLIT]; + return splitter !== undefined ? splitter.call(separator, O, limit) : internalSplit.call(String(O), separator, limit); + }, // `RegExp.prototype[@@split]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split + // + // NOTE: This cannot be properly polyfilled in engines that don't support + // the 'y' flag. + function (regexp, limit) { + var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit); + if (res.done) return res.value; + var rx = anObject(regexp); + var S = String(this); + var C = speciesConstructor(rx, RegExp); + var unicodeMatching = rx.unicode; + var flags = (rx.ignoreCase ? 'i' : '') + (rx.multiline ? 'm' : '') + (rx.unicode ? 'u' : '') + (SUPPORTS_Y ? 'y' : 'g'); // ^(? + rx + ) is needed, in combination with some S slicing, to + // simulate the 'y' flag. + + var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); + var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; + if (lim === 0) return []; + if (S.length === 0) return regexpExecAbstract(splitter, S) === null ? [S] : []; + var p = 0; + var q = 0; + var A = []; + + while (q < S.length) { + splitter.lastIndex = SUPPORTS_Y ? q : 0; + var z = regexpExecAbstract(splitter, SUPPORTS_Y ? S : S.slice(q)); + var e; + + if (z === null || (e = min$7(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p) { + q = advanceStringIndex(S, q, unicodeMatching); + } else { + A.push(S.slice(p, q)); + if (A.length === lim) return A; + + for (var i = 1; i <= z.length - 1; i++) { + A.push(z[i]); + if (A.length === lim) return A; + } + + q = p = e; + } + } + + A.push(S.slice(p)); + return A; + }]; + }, !SUPPORTS_Y); + + var getOwnPropertyDescriptor$8 = objectGetOwnPropertyDescriptor.f; + var nativeStartsWith = ''.startsWith; + var min$8 = Math.min; + var CORRECT_IS_REGEXP_LOGIC$1 = correctIsRegexpLogic('startsWith'); // https://github.com/zloirock/core-js/pull/702 + + var MDN_POLYFILL_BUG$1 = !CORRECT_IS_REGEXP_LOGIC$1 && !!function () { + var descriptor = getOwnPropertyDescriptor$8(String.prototype, 'startsWith'); + return descriptor && !descriptor.writable; + }(); // `String.prototype.startsWith` method + // https://tc39.github.io/ecma262/#sec-string.prototype.startswith + + _export({ + target: 'String', + proto: true, + forced: !MDN_POLYFILL_BUG$1 && !CORRECT_IS_REGEXP_LOGIC$1 + }, { + startsWith: function startsWith(searchString + /* , position = 0 */ + ) { + var that = String(requireObjectCoercible(this)); + notARegexp(searchString); + var index = toLength(min$8(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = String(searchString); + return nativeStartsWith ? nativeStartsWith.call(that, search, index) : that.slice(index, index + search.length) === search; + } + }); + + var non = "\u200B\x85\u180E"; // check that a method works with the correct list + // of whitespaces and has a correct name + + var stringTrimForced = function stringTrimForced(METHOD_NAME) { + return fails(function () { + return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME; + }); + }; + + var $trim = stringTrim.trim; // `String.prototype.trim` method + // https://tc39.github.io/ecma262/#sec-string.prototype.trim + + _export({ + target: 'String', + proto: true, + forced: stringTrimForced('trim') + }, { + trim: function trim() { + return $trim(this); + } + }); + + var $trimEnd = stringTrim.end; + var FORCED$g = stringTrimForced('trimEnd'); + var trimEnd = FORCED$g ? function trimEnd() { + return $trimEnd(this); + } : ''.trimEnd; // `String.prototype.{ trimEnd, trimRight }` methods + // https://github.com/tc39/ecmascript-string-left-right-trim + + _export({ + target: 'String', + proto: true, + forced: FORCED$g + }, { + trimEnd: trimEnd, + trimRight: trimEnd + }); + + var $trimStart = stringTrim.start; + var FORCED$h = stringTrimForced('trimStart'); + var trimStart = FORCED$h ? function trimStart() { + return $trimStart(this); + } : ''.trimStart; // `String.prototype.{ trimStart, trimLeft }` methods + // https://github.com/tc39/ecmascript-string-left-right-trim + + _export({ + target: 'String', + proto: true, + forced: FORCED$h + }, { + trimStart: trimStart, + trimLeft: trimStart + }); + + var quot = /"/g; // B.2.3.2.1 CreateHTML(string, tag, attribute, value) + // https://tc39.github.io/ecma262/#sec-createhtml + + var createHtml = function createHtml(string, tag, attribute, value) { + var S = String(requireObjectCoercible(string)); + var p1 = '<' + tag; + if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"'; + return p1 + '>' + S + ''; + }; + + // of a tag and escaping quotes in arguments + + var stringHtmlForced = function stringHtmlForced(METHOD_NAME) { + return fails(function () { + var test = ''[METHOD_NAME]('"'); + return test !== test.toLowerCase() || test.split('"').length > 3; + }); + }; + + // https://tc39.github.io/ecma262/#sec-string.prototype.anchor + + + _export({ + target: 'String', + proto: true, + forced: stringHtmlForced('anchor') + }, { + anchor: function anchor(name) { + return createHtml(this, 'a', 'name', name); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.big + + + _export({ + target: 'String', + proto: true, + forced: stringHtmlForced('big') + }, { + big: function big() { + return createHtml(this, 'big', '', ''); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.blink + + + _export({ + target: 'String', + proto: true, + forced: stringHtmlForced('blink') + }, { + blink: function blink() { + return createHtml(this, 'blink', '', ''); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.bold + + + _export({ + target: 'String', + proto: true, + forced: stringHtmlForced('bold') + }, { + bold: function bold() { + return createHtml(this, 'b', '', ''); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.fixed + + + _export({ + target: 'String', + proto: true, + forced: stringHtmlForced('fixed') + }, { + fixed: function fixed() { + return createHtml(this, 'tt', '', ''); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.fontcolor + + + _export({ + target: 'String', + proto: true, + forced: stringHtmlForced('fontcolor') + }, { + fontcolor: function fontcolor(color) { + return createHtml(this, 'font', 'color', color); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.fontsize + + + _export({ + target: 'String', + proto: true, + forced: stringHtmlForced('fontsize') + }, { + fontsize: function fontsize(size) { + return createHtml(this, 'font', 'size', size); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.italics + + + _export({ + target: 'String', + proto: true, + forced: stringHtmlForced('italics') + }, { + italics: function italics() { + return createHtml(this, 'i', '', ''); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.link + + + _export({ + target: 'String', + proto: true, + forced: stringHtmlForced('link') + }, { + link: function link(url) { + return createHtml(this, 'a', 'href', url); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.small + + + _export({ + target: 'String', + proto: true, + forced: stringHtmlForced('small') + }, { + small: function small() { + return createHtml(this, 'small', '', ''); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.strike + + + _export({ + target: 'String', + proto: true, + forced: stringHtmlForced('strike') + }, { + strike: function strike() { + return createHtml(this, 'strike', '', ''); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.sub + + + _export({ + target: 'String', + proto: true, + forced: stringHtmlForced('sub') + }, { + sub: function sub() { + return createHtml(this, 'sub', '', ''); + } + }); + + // https://tc39.github.io/ecma262/#sec-string.prototype.sup + + + _export({ + target: 'String', + proto: true, + forced: stringHtmlForced('sup') + }, { + sup: function sup() { + return createHtml(this, 'sup', '', ''); + } + }); + + /* eslint-disable no-new */ + + var NATIVE_ARRAY_BUFFER_VIEWS$2 = arrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; + var ArrayBuffer$3 = global_1.ArrayBuffer; + var Int8Array$2 = global_1.Int8Array; + var typedArrayConstructorsRequireWrappers = !NATIVE_ARRAY_BUFFER_VIEWS$2 || !fails(function () { + Int8Array$2(1); + }) || !fails(function () { + new Int8Array$2(-1); + }) || !checkCorrectnessOfIteration(function (iterable) { + new Int8Array$2(); + new Int8Array$2(null); + new Int8Array$2(1.5); + new Int8Array$2(iterable); + }, true) || fails(function () { + // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill + return new Int8Array$2(new ArrayBuffer$3(2), 1, undefined).length !== 1; + }); + + var toPositiveInteger = function toPositiveInteger(it) { + var result = toInteger(it); + if (result < 0) throw RangeError("The argument can't be less than 0"); + return result; + }; + + var toOffset = function toOffset(it, BYTES) { + var offset = toPositiveInteger(it); + if (offset % BYTES) throw RangeError('Wrong offset'); + return offset; + }; + + var aTypedArrayConstructor$1 = arrayBufferViewCore.aTypedArrayConstructor; + + var typedArrayFrom = function from(source + /* , mapfn, thisArg */ + ) { + var O = toObject(source); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var iteratorMethod = getIteratorMethod(O); + var i, length, result, step, iterator, next; + + if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) { + iterator = iteratorMethod.call(O); + next = iterator.next; + O = []; + + while (!(step = next.call(iterator)).done) { + O.push(step.value); + } + } + + if (mapping && argumentsLength > 2) { + mapfn = functionBindContext(mapfn, arguments[2], 2); + } + + length = toLength(O.length); + result = new (aTypedArrayConstructor$1(this))(length); + + for (i = 0; length > i; i++) { + result[i] = mapping ? mapfn(O[i], i) : O[i]; + } + + return result; + }; + + var typedArrayConstructor = createCommonjsModule(function (module) { + + var getOwnPropertyNames = objectGetOwnPropertyNames.f; + var forEach = arrayIteration.forEach; + var getInternalState = internalState.get; + var setInternalState = internalState.set; + var nativeDefineProperty = objectDefineProperty.f; + var nativeGetOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + var round = Math.round; + var RangeError = global_1.RangeError; + var ArrayBuffer = arrayBuffer.ArrayBuffer; + var DataView = arrayBuffer.DataView; + var NATIVE_ARRAY_BUFFER_VIEWS = arrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; + var TYPED_ARRAY_TAG = arrayBufferViewCore.TYPED_ARRAY_TAG; + var TypedArray = arrayBufferViewCore.TypedArray; + var TypedArrayPrototype = arrayBufferViewCore.TypedArrayPrototype; + var aTypedArrayConstructor = arrayBufferViewCore.aTypedArrayConstructor; + var isTypedArray = arrayBufferViewCore.isTypedArray; + var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; + var WRONG_LENGTH = 'Wrong length'; + + var fromList = function fromList(C, list) { + var index = 0; + var length = list.length; + var result = new (aTypedArrayConstructor(C))(length); + + while (length > index) { + result[index] = list[index++]; + } + + return result; + }; + + var addGetter = function addGetter(it, key) { + nativeDefineProperty(it, key, { + get: function get() { + return getInternalState(this)[key]; + } + }); + }; + + var isArrayBuffer = function isArrayBuffer(it) { + var klass; + return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer'; + }; + + var isTypedArrayIndex = function isTypedArrayIndex(target, key) { + return isTypedArray(target) && _typeof(key) != 'symbol' && key in target && String(+key) == String(key); + }; + + var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) { + return isTypedArrayIndex(target, key = toPrimitive(key, true)) ? createPropertyDescriptor(2, target[key]) : nativeGetOwnPropertyDescriptor(target, key); + }; + + var wrappedDefineProperty = function defineProperty(target, key, descriptor) { + if (isTypedArrayIndex(target, key = toPrimitive(key, true)) && isObject(descriptor) && has(descriptor, 'value') && !has(descriptor, 'get') && !has(descriptor, 'set') // TODO: add validation descriptor w/o calling accessors + && !descriptor.configurable && (!has(descriptor, 'writable') || descriptor.writable) && (!has(descriptor, 'enumerable') || descriptor.enumerable)) { + target[key] = descriptor.value; + return target; + } + + return nativeDefineProperty(target, key, descriptor); + }; + + if (descriptors) { + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + objectGetOwnPropertyDescriptor.f = wrappedGetOwnPropertyDescriptor; + objectDefineProperty.f = wrappedDefineProperty; + addGetter(TypedArrayPrototype, 'buffer'); + addGetter(TypedArrayPrototype, 'byteOffset'); + addGetter(TypedArrayPrototype, 'byteLength'); + addGetter(TypedArrayPrototype, 'length'); + } + + _export({ + target: 'Object', + stat: true, + forced: !NATIVE_ARRAY_BUFFER_VIEWS + }, { + getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor, + defineProperty: wrappedDefineProperty + }); + + module.exports = function (TYPE, wrapper, CLAMPED) { + var BYTES = TYPE.match(/\d+$/)[0] / 8; + var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array'; + var GETTER = 'get' + TYPE; + var SETTER = 'set' + TYPE; + var NativeTypedArrayConstructor = global_1[CONSTRUCTOR_NAME]; + var TypedArrayConstructor = NativeTypedArrayConstructor; + var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype; + var exported = {}; + + var getter = function getter(that, index) { + var data = getInternalState(that); + return data.view[GETTER](index * BYTES + data.byteOffset, true); + }; + + var setter = function setter(that, index, value) { + var data = getInternalState(that); + if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF; + data.view[SETTER](index * BYTES + data.byteOffset, value, true); + }; + + var addElement = function addElement(that, index) { + nativeDefineProperty(that, index, { + get: function get() { + return getter(this, index); + }, + set: function set(value) { + return setter(this, index, value); + }, + enumerable: true + }); + }; + + if (!NATIVE_ARRAY_BUFFER_VIEWS) { + TypedArrayConstructor = wrapper(function (that, data, offset, $length) { + anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME); + var index = 0; + var byteOffset = 0; + var buffer, byteLength, length; + + if (!isObject(data)) { + length = toIndex(data); + byteLength = length * BYTES; + buffer = new ArrayBuffer(byteLength); + } else if (isArrayBuffer(data)) { + buffer = data; + byteOffset = toOffset(offset, BYTES); + var $len = data.byteLength; + + if ($length === undefined) { + if ($len % BYTES) throw RangeError(WRONG_LENGTH); + byteLength = $len - byteOffset; + if (byteLength < 0) throw RangeError(WRONG_LENGTH); + } else { + byteLength = toLength($length) * BYTES; + if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH); + } + + length = byteLength / BYTES; + } else if (isTypedArray(data)) { + return fromList(TypedArrayConstructor, data); + } else { + return typedArrayFrom.call(TypedArrayConstructor, data); + } + + setInternalState(that, { + buffer: buffer, + byteOffset: byteOffset, + byteLength: byteLength, + length: length, + view: new DataView(buffer) + }); + + while (index < length) { + addElement(that, index++); + } + }); + if (objectSetPrototypeOf) objectSetPrototypeOf(TypedArrayConstructor, TypedArray); + TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = objectCreate(TypedArrayPrototype); + } else if (typedArrayConstructorsRequireWrappers) { + TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) { + anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME); + return inheritIfRequired(function () { + if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data)); + if (isArrayBuffer(data)) return $length !== undefined ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length) : typedArrayOffset !== undefined ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) : new NativeTypedArrayConstructor(data); + if (isTypedArray(data)) return fromList(TypedArrayConstructor, data); + return typedArrayFrom.call(TypedArrayConstructor, data); + }(), dummy, TypedArrayConstructor); + }); + if (objectSetPrototypeOf) objectSetPrototypeOf(TypedArrayConstructor, TypedArray); + forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) { + if (!(key in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]); + } + }); + TypedArrayConstructor.prototype = TypedArrayConstructorPrototype; + } + + if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor); + } + + if (TYPED_ARRAY_TAG) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); + } + + exported[CONSTRUCTOR_NAME] = TypedArrayConstructor; + _export({ + global: true, + forced: TypedArrayConstructor != NativeTypedArrayConstructor, + sham: !NATIVE_ARRAY_BUFFER_VIEWS + }, exported); + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) { + createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES); + } + + if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) { + createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES); + } + + setSpecies(CONSTRUCTOR_NAME); + }; + } else module.exports = function () { + /* empty */ + }; + }); + + // https://tc39.github.io/ecma262/#sec-typedarray-objects + + typedArrayConstructor('Float32', function (init) { + return function Float32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + // https://tc39.github.io/ecma262/#sec-typedarray-objects + + typedArrayConstructor('Float64', function (init) { + return function Float64Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + // https://tc39.github.io/ecma262/#sec-typedarray-objects + + typedArrayConstructor('Int8', function (init) { + return function Int8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + // https://tc39.github.io/ecma262/#sec-typedarray-objects + + typedArrayConstructor('Int16', function (init) { + return function Int16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + // https://tc39.github.io/ecma262/#sec-typedarray-objects + + typedArrayConstructor('Int32', function (init) { + return function Int32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + // https://tc39.github.io/ecma262/#sec-typedarray-objects + + typedArrayConstructor('Uint8', function (init) { + return function Uint8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + // https://tc39.github.io/ecma262/#sec-typedarray-objects + + typedArrayConstructor('Uint8', function (init) { + return function Uint8ClampedArray(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }, true); + + // https://tc39.github.io/ecma262/#sec-typedarray-objects + + typedArrayConstructor('Uint16', function (init) { + return function Uint16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + // https://tc39.github.io/ecma262/#sec-typedarray-objects + + typedArrayConstructor('Uint32', function (init) { + return function Uint32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + var aTypedArray$1 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$1 = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.copyWithin` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin + + exportTypedArrayMethod$1('copyWithin', function copyWithin(target, start + /* , end */ + ) { + return arrayCopyWithin.call(aTypedArray$1(this), target, start, arguments.length > 2 ? arguments[2] : undefined); + }); + + var $every$1 = arrayIteration.every; + var aTypedArray$2 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$2 = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.every` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every + + exportTypedArrayMethod$2('every', function every(callbackfn + /* , thisArg */ + ) { + return $every$1(aTypedArray$2(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }); + + var aTypedArray$3 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$3 = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.fill` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill + // eslint-disable-next-line no-unused-vars + + exportTypedArrayMethod$3('fill', function fill(value + /* , start, end */ + ) { + return arrayFill.apply(aTypedArray$3(this), arguments); + }); + + var $filter$1 = arrayIteration.filter; + var aTypedArray$4 = arrayBufferViewCore.aTypedArray; + var aTypedArrayConstructor$2 = arrayBufferViewCore.aTypedArrayConstructor; + var exportTypedArrayMethod$4 = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.filter` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter + + exportTypedArrayMethod$4('filter', function filter(callbackfn + /* , thisArg */ + ) { + var list = $filter$1(aTypedArray$4(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + var C = speciesConstructor(this, this.constructor); + var index = 0; + var length = list.length; + var result = new (aTypedArrayConstructor$2(C))(length); + + while (length > index) { + result[index] = list[index++]; + } + + return result; + }); + + var $find$1 = arrayIteration.find; + var aTypedArray$5 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$5 = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.find` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find + + exportTypedArrayMethod$5('find', function find(predicate + /* , thisArg */ + ) { + return $find$1(aTypedArray$5(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + }); + + var $findIndex$1 = arrayIteration.findIndex; + var aTypedArray$6 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$6 = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.findIndex` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex + + exportTypedArrayMethod$6('findIndex', function findIndex(predicate + /* , thisArg */ + ) { + return $findIndex$1(aTypedArray$6(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + }); + + var $forEach$2 = arrayIteration.forEach; + var aTypedArray$7 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$7 = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.forEach` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach + + exportTypedArrayMethod$7('forEach', function forEach(callbackfn + /* , thisArg */ + ) { + $forEach$2(aTypedArray$7(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }); + + var exportTypedArrayStaticMethod$1 = arrayBufferViewCore.exportTypedArrayStaticMethod; // `%TypedArray%.from` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.from + + exportTypedArrayStaticMethod$1('from', typedArrayFrom, typedArrayConstructorsRequireWrappers); + + var $includes$1 = arrayIncludes.includes; + var aTypedArray$8 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$8 = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.includes` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes + + exportTypedArrayMethod$8('includes', function includes(searchElement + /* , fromIndex */ + ) { + return $includes$1(aTypedArray$8(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); + }); + + var $indexOf$1 = arrayIncludes.indexOf; + var aTypedArray$9 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$9 = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.indexOf` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof + + exportTypedArrayMethod$9('indexOf', function indexOf(searchElement + /* , fromIndex */ + ) { + return $indexOf$1(aTypedArray$9(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); + }); + + var ITERATOR$5 = wellKnownSymbol('iterator'); + var Uint8Array$1 = global_1.Uint8Array; + var arrayValues = es_array_iterator.values; + var arrayKeys = es_array_iterator.keys; + var arrayEntries = es_array_iterator.entries; + var aTypedArray$a = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$a = arrayBufferViewCore.exportTypedArrayMethod; + var nativeTypedArrayIterator = Uint8Array$1 && Uint8Array$1.prototype[ITERATOR$5]; + var CORRECT_ITER_NAME = !!nativeTypedArrayIterator && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined); + + var typedArrayValues = function values() { + return arrayValues.call(aTypedArray$a(this)); + }; // `%TypedArray%.prototype.entries` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries + + + exportTypedArrayMethod$a('entries', function entries() { + return arrayEntries.call(aTypedArray$a(this)); + }); // `%TypedArray%.prototype.keys` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys + + exportTypedArrayMethod$a('keys', function keys() { + return arrayKeys.call(aTypedArray$a(this)); + }); // `%TypedArray%.prototype.values` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values + + exportTypedArrayMethod$a('values', typedArrayValues, !CORRECT_ITER_NAME); // `%TypedArray%.prototype[@@iterator]` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator + + exportTypedArrayMethod$a(ITERATOR$5, typedArrayValues, !CORRECT_ITER_NAME); + + var aTypedArray$b = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$b = arrayBufferViewCore.exportTypedArrayMethod; + var $join = [].join; // `%TypedArray%.prototype.join` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join + // eslint-disable-next-line no-unused-vars + + exportTypedArrayMethod$b('join', function join(separator) { + return $join.apply(aTypedArray$b(this), arguments); + }); + + var aTypedArray$c = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$c = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.lastIndexOf` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof + // eslint-disable-next-line no-unused-vars + + exportTypedArrayMethod$c('lastIndexOf', function lastIndexOf(searchElement + /* , fromIndex */ + ) { + return arrayLastIndexOf.apply(aTypedArray$c(this), arguments); + }); + + var $map$1 = arrayIteration.map; + var aTypedArray$d = arrayBufferViewCore.aTypedArray; + var aTypedArrayConstructor$3 = arrayBufferViewCore.aTypedArrayConstructor; + var exportTypedArrayMethod$d = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.map` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map + + exportTypedArrayMethod$d('map', function map(mapfn + /* , thisArg */ + ) { + return $map$1(aTypedArray$d(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) { + return new (aTypedArrayConstructor$3(speciesConstructor(O, O.constructor)))(length); + }); + }); + + var aTypedArrayConstructor$4 = arrayBufferViewCore.aTypedArrayConstructor; + var exportTypedArrayStaticMethod$2 = arrayBufferViewCore.exportTypedArrayStaticMethod; // `%TypedArray%.of` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.of + + exportTypedArrayStaticMethod$2('of', function of() + /* ...items */ + { + var index = 0; + var length = arguments.length; + var result = new (aTypedArrayConstructor$4(this))(length); + + while (length > index) { + result[index] = arguments[index++]; + } + + return result; + }, typedArrayConstructorsRequireWrappers); + + var $reduce$1 = arrayReduce.left; + var aTypedArray$e = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$e = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.reduce` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce + + exportTypedArrayMethod$e('reduce', function reduce(callbackfn + /* , initialValue */ + ) { + return $reduce$1(aTypedArray$e(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + }); + + var $reduceRight$1 = arrayReduce.right; + var aTypedArray$f = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$f = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.reduceRicht` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright + + exportTypedArrayMethod$f('reduceRight', function reduceRight(callbackfn + /* , initialValue */ + ) { + return $reduceRight$1(aTypedArray$f(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + }); + + var aTypedArray$g = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$g = arrayBufferViewCore.exportTypedArrayMethod; + var floor$7 = Math.floor; // `%TypedArray%.prototype.reverse` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse + + exportTypedArrayMethod$g('reverse', function reverse() { + var that = this; + var length = aTypedArray$g(that).length; + var middle = floor$7(length / 2); + var index = 0; + var value; + + while (index < middle) { + value = that[index]; + that[index++] = that[--length]; + that[length] = value; + } + + return that; + }); + + var aTypedArray$h = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$h = arrayBufferViewCore.exportTypedArrayMethod; + var FORCED$i = fails(function () { + // eslint-disable-next-line no-undef + new Int8Array(1).set({}); + }); // `%TypedArray%.prototype.set` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set + + exportTypedArrayMethod$h('set', function set(arrayLike + /* , offset */ + ) { + aTypedArray$h(this); + var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1); + var length = this.length; + var src = toObject(arrayLike); + var len = toLength(src.length); + var index = 0; + if (len + offset > length) throw RangeError('Wrong length'); + + while (index < len) { + this[offset + index] = src[index++]; + } + }, FORCED$i); + + var aTypedArray$i = arrayBufferViewCore.aTypedArray; + var aTypedArrayConstructor$5 = arrayBufferViewCore.aTypedArrayConstructor; + var exportTypedArrayMethod$i = arrayBufferViewCore.exportTypedArrayMethod; + var $slice = [].slice; + var FORCED$j = fails(function () { + // eslint-disable-next-line no-undef + new Int8Array(1).slice(); + }); // `%TypedArray%.prototype.slice` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice + + exportTypedArrayMethod$i('slice', function slice(start, end) { + var list = $slice.call(aTypedArray$i(this), start, end); + var C = speciesConstructor(this, this.constructor); + var index = 0; + var length = list.length; + var result = new (aTypedArrayConstructor$5(C))(length); + + while (length > index) { + result[index] = list[index++]; + } + + return result; + }, FORCED$j); + + var $some$1 = arrayIteration.some; + var aTypedArray$j = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$j = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.some` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some + + exportTypedArrayMethod$j('some', function some(callbackfn + /* , thisArg */ + ) { + return $some$1(aTypedArray$j(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }); + + var aTypedArray$k = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$k = arrayBufferViewCore.exportTypedArrayMethod; + var $sort = [].sort; // `%TypedArray%.prototype.sort` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort + + exportTypedArrayMethod$k('sort', function sort(comparefn) { + return $sort.call(aTypedArray$k(this), comparefn); + }); + + var aTypedArray$l = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$l = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.subarray` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray + + exportTypedArrayMethod$l('subarray', function subarray(begin, end) { + var O = aTypedArray$l(this); + var length = O.length; + var beginIndex = toAbsoluteIndex(begin, length); + return new (speciesConstructor(O, O.constructor))(O.buffer, O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT, toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)); + }); + + var Int8Array$3 = global_1.Int8Array; + var aTypedArray$m = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$m = arrayBufferViewCore.exportTypedArrayMethod; + var $toLocaleString = [].toLocaleString; + var $slice$1 = [].slice; // iOS Safari 6.x fails here + + var TO_LOCALE_STRING_BUG = !!Int8Array$3 && fails(function () { + $toLocaleString.call(new Int8Array$3(1)); + }); + var FORCED$k = fails(function () { + return [1, 2].toLocaleString() != new Int8Array$3([1, 2]).toLocaleString(); + }) || !fails(function () { + Int8Array$3.prototype.toLocaleString.call([1, 2]); + }); // `%TypedArray%.prototype.toLocaleString` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring + + exportTypedArrayMethod$m('toLocaleString', function toLocaleString() { + return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice$1.call(aTypedArray$m(this)) : aTypedArray$m(this), arguments); + }, FORCED$k); + + var exportTypedArrayMethod$n = arrayBufferViewCore.exportTypedArrayMethod; + var Uint8Array$2 = global_1.Uint8Array; + var Uint8ArrayPrototype = Uint8Array$2 && Uint8Array$2.prototype || {}; + var arrayToString = [].toString; + var arrayJoin = [].join; + + if (fails(function () { + arrayToString.call({}); + })) { + arrayToString = function toString() { + return arrayJoin.call(this); + }; + } + + var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString; // `%TypedArray%.prototype.toString` method + // https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring + + exportTypedArrayMethod$n('toString', arrayToString, IS_NOT_ARRAY_METHOD); + + var getWeakData = internalMetadata.getWeakData; + var setInternalState$8 = internalState.set; + var internalStateGetterFor$1 = internalState.getterFor; + var find = arrayIteration.find; + var findIndex = arrayIteration.findIndex; + var id$1 = 0; // fallback for uncaught frozen keys + + var uncaughtFrozenStore = function uncaughtFrozenStore(store) { + return store.frozen || (store.frozen = new UncaughtFrozenStore()); + }; + + var UncaughtFrozenStore = function UncaughtFrozenStore() { + this.entries = []; + }; + + var findUncaughtFrozen = function findUncaughtFrozen(store, key) { + return find(store.entries, function (it) { + return it[0] === key; + }); + }; + + UncaughtFrozenStore.prototype = { + get: function get(key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function has(key) { + return !!findUncaughtFrozen(this, key); + }, + set: function set(key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value;else this.entries.push([key, value]); + }, + 'delete': function _delete(key) { + var index = findIndex(this.entries, function (it) { + return it[0] === key; + }); + if (~index) this.entries.splice(index, 1); + return !!~index; + } + }; + var collectionWeak = { + getConstructor: function getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, CONSTRUCTOR_NAME); + setInternalState$8(that, { + type: CONSTRUCTOR_NAME, + id: id$1++, + frozen: undefined + }); + if (iterable != undefined) iterate_1(iterable, that[ADDER], that, IS_MAP); + }); + var getInternalState = internalStateGetterFor$1(CONSTRUCTOR_NAME); + + var define = function define(that, key, value) { + var state = getInternalState(that); + var data = getWeakData(anObject(key), true); + if (data === true) uncaughtFrozenStore(state).set(key, value);else data[state.id] = value; + return that; + }; + + redefineAll(C.prototype, { + // 23.3.3.2 WeakMap.prototype.delete(key) + // 23.4.3.3 WeakSet.prototype.delete(value) + 'delete': function _delete(key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state)['delete'](key); + return data && has(data, state.id) && delete data[state.id]; + }, + // 23.3.3.4 WeakMap.prototype.has(key) + // 23.4.3.4 WeakSet.prototype.has(value) + has: function has$1(key) { + var state = getInternalState(this); + if (!isObject(key)) return false; + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).has(key); + return data && has(data, state.id); + } + }); + redefineAll(C.prototype, IS_MAP ? { + // 23.3.3.3 WeakMap.prototype.get(key) + get: function get(key) { + var state = getInternalState(this); + + if (isObject(key)) { + var data = getWeakData(key); + if (data === true) return uncaughtFrozenStore(state).get(key); + return data ? data[state.id] : undefined; + } + }, + // 23.3.3.5 WeakMap.prototype.set(key, value) + set: function set(key, value) { + return define(this, key, value); + } + } : { + // 23.4.3.1 WeakSet.prototype.add(value) + add: function add(value) { + return define(this, value, true); + } + }); + return C; + } + }; + + var es_weakMap = createCommonjsModule(function (module) { + + var enforceIternalState = internalState.enforce; + var IS_IE11 = !global_1.ActiveXObject && 'ActiveXObject' in global_1; + var isExtensible = Object.isExtensible; + var InternalWeakMap; + + var wrapper = function wrapper(init) { + return function WeakMap() { + return init(this, arguments.length ? arguments[0] : undefined); + }; + }; // `WeakMap` constructor + // https://tc39.github.io/ecma262/#sec-weakmap-constructor + + + var $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak); // IE11 WeakMap frozen keys fix + // We can't use feature detection because it crash some old IE builds + // https://github.com/zloirock/core-js/issues/485 + + if (nativeWeakMap && IS_IE11) { + InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true); + internalMetadata.REQUIRED = true; + var WeakMapPrototype = $WeakMap.prototype; + var nativeDelete = WeakMapPrototype['delete']; + var nativeHas = WeakMapPrototype.has; + var nativeGet = WeakMapPrototype.get; + var nativeSet = WeakMapPrototype.set; + redefineAll(WeakMapPrototype, { + 'delete': function _delete(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceIternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeDelete.call(this, key) || state.frozen['delete'](key); + } + + return nativeDelete.call(this, key); + }, + has: function has(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceIternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas.call(this, key) || state.frozen.has(key); + } + + return nativeHas.call(this, key); + }, + get: function get(key) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceIternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key); + } + + return nativeGet.call(this, key); + }, + set: function set(key, value) { + if (isObject(key) && !isExtensible(key)) { + var state = enforceIternalState(this); + if (!state.frozen) state.frozen = new InternalWeakMap(); + nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value); + } else nativeSet.call(this, key, value); + + return this; + } + }); + } + }); + + // https://tc39.github.io/ecma262/#sec-weakset-constructor + + + collection('WeakSet', function (init) { + return function WeakSet() { + return init(this, arguments.length ? arguments[0] : undefined); + }; + }, collectionWeak); + + // iterable DOM collections + // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods + var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 + }; + + for (var COLLECTION_NAME in domIterables) { + var Collection = global_1[COLLECTION_NAME]; + var CollectionPrototype = Collection && Collection.prototype; // some Chrome versions have non-configurable methods on DOMTokenList + + if (CollectionPrototype && CollectionPrototype.forEach !== arrayForEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', arrayForEach); + } catch (error) { + CollectionPrototype.forEach = arrayForEach; + } + } + + var ITERATOR$6 = wellKnownSymbol('iterator'); + var TO_STRING_TAG$4 = wellKnownSymbol('toStringTag'); + var ArrayValues = es_array_iterator.values; + + for (var COLLECTION_NAME$1 in domIterables) { + var Collection$1 = global_1[COLLECTION_NAME$1]; + var CollectionPrototype$1 = Collection$1 && Collection$1.prototype; + + if (CollectionPrototype$1) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype$1[ITERATOR$6] !== ArrayValues) try { + createNonEnumerableProperty(CollectionPrototype$1, ITERATOR$6, ArrayValues); + } catch (error) { + CollectionPrototype$1[ITERATOR$6] = ArrayValues; + } + + if (!CollectionPrototype$1[TO_STRING_TAG$4]) { + createNonEnumerableProperty(CollectionPrototype$1, TO_STRING_TAG$4, COLLECTION_NAME$1); + } + + if (domIterables[COLLECTION_NAME$1]) for (var METHOD_NAME in es_array_iterator) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype$1[METHOD_NAME] !== es_array_iterator[METHOD_NAME]) try { + createNonEnumerableProperty(CollectionPrototype$1, METHOD_NAME, es_array_iterator[METHOD_NAME]); + } catch (error) { + CollectionPrototype$1[METHOD_NAME] = es_array_iterator[METHOD_NAME]; + } + } + } + } + + var FORCED$l = !global_1.setImmediate || !global_1.clearImmediate; // http://w3c.github.io/setImmediate/ + + _export({ + global: true, + bind: true, + enumerable: true, + forced: FORCED$l + }, { + // `setImmediate` method + // http://w3c.github.io/setImmediate/#si-setImmediate + setImmediate: task.set, + // `clearImmediate` method + // http://w3c.github.io/setImmediate/#si-clearImmediate + clearImmediate: task.clear + }); + + var process$4 = global_1.process; + var isNode = classofRaw(process$4) == 'process'; // `queueMicrotask` method + // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask + + _export({ + global: true, + enumerable: true, + noTargetGet: true + }, { + queueMicrotask: function queueMicrotask(fn) { + var domain = isNode && process$4.domain; + microtask(domain ? domain.bind(fn) : fn); + } + }); + + var ITERATOR$7 = wellKnownSymbol('iterator'); + var nativeUrl = !fails(function () { + var url = new URL('b?a=1&b=2&c=3', 'http://a'); + var searchParams = url.searchParams; + var result = ''; + url.pathname = 'c%20d'; + searchParams.forEach(function (value, key) { + searchParams['delete']('b'); + result += key + value; + }); + return isPure && !url.toJSON || !searchParams.sort || url.href !== 'http://a/c%20d?a=1&c=3' || searchParams.get('c') !== '3' || String(new URLSearchParams('?a=1')) !== 'a=1' || !searchParams[ITERATOR$7] // throws in Edge + || new URL('https://a@b').username !== 'a' || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' // not punycoded in Edge + || new URL('http://тест').host !== 'xn--e1aybc' // not escaped in Chrome 62- + || new URL('http://a#б').hash !== '#%D0%B1' // fails in Chrome 66- + || result !== 'a1c3' // throws in Safari + || new URL('http://x', undefined).host !== 'x'; + }); + + var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 + + var base = 36; + var tMin = 1; + var tMax = 26; + var skew = 38; + var damp = 700; + var initialBias = 72; + var initialN = 128; // 0x80 + + var delimiter = '-'; // '\x2D' + + var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars + + var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators + + var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process'; + var baseMinusTMin = base - tMin; + var floor$8 = Math.floor; + var stringFromCharCode = String.fromCharCode; + /** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + */ + + var ucs2decode = function ucs2decode(string) { + var output = []; + var counter = 0; + var length = string.length; + + while (counter < length) { + var value = string.charCodeAt(counter++); + + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // It's a high surrogate, and there is a next character. + var extra = string.charCodeAt(counter++); + + if ((extra & 0xFC00) == 0xDC00) { + // Low surrogate. + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // It's an unmatched surrogate; only append this code unit, in case the + // next code unit is the high surrogate of a surrogate pair. + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + + return output; + }; + /** + * Converts a digit/integer into a basic code point. + */ + + + var digitToBasic = function digitToBasic(digit) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26); + }; + /** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + */ + + + var adapt = function adapt(delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor$8(delta / damp) : delta >> 1; + delta += floor$8(delta / numPoints); + + for (; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor$8(delta / baseMinusTMin); + } + + return floor$8(k + (baseMinusTMin + 1) * delta / (delta + skew)); + }; + /** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + */ + // eslint-disable-next-line max-statements + + + var encode = function encode(input) { + var output = []; // Convert the input in UCS-2 to an array of Unicode code points. + + input = ucs2decode(input); // Cache the length. + + var inputLength = input.length; // Initialize the state. + + var n = initialN; + var delta = 0; + var bias = initialBias; + var i, currentValue; // Handle the basic code points. + + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + var basicLength = output.length; // number of basic code points. + + var handledCPCount = basicLength; // number of code points that have been handled; + // Finish the basic string with a delimiter unless it's empty. + + if (basicLength) { + output.push(delimiter); + } // Main encoding loop: + + + while (handledCPCount < inputLength) { + // All non-basic code points < n have been handled already. Find the next larger one: + var m = maxInt; + + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } // Increase `delta` enough to advance the decoder's state to , but guard against overflow. + + + var handledCPCountPlusOne = handledCPCount + 1; + + if (m - n > floor$8((maxInt - delta) / handledCPCountPlusOne)) { + throw RangeError(OVERFLOW_ERROR); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (i = 0; i < input.length; i++) { + currentValue = input[i]; + + if (currentValue < n && ++delta > maxInt) { + throw RangeError(OVERFLOW_ERROR); + } + + if (currentValue == n) { + // Represent delta as a generalized variable-length integer. + var q = delta; + + for (var k = base;; + /* no condition */ + k += base) { + var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + if (q < t) break; + var qMinusT = q - t; + var baseMinusT = base - t; + output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT))); + q = floor$8(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + } + + return output.join(''); + }; + + var stringPunycodeToAscii = function stringPunycodeToAscii(input) { + var encoded = []; + var labels = input.toLowerCase().replace(regexSeparators, ".").split('.'); + var i, label; + + for (i = 0; i < labels.length; i++) { + label = labels[i]; + encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label); + } + + return encoded.join('.'); + }; + + var getIterator = function getIterator(it) { + var iteratorMethod = getIteratorMethod(it); + + if (typeof iteratorMethod != 'function') { + throw TypeError(String(it) + ' is not iterable'); + } + + return anObject(iteratorMethod.call(it)); + }; + + var $fetch$1 = getBuiltIn('fetch'); + var Headers = getBuiltIn('Headers'); + var ITERATOR$8 = wellKnownSymbol('iterator'); + var URL_SEARCH_PARAMS = 'URLSearchParams'; + var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; + var setInternalState$9 = internalState.set; + var getInternalParamsState = internalState.getterFor(URL_SEARCH_PARAMS); + var getInternalIteratorState = internalState.getterFor(URL_SEARCH_PARAMS_ITERATOR); + var plus = /\+/g; + var sequences = Array(4); + + var percentSequence = function percentSequence(bytes) { + return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); + }; + + var percentDecode = function percentDecode(sequence) { + try { + return decodeURIComponent(sequence); + } catch (error) { + return sequence; + } + }; + + var deserialize = function deserialize(it) { + var result = it.replace(plus, ' '); + var bytes = 4; + + try { + return decodeURIComponent(result); + } catch (error) { + while (bytes) { + result = result.replace(percentSequence(bytes--), percentDecode); + } + + return result; + } + }; + + var find$1 = /[!'()~]|%20/g; + var replace = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+' + }; + + var replacer = function replacer(match) { + return replace[match]; + }; + + var serialize = function serialize(it) { + return encodeURIComponent(it).replace(find$1, replacer); + }; + + var parseSearchParams = function parseSearchParams(result, query) { + if (query) { + var attributes = query.split('&'); + var index = 0; + var attribute, entry; + + while (index < attributes.length) { + attribute = attributes[index++]; + + if (attribute.length) { + entry = attribute.split('='); + result.push({ + key: deserialize(entry.shift()), + value: deserialize(entry.join('=')) + }); + } + } + } + }; + + var updateSearchParams = function updateSearchParams(query) { + this.entries.length = 0; + parseSearchParams(this.entries, query); + }; + + var validateArgumentsLength = function validateArgumentsLength(passed, required) { + if (passed < required) throw TypeError('Not enough arguments'); + }; + + var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { + setInternalState$9(this, { + type: URL_SEARCH_PARAMS_ITERATOR, + iterator: getIterator(getInternalParamsState(params).entries), + kind: kind + }); + }, 'Iterator', function next() { + var state = getInternalIteratorState(this); + var kind = state.kind; + var step = state.iterator.next(); + var entry = step.value; + + if (!step.done) { + step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value]; + } + + return step; + }); // `URLSearchParams` constructor + // https://url.spec.whatwg.org/#interface-urlsearchparams + + var URLSearchParamsConstructor = function URLSearchParams() + /* init */ + { + anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS); + var init = arguments.length > 0 ? arguments[0] : undefined; + var that = this; + var entries = []; + var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key; + setInternalState$9(that, { + type: URL_SEARCH_PARAMS, + entries: entries, + updateURL: function updateURL() { + /* empty */ + }, + updateSearchParams: updateSearchParams + }); + + if (init !== undefined) { + if (isObject(init)) { + iteratorMethod = getIteratorMethod(init); + + if (typeof iteratorMethod === 'function') { + iterator = iteratorMethod.call(init); + next = iterator.next; + + while (!(step = next.call(iterator)).done) { + entryIterator = getIterator(anObject(step.value)); + entryNext = entryIterator.next; + if ((first = entryNext.call(entryIterator)).done || (second = entryNext.call(entryIterator)).done || !entryNext.call(entryIterator).done) throw TypeError('Expected sequence with length 2'); + entries.push({ + key: first.value + '', + value: second.value + '' + }); + } + } else for (key in init) { + if (has(init, key)) entries.push({ + key: key, + value: init[key] + '' + }); + } + } else { + parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + ''); + } + } + }; + + var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; + redefineAll(URLSearchParamsPrototype, { + // `URLSearchParams.prototype.appent` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-append + append: function append(name, value) { + validateArgumentsLength(arguments.length, 2); + var state = getInternalParamsState(this); + state.entries.push({ + key: name + '', + value: value + '' + }); + state.updateURL(); + }, + // `URLSearchParams.prototype.delete` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-delete + 'delete': function _delete(name) { + validateArgumentsLength(arguments.length, 1); + var state = getInternalParamsState(this); + var entries = state.entries; + var key = name + ''; + var index = 0; + + while (index < entries.length) { + if (entries[index].key === key) entries.splice(index, 1);else index++; + } + + state.updateURL(); + }, + // `URLSearchParams.prototype.get` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-get + get: function get(name) { + validateArgumentsLength(arguments.length, 1); + var entries = getInternalParamsState(this).entries; + var key = name + ''; + var index = 0; + + for (; index < entries.length; index++) { + if (entries[index].key === key) return entries[index].value; + } + + return null; + }, + // `URLSearchParams.prototype.getAll` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-getall + getAll: function getAll(name) { + validateArgumentsLength(arguments.length, 1); + var entries = getInternalParamsState(this).entries; + var key = name + ''; + var result = []; + var index = 0; + + for (; index < entries.length; index++) { + if (entries[index].key === key) result.push(entries[index].value); + } + + return result; + }, + // `URLSearchParams.prototype.has` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-has + has: function has(name) { + validateArgumentsLength(arguments.length, 1); + var entries = getInternalParamsState(this).entries; + var key = name + ''; + var index = 0; + + while (index < entries.length) { + if (entries[index++].key === key) return true; + } + + return false; + }, + // `URLSearchParams.prototype.set` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-set + set: function set(name, value) { + validateArgumentsLength(arguments.length, 1); + var state = getInternalParamsState(this); + var entries = state.entries; + var found = false; + var key = name + ''; + var val = value + ''; + var index = 0; + var entry; + + for (; index < entries.length; index++) { + entry = entries[index]; + + if (entry.key === key) { + if (found) entries.splice(index--, 1);else { + found = true; + entry.value = val; + } + } + } + + if (!found) entries.push({ + key: key, + value: val + }); + state.updateURL(); + }, + // `URLSearchParams.prototype.sort` method + // https://url.spec.whatwg.org/#dom-urlsearchparams-sort + sort: function sort() { + var state = getInternalParamsState(this); + var entries = state.entries; // Array#sort is not stable in some engines + + var slice = entries.slice(); + var entry, entriesIndex, sliceIndex; + entries.length = 0; + + for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) { + entry = slice[sliceIndex]; + + for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) { + if (entries[entriesIndex].key > entry.key) { + entries.splice(entriesIndex, 0, entry); + break; + } + } + + if (entriesIndex === sliceIndex) entries.push(entry); + } + + state.updateURL(); + }, + // `URLSearchParams.prototype.forEach` method + forEach: function forEach(callback + /* , thisArg */ + ) { + var entries = getInternalParamsState(this).entries; + var boundFunction = functionBindContext(callback, arguments.length > 1 ? arguments[1] : undefined, 3); + var index = 0; + var entry; + + while (index < entries.length) { + entry = entries[index++]; + boundFunction(entry.value, entry.key, this); + } + }, + // `URLSearchParams.prototype.keys` method + keys: function keys() { + return new URLSearchParamsIterator(this, 'keys'); + }, + // `URLSearchParams.prototype.values` method + values: function values() { + return new URLSearchParamsIterator(this, 'values'); + }, + // `URLSearchParams.prototype.entries` method + entries: function entries() { + return new URLSearchParamsIterator(this, 'entries'); + } + }, { + enumerable: true + }); // `URLSearchParams.prototype[@@iterator]` method + + redefine(URLSearchParamsPrototype, ITERATOR$8, URLSearchParamsPrototype.entries); // `URLSearchParams.prototype.toString` method + // https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior + + redefine(URLSearchParamsPrototype, 'toString', function toString() { + var entries = getInternalParamsState(this).entries; + var result = []; + var index = 0; + var entry; + + while (index < entries.length) { + entry = entries[index++]; + result.push(serialize(entry.key) + '=' + serialize(entry.value)); + } + + return result.join('&'); + }, { + enumerable: true + }); + setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); + _export({ + global: true, + forced: !nativeUrl + }, { + URLSearchParams: URLSearchParamsConstructor + }); // Wrap `fetch` for correct work with polyfilled `URLSearchParams` + // https://github.com/zloirock/core-js/issues/674 + + if (!nativeUrl && typeof $fetch$1 == 'function' && typeof Headers == 'function') { + _export({ + global: true, + enumerable: true, + forced: true + }, { + fetch: function fetch(input + /* , init */ + ) { + var args = [input]; + var init, body, headers; + + if (arguments.length > 1) { + init = arguments[1]; + + if (isObject(init)) { + body = init.body; + + if (classof(body) === URL_SEARCH_PARAMS) { + headers = init.headers ? new Headers(init.headers) : new Headers(); + + if (!headers.has('content-type')) { + headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); + } + + init = objectCreate(init, { + body: createPropertyDescriptor(0, String(body)), + headers: createPropertyDescriptor(0, headers) + }); + } + } + + args.push(init); + } + + return $fetch$1.apply(this, args); + } + }); + } + + var web_urlSearchParams = { + URLSearchParams: URLSearchParamsConstructor, + getState: getInternalParamsState + }; + + var codeAt$1 = stringMultibyte.codeAt; + var NativeURL = global_1.URL; + var URLSearchParams$1 = web_urlSearchParams.URLSearchParams; + var getInternalSearchParamsState = web_urlSearchParams.getState; + var setInternalState$a = internalState.set; + var getInternalURLState = internalState.getterFor('URL'); + var floor$9 = Math.floor; + var pow$4 = Math.pow; + var INVALID_AUTHORITY = 'Invalid authority'; + var INVALID_SCHEME = 'Invalid scheme'; + var INVALID_HOST = 'Invalid host'; + var INVALID_PORT = 'Invalid port'; + var ALPHA = /[A-Za-z]/; + var ALPHANUMERIC = /[\d+-.A-Za-z]/; + var DIGIT = /\d/; + var HEX_START = /^(0x|0X)/; + var OCT = /^[0-7]+$/; + var DEC = /^\d+$/; + var HEX = /^[\dA-Fa-f]+$/; // eslint-disable-next-line no-control-regex + + var FORBIDDEN_HOST_CODE_POINT = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/; // eslint-disable-next-line no-control-regex + + var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/; // eslint-disable-next-line no-control-regex + + var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g; // eslint-disable-next-line no-control-regex + + var TAB_AND_NEW_LINE = /[\u0009\u000A\u000D]/g; + var EOF; + + var parseHost = function parseHost(url, input) { + var result, codePoints, index; + + if (input.charAt(0) == '[') { + if (input.charAt(input.length - 1) != ']') return INVALID_HOST; + result = parseIPv6(input.slice(1, -1)); + if (!result) return INVALID_HOST; + url.host = result; // opaque host + } else if (!isSpecial(url)) { + if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST; + result = ''; + codePoints = arrayFrom(input); + + for (index = 0; index < codePoints.length; index++) { + result += percentEncode(codePoints[index], C0ControlPercentEncodeSet); + } + + url.host = result; + } else { + input = stringPunycodeToAscii(input); + if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST; + result = parseIPv4(input); + if (result === null) return INVALID_HOST; + url.host = result; + } + }; + + var parseIPv4 = function parseIPv4(input) { + var parts = input.split('.'); + var partsLength, numbers, index, part, radix, number, ipv4; + + if (parts.length && parts[parts.length - 1] == '') { + parts.pop(); + } + + partsLength = parts.length; + if (partsLength > 4) return input; + numbers = []; + + for (index = 0; index < partsLength; index++) { + part = parts[index]; + if (part == '') return input; + radix = 10; + + if (part.length > 1 && part.charAt(0) == '0') { + radix = HEX_START.test(part) ? 16 : 8; + part = part.slice(radix == 8 ? 1 : 2); + } + + if (part === '') { + number = 0; + } else { + if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input; + number = parseInt(part, radix); + } + + numbers.push(number); + } + + for (index = 0; index < partsLength; index++) { + number = numbers[index]; + + if (index == partsLength - 1) { + if (number >= pow$4(256, 5 - partsLength)) return null; + } else if (number > 255) return null; + } + + ipv4 = numbers.pop(); + + for (index = 0; index < numbers.length; index++) { + ipv4 += numbers[index] * pow$4(256, 3 - index); + } + + return ipv4; + }; // eslint-disable-next-line max-statements + + + var parseIPv6 = function parseIPv6(input) { + var address = [0, 0, 0, 0, 0, 0, 0, 0]; + var pieceIndex = 0; + var compress = null; + var pointer = 0; + var value, length, numbersSeen, ipv4Piece, number, swaps, swap; + + var _char = function _char() { + return input.charAt(pointer); + }; + + if (_char() == ':') { + if (input.charAt(1) != ':') return; + pointer += 2; + pieceIndex++; + compress = pieceIndex; + } + + while (_char()) { + if (pieceIndex == 8) return; + + if (_char() == ':') { + if (compress !== null) return; + pointer++; + pieceIndex++; + compress = pieceIndex; + continue; + } + + value = length = 0; + + while (length < 4 && HEX.test(_char())) { + value = value * 16 + parseInt(_char(), 16); + pointer++; + length++; + } + + if (_char() == '.') { + if (length == 0) return; + pointer -= length; + if (pieceIndex > 6) return; + numbersSeen = 0; + + while (_char()) { + ipv4Piece = null; + + if (numbersSeen > 0) { + if (_char() == '.' && numbersSeen < 4) pointer++;else return; + } + + if (!DIGIT.test(_char())) return; + + while (DIGIT.test(_char())) { + number = parseInt(_char(), 10); + if (ipv4Piece === null) ipv4Piece = number;else if (ipv4Piece == 0) return;else ipv4Piece = ipv4Piece * 10 + number; + if (ipv4Piece > 255) return; + pointer++; + } + + address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; + numbersSeen++; + if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++; + } + + if (numbersSeen != 4) return; + break; + } else if (_char() == ':') { + pointer++; + if (!_char()) return; + } else if (_char()) return; + + address[pieceIndex++] = value; + } + + if (compress !== null) { + swaps = pieceIndex - compress; + pieceIndex = 7; + + while (pieceIndex != 0 && swaps > 0) { + swap = address[pieceIndex]; + address[pieceIndex--] = address[compress + swaps - 1]; + address[compress + --swaps] = swap; + } + } else if (pieceIndex != 8) return; + + return address; + }; + + var findLongestZeroSequence = function findLongestZeroSequence(ipv6) { + var maxIndex = null; + var maxLength = 1; + var currStart = null; + var currLength = 0; + var index = 0; + + for (; index < 8; index++) { + if (ipv6[index] !== 0) { + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + + currStart = null; + currLength = 0; + } else { + if (currStart === null) currStart = index; + ++currLength; + } + } + + if (currLength > maxLength) { + maxIndex = currStart; + maxLength = currLength; + } + + return maxIndex; + }; + + var serializeHost = function serializeHost(host) { + var result, index, compress, ignore0; // ipv4 + + if (typeof host == 'number') { + result = []; + + for (index = 0; index < 4; index++) { + result.unshift(host % 256); + host = floor$9(host / 256); + } + + return result.join('.'); // ipv6 + } else if (_typeof(host) == 'object') { + result = ''; + compress = findLongestZeroSequence(host); + + for (index = 0; index < 8; index++) { + if (ignore0 && host[index] === 0) continue; + if (ignore0) ignore0 = false; + + if (compress === index) { + result += index ? ':' : '::'; + ignore0 = true; + } else { + result += host[index].toString(16); + if (index < 7) result += ':'; + } + } + + return '[' + result + ']'; + } + + return host; + }; + + var C0ControlPercentEncodeSet = {}; + var fragmentPercentEncodeSet = objectAssign({}, C0ControlPercentEncodeSet, { + ' ': 1, + '"': 1, + '<': 1, + '>': 1, + '`': 1 + }); + var pathPercentEncodeSet = objectAssign({}, fragmentPercentEncodeSet, { + '#': 1, + '?': 1, + '{': 1, + '}': 1 + }); + var userinfoPercentEncodeSet = objectAssign({}, pathPercentEncodeSet, { + '/': 1, + ':': 1, + ';': 1, + '=': 1, + '@': 1, + '[': 1, + '\\': 1, + ']': 1, + '^': 1, + '|': 1 + }); + + var percentEncode = function percentEncode(_char2, set) { + var code = codeAt$1(_char2, 0); + return code > 0x20 && code < 0x7F && !has(set, _char2) ? _char2 : encodeURIComponent(_char2); + }; + + var specialSchemes = { + ftp: 21, + file: null, + http: 80, + https: 443, + ws: 80, + wss: 443 + }; + + var isSpecial = function isSpecial(url) { + return has(specialSchemes, url.scheme); + }; + + var includesCredentials = function includesCredentials(url) { + return url.username != '' || url.password != ''; + }; + + var cannotHaveUsernamePasswordPort = function cannotHaveUsernamePasswordPort(url) { + return !url.host || url.cannotBeABaseURL || url.scheme == 'file'; + }; + + var isWindowsDriveLetter = function isWindowsDriveLetter(string, normalized) { + var second; + return string.length == 2 && ALPHA.test(string.charAt(0)) && ((second = string.charAt(1)) == ':' || !normalized && second == '|'); + }; + + var startsWithWindowsDriveLetter = function startsWithWindowsDriveLetter(string) { + var third; + return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (string.length == 2 || (third = string.charAt(2)) === '/' || third === '\\' || third === '?' || third === '#'); + }; + + var shortenURLsPath = function shortenURLsPath(url) { + var path = url.path; + var pathSize = path.length; + + if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) { + path.pop(); + } + }; + + var isSingleDot = function isSingleDot(segment) { + return segment === '.' || segment.toLowerCase() === '%2e'; + }; + + var isDoubleDot = function isDoubleDot(segment) { + segment = segment.toLowerCase(); + return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; + }; // States: + + + var SCHEME_START = {}; + var SCHEME = {}; + var NO_SCHEME = {}; + var SPECIAL_RELATIVE_OR_AUTHORITY = {}; + var PATH_OR_AUTHORITY = {}; + var RELATIVE = {}; + var RELATIVE_SLASH = {}; + var SPECIAL_AUTHORITY_SLASHES = {}; + var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; + var AUTHORITY = {}; + var HOST = {}; + var HOSTNAME = {}; + var PORT = {}; + var FILE = {}; + var FILE_SLASH = {}; + var FILE_HOST = {}; + var PATH_START = {}; + var PATH = {}; + var CANNOT_BE_A_BASE_URL_PATH = {}; + var QUERY = {}; + var FRAGMENT = {}; // eslint-disable-next-line max-statements + + var parseURL = function parseURL(url, input, stateOverride, base) { + var state = stateOverride || SCHEME_START; + var pointer = 0; + var buffer = ''; + var seenAt = false; + var seenBracket = false; + var seenPasswordToken = false; + + var codePoints, _char3, bufferCodePoints, failure; + + if (!stateOverride) { + url.scheme = ''; + url.username = ''; + url.password = ''; + url.host = null; + url.port = null; + url.path = []; + url.query = null; + url.fragment = null; + url.cannotBeABaseURL = false; + input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, ''); + } + + input = input.replace(TAB_AND_NEW_LINE, ''); + codePoints = arrayFrom(input); + + while (pointer <= codePoints.length) { + _char3 = codePoints[pointer]; + + switch (state) { + case SCHEME_START: + if (_char3 && ALPHA.test(_char3)) { + buffer += _char3.toLowerCase(); + state = SCHEME; + } else if (!stateOverride) { + state = NO_SCHEME; + continue; + } else return INVALID_SCHEME; + + break; + + case SCHEME: + if (_char3 && (ALPHANUMERIC.test(_char3) || _char3 == '+' || _char3 == '-' || _char3 == '.')) { + buffer += _char3.toLowerCase(); + } else if (_char3 == ':') { + if (stateOverride && (isSpecial(url) != has(specialSchemes, buffer) || buffer == 'file' && (includesCredentials(url) || url.port !== null) || url.scheme == 'file' && !url.host)) return; + url.scheme = buffer; + + if (stateOverride) { + if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null; + return; + } + + buffer = ''; + + if (url.scheme == 'file') { + state = FILE; + } else if (isSpecial(url) && base && base.scheme == url.scheme) { + state = SPECIAL_RELATIVE_OR_AUTHORITY; + } else if (isSpecial(url)) { + state = SPECIAL_AUTHORITY_SLASHES; + } else if (codePoints[pointer + 1] == '/') { + state = PATH_OR_AUTHORITY; + pointer++; + } else { + url.cannotBeABaseURL = true; + url.path.push(''); + state = CANNOT_BE_A_BASE_URL_PATH; + } + } else if (!stateOverride) { + buffer = ''; + state = NO_SCHEME; + pointer = 0; + continue; + } else return INVALID_SCHEME; + + break; + + case NO_SCHEME: + if (!base || base.cannotBeABaseURL && _char3 != '#') return INVALID_SCHEME; + + if (base.cannotBeABaseURL && _char3 == '#') { + url.scheme = base.scheme; + url.path = base.path.slice(); + url.query = base.query; + url.fragment = ''; + url.cannotBeABaseURL = true; + state = FRAGMENT; + break; + } + + state = base.scheme == 'file' ? FILE : RELATIVE; + continue; + + case SPECIAL_RELATIVE_OR_AUTHORITY: + if (_char3 == '/' && codePoints[pointer + 1] == '/') { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + pointer++; + } else { + state = RELATIVE; + continue; + } + + break; + + case PATH_OR_AUTHORITY: + if (_char3 == '/') { + state = AUTHORITY; + break; + } else { + state = PATH; + continue; + } + + case RELATIVE: + url.scheme = base.scheme; + + if (_char3 == EOF) { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = base.path.slice(); + url.query = base.query; + } else if (_char3 == '/' || _char3 == '\\' && isSpecial(url)) { + state = RELATIVE_SLASH; + } else if (_char3 == '?') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = base.path.slice(); + url.query = ''; + state = QUERY; + } else if (_char3 == '#') { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = base.path.slice(); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + url.path = base.path.slice(); + url.path.pop(); + state = PATH; + continue; + } + + break; + + case RELATIVE_SLASH: + if (isSpecial(url) && (_char3 == '/' || _char3 == '\\')) { + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + } else if (_char3 == '/') { + state = AUTHORITY; + } else { + url.username = base.username; + url.password = base.password; + url.host = base.host; + url.port = base.port; + state = PATH; + continue; + } + + break; + + case SPECIAL_AUTHORITY_SLASHES: + state = SPECIAL_AUTHORITY_IGNORE_SLASHES; + if (_char3 != '/' || buffer.charAt(pointer + 1) != '/') continue; + pointer++; + break; + + case SPECIAL_AUTHORITY_IGNORE_SLASHES: + if (_char3 != '/' && _char3 != '\\') { + state = AUTHORITY; + continue; + } + + break; + + case AUTHORITY: + if (_char3 == '@') { + if (seenAt) buffer = '%40' + buffer; + seenAt = true; + bufferCodePoints = arrayFrom(buffer); + + for (var i = 0; i < bufferCodePoints.length; i++) { + var codePoint = bufferCodePoints[i]; + + if (codePoint == ':' && !seenPasswordToken) { + seenPasswordToken = true; + continue; + } + + var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet); + if (seenPasswordToken) url.password += encodedCodePoints;else url.username += encodedCodePoints; + } + + buffer = ''; + } else if (_char3 == EOF || _char3 == '/' || _char3 == '?' || _char3 == '#' || _char3 == '\\' && isSpecial(url)) { + if (seenAt && buffer == '') return INVALID_AUTHORITY; + pointer -= arrayFrom(buffer).length + 1; + buffer = ''; + state = HOST; + } else buffer += _char3; + + break; + + case HOST: + case HOSTNAME: + if (stateOverride && url.scheme == 'file') { + state = FILE_HOST; + continue; + } else if (_char3 == ':' && !seenBracket) { + if (buffer == '') return INVALID_HOST; + failure = parseHost(url, buffer); + if (failure) return failure; + buffer = ''; + state = PORT; + if (stateOverride == HOSTNAME) return; + } else if (_char3 == EOF || _char3 == '/' || _char3 == '?' || _char3 == '#' || _char3 == '\\' && isSpecial(url)) { + if (isSpecial(url) && buffer == '') return INVALID_HOST; + if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return; + failure = parseHost(url, buffer); + if (failure) return failure; + buffer = ''; + state = PATH_START; + if (stateOverride) return; + continue; + } else { + if (_char3 == '[') seenBracket = true;else if (_char3 == ']') seenBracket = false; + buffer += _char3; + } + + break; + + case PORT: + if (DIGIT.test(_char3)) { + buffer += _char3; + } else if (_char3 == EOF || _char3 == '/' || _char3 == '?' || _char3 == '#' || _char3 == '\\' && isSpecial(url) || stateOverride) { + if (buffer != '') { + var port = parseInt(buffer, 10); + if (port > 0xFFFF) return INVALID_PORT; + url.port = isSpecial(url) && port === specialSchemes[url.scheme] ? null : port; + buffer = ''; + } + + if (stateOverride) return; + state = PATH_START; + continue; + } else return INVALID_PORT; + + break; + + case FILE: + url.scheme = 'file'; + if (_char3 == '/' || _char3 == '\\') state = FILE_SLASH;else if (base && base.scheme == 'file') { + if (_char3 == EOF) { + url.host = base.host; + url.path = base.path.slice(); + url.query = base.query; + } else if (_char3 == '?') { + url.host = base.host; + url.path = base.path.slice(); + url.query = ''; + state = QUERY; + } else if (_char3 == '#') { + url.host = base.host; + url.path = base.path.slice(); + url.query = base.query; + url.fragment = ''; + state = FRAGMENT; + } else { + if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { + url.host = base.host; + url.path = base.path.slice(); + shortenURLsPath(url); + } + + state = PATH; + continue; + } + } else { + state = PATH; + continue; + } + break; + + case FILE_SLASH: + if (_char3 == '/' || _char3 == '\\') { + state = FILE_HOST; + break; + } + + if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { + if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);else url.host = base.host; + } + + state = PATH; + continue; + + case FILE_HOST: + if (_char3 == EOF || _char3 == '/' || _char3 == '\\' || _char3 == '?' || _char3 == '#') { + if (!stateOverride && isWindowsDriveLetter(buffer)) { + state = PATH; + } else if (buffer == '') { + url.host = ''; + if (stateOverride) return; + state = PATH_START; + } else { + failure = parseHost(url, buffer); + if (failure) return failure; + if (url.host == 'localhost') url.host = ''; + if (stateOverride) return; + buffer = ''; + state = PATH_START; + } + + continue; + } else buffer += _char3; + + break; + + case PATH_START: + if (isSpecial(url)) { + state = PATH; + if (_char3 != '/' && _char3 != '\\') continue; + } else if (!stateOverride && _char3 == '?') { + url.query = ''; + state = QUERY; + } else if (!stateOverride && _char3 == '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (_char3 != EOF) { + state = PATH; + if (_char3 != '/') continue; + } + + break; + + case PATH: + if (_char3 == EOF || _char3 == '/' || _char3 == '\\' && isSpecial(url) || !stateOverride && (_char3 == '?' || _char3 == '#')) { + if (isDoubleDot(buffer)) { + shortenURLsPath(url); + + if (_char3 != '/' && !(_char3 == '\\' && isSpecial(url))) { + url.path.push(''); + } + } else if (isSingleDot(buffer)) { + if (_char3 != '/' && !(_char3 == '\\' && isSpecial(url))) { + url.path.push(''); + } + } else { + if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { + if (url.host) url.host = ''; + buffer = buffer.charAt(0) + ':'; // normalize windows drive letter + } + + url.path.push(buffer); + } + + buffer = ''; + + if (url.scheme == 'file' && (_char3 == EOF || _char3 == '?' || _char3 == '#')) { + while (url.path.length > 1 && url.path[0] === '') { + url.path.shift(); + } + } + + if (_char3 == '?') { + url.query = ''; + state = QUERY; + } else if (_char3 == '#') { + url.fragment = ''; + state = FRAGMENT; + } + } else { + buffer += percentEncode(_char3, pathPercentEncodeSet); + } + + break; + + case CANNOT_BE_A_BASE_URL_PATH: + if (_char3 == '?') { + url.query = ''; + state = QUERY; + } else if (_char3 == '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (_char3 != EOF) { + url.path[0] += percentEncode(_char3, C0ControlPercentEncodeSet); + } + + break; + + case QUERY: + if (!stateOverride && _char3 == '#') { + url.fragment = ''; + state = FRAGMENT; + } else if (_char3 != EOF) { + if (_char3 == "'" && isSpecial(url)) url.query += '%27';else if (_char3 == '#') url.query += '%23';else url.query += percentEncode(_char3, C0ControlPercentEncodeSet); + } + + break; + + case FRAGMENT: + if (_char3 != EOF) url.fragment += percentEncode(_char3, fragmentPercentEncodeSet); + break; + } + + pointer++; + } + }; // `URL` constructor + // https://url.spec.whatwg.org/#url-class + + + var URLConstructor = function URL(url + /* , base */ + ) { + var that = anInstance(this, URLConstructor, 'URL'); + var base = arguments.length > 1 ? arguments[1] : undefined; + var urlString = String(url); + var state = setInternalState$a(that, { + type: 'URL' + }); + var baseState, failure; + + if (base !== undefined) { + if (base instanceof URLConstructor) baseState = getInternalURLState(base);else { + failure = parseURL(baseState = {}, String(base)); + if (failure) throw TypeError(failure); + } + } + + failure = parseURL(state, urlString, null, baseState); + if (failure) throw TypeError(failure); + var searchParams = state.searchParams = new URLSearchParams$1(); + var searchParamsState = getInternalSearchParamsState(searchParams); + searchParamsState.updateSearchParams(state.query); + + searchParamsState.updateURL = function () { + state.query = String(searchParams) || null; + }; + + if (!descriptors) { + that.href = serializeURL.call(that); + that.origin = getOrigin.call(that); + that.protocol = getProtocol.call(that); + that.username = getUsername.call(that); + that.password = getPassword.call(that); + that.host = getHost.call(that); + that.hostname = getHostname.call(that); + that.port = getPort.call(that); + that.pathname = getPathname.call(that); + that.search = getSearch.call(that); + that.searchParams = getSearchParams.call(that); + that.hash = getHash.call(that); + } + }; + + var URLPrototype = URLConstructor.prototype; + + var serializeURL = function serializeURL() { + var url = getInternalURLState(this); + var scheme = url.scheme; + var username = url.username; + var password = url.password; + var host = url.host; + var port = url.port; + var path = url.path; + var query = url.query; + var fragment = url.fragment; + var output = scheme + ':'; + + if (host !== null) { + output += '//'; + + if (includesCredentials(url)) { + output += username + (password ? ':' + password : '') + '@'; + } + + output += serializeHost(host); + if (port !== null) output += ':' + port; + } else if (scheme == 'file') output += '//'; + + output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; + if (query !== null) output += '?' + query; + if (fragment !== null) output += '#' + fragment; + return output; + }; + + var getOrigin = function getOrigin() { + var url = getInternalURLState(this); + var scheme = url.scheme; + var port = url.port; + if (scheme == 'blob') try { + return new URL(scheme.path[0]).origin; + } catch (error) { + return 'null'; + } + if (scheme == 'file' || !isSpecial(url)) return 'null'; + return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : ''); + }; + + var getProtocol = function getProtocol() { + return getInternalURLState(this).scheme + ':'; + }; + + var getUsername = function getUsername() { + return getInternalURLState(this).username; + }; + + var getPassword = function getPassword() { + return getInternalURLState(this).password; + }; + + var getHost = function getHost() { + var url = getInternalURLState(this); + var host = url.host; + var port = url.port; + return host === null ? '' : port === null ? serializeHost(host) : serializeHost(host) + ':' + port; + }; + + var getHostname = function getHostname() { + var host = getInternalURLState(this).host; + return host === null ? '' : serializeHost(host); + }; + + var getPort = function getPort() { + var port = getInternalURLState(this).port; + return port === null ? '' : String(port); + }; + + var getPathname = function getPathname() { + var url = getInternalURLState(this); + var path = url.path; + return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; + }; + + var getSearch = function getSearch() { + var query = getInternalURLState(this).query; + return query ? '?' + query : ''; + }; + + var getSearchParams = function getSearchParams() { + return getInternalURLState(this).searchParams; + }; + + var getHash = function getHash() { + var fragment = getInternalURLState(this).fragment; + return fragment ? '#' + fragment : ''; + }; + + var accessorDescriptor = function accessorDescriptor(getter, setter) { + return { + get: getter, + set: setter, + configurable: true, + enumerable: true + }; + }; + + if (descriptors) { + objectDefineProperties(URLPrototype, { + // `URL.prototype.href` accessors pair + // https://url.spec.whatwg.org/#dom-url-href + href: accessorDescriptor(serializeURL, function (href) { + var url = getInternalURLState(this); + var urlString = String(href); + var failure = parseURL(url, urlString); + if (failure) throw TypeError(failure); + getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query); + }), + // `URL.prototype.origin` getter + // https://url.spec.whatwg.org/#dom-url-origin + origin: accessorDescriptor(getOrigin), + // `URL.prototype.protocol` accessors pair + // https://url.spec.whatwg.org/#dom-url-protocol + protocol: accessorDescriptor(getProtocol, function (protocol) { + var url = getInternalURLState(this); + parseURL(url, String(protocol) + ':', SCHEME_START); + }), + // `URL.prototype.username` accessors pair + // https://url.spec.whatwg.org/#dom-url-username + username: accessorDescriptor(getUsername, function (username) { + var url = getInternalURLState(this); + var codePoints = arrayFrom(String(username)); + if (cannotHaveUsernamePasswordPort(url)) return; + url.username = ''; + + for (var i = 0; i < codePoints.length; i++) { + url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }), + // `URL.prototype.password` accessors pair + // https://url.spec.whatwg.org/#dom-url-password + password: accessorDescriptor(getPassword, function (password) { + var url = getInternalURLState(this); + var codePoints = arrayFrom(String(password)); + if (cannotHaveUsernamePasswordPort(url)) return; + url.password = ''; + + for (var i = 0; i < codePoints.length; i++) { + url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet); + } + }), + // `URL.prototype.host` accessors pair + // https://url.spec.whatwg.org/#dom-url-host + host: accessorDescriptor(getHost, function (host) { + var url = getInternalURLState(this); + if (url.cannotBeABaseURL) return; + parseURL(url, String(host), HOST); + }), + // `URL.prototype.hostname` accessors pair + // https://url.spec.whatwg.org/#dom-url-hostname + hostname: accessorDescriptor(getHostname, function (hostname) { + var url = getInternalURLState(this); + if (url.cannotBeABaseURL) return; + parseURL(url, String(hostname), HOSTNAME); + }), + // `URL.prototype.port` accessors pair + // https://url.spec.whatwg.org/#dom-url-port + port: accessorDescriptor(getPort, function (port) { + var url = getInternalURLState(this); + if (cannotHaveUsernamePasswordPort(url)) return; + port = String(port); + if (port == '') url.port = null;else parseURL(url, port, PORT); + }), + // `URL.prototype.pathname` accessors pair + // https://url.spec.whatwg.org/#dom-url-pathname + pathname: accessorDescriptor(getPathname, function (pathname) { + var url = getInternalURLState(this); + if (url.cannotBeABaseURL) return; + url.path = []; + parseURL(url, pathname + '', PATH_START); + }), + // `URL.prototype.search` accessors pair + // https://url.spec.whatwg.org/#dom-url-search + search: accessorDescriptor(getSearch, function (search) { + var url = getInternalURLState(this); + search = String(search); + + if (search == '') { + url.query = null; + } else { + if ('?' == search.charAt(0)) search = search.slice(1); + url.query = ''; + parseURL(url, search, QUERY); + } + + getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query); + }), + // `URL.prototype.searchParams` getter + // https://url.spec.whatwg.org/#dom-url-searchparams + searchParams: accessorDescriptor(getSearchParams), + // `URL.prototype.hash` accessors pair + // https://url.spec.whatwg.org/#dom-url-hash + hash: accessorDescriptor(getHash, function (hash) { + var url = getInternalURLState(this); + hash = String(hash); + + if (hash == '') { + url.fragment = null; + return; + } + + if ('#' == hash.charAt(0)) hash = hash.slice(1); + url.fragment = ''; + parseURL(url, hash, FRAGMENT); + }) + }); + } // `URL.prototype.toJSON` method + // https://url.spec.whatwg.org/#dom-url-tojson + + + redefine(URLPrototype, 'toJSON', function toJSON() { + return serializeURL.call(this); + }, { + enumerable: true + }); // `URL.prototype.toString` method + // https://url.spec.whatwg.org/#URL-stringification-behavior + + redefine(URLPrototype, 'toString', function toString() { + return serializeURL.call(this); + }, { + enumerable: true + }); + + if (NativeURL) { + var nativeCreateObjectURL = NativeURL.createObjectURL; + var nativeRevokeObjectURL = NativeURL.revokeObjectURL; // `URL.createObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL + // eslint-disable-next-line no-unused-vars + + if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) { + return nativeCreateObjectURL.apply(NativeURL, arguments); + }); // `URL.revokeObjectURL` method + // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL + // eslint-disable-next-line no-unused-vars + + if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) { + return nativeRevokeObjectURL.apply(NativeURL, arguments); + }); + } + + setToStringTag(URLConstructor, 'URL'); + _export({ + global: true, + forced: !nativeUrl, + sham: !descriptors + }, { + URL: URLConstructor + }); + + // https://url.spec.whatwg.org/#dom-url-tojson + + + _export({ + target: 'URL', + proto: true, + enumerable: true + }, { + toJSON: function toJSON() { + return URL.prototype.toString.call(this); + } + }); + + var runtime_1 = createCommonjsModule(function (module) { + /** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + var runtime = function (exports) { + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined$1; // More compressible than void 0. + + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + function define(obj, key, value) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + return obj[key]; + } + + try { + // IE 8 has a broken Object.defineProperty that only works on DOM objects. + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; + } + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + + generator._invoke = makeInvokeMethod(innerFn, self, context); + return generator; + } + + exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + + var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + + function Generator() {} + + function GeneratorFunction() {} + + function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + + + var IteratorPrototype = {}; + + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + + if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"); // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); + } + + exports.isGeneratorFunction = function (genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" : false; + }; + + exports.mark = function (genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + define(genFun, toStringTagSymbol, "GeneratorFunction"); + } + + genFun.prototype = Object.create(Gp); + return genFun; + }; // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + + + exports.awrap = function (arg) { + return { + __await: arg + }; + }; + + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + + if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { + return PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }); + } + + return PromiseImpl.resolve(value).then(function (unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. + result.value = unwrapped; + resolve(result); + }, function (error) { + // If a rejected Promise was yielded, throw the rejection back + // into the async generator function so it can be handled there. + return invoke("throw", error, resolve, reject); + }); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + + + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + + exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + + exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + if (PromiseImpl === void 0) PromiseImpl = Promise; + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + + + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + var record = tryCatch(innerFn, self, context); + + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done ? GenStateCompleted : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + } else if (record.type === "throw") { + state = GenStateCompleted; // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + + + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + + if (method === undefined$1) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + // Note: ["return"] must be used for ES3 parsing compatibility. + if (delegate.iterator["return"]) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined$1; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError("The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (!info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield). + + context.next = delegate.nextLoc; // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined$1; + } + } else { + // Re-yield the result returned by the delegate method. + return info; + } // The delegate iterator is finished, so forget it and continue with + // the outer generator. + + + context.delegate = null; + return ContinueSentinel; + } // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + + + defineIteratorMethods(Gp); + define(Gp, toStringTagSymbol, "Generator"); // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + + Gp[iteratorSymbol] = function () { + return this; + }; + + Gp.toString = function () { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ + tryLoc: "root" + }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + exports.keys = function (object) { + var keys = []; + + for (var key in object) { + keys.push(key); + } + + keys.reverse(); // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + + return function next() { + while (keys.length) { + var key = keys.pop(); + + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + + + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined$1; + next.done = true; + return next; + }; + + return next.next = next; + } + } // Return an iterator with no values. + + + return { + next: doneResult + }; + } + + exports.values = values; + + function doneResult() { + return { + value: undefined$1, + done: true + }; + } + + Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + this.prev = 0; + this.next = 0; // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + + this.sent = this._sent = undefined$1; + this.done = false; + this.delegate = null; + this.method = "next"; + this.arg = undefined$1; + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { + this[name] = undefined$1; + } + } + } + }, + stop: function stop() { + this.done = true; + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) { + throw exception; + } + + var context = this; + + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined$1; + } + + return !!caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + complete: function complete(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + "catch": function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + + return thrown; + } + } // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + + + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined$1; + } + + return ContinueSentinel; + } + }; // Regardless of whether this script is executing as a CommonJS module + // or not, return the runtime object so that we can declare the variable + // regeneratorRuntime in the outer scope, which allows this module to be + // injected easily by `bin/regenerator --include-runtime script.js`. + + return exports; + }( // If this script is executing as a CommonJS module, use module.exports + // as the regeneratorRuntime namespace. Otherwise create a new empty + // object. Either way, the resulting object will be used to initialize + // the regeneratorRuntime variable at the top of this file. + module.exports ); + + try { + regeneratorRuntime = runtime; + } catch (accidentalStrictMode) { + // This module should not be running in strict mode, so the above + // assignment should always work unless something is misconfigured. Just + // in case runtime.js accidentally runs in strict mode, we can escape + // strict mode using a global Function call. This could conceivably fail + // if a Content Security Policy forbids using Function, but in that case + // the proper solution is to fix the accidental strict mode problem. If + // you've misconfigured your bundler to force strict mode and applied a + // CSP to forbid Function, and you're not willing to fix either of those + // problems, please detail your unique predicament in a GitHub issue. + Function("r", "regeneratorRuntime = r")(runtime); + } + }); + // http://ross.posterous.com/2008/08/19/iphone-touch-events-in-javascript/ /** @@ -5602,236 +16436,6 @@ }); }; - /* eslint-disable jsdoc/require-file-overview */ - - /** - * Adapted from {@link https://github.com/uupaa/dynamic-import-polyfill/blob/master/importModule.js}. - * @module importModule - * @license MIT - */ - - /** - * Converts a possible relative URL into an absolute one. - * @param {string} url - * @returns {string} - */ - function toAbsoluteURL(url) { - var a = document.createElement('a'); - a.setAttribute('href', url); // - - return a.cloneNode(false).href; // -> "http://example.com/hoge.html" - } - /** - * Add any of the whitelisted attributes to the script tag. - * @param {HTMLScriptElement} script - * @param {PlainObject} atts - * @returns {void} - */ - - - function addScriptAtts(script, atts) { - ['id', 'class', 'type'].forEach(function (prop) { - if (prop in atts) { - script[prop] = atts[prop]; - } - }); - } // Additions by Brett - - /** - * @typedef {PlainObject} module:importModule.ImportConfig - * @property {string} global The variable name to set on `window` (when not using the modular version) - * @property {boolean} [returnDefault=false] - */ - - /** - * @function module:importModule.importSetGlobalDefault - * @param {string|GenericArray} url - * @param {module:importModule.ImportConfig} config - * @returns {Promise} The value to which it resolves depends on the export of the targeted module. - */ - - - function importSetGlobalDefault(url, config) { - return importSetGlobal(url, _objectSpread2(_objectSpread2({}, config), {}, { - returnDefault: true - })); - } - /** - * @function module:importModule.importSetGlobal - * @param {string|string[]} url - * @param {module:importModule.ImportConfig} config - * @returns {Promise} The promise resolves to either an `ArbitraryModule` or - * any other value depends on the export of the targeted module. - */ - - function importSetGlobal(_x, _x2) { - return _importSetGlobal.apply(this, arguments); - } - /** - * - * @author Brett Zamir (other items are from `dynamic-import-polyfill`) - * @param {string|string[]} url - * @param {PlainObject} [atts={}] - * @returns {Promise} Resolves to `undefined` or rejects with an `Error` upon a - * script loading error - */ - - function _importSetGlobal() { - _importSetGlobal = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url, _ref) { - var glob, returnDefault, modularVersion; - return regeneratorRuntime.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - glob = _ref.global, returnDefault = _ref.returnDefault; - // Todo: Replace calls to this function with `import()` when supported - modularVersion = !('svgEditor' in window) || !window.svgEditor || window.svgEditor.modules !== false; - - if (!modularVersion) { - _context.next = 4; - break; - } - - return _context.abrupt("return", importModule(url, undefined, { - returnDefault: returnDefault - })); - - case 4: - _context.next = 6; - return importScript(url); - - case 6: - return _context.abrupt("return", window[glob]); - - case 7: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - return _importSetGlobal.apply(this, arguments); - } - - function importScript(url) { - var atts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - if (Array.isArray(url)) { - return Promise.all(url.map(function (u) { - return importScript(u, atts); - })); - } - - return new Promise(function (resolve, reject) { - // eslint-disable-line promise/avoid-new - var script = document.createElement('script'); - /** - * - * @returns {void} - */ - - function scriptOnError() { - reject(new Error("Failed to import: ".concat(url))); - destructor(); - } - /** - * - * @returns {void} - */ - - - function scriptOnLoad() { - resolve(); - destructor(); - } - - var destructor = function destructor() { - script.removeEventListener('error', scriptOnError); - script.removeEventListener('load', scriptOnLoad); - script.remove(); - script.src = ''; - }; - - script.defer = 'defer'; - addScriptAtts(script, atts); - script.addEventListener('error', scriptOnError); - script.addEventListener('load', scriptOnLoad); - script.src = url; - document.head.append(script); - }); - } - /** - * - * @param {string|string[]} url - * @param {PlainObject} [atts={}] - * @param {PlainObject} opts - * @param {boolean} [opts.returnDefault=false} = {}] - * @returns {Promise} Resolves to value of loading module or rejects with - * `Error` upon a script loading error. - */ - - function importModule(url) { - var atts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, - _ref2$returnDefault = _ref2.returnDefault, - returnDefault = _ref2$returnDefault === void 0 ? false : _ref2$returnDefault; - - if (Array.isArray(url)) { - return Promise.all(url.map(function (u) { - return importModule(u, atts); - })); - } - - return new Promise(function (resolve, reject) { - // eslint-disable-line promise/avoid-new - var vector = '$importModule$' + Math.random().toString(32).slice(2); - var script = document.createElement('script'); - /** - * - * @returns {void} - */ - - function scriptOnError() { - reject(new Error("Failed to import: ".concat(url))); - destructor(); - } - /** - * - * @returns {void} - */ - - - function scriptOnLoad() { - resolve(window[vector]); - destructor(); - } - - var destructor = function destructor() { - delete window[vector]; - script.removeEventListener('error', scriptOnError); - script.removeEventListener('load', scriptOnLoad); - script.remove(); - URL.revokeObjectURL(script.src); - script.src = ''; - }; - - addScriptAtts(script, atts); - script.defer = 'defer'; - script.type = 'module'; - script.addEventListener('error', scriptOnError); - script.addEventListener('load', scriptOnLoad); - var absURL = toAbsoluteURL(url); - var loader = "import * as m from '".concat(absURL.replace(/'/g, "\\'"), "'; window.").concat(vector, " = ").concat(returnDefault ? 'm.default || ' : '', "m;"); // export Module - - var blob = new Blob([loader], { - type: 'text/javascript' - }); - script.src = URL.createObjectURL(blob); - document.head.append(script); - }); - } - /** * Created by alexey2baranov on 28.01.17. */ @@ -7021,7 +17625,7 @@ * @memberof module:path */ - var path = null; // eslint-disable-line import/no-mutable-exports + var path$1 = null; // eslint-disable-line import/no-mutable-exports var editorContext_$1 = null; /** @@ -7351,8 +17955,8 @@ pointGrip = pointGripContainer.appendChild(pointGrip); var grip = $$3('#pathpointgrip_' + index); grip.dblclick(function () { - if (path) { - path.setSegType(); + if (path$1) { + path$1.setSegType(); } }); } @@ -7484,7 +18088,7 @@ getGripContainer(); // Note that this is intentionally not seg.prev.item - var prev = path.segs[index - 1].item; + var prev = path$1.segs[index - 1].item; var segItems = [prev, item]; for (var i = 1; i < 3; i++) { @@ -7529,7 +18133,7 @@ */ var replacePathSeg = function replacePathSeg(type, index, pts, elem) { - var pth = elem || path.elem; + var pth = elem || path$1.elem; var func = 'createSVGPathSeg' + pathFuncs[type]; var seg = pth[func].apply(pth, _toConsumableArray(pts)); @@ -7780,7 +18384,7 @@ if (this.ctrlpts) { if (full) { - this.item = path.elem.pathSegList.getItem(this.index); + this.item = path$1.elem.pathSegList.getItem(this.index); this.type = this.item.pathSegType; } @@ -7889,7 +18493,7 @@ value: function setType(newType, pts) { replacePathSeg(newType, this.index, pts); this.type = newType; - this.item = path.elem.pathSegList.getItem(this.index); + this.item = path$1.elem.pathSegList.getItem(this.index); this.showCtrlPts(newType === 6); this.ctrlpts = getControlPoints(this); this.update(true); @@ -7917,7 +18521,7 @@ this.elem = elem; this.segs = []; this.selected_pts = []; - path = this; + path$1 = this; this.init(); } /** @@ -8285,7 +18889,7 @@ cur.setType(newType, points); } - path.endChanges(text); + path$1.endChanges(text); } /** * @param {Integer} pt @@ -8413,7 +19017,7 @@ value: function subpathIsClosed(index) { var clsd = false; // Check if subpath is already open - path.eachSeg(function (i) { + path$1.eachSeg(function (i) { if (i <= index) { return true; } @@ -8498,7 +19102,7 @@ var recalcRotatedPath = function recalcRotatedPath() { - var currentPath = path.elem; + var currentPath = path$1.elem; angle = getRotationAngle(currentPath, true); if (!angle) { @@ -8506,7 +19110,7 @@ } // selectedBBoxes[0] = path.oldbbox; - var oldbox = path.oldbbox; // selectedBBoxes[0], + var oldbox = path$1.oldbbox; // selectedBBoxes[0], oldcx = oldbox.x + oldbox.width / 2; oldcy = oldbox.y + oldbox.height / 2; @@ -9035,7 +19639,7 @@ })); // set stretchy line to first point stretchy.setAttribute('d', ['M', mouseX, mouseY, mouseX, mouseY].join(' ')); - index = subpath ? path.segs.length : 0; + index = subpath ? path$1.segs.length : 0; addPointGrip(index, mouseX, mouseY); } else { // determine if we clicked on an existing point @@ -9100,22 +19704,22 @@ editorContext_$1.setStarted(false); if (subpath) { - if (path.matrix) { - editorContext_$1.remapElement(newpath, {}, path.matrix.inverse()); + if (path$1.matrix) { + editorContext_$1.remapElement(newpath, {}, path$1.matrix.inverse()); } var newD = newpath.getAttribute('d'); - var origD = $$3(path.elem).attr('d'); - $$3(path.elem).attr('d', origD + newD); + var origD = $$3(path$1.elem).attr('d'); + $$3(path$1.elem).attr('d', origD + newD); $$3(newpath).remove(); - if (path.matrix) { + if (path$1.matrix) { recalcRotatedPath(); } init$2(); - pathActions.toEditMode(path.elem); - path.selectPt(); + pathActions.toEditMode(path$1.elem); + path$1.selectPt(); return false; } // else, create a new point, update path element @@ -9155,7 +19759,7 @@ index = num; if (subpath) { - index += path.segs.length; + index += path$1.segs.length; } addPointGrip(index, x, y); @@ -9167,42 +19771,42 @@ } // TODO: Make sure currentPath isn't null at this point - if (!path) { + if (!path$1) { return undefined; } - path.storeD(); + path$1.storeD(); id = evt.target.id; var curPt; if (id.substr(0, 14) === 'pathpointgrip_') { // Select this point - curPt = path.cur_pt = Number.parseInt(id.substr(14)); - path.dragging = [startX, startY]; - var seg = path.segs[curPt]; // only clear selection if shift is not pressed (otherwise, add + curPt = path$1.cur_pt = Number.parseInt(id.substr(14)); + path$1.dragging = [startX, startY]; + var seg = path$1.segs[curPt]; // only clear selection if shift is not pressed (otherwise, add // node to selection) if (!evt.shiftKey) { - if (path.selected_pts.length <= 1 || !seg.selected) { - path.clearSelection(); + if (path$1.selected_pts.length <= 1 || !seg.selected) { + path$1.clearSelection(); } - path.addPtsToSelection(curPt); + path$1.addPtsToSelection(curPt); } else if (seg.selected) { - path.removePtFromSelection(curPt); + path$1.removePtFromSelection(curPt); } else { - path.addPtsToSelection(curPt); + path$1.addPtsToSelection(curPt); } } else if (id.startsWith('ctrlpointgrip_')) { - path.dragging = [startX, startY]; + path$1.dragging = [startX, startY]; var parts = id.split('_')[1].split('c'); curPt = Number(parts[0]); var ctrlNum = Number(parts[1]); - path.selectPt(curPt, ctrlNum); + path$1.selectPt(curPt, ctrlNum); } // Start selection box - if (!path.dragging) { + if (!path$1.dragging) { var rubberBox = editorContext_$1.getRubberBox(); if (isNullish(rubberBox)) { @@ -9309,27 +19913,27 @@ } // if we are dragging a point, let's move it - if (path.dragging) { + if (path$1.dragging) { var pt = getPointFromGrip({ - x: path.dragging[0], - y: path.dragging[1] - }, path); + x: path$1.dragging[0], + y: path$1.dragging[1] + }, path$1); var mpt = getPointFromGrip({ x: mouseX, y: mouseY - }, path); + }, path$1); var diffX = mpt.x - pt.x; var diffY = mpt.y - pt.y; - path.dragging = [mouseX, mouseY]; + path$1.dragging = [mouseX, mouseY]; - if (path.dragctrl) { - path.moveCtrl(diffX, diffY); + if (path$1.dragctrl) { + path$1.moveCtrl(diffX, diffY); } else { - path.movePts(diffX, diffY); + path$1.movePts(diffX, diffY); } } else { - path.selected_pts = []; - path.eachSeg(function (i) { + path$1.selected_pts = []; + path$1.eachSeg(function (i) { var seg = this; if (!seg.next && !seg.prev) { @@ -9350,7 +19954,7 @@ this.select(sel); // Note that addPtsToSelection is not being run if (sel) { - path.selected_pts.push(seg.index); + path$1.selected_pts.push(seg.index); } }); } @@ -9391,18 +19995,18 @@ var rubberBox = editorContext_$1.getRubberBox(); - if (path.dragging) { - var lastPt = path.cur_pt; - path.dragging = false; - path.dragctrl = false; - path.update(); + if (path$1.dragging) { + var lastPt = path$1.cur_pt; + path$1.dragging = false; + path$1.dragctrl = false; + path$1.update(); if (hasMoved) { - path.endChanges('Move path point(s)'); + path$1.endChanges('Move path point(s)'); } if (!evt.shiftKey && !hasMoved) { - path.selectPt(lastPt); + path$1.selectPt(lastPt); } } else if (rubberBox && rubberBox.getAttribute('display') !== 'none') { // Done with multi-node-select @@ -9425,11 +20029,11 @@ * @returns {void} */ toEditMode: function toEditMode(element) { - path = getPath_(element); + path$1 = getPath_(element); editorContext_$1.setCurrentMode('pathedit'); editorContext_$1.clearSelection(); - path.show(true).update(); - path.oldbbox = getBBox(path.elem); + path$1.show(true).update(); + path$1.oldbbox = getBBox(path$1.elem); subpath = false; }, @@ -9439,13 +20043,13 @@ * @returns {void} */ toSelectMode: function toSelectMode(elem) { - var selPath = elem === path.elem; + var selPath = elem === path$1.elem; editorContext_$1.setCurrentMode('select'); - path.show(false); + path$1.show(false); currentPath = false; editorContext_$1.clearSelection(); - if (path.matrix) { + if (path$1.matrix) { // Rotated, so may need to re-calculate the center recalcRotatedPath(); } @@ -9468,7 +20072,7 @@ subpath = true; } else { pathActions.clear(true); - pathActions.toEditMode(path.elem); + pathActions.toEditMode(path$1.elem); } }, @@ -9538,8 +20142,8 @@ this.toSelectMode(); } - if (path) { - path.init().show(false); + if (path$1) { + path$1.init().show(false); } }, @@ -9605,7 +20209,7 @@ */ zoomChange: function zoomChange() { if (editorContext_$1.getCurrentMode() === 'pathedit') { - path.update(); + path$1.update(); } }, @@ -9620,8 +20224,8 @@ * @returns {module:path.NodePoint} */ getNodePoint: function getNodePoint() { - var selPt = path.selected_pts.length ? path.selected_pts[0] : 1; - var seg = path.segs[selPt]; + var selPt = path$1.selected_pts.length ? path$1.selected_pts[0] : 1; + var seg = path$1.segs[selPt]; return { x: seg.item.x, y: seg.item.y, @@ -9641,34 +20245,34 @@ * @returns {void} */ clonePathNode: function clonePathNode() { - path.storeD(); - var selPts = path.selected_pts; // const {segs} = path; + path$1.storeD(); + var selPts = path$1.selected_pts; // const {segs} = path; var i = selPts.length; var nums = []; while (i--) { var pt = selPts[i]; - path.addSeg(pt); + path$1.addSeg(pt); nums.push(pt + i); nums.push(pt + i + 1); } - path.init().addPtsToSelection(nums); - path.endChanges('Clone path node(s)'); + path$1.init().addPtsToSelection(nums); + path$1.endChanges('Clone path node(s)'); }, /** * @returns {void} */ opencloseSubPath: function opencloseSubPath() { - var selPts = path.selected_pts; // Only allow one selected node for now + var selPts = path$1.selected_pts; // Only allow one selected node for now if (selPts.length !== 1) { return; } - var _path = path, + var _path = path$1, elem = _path.elem; var list = elem.pathSegList; // const len = list.numberOfItems; @@ -9676,7 +20280,7 @@ var openPt = null; var startItem = null; // Check if subpath is already open - path.eachSeg(function (i) { + path$1.eachSeg(function (i) { if (this.type === 2 && i <= index) { startItem = this.item; } @@ -9702,7 +20306,7 @@ if (isNullish(openPt)) { // Single path, so close last seg - openPt = path.segs.length - 1; + openPt = path$1.segs.length - 1; } if (openPt !== false) { @@ -9711,7 +20315,7 @@ var newseg = elem.createSVGPathSegLinetoAbs(startItem.x, startItem.y); var closer = elem.createSVGPathSegClosePath(); - if (openPt === path.segs.length - 1) { + if (openPt === path$1.segs.length - 1) { list.appendItem(newseg); list.appendItem(closer); } else { @@ -9719,7 +20323,7 @@ insertItemBefore(elem, newseg, openPt); } - path.init().selectPt(openPt + 1); + path$1.init().selectPt(openPt + 1); return; } // M 1,1 L 2,2 L 3,3 L 1,1 z // open at 2,2 // M 2,2 L 3,3 L 1,1 @@ -9727,14 +20331,14 @@ // M 1,1 L 2,2 L 1,1 z [M 4,4] L 5,5 L(M)6,6 L 5,5 z - var seg = path.segs[index]; + var seg = path$1.segs[index]; if (seg.mate) { list.removeItem(index); // Removes last "L" list.removeItem(index); // Removes the "Z" - path.init().selectPt(index - 1); + path$1.init().selectPt(index - 1); return; } @@ -9767,7 +20371,7 @@ replacePathSeg(2, lastM, [pt.x, pt.y]); // i = index; // i is local here, so has no effect; what was the intent for this? - path.init().selectPt(0); + path$1.init().selectPt(0); }, /** @@ -9778,18 +20382,18 @@ return; } - path.storeD(); - var selPts = path.selected_pts; + path$1.storeD(); + var selPts = path$1.selected_pts; var i = selPts.length; while (i--) { var pt = selPts[i]; - path.deleteSeg(pt); + path$1.deleteSeg(pt); } // Cleanup var cleanup = function cleanup() { - var segList = path.elem.pathSegList; + var segList = path$1.elem.pathSegList; var len = segList.numberOfItems; var remItems = function remItems(pos, count) { @@ -9840,23 +20444,23 @@ cleanup(); // Completely delete a path with 1 or 0 segments - if (path.elem.pathSegList.numberOfItems <= 1) { - pathActions.toSelectMode(path.elem); + if (path$1.elem.pathSegList.numberOfItems <= 1) { + pathActions.toSelectMode(path$1.elem); editorContext_$1.canvas.deleteSelectedElements(); return; } - path.init(); - path.clearSelection(); // TODO: Find right way to select point now + path$1.init(); + path$1.clearSelection(); // TODO: Find right way to select point now // path.selectPt(selPt); if (window.opera) { // Opera repaints incorrectly - var cp = $$3(path.elem); + var cp = $$3(path$1.elem); cp.attr('d', cp.attr('d')); } - path.endChanges('Delete path node(s)'); + path$1.endChanges('Delete path node(s)'); }, /* eslint-disable jsdoc/require-returns */ @@ -9876,7 +20480,7 @@ * @returns {void} */ setSegType: function setSegType(v) { - path.setSegType(v); + path$1.setSegType(v); }, /** @@ -9885,22 +20489,22 @@ * @returns {void} */ moveNode: function moveNode(attr, newValue) { - var selPts = path.selected_pts; + var selPts = path$1.selected_pts; if (!selPts.length) { return; } - path.storeD(); // Get first selected point + path$1.storeD(); // Get first selected point - var seg = path.segs[selPts[0]]; + var seg = path$1.segs[selPts[0]]; var diff = { x: 0, y: 0 }; diff[attr] = newValue - seg.item[attr]; seg.move(diff.x, diff.y); - path.endChanges('Move path point'); + path$1.endChanges('Move path point'); }, /** @@ -16446,12 +27050,12 @@ } if (evt.shiftKey) { - var path$1 = path; + var path = path$1; var x1, y1; - if (path$1) { - x1 = path$1.dragging ? path$1.dragging[0] : startX; - y1 = path$1.dragging ? path$1.dragging[1] : startY; + if (path) { + x1 = path.dragging ? path.dragging[0] : startX; + y1 = path.dragging ? path.dragging[1] : startY; } else { x1 = startX; y1 = startY; @@ -18123,7 +28727,7 @@ issues, issueCodes, svg, - _yield$importSetGloba, + _yield$import$default, c, _args2 = arguments; @@ -18143,13 +28747,11 @@ } _context2.next = 8; - return importSetGlobal(curConfig.canvgPath + 'canvg.js', { - global: 'canvg' - }); + return import(curConfig.canvgPath + 'canvg.js')["default"]; case 8: - _yield$importSetGloba = _context2.sent; - canvg = _yield$importSetGloba.canvg; + _yield$import$default = _context2.sent; + canvg = _yield$import$default.canvg; case 10: if (!$$a('#export_canvas').length) { @@ -18260,7 +28862,6 @@ this.exportPDF = /*#__PURE__*/function () { var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(exportWindowName) { var outputType, - modularVersion, res, orientation, unit, @@ -18280,25 +28881,22 @@ outputType = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : isChrome() ? 'save' : undefined; if (window.jsPDF) { - _context3.next = 7; + _context3.next = 8; break; } _context3.next = 4; - return importScript([// We do not currently have these paths configurable as they are - // currently global-only, so not Rolled-up - 'jspdf/underscore-min.js', // 'jspdf/jspdf.min.js', - '../../svgedit-myfix/editor/jspdf/jspdf-1.0.150.debug.js']); + return Promise.resolve().then(function () { return underscoreMin$1; }); case 4: - modularVersion = !('svgEditor' in window) || !window.svgEditor || window.svgEditor.modules !== false; // Todo: Switch to `import()` when widely supported and available (also allow customization of path) + _context3.next = 6; + return Promise.resolve().then(function () { return jspdf_min$1; }); - _context3.next = 7; - return importScript(curConfig.jspdfPath + 'jspdf.plugin.svgToPdf.js', { - type: modularVersion ? 'module' : 'text/javascript' - }); + case 6: + _context3.next = 8; + return Promise.resolve().then(function () { return jspdf_plugin_svgToPdf; }); - case 7: + case 8: res = getResolution(); orientation = res.w > res.h ? 'landscape' : 'portrait'; unit = 'pt'; // curConfig.baseUnit; // We could use baseUnit, but that is presumably not intended for export purposes @@ -18339,7 +28937,7 @@ call('exportedPDF', obj); return _context3.abrupt("return", obj); - case 21: + case 22: case "end": return _context3.stop(); } @@ -28034,6 +38632,34 @@ return $; }; + /* globals jQuery */ + + /** + * Localizing script for SVG-edit UI. + * @module locale + * @license MIT + * + * @copyright 2010 Narendra Sisodya + * @copyright 2010 Alexis Deveria + * + */ + + /** + * Used, for example, in the ImageLibs extension, to present libraries + * (with name/URL/description) in order. + * @typedef {GenericArray} module:locale.LocaleArray + */ + + /** + * The string keys of the object are two-letter language codes. + * @tutorial LocaleDocs + * @typedef {PlainObject} module:locale.LocaleStrings + */ + // keyed to an array of objects with "id" and "title" or "textContent" properties + + /** + * @typedef {PlainObject} module:locale.LocaleSelectorValue + */ var $$b = jQuery; var langParam; /** @@ -28403,7 +39029,7 @@ var putLocale = /*#__PURE__*/function () { var _ref8 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(givenParam, goodLangs, conf) { - var url; + var url, module; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { @@ -28425,18 +39051,16 @@ langParam = 'en'; } - url = conf.langPath + 'lang.' + langParam + '.js'; - _context2.t0 = readLang; - _context2.next = 7; - return importSetGlobalDefault(url, { - global: 'svgEditorLang_' + langParam.replace(/-/g, '_') - }); + url = conf.langPath + 'lang.' + langParam + '.js'; // eslint-disable-next-line node/no-unsupported-features/es-syntax - case 7: - _context2.t1 = _context2.sent; - return _context2.abrupt("return", (0, _context2.t0)(_context2.t1)); + _context2.next = 6; + return import(url); - case 9: + case 6: + module = _context2.sent; + return _context2.abrupt("return", readLang(module["default"])); + + case 8: case "end": return _context2.stop(); } @@ -28643,17 +39267,17 @@ no_save_warning: false, // PATH CONFIGURATION // The following path configuration items are disallowed in the URL (as should any future path configurations) - langPath: 'locale/', + langPath: '/src/editor/locale/', // Default will be changed if this is a non-modular load - extPath: 'extensions/', + extPath: '/src/editor/extensions/', // Default will be changed if this is a non-modular load - canvgPath: 'canvg/', + canvgPath: '/src/editor/canvg/', // Default will be changed if this is a non-modular load - jspdfPath: 'jspdf/', + jspdfPath: '/src/editor/jspdf/', // Default will be changed if this is a non-modular load - imgPath: 'images/', - jGraduatePath: 'jgraduate/images/', - extIconsPath: 'extensions/', + imgPath: '/src/editor/images/', + jGraduatePath: '/src/editor/jgraduate/images/', + extIconsPath: '/src/editor/extensions/', // DOCUMENT PROPERTIES // Change the following to a preference (already in the Document Properties dialog)? dimensions: [640, 480], @@ -28749,47 +39373,47 @@ function _loadSvgString() { - _loadSvgString = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee23(str) { + _loadSvgString = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee24(str) { var _ref41, noAlert, success, - _args23 = arguments; + _args24 = arguments; - return regeneratorRuntime.wrap(function _callee23$(_context23) { + return regeneratorRuntime.wrap(function _callee24$(_context24) { while (1) { - switch (_context23.prev = _context23.next) { + switch (_context24.prev = _context24.next) { case 0: - _ref41 = _args23.length > 1 && _args23[1] !== undefined ? _args23[1] : {}, noAlert = _ref41.noAlert; + _ref41 = _args24.length > 1 && _args24[1] !== undefined ? _args24[1] : {}, noAlert = _ref41.noAlert; success = svgCanvas.setSvgString(str) !== false; if (!success) { - _context23.next = 4; + _context24.next = 4; break; } - return _context23.abrupt("return"); + return _context24.abrupt("return"); case 4: if (noAlert) { - _context23.next = 8; + _context24.next = 8; break; } - _context23.next = 7; + _context24.next = 7; return $$c.alert(uiStrings$1.notification.errorLoadingSVG); case 7: - return _context23.abrupt("return"); + return _context24.abrupt("return"); case 8: throw new Error('Error loading SVG'); case 9: case "end": - return _context23.stop(); + return _context24.stop(); } } - }, _callee23); + }, _callee24); })); return _loadSvgString.apply(this, arguments); } @@ -28806,45 +39430,69 @@ * @returns {Promise} Resolves to {@link module:locale.LocaleStrings} */ return /*#__PURE__*/function () { - var _importLocaleDefaulting = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var _importLocaleDefaulting = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var _ref2, _ref2$name, name, _ref2$lang, lang, importLocale, - _args = arguments; + _importLocale, + _args2 = arguments; - return regeneratorRuntime.wrap(function _callee$(_context) { + return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { - switch (_context.prev = _context.next) { + switch (_context2.prev = _context2.next) { case 0: - importLocale = function _importLocale(language) { - var url = "".concat(curConfig.extPath, "ext-locale/").concat(name, "/").concat(language, ".js"); - return importSetGlobalDefault(url, { - global: "svgEditorExtensionLocale_".concat(name, "_").concat(language.replace(/-/g, '_')) - }); + _importLocale = function _importLocale3() { + _importLocale = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(language) { + var url, locale; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + url = "".concat(curConfig.extPath, "ext-locale/").concat(name, "/").concat(language, ".js"); // eslint-disable-next-line node/no-unsupported-features/es-syntax + + _context.next = 3; + return import(url); + + case 3: + locale = _context.sent; + return _context.abrupt("return", locale["default"]); + + case 5: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + return _importLocale.apply(this, arguments); }; - _ref2 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, _ref2$name = _ref2.name, name = _ref2$name === void 0 ? defaultName : _ref2$name, _ref2$lang = _ref2.lang, lang = _ref2$lang === void 0 ? defaultLang : _ref2$lang; - _context.prev = 2; - _context.next = 5; + importLocale = function _importLocale2(_x2) { + return _importLocale.apply(this, arguments); + }; + + _ref2 = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {}, _ref2$name = _ref2.name, name = _ref2$name === void 0 ? defaultName : _ref2$name, _ref2$lang = _ref2.lang, lang = _ref2$lang === void 0 ? defaultLang : _ref2$lang; + _context2.prev = 3; + _context2.next = 6; return importLocale(lang); - case 5: - return _context.abrupt("return", _context.sent); + case 6: + return _context2.abrupt("return", _context2.sent); - case 8: - _context.prev = 8; - _context.t0 = _context["catch"](2); - return _context.abrupt("return", importLocale('en')); + case 9: + _context2.prev = 9; + _context2.t0 = _context2["catch"](3); + return _context2.abrupt("return", importLocale('en')); - case 11: + case 12: case "end": - return _context.stop(); + return _context2.stop(); } } - }, _callee, null, [[2, 8]]); + }, _callee2, null, [[3, 9]]); })); function importLocaleDefaulting() { @@ -29336,21 +39984,21 @@ var extAndLocaleFunc = /*#__PURE__*/function () { - var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var _yield$editor$putLoca, langParam, langData, _uiStrings$common, ok, cancel; - return regeneratorRuntime.wrap(function _callee3$(_context3) { + return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { - switch (_context3.prev = _context3.next) { + switch (_context4.prev = _context4.next) { case 0: - _context3.next = 2; + _context4.next = 2; return editor.putLocale(editor.pref('lang'), goodLangs, curConfig); case 2: - _yield$editor$putLoca = _context3.sent; + _yield$editor$putLoca = _context4.sent; langParam = _yield$editor$putLoca.langParam; langData = _yield$editor$putLoca.langData; - _context3.next = 7; + _context4.next = 7; return setLang(langParam, langData); case 7: @@ -29361,29 +40009,27 @@ }); setIcons(); // Wait for dbox as needed for i18n - _context3.prev = 10; - _context3.next = 13; + _context4.prev = 10; + _context4.next = 13; return Promise.all(curConfig.extensions.map( /*#__PURE__*/function () { - var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(extname) { - var extName, url, imported, _imported$name, _name2, init, importLocale; + var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(extname) { + var extensionName, url, imported, _imported$default, _imported$default$nam, _name2, init, importLocale; - return regeneratorRuntime.wrap(function _callee2$(_context2) { + return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { - switch (_context2.prev = _context2.next) { + switch (_context3.prev = _context3.next) { case 0: - extName = extname.match(/^ext-(.+)\.js/); // const {extName} = extname.match(/^ext-(?.+)\.js/).groups; + extensionName = extname.match(/^ext-(.+)\.js/); // const {extName} = extname.match(/^ext-(?.+)\.js/).groups; - if (extName) { - _context2.next = 3; + if (extensionName) { + _context3.next = 3; break; } - return _context2.abrupt("return", undefined); + return _context3.abrupt("return", undefined); case 3: - url = curConfig.extPath + extname; // Todo: Replace this with `return import(url);` when - // `import()` widely supported - + url = curConfig.extPath + extname; /** * @tutorial ExtensionDocs * @typedef {PlainObject} module:SVGEditor.ExtensionObject @@ -29391,45 +40037,42 @@ * @property {module:svgcanvas.ExtensionInitCallback} [init] */ - _context2.prev = 4; - _context2.next = 7; - return importSetGlobalDefault(url, { - global: 'svgEditorExtension_' + extName[1].replace(/-/g, '_') // global: 'svgEditorExtension_' + extName.replace(/-/g, '_') - - }); + _context3.prev = 4; + _context3.next = 7; + return import(url); case 7: - imported = _context2.sent; - _imported$name = imported.name, _name2 = _imported$name === void 0 ? extName[1] : _imported$name, init = imported.init; // const {name = extName, init} = imported; + imported = _context3.sent; + _imported$default = imported["default"], _imported$default$nam = _imported$default.name, _name2 = _imported$default$nam === void 0 ? extensionName[1] : _imported$default$nam, init = _imported$default.init; // const {name = extName, init} = imported; importLocale = getImportLocale({ defaultLang: langParam, defaultName: _name2 }); - return _context2.abrupt("return", editor.addExtension(_name2, init && init.bind(editor), { + return _context3.abrupt("return", editor.addExtension(_name2, init && init.bind(editor), { $: $$c, importLocale: importLocale })); case 13: - _context2.prev = 13; - _context2.t0 = _context2["catch"](4); + _context3.prev = 13; + _context3.t0 = _context3["catch"](4); // Todo: Add config to alert any errors - console.log(_context2.t0); // eslint-disable-line no-console + console.log(_context3.t0); // eslint-disable-line no-console - console.error('Extension failed to load: ' + extname + '; ' + _context2.t0); // eslint-disable-line no-console + console.error('Extension failed to load: ' + extname + '; ' + _context3.t0); // eslint-disable-line no-console - return _context2.abrupt("return", undefined); + return _context3.abrupt("return", undefined); case 18: case "end": - return _context2.stop(); + return _context3.stop(); } } - }, _callee2, null, [[4, 13]]); + }, _callee3, null, [[4, 13]]); })); - return function (_x2) { + return function (_x3) { return _ref6.apply(this, arguments); }; }())); @@ -29464,21 +40107,21 @@ }); }); svgCanvas.call('extensions_added'); - _context3.next = 20; + _context4.next = 20; break; case 17: - _context3.prev = 17; - _context3.t0 = _context3["catch"](10); + _context4.prev = 17; + _context4.t0 = _context4["catch"](10); // Todo: Report errors through the UI - console.log(_context3.t0); // eslint-disable-line no-console + console.log(_context4.t0); // eslint-disable-line no-console case 20: case "end": - return _context3.stop(); + return _context4.stop(); } } - }, _callee3, null, [[10, 17]]); + }, _callee4, null, [[10, 17]]); })); return function extAndLocaleFunc() { @@ -29852,11 +40495,11 @@ '#tools_bottom label .svg_icon': 18 }, callback: function callback(icons) { - return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { + return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var tleft, minHeight, size; - return regeneratorRuntime.wrap(function _callee4$(_context4) { + return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { - switch (_context4.prev = _context4.next) { + switch (_context5.prev = _context5.next) { case 0: $$c('.toolbar_button button > svg, .toolbar_button button > img').each(function () { $$c(this).parent().prepend(this); @@ -29885,15 +40528,15 @@ } }); $$c('#svg_container')[0].style.visibility = 'visible'; - _context4.next = 9; + _context5.next = 9; return editor.runCallbacks(); case 9: case "end": - return _context4.stop(); + return _context5.stop(); } } - }, _callee4); + }, _callee5); }))(); } }); @@ -30361,26 +41004,26 @@ function _promptImgURL() { - _promptImgURL = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee18() { + _promptImgURL = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee19() { var _ref27, _ref27$cancelDeletes, cancelDeletes, curhref, url, - _args18 = arguments; + _args19 = arguments; - return regeneratorRuntime.wrap(function _callee18$(_context18) { + return regeneratorRuntime.wrap(function _callee19$(_context19) { while (1) { - switch (_context18.prev = _context18.next) { + switch (_context19.prev = _context19.next) { case 0: - _ref27 = _args18.length > 0 && _args18[0] !== undefined ? _args18[0] : {}, _ref27$cancelDeletes = _ref27.cancelDeletes, cancelDeletes = _ref27$cancelDeletes === void 0 ? false : _ref27$cancelDeletes; + _ref27 = _args19.length > 0 && _args19[0] !== undefined ? _args19[0] : {}, _ref27$cancelDeletes = _ref27.cancelDeletes, cancelDeletes = _ref27$cancelDeletes === void 0 ? false : _ref27$cancelDeletes; curhref = svgCanvas.getHref(selectedElement); curhref = curhref.startsWith('data:') ? '' : curhref; - _context18.next = 5; + _context19.next = 5; return $$c.prompt(uiStrings$1.notification.enterNewImgURL, curhref); case 5: - url = _context18.sent; + url = _context19.sent; if (url) { setImageURL(url); @@ -30390,10 +41033,10 @@ case 7: case "end": - return _context18.stop(); + return _context19.stop(); } } - }, _callee18); + }, _callee19); })); return _promptImgURL.apply(this, arguments); } @@ -31625,11 +42268,11 @@ */ var extAdded = /*#__PURE__*/function () { - var _ref11 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(win, ext) { + var _ref11 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(win, ext) { var cbCalled, resizeDone, lang, prepResize, runCallback, btnSelects, svgicons, fallbackObj, altsObj, placementObj, holders; - return regeneratorRuntime.wrap(function _callee5$(_context5) { + return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { - switch (_context5.prev = _context5.next) { + switch (_context6.prev = _context6.next) { case 0: prepResize = function _prepResize() { if (resizeTimer) { @@ -31646,29 +42289,29 @@ }; if (ext) { - _context5.next = 3; + _context6.next = 3; break; } - return _context5.abrupt("return", undefined); + return _context6.abrupt("return", undefined); case 3: cbCalled = false; resizeDone = false; if (!ext.langReady) { - _context5.next = 14; + _context6.next = 14; break; } if (!editor.langChanged) { - _context5.next = 13; + _context6.next = 13; break; } // We check for this since the "lang" pref could have been set by storage lang = editor.pref('lang'); - _context5.next = 10; + _context6.next = 10; return ext.langReady({ lang: lang, uiStrings: uiStrings$1, @@ -31680,7 +42323,7 @@ case 10: loadedExtensionNames.push(ext.name); - _context5.next = 14; + _context6.next = 14; break; case 13: @@ -31809,7 +42452,7 @@ svgicons = ext.svgicons; if (!ext.buttons) { - _context5.next = 24; + _context6.next = 24; break; } @@ -32068,11 +42711,11 @@ }); if (!svgicons) { - _context5.next = 24; + _context6.next = 24; break; } - return _context5.abrupt("return", new Promise(function (resolve, reject) { + return _context6.abrupt("return", new Promise(function (resolve, reject) { // eslint-disable-line promise/avoid-new $$c.svgIcons(svgicons, { w: 24, @@ -32095,17 +42738,17 @@ })); case 24: - return _context5.abrupt("return", runCallback()); + return _context6.abrupt("return", runCallback()); case 25: case "end": - return _context5.stop(); + return _context6.stop(); } } - }, _callee5); + }, _callee6); })); - return function extAdded(_x3, _x4) { + return function extAdded(_x4, _x5) { return _ref11.apply(this, arguments); }; }(); @@ -32316,11 +42959,11 @@ }); // fired when user wants to move elements to another layer var promptMoveLayerOnce = false; - $$c('#selLayerNames').change( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { + $$c('#selLayerNames').change( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { var destLayer, confirmStr, moveToLayer, ok; - return regeneratorRuntime.wrap(function _callee6$(_context6) { + return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { - switch (_context6.prev = _context6.next) { + switch (_context7.prev = _context7.next) { case 0: destLayer = this.options[this.selectedIndex].value; confirmStr = uiStrings$1.notification.QmoveElemsToLayer.replace('%s', destLayer); @@ -32341,42 +42984,42 @@ }; if (!destLayer) { - _context6.next = 14; + _context7.next = 14; break; } if (!promptMoveLayerOnce) { - _context6.next = 8; + _context7.next = 8; break; } moveToLayer(true); - _context6.next = 14; + _context7.next = 14; break; case 8: - _context6.next = 10; + _context7.next = 10; return $$c.confirm(confirmStr); case 10: - ok = _context6.sent; + ok = _context7.sent; if (ok) { - _context6.next = 13; + _context7.next = 13; break; } - return _context6.abrupt("return"); + return _context7.abrupt("return"); case 13: moveToLayer(true); case 14: case "end": - return _context6.stop(); + return _context7.stop(); } } - }, _callee6, this); + }, _callee7, this); }))); $$c('#font_family').change(function () { svgCanvas.setFontFamily(this.value); @@ -33061,22 +43704,22 @@ var makeHyperlink = /*#__PURE__*/function () { - var _ref14 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { + var _ref14 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { var url; - return regeneratorRuntime.wrap(function _callee7$(_context7) { + return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { - switch (_context7.prev = _context7.next) { + switch (_context8.prev = _context8.next) { case 0: if (!(!isNullish(selectedElement) || multiselected)) { - _context7.next = 5; + _context8.next = 5; break; } - _context7.next = 3; + _context8.next = 3; return $$c.prompt(uiStrings$1.notification.enterNewLinkURL, 'http://'); case 3: - url = _context7.sent; + url = _context8.sent; if (url) { svgCanvas.makeHyperlink(url); @@ -33084,10 +43727,10 @@ case 5: case "end": - return _context7.stop(); + return _context8.stop(); } } - }, _callee7); + }, _callee8); })); return function makeHyperlink() { @@ -33212,26 +43855,26 @@ var clickClear = /*#__PURE__*/function () { - var _ref15 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { + var _ref15 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { var _curConfig$dimensions, x, y, ok; - return regeneratorRuntime.wrap(function _callee8$(_context8) { + return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { - switch (_context8.prev = _context8.next) { + switch (_context9.prev = _context9.next) { case 0: _curConfig$dimensions = _slicedToArray(curConfig.dimensions, 2), x = _curConfig$dimensions[0], y = _curConfig$dimensions[1]; - _context8.next = 3; + _context9.next = 3; return $$c.confirm(uiStrings$1.notification.QwantToClear); case 3: - ok = _context8.sent; + ok = _context9.sent; if (ok) { - _context8.next = 6; + _context9.next = 6; break; } - return _context8.abrupt("return"); + return _context9.abrupt("return"); case 6: setSelectMode(); @@ -33246,10 +43889,10 @@ case 15: case "end": - return _context8.stop(); + return _context9.stop(); } } - }, _callee8); + }, _callee9); })); return function clickClear() { @@ -33300,11 +43943,11 @@ */ var clickExport = /*#__PURE__*/function () { - var _ref16 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { + var _ref16 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { var imgType, exportWindowName, openExportWindow, chrome, quality; - return regeneratorRuntime.wrap(function _callee9$(_context9) { + return regeneratorRuntime.wrap(function _callee10$(_context10) { while (1) { - switch (_context9.prev = _context9.next) { + switch (_context10.prev = _context10.next) { case 0: openExportWindow = function _openExportWindow() { var loadingImage = uiStrings$1.notification.loadingImage; @@ -33336,7 +43979,7 @@ exportWindow = window.open(popURL, exportWindowName); }; - _context9.next = 3; + _context10.next = 3; return $$c.select('Select an image type for export: ', [// See http://kangax.github.io/jstests/toDataUrl_mime_type_test/ for a useful list of MIME types and browser support // 'ICO', // Todo: Find a way to preserve transparency in SVG-Edit if not working presently and do full packaging for x-icon; then switch back to position after 'PNG' 'PNG', 'JPEG', 'BMP', 'WEBP', 'PDF'], function () { @@ -33352,20 +43995,20 @@ }); case 3: - imgType = _context9.sent; + imgType = _context10.sent; if (imgType) { - _context9.next = 6; + _context10.next = 6; break; } - return _context9.abrupt("return"); + return _context10.abrupt("return"); case 6: chrome = isChrome(); if (!(imgType === 'PDF')) { - _context9.next = 12; + _context10.next = 12; break; } @@ -33374,7 +44017,7 @@ } svgCanvas.exportPDF(exportWindowName); - _context9.next = 16; + _context10.next = 16; break; case 12: @@ -33385,15 +44028,15 @@ quality = Number.parseInt($$c('#image-slider').val()) / 100; /* const results = */ - _context9.next = 16; + _context10.next = 16; return svgCanvas.rasterExport(imgType, quality, exportWindowName); case 16: case "end": - return _context9.stop(); + return _context10.stop(); } } - }, _callee9); + }, _callee10); })); return function clickExport() { @@ -33597,18 +44240,18 @@ var saveSourceEditor = /*#__PURE__*/function () { - var _ref17 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { + var _ref17 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee11() { var saveChanges, ok; - return regeneratorRuntime.wrap(function _callee10$(_context10) { + return regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) { - switch (_context10.prev = _context10.next) { + switch (_context11.prev = _context11.next) { case 0: if (editingsource) { - _context10.next = 2; + _context11.next = 2; break; } - return _context10.abrupt("return"); + return _context11.abrupt("return"); case 2: saveChanges = function saveChanges() { @@ -33621,26 +44264,26 @@ }; if (svgCanvas.setSvgString($$c('#svg_source_textarea').val())) { - _context10.next = 11; + _context11.next = 11; break; } - _context10.next = 6; + _context11.next = 6; return $$c.confirm(uiStrings$1.notification.QerrorsRevertToSource); case 6: - ok = _context10.sent; + ok = _context11.sent; if (ok) { - _context10.next = 9; + _context11.next = 9; break; } - return _context10.abrupt("return"); + return _context11.abrupt("return"); case 9: saveChanges(); - return _context10.abrupt("return"); + return _context11.abrupt("return"); case 11: saveChanges(); @@ -33648,10 +44291,10 @@ case 13: case "end": - return _context10.stop(); + return _context11.stop(); } } - }, _callee10); + }, _callee11); })); return function saveSourceEditor() { @@ -33737,12 +44380,12 @@ */ - var savePreferences = editor.savePreferences = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee11() { + var savePreferences = editor.savePreferences = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee12() { var color, lang, _yield$editor$putLoca2, langParam, langData; - return regeneratorRuntime.wrap(function _callee11$(_context11) { + return regeneratorRuntime.wrap(function _callee12$(_context12) { while (1) { - switch (_context11.prev = _context11.next) { + switch (_context12.prev = _context12.next) { case 0: // Set background color = $$c('#bg_blocks div.cur_background').data('bgcolor') || '#FFF'; @@ -33751,18 +44394,18 @@ lang = $$c('#lang_select').val(); if (!(lang && lang !== editor.pref('lang'))) { - _context11.next = 11; + _context12.next = 11; break; } - _context11.next = 6; + _context12.next = 6; return editor.putLocale(lang, goodLangs, curConfig); case 6: - _yield$editor$putLoca2 = _context11.sent; + _yield$editor$putLoca2 = _context12.sent; langParam = _yield$editor$putLoca2.langParam; langData = _yield$editor$putLoca2.langData; - _context11.next = 11; + _context12.next = 11; return setLang(langParam, langData); case 11: @@ -33786,10 +44429,10 @@ case 22: case "end": - return _context11.stop(); + return _context12.stop(); } } - }, _callee11); + }, _callee12); })); var resetScrollPos = $$c.noop; @@ -33799,16 +44442,16 @@ */ var cancelOverlays = /*#__PURE__*/function () { - var _ref19 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee12() { + var _ref19 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee13() { var ok; - return regeneratorRuntime.wrap(function _callee12$(_context12) { + return regeneratorRuntime.wrap(function _callee13$(_context13) { while (1) { - switch (_context12.prev = _context12.next) { + switch (_context13.prev = _context13.next) { case 0: $$c('#dialog_box').hide(); if (!(!editingsource && !docprops && !preferences)) { - _context12.next = 4; + _context13.next = 4; break; } @@ -33816,37 +44459,37 @@ svgCanvas.leaveContext(); } - return _context12.abrupt("return"); + return _context13.abrupt("return"); case 4: if (!editingsource) { - _context12.next = 15; + _context13.next = 15; break; } if (!(origSource !== $$c('#svg_source_textarea').val())) { - _context12.next = 12; + _context13.next = 12; break; } - _context12.next = 8; + _context13.next = 8; return $$c.confirm(uiStrings$1.notification.QignoreSourceChanges); case 8: - ok = _context12.sent; + ok = _context13.sent; if (ok) { hideSourceEditor(); } - _context12.next = 13; + _context13.next = 13; break; case 12: hideSourceEditor(); case 13: - _context12.next = 16; + _context13.next = 16; break; case 15: @@ -33861,10 +44504,10 @@ case 17: case "end": - return _context12.stop(); + return _context13.stop(); } } - }, _callee12); + }, _callee13); })); return function cancelOverlays() { @@ -34259,11 +44902,11 @@ $$c(this).removeClass('push_button_pressed').addClass('push_button'); }); // ask for a layer name - $$c('#layer_new').click( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee13() { + $$c('#layer_new').click( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee14() { var uniqName, i, newName; - return regeneratorRuntime.wrap(function _callee13$(_context13) { + return regeneratorRuntime.wrap(function _callee14$(_context14) { while (1) { - switch (_context13.prev = _context13.next) { + switch (_context14.prev = _context14.next) { case 0: i = svgCanvas.getCurrentDrawing().getNumLayers(); @@ -34271,28 +44914,28 @@ uniqName = uiStrings$1.layers.layer + ' ' + ++i; } while (svgCanvas.getCurrentDrawing().hasLayer(uniqName)); - _context13.next = 4; + _context14.next = 4; return $$c.prompt(uiStrings$1.notification.enterUniqueLayerName, uniqName); case 4: - newName = _context13.sent; + newName = _context14.sent; if (newName) { - _context13.next = 7; + _context14.next = 7; break; } - return _context13.abrupt("return"); + return _context14.abrupt("return"); case 7: if (!svgCanvas.getCurrentDrawing().hasLayer(newName)) { - _context13.next = 10; + _context14.next = 10; break; } /* await */ $$c.alert(uiStrings$1.notification.dupeLayerName); - return _context13.abrupt("return"); + return _context14.abrupt("return"); case 10: svgCanvas.createLayer(newName); @@ -34301,10 +44944,10 @@ case 13: case "end": - return _context13.stop(); + return _context14.stop(); } } - }, _callee13); + }, _callee14); }))); /** * @@ -34338,35 +44981,35 @@ function _cloneLayer() { - _cloneLayer = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee19() { + _cloneLayer = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee20() { var name, newName; - return regeneratorRuntime.wrap(function _callee19$(_context19) { + return regeneratorRuntime.wrap(function _callee20$(_context20) { while (1) { - switch (_context19.prev = _context19.next) { + switch (_context20.prev = _context20.next) { case 0: name = svgCanvas.getCurrentDrawing().getCurrentLayerName() + ' copy'; - _context19.next = 3; + _context20.next = 3; return $$c.prompt(uiStrings$1.notification.enterUniqueLayerName, name); case 3: - newName = _context19.sent; + newName = _context20.sent; if (newName) { - _context19.next = 6; + _context20.next = 6; break; } - return _context19.abrupt("return"); + return _context20.abrupt("return"); case 6: if (!svgCanvas.getCurrentDrawing().hasLayer(newName)) { - _context19.next = 9; + _context20.next = 9; break; } /* await */ $$c.alert(uiStrings$1.notification.dupeLayerName); - return _context19.abrupt("return"); + return _context20.abrupt("return"); case 9: svgCanvas.cloneLayer(newName); @@ -34375,10 +45018,10 @@ case 12: case "end": - return _context19.stop(); + return _context20.stop(); } } - }, _callee19); + }, _callee20); })); return _cloneLayer.apply(this, arguments); } @@ -34416,36 +45059,36 @@ $$c('#layer_down').click(function () { moveLayer(1); }); - $$c('#layer_rename').click( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee14() { + $$c('#layer_rename').click( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee15() { var oldName, newName; - return regeneratorRuntime.wrap(function _callee14$(_context14) { + return regeneratorRuntime.wrap(function _callee15$(_context15) { while (1) { - switch (_context14.prev = _context14.next) { + switch (_context15.prev = _context15.next) { case 0: // const curIndex = $('#layerlist tr.layersel').prevAll().length; // Currently unused oldName = $$c('#layerlist tr.layersel td.layername').text(); - _context14.next = 3; + _context15.next = 3; return $$c.prompt(uiStrings$1.notification.enterNewLayerName, ''); case 3: - newName = _context14.sent; + newName = _context15.sent; if (newName) { - _context14.next = 6; + _context15.next = 6; break; } - return _context14.abrupt("return"); + return _context15.abrupt("return"); case 6: if (!(oldName === newName || svgCanvas.getCurrentDrawing().hasLayer(newName))) { - _context14.next = 9; + _context15.next = 9; break; } /* await */ $$c.alert(uiStrings$1.notification.layerHasThatName); - return _context14.abrupt("return"); + return _context15.abrupt("return"); case 9: svgCanvas.renameCurrentLayer(newName); @@ -34453,10 +45096,10 @@ case 11: case "end": - return _context14.stop(); + return _context15.stop(); } } - }, _callee14); + }, _callee15); }))); var SIDEPANEL_MAXWIDTH = 300; var SIDEPANEL_OPENWIDTH = 150; @@ -35680,24 +46323,24 @@ workarea[0].addEventListener('dragleave', onDragLeave); workarea[0].addEventListener('drop', importImage); var open = $$c('').change( /*#__PURE__*/function () { - var _ref23 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee16(e) { + var _ref23 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee17(e) { var ok, reader; - return regeneratorRuntime.wrap(function _callee16$(_context16) { + return regeneratorRuntime.wrap(function _callee17$(_context17) { while (1) { - switch (_context16.prev = _context16.next) { + switch (_context17.prev = _context17.next) { case 0: - _context16.next = 2; + _context17.next = 2; return editor.openPrep(); case 2: - ok = _context16.sent; + ok = _context17.sent; if (ok) { - _context16.next = 5; + _context17.next = 5; break; } - return _context16.abrupt("return"); + return _context17.abrupt("return"); case 5: svgCanvas.clear(); @@ -35707,14 +46350,14 @@ reader = new FileReader(); reader.onloadend = /*#__PURE__*/function () { - var _ref25 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee15(_ref24) { + var _ref25 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee16(_ref24) { var target; - return regeneratorRuntime.wrap(function _callee15$(_context15) { + return regeneratorRuntime.wrap(function _callee16$(_context16) { while (1) { - switch (_context15.prev = _context15.next) { + switch (_context16.prev = _context16.next) { case 0: target = _ref24.target; - _context15.next = 3; + _context16.next = 3; return loadSvgString(target.result); case 3: @@ -35722,13 +46365,13 @@ case 4: case "end": - return _context15.stop(); + return _context16.stop(); } } - }, _callee15); + }, _callee16); })); - return function (_x6) { + return function (_x7) { return _ref25.apply(this, arguments); }; }(); @@ -35738,13 +46381,13 @@ case 7: case "end": - return _context16.stop(); + return _context17.stop(); } } - }, _callee16, this); + }, _callee17, this); })); - return function (_x5) { + return function (_x6) { return _ref23.apply(this, arguments); }; }()); @@ -35774,22 +46417,22 @@ */ var setLang = editor.setLang = /*#__PURE__*/function () { - var _ref26 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee17(lang, allStrings) { + var _ref26 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee18(lang, allStrings) { var oldLayerName, renameLayer, elems; - return regeneratorRuntime.wrap(function _callee17$(_context17) { + return regeneratorRuntime.wrap(function _callee18$(_context18) { while (1) { - switch (_context17.prev = _context17.next) { + switch (_context18.prev = _context18.next) { case 0: editor.langChanged = true; editor.pref('lang', lang); $$c('#lang_select').val(lang); if (allStrings) { - _context17.next = 5; + _context18.next = 5; break; } - return _context17.abrupt("return"); + return _context18.abrupt("return"); case 5: // Todo: Remove `allStrings.lang` property in locale in @@ -35814,11 +46457,11 @@ if (!extsPreLang.length) { - _context17.next = 18; + _context18.next = 18; break; } - _context17.next = 15; + _context18.next = 15; return Promise.all(extsPreLang.map(function (ext) { loadedExtensionNames.push(ext.name); return ext.langReady({ @@ -35833,7 +46476,7 @@ case 15: extsPreLang.length = 0; - _context17.next = 19; + _context18.next = 19; break; case 18: @@ -35873,13 +46516,13 @@ case 24: case "end": - return _context17.stop(); + return _context18.stop(); } } - }, _callee17); + }, _callee18); })); - return function (_x7, _x8) { + return function (_x8, _x9) { return _ref26.apply(this, arguments); }; }(); @@ -35965,13 +46608,13 @@ */ - editor.runCallbacks = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee20() { - return regeneratorRuntime.wrap(function _callee20$(_context20) { + editor.runCallbacks = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee21() { + return regeneratorRuntime.wrap(function _callee21$(_context21) { while (1) { - switch (_context20.prev = _context20.next) { + switch (_context21.prev = _context21.next) { case 0: - _context20.prev = 0; - _context20.next = 3; + _context21.prev = 0; + _context21.next = 3; return Promise.all(callbacks.map(function (_ref29) { var _ref30 = _slicedToArray(_ref29, 1), cb = _ref30[0]; @@ -35980,19 +46623,19 @@ })); case 3: - _context20.next = 9; + _context21.next = 9; break; case 5: - _context20.prev = 5; - _context20.t0 = _context20["catch"](0); + _context21.prev = 5; + _context21.t0 = _context21["catch"](0); callbacks.forEach(function (_ref31) { var _ref32 = _slicedToArray(_ref31, 3), reject = _ref32[2]; reject(); }); - throw _context20.t0; + throw _context21.t0; case 9: callbacks.forEach(function (_ref33) { @@ -36005,10 +46648,10 @@ case 11: case "end": - return _context20.stop(); + return _context21.stop(); } } - }, _callee20, null, [[0, 5]]); + }, _callee21, null, [[0, 5]]); })); /** * @function module:SVGEditor.loadFromString @@ -36022,38 +46665,38 @@ var _ref35 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, noAlert = _ref35.noAlert; - return editor.ready( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee21() { - return regeneratorRuntime.wrap(function _callee21$(_context21) { + return editor.ready( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee22() { + return regeneratorRuntime.wrap(function _callee22$(_context22) { while (1) { - switch (_context21.prev = _context21.next) { + switch (_context22.prev = _context22.next) { case 0: - _context21.prev = 0; - _context21.next = 3; + _context22.prev = 0; + _context22.next = 3; return loadSvgString(str, { noAlert: noAlert }); case 3: - _context21.next = 9; + _context22.next = 9; break; case 5: - _context21.prev = 5; - _context21.t0 = _context21["catch"](0); + _context22.prev = 5; + _context22.t0 = _context22["catch"](0); if (!noAlert) { - _context21.next = 9; + _context22.next = 9; break; } - throw _context21.t0; + throw _context22.t0; case 9: case "end": - return _context21.stop(); + return _context22.stop(); } } - }, _callee21, null, [[0, 5]]); + }, _callee22, null, [[0, 5]]); }))); }; /** @@ -36221,35 +46864,33 @@ window.addEventListener('message', messageListener); // Run init once DOM is loaded // jQuery(editor.init); - _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee22() { - return regeneratorRuntime.wrap(function _callee22$(_context22) { + _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee23() { + return regeneratorRuntime.wrap(function _callee23$(_context23) { while (1) { - switch (_context22.prev = _context22.next) { + switch (_context23.prev = _context23.next) { case 0: - _context22.prev = 0; - _context22.next = 3; + _context23.prev = 0; + _context23.next = 3; return Promise.resolve(); case 3: editor.init(); - _context22.next = 9; + _context23.next = 9; break; case 6: - _context22.prev = 6; - _context22.t0 = _context22["catch"](0); - console.error(_context22.t0); // eslint-disable-line no-console + _context23.prev = 6; + _context23.t0 = _context23["catch"](0); + console.error(_context23.t0); // eslint-disable-line no-console case 9: case "end": - return _context22.stop(); + return _context23.stop(); } } - }, _callee22, null, [[0, 6]]); + }, _callee23, null, [[0, 6]]); }))(); - // TO BUILD AN IIFE VERSION OF THIS FILE (AS CAN WORK ON OLDER BROWSERS), - editor.setConfig({ /* To override the ability for URLs to set URL-based SVG content, uncomment the following: */ @@ -36304,7 +46945,7 @@ // no_save_warning: false, // PATH CONFIGURATION // imgPath: 'images/', - // langPath: 'locale/', + // langPath: '/src/editor/locale/', // extPath: 'extensions/', // jGraduatePath: 'jgraduate/images/', @@ -36381,4 +47022,7684 @@ allowInitialUserOverride: true }); + var underscoreMin = createCommonjsModule(function (module, exports) { + !function (n, r) { + module.exports = r() ; + }(commonjsGlobal, function () { + // Underscore.js 1.10.2 + // https://underscorejs.org + // (c) 2009-2020 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + // Underscore may be freely distributed under the MIT license. + var n = "object" == (typeof self === "undefined" ? "undefined" : _typeof(self)) && self.self === self && self || "object" == _typeof(commonjsGlobal) && commonjsGlobal.global === commonjsGlobal && commonjsGlobal || Function("return this")() || {}, + e = Array.prototype, + i = Object.prototype, + p = "undefined" != typeof Symbol ? Symbol.prototype : null, + u = e.push, + f = e.slice, + s = i.toString, + o = i.hasOwnProperty, + r = Array.isArray, + a = Object.keys, + t = Object.create, + c = n.isNaN, + l = n.isFinite, + v = function v() {}; + + function h(n) { + return n instanceof h ? n : this instanceof h ? void (this._wrapped = n) : new h(n); + } + + var g = h.VERSION = "1.10.2"; + + function y(u, o, n) { + if (void 0 === o) return u; + + switch (null == n ? 3 : n) { + case 1: + return function (n) { + return u.call(o, n); + }; + + case 3: + return function (n, r, t) { + return u.call(o, n, r, t); + }; + + case 4: + return function (n, r, t, e) { + return u.call(o, n, r, t, e); + }; + } + + return function () { + return u.apply(o, arguments); + }; + } + + function d(n, r, t) { + return null == n ? ur : Cn(n) ? y(n, r, t) : Ln(n) && !Kn(n) ? ir(n) : or(n); + } + + function m(n, r) { + return d(n, r, 1 / 0); + } + + function b(n, r, t) { + return h.iteratee !== m ? h.iteratee(n, r) : d(n, r, t); + } + + function j(u, o) { + return o = null == o ? u.length - 1 : +o, function () { + for (var n = Math.max(arguments.length - o, 0), r = Array(n), t = 0; t < n; t++) { + r[t] = arguments[t + o]; + } + + switch (o) { + case 0: + return u.call(this, r); + + case 1: + return u.call(this, arguments[0], r); + + case 2: + return u.call(this, arguments[0], arguments[1], r); + } + + var e = Array(o + 1); + + for (t = 0; t < o; t++) { + e[t] = arguments[t]; + } + + return e[o] = r, u.apply(this, e); + }; + } + + function _(n) { + if (!Ln(n)) return {}; + if (t) return t(n); + v.prototype = n; + var r = new v(); + return v.prototype = null, r; + } + + function w(r) { + return function (n) { + return null == n ? void 0 : n[r]; + }; + } + + function x(n, r) { + return null != n && o.call(n, r); + } + + function S(n, r) { + for (var t = r.length, e = 0; e < t; e++) { + if (null == n) return; + n = n[r[e]]; + } + + return t ? n : void 0; + } + + h.iteratee = m; + var A = Math.pow(2, 53) - 1, + O = w("length"); + + function M(n) { + var r = O(n); + return "number" == typeof r && 0 <= r && r <= A; + } + + function E(n, r, t) { + var e, u; + if (r = y(r, t), M(n)) for (e = 0, u = n.length; e < u; e++) { + r(n[e], e, n); + } else { + var o = Sn(n); + + for (e = 0, u = o.length; e < u; e++) { + r(n[o[e]], o[e], n); + } + } + return n; + } + + function N(n, r, t) { + r = b(r, t); + + for (var e = !M(n) && Sn(n), u = (e || n).length, o = Array(u), i = 0; i < u; i++) { + var a = e ? e[i] : i; + o[i] = r(n[a], a, n); + } + + return o; + } + + function k(f) { + return function (n, r, t, e) { + var u = 3 <= arguments.length; + return function (n, r, t, e) { + var u = !M(n) && Sn(n), + o = (u || n).length, + i = 0 < f ? 0 : o - 1; + + for (e || (t = n[u ? u[i] : i], i += f); 0 <= i && i < o; i += f) { + var a = u ? u[i] : i; + t = r(t, n[a], a, n); + } + + return t; + }(n, y(r, e, 4), t, u); + }; + } + + var I = k(1), + T = k(-1); + + function B(n, r, t) { + var e = (M(n) ? on : Tn)(n, r, t); + if (void 0 !== e && -1 !== e) return n[e]; + } + + function R(n, e, r) { + var u = []; + return e = b(e, r), E(n, function (n, r, t) { + e(n, r, t) && u.push(n); + }), u; + } + + function F(n, r, t) { + r = b(r, t); + + for (var e = !M(n) && Sn(n), u = (e || n).length, o = 0; o < u; o++) { + var i = e ? e[o] : o; + if (!r(n[i], i, n)) return !1; + } + + return !0; + } + + function q(n, r, t) { + r = b(r, t); + + for (var e = !M(n) && Sn(n), u = (e || n).length, o = 0; o < u; o++) { + var i = e ? e[o] : o; + if (r(n[i], i, n)) return !0; + } + + return !1; + } + + function D(n, r, t, e) { + return M(n) || (n = On(n)), ("number" != typeof t || e) && (t = 0), 0 <= ln(n, r, t); + } + + var W = j(function (n, t, e) { + var u, o; + return Cn(t) ? o = t : Kn(t) && (u = t.slice(0, -1), t = t[t.length - 1]), N(n, function (n) { + var r = o; + + if (!r) { + if (u && u.length && (n = S(n, u)), null == n) return; + r = n[t]; + } + + return null == r ? r : r.apply(n, e); + }); + }); + + function z(n, r) { + return N(n, or(r)); + } + + function P(n, e, r) { + var t, + u, + o = -1 / 0, + i = -1 / 0; + if (null == e || "number" == typeof e && "object" != _typeof(n[0]) && null != n) for (var a = 0, f = (n = M(n) ? n : On(n)).length; a < f; a++) { + null != (t = n[a]) && o < t && (o = t); + } else e = b(e, r), E(n, function (n, r, t) { + u = e(n, r, t), (i < u || u === -1 / 0 && o === -1 / 0) && (o = n, i = u); + }); + return o; + } + + function K(n, r, t) { + if (null == r || t) return M(n) || (n = On(n)), n[ar(n.length - 1)]; + var e = M(n) ? Dn(n) : On(n), + u = O(e); + r = Math.max(Math.min(r, u), 0); + + for (var o = u - 1, i = 0; i < r; i++) { + var a = ar(i, o), + f = e[i]; + e[i] = e[a], e[a] = f; + } + + return e.slice(0, r); + } + + function L(i, r) { + return function (e, u, n) { + var o = r ? [[], []] : {}; + return u = b(u, n), E(e, function (n, r) { + var t = u(n, r, e); + i(o, n, t); + }), o; + }; + } + + var V = L(function (n, r, t) { + x(n, t) ? n[t].push(r) : n[t] = [r]; + }), + C = L(function (n, r, t) { + n[t] = r; + }), + J = L(function (n, r, t) { + x(n, t) ? n[t]++ : n[t] = 1; + }), + U = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g; + var $ = L(function (n, r, t) { + n[t ? 0 : 1].push(r); + }, !0); + + function G(n, r, t) { + return null == n || n.length < 1 ? null == r ? void 0 : [] : null == r || t ? n[0] : H(n, n.length - r); + } + + function H(n, r, t) { + return f.call(n, 0, Math.max(0, n.length - (null == r || t ? 1 : r))); + } + + function Q(n, r, t) { + return f.call(n, null == r || t ? 1 : r); + } + + function X(n, r, t, e) { + for (var u = (e = e || []).length, o = 0, i = O(n); o < i; o++) { + var a = n[o]; + if (M(a) && (Kn(a) || Vn(a))) { + if (r) for (var f = 0, c = a.length; f < c;) { + e[u++] = a[f++]; + } else X(a, r, t, e), u = e.length; + } else t || (e[u++] = a); + } + + return e; + } + + var Y = j(function (n, r) { + return rn(n, r); + }); + + function Z(n, r, t, e) { + er(r) || (e = t, t = r, r = !1), null != t && (t = b(t, e)); + + for (var u = [], o = [], i = 0, a = O(n); i < a; i++) { + var f = n[i], + c = t ? t(f, i, n) : f; + r && !t ? (i && o === c || u.push(f), o = c) : t ? D(o, c) || (o.push(c), u.push(f)) : D(u, f) || u.push(f); + } + + return u; + } + + var nn = j(function (n) { + return Z(X(n, !0, !0)); + }); + var rn = j(function (n, r) { + return r = X(r, !0, !0), R(n, function (n) { + return !D(r, n); + }); + }); + + function tn(n) { + for (var r = n && P(n, O).length || 0, t = Array(r), e = 0; e < r; e++) { + t[e] = z(n, e); + } + + return t; + } + + var en = j(tn); + + function un(o) { + return function (n, r, t) { + r = b(r, t); + + for (var e = O(n), u = 0 < o ? 0 : e - 1; 0 <= u && u < e; u += o) { + if (r(n[u], u, n)) return u; + } + + return -1; + }; + } + + var on = un(1), + an = un(-1); + + function fn(n, r, t, e) { + for (var u = (t = b(t, e, 1))(r), o = 0, i = O(n); o < i;) { + var a = Math.floor((o + i) / 2); + t(n[a]) < u ? o = a + 1 : i = a; + } + + return o; + } + + function cn(o, i, a) { + return function (n, r, t) { + var e = 0, + u = O(n); + if ("number" == typeof t) 0 < o ? e = 0 <= t ? t : Math.max(t + u, e) : u = 0 <= t ? Math.min(t + 1, u) : t + u + 1;else if (a && t && u) return n[t = a(n, r)] === r ? t : -1; + if (r != r) return 0 <= (t = i(f.call(n, e, u), tr)) ? t + e : -1; + + for (t = 0 < o ? e : u - 1; 0 <= t && t < u; t += o) { + if (n[t] === r) return t; + } + + return -1; + }; + } + + var ln = cn(1, on, fn), + pn = cn(-1, an); + + function sn(n, r, t, e, u) { + if (!(e instanceof r)) return n.apply(t, u); + + var o = _(n.prototype), + i = n.apply(o, u); + + return Ln(i) ? i : o; + } + + var vn = j(function (r, t, e) { + if (!Cn(r)) throw new TypeError("Bind must be called on a function"); + var u = j(function (n) { + return sn(r, u, t, this, e.concat(n)); + }); + return u; + }), + hn = j(function (u, o) { + var i = hn.placeholder, + a = function a() { + for (var n = 0, r = o.length, t = Array(r), e = 0; e < r; e++) { + t[e] = o[e] === i ? arguments[n++] : o[e]; + } + + for (; n < arguments.length;) { + t.push(arguments[n++]); + } + + return sn(u, a, this, this, t); + }; + + return a; + }); + hn.placeholder = h; + var gn = j(function (n, r) { + var t = (r = X(r, !1, !1)).length; + if (t < 1) throw new Error("bindAll must be passed function names"); + + for (; t--;) { + var e = r[t]; + n[e] = vn(n[e], n); + } + }); + var yn = j(function (n, r, t) { + return setTimeout(function () { + return n.apply(null, t); + }, r); + }), + dn = hn(yn, h, 1); + + function mn(n) { + return function () { + return !n.apply(this, arguments); + }; + } + + function bn(n, r) { + var t; + return function () { + return 0 < --n && (t = r.apply(this, arguments)), n <= 1 && (r = null), t; + }; + } + + var jn = hn(bn, 2), + _n = !{ + toString: null + }.propertyIsEnumerable("toString"), + wn = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"]; + + function xn(n, r) { + var t = wn.length, + e = n.constructor, + u = Cn(e) && e.prototype || i, + o = "constructor"; + + for (x(n, o) && !D(r, o) && r.push(o); t--;) { + (o = wn[t]) in n && n[o] !== u[o] && !D(r, o) && r.push(o); + } + } + + function Sn(n) { + if (!Ln(n)) return []; + if (a) return a(n); + var r = []; + + for (var t in n) { + x(n, t) && r.push(t); + } + + return _n && xn(n, r), r; + } + + function An(n) { + if (!Ln(n)) return []; + var r = []; + + for (var t in n) { + r.push(t); + } + + return _n && xn(n, r), r; + } + + function On(n) { + for (var r = Sn(n), t = r.length, e = Array(t), u = 0; u < t; u++) { + e[u] = n[r[u]]; + } + + return e; + } + + function Mn(n) { + for (var r = {}, t = Sn(n), e = 0, u = t.length; e < u; e++) { + r[n[t[e]]] = t[e]; + } + + return r; + } + + function En(n) { + var r = []; + + for (var t in n) { + Cn(n[t]) && r.push(t); + } + + return r.sort(); + } + + function Nn(f, c) { + return function (n) { + var r = arguments.length; + if (c && (n = Object(n)), r < 2 || null == n) return n; + + for (var t = 1; t < r; t++) { + for (var e = arguments[t], u = f(e), o = u.length, i = 0; i < o; i++) { + var a = u[i]; + c && void 0 !== n[a] || (n[a] = e[a]); + } + } + + return n; + }; + } + + var kn = Nn(An), + In = Nn(Sn); + + function Tn(n, r, t) { + r = b(r, t); + + for (var e, u = Sn(n), o = 0, i = u.length; o < i; o++) { + if (r(n[e = u[o]], e, n)) return e; + } + } + + function Bn(n, r, t) { + return r in t; + } + + var Rn = j(function (n, r) { + var t = {}, + e = r[0]; + if (null == n) return t; + Cn(e) ? (1 < r.length && (e = y(e, r[1])), r = An(n)) : (e = Bn, r = X(r, !1, !1), n = Object(n)); + + for (var u = 0, o = r.length; u < o; u++) { + var i = r[u], + a = n[i]; + e(a, i, n) && (t[i] = a); + } + + return t; + }), + Fn = j(function (n, t) { + var r, + e = t[0]; + return Cn(e) ? (e = mn(e), 1 < t.length && (r = t[1])) : (t = N(X(t, !1, !1), String), e = function e(n, r) { + return !D(t, r); + }), Rn(n, e, r); + }), + qn = Nn(An, !0); + + function Dn(n) { + return Ln(n) ? Kn(n) ? n.slice() : kn({}, n) : n; + } + + function Wn(n, r) { + var t = Sn(r), + e = t.length; + if (null == n) return !e; + + for (var u = Object(n), o = 0; o < e; o++) { + var i = t[o]; + if (r[i] !== u[i] || !(i in u)) return !1; + } + + return !0; + } + + function zn(n, r, t, e) { + if (n === r) return 0 !== n || 1 / n == 1 / r; + if (null == n || null == r) return !1; + if (n != n) return r != r; + + var u = _typeof(n); + + return ("function" === u || "object" === u || "object" == _typeof(r)) && function (n, r, t, e) { + n instanceof h && (n = n._wrapped); + r instanceof h && (r = r._wrapped); + var u = s.call(n); + if (u !== s.call(r)) return !1; + + switch (u) { + case "[object RegExp]": + case "[object String]": + return "" + n == "" + r; + + case "[object Number]": + return +n != +n ? +r != +r : 0 == +n ? 1 / +n == 1 / r : +n == +r; + + case "[object Date]": + case "[object Boolean]": + return +n == +r; + + case "[object Symbol]": + return p.valueOf.call(n) === p.valueOf.call(r); + } + + var o = "[object Array]" === u; + + if (!o) { + if ("object" != _typeof(n) || "object" != _typeof(r)) return !1; + var i = n.constructor, + a = r.constructor; + if (i !== a && !(Cn(i) && i instanceof i && Cn(a) && a instanceof a) && "constructor" in n && "constructor" in r) return !1; + } + + e = e || []; + var f = (t = t || []).length; + + for (; f--;) { + if (t[f] === n) return e[f] === r; + } + + if (t.push(n), e.push(r), o) { + if ((f = n.length) !== r.length) return !1; + + for (; f--;) { + if (!zn(n[f], r[f], t, e)) return !1; + } + } else { + var c, + l = Sn(n); + if (f = l.length, Sn(r).length !== f) return !1; + + for (; f--;) { + if (c = l[f], !x(r, c) || !zn(n[c], r[c], t, e)) return !1; + } + } + + return t.pop(), e.pop(), !0; + }(n, r, t, e); + } + + function Pn(r) { + return function (n) { + return s.call(n) === "[object " + r + "]"; + }; + } + + var Kn = r || Pn("Array"); + + function Ln(n) { + var r = _typeof(n); + + return "function" === r || "object" === r && !!n; + } + + var Vn = Pn("Arguments"), + Cn = Pn("Function"), + Jn = Pn("String"), + Un = Pn("Number"), + $n = Pn("Date"), + Gn = Pn("RegExp"), + Hn = Pn("Error"), + Qn = Pn("Symbol"), + Xn = Pn("Map"), + Yn = Pn("WeakMap"), + Zn = Pn("Set"), + nr = Pn("WeakSet"); + !function () { + Vn(arguments) || (Vn = function Vn(n) { + return x(n, "callee"); + }); + }(); + var rr = n.document && n.document.childNodes; + + function tr(n) { + return Un(n) && c(n); + } + + function er(n) { + return !0 === n || !1 === n || "[object Boolean]" === s.call(n); + } + + function ur(n) { + return n; + } + + function or(r) { + return Kn(r) ? function (n) { + return S(n, r); + } : w(r); + } + + function ir(r) { + return r = In({}, r), function (n) { + return Wn(n, r); + }; + } + + function ar(n, r) { + return null == r && (r = n, n = 0), n + Math.floor(Math.random() * (r - n + 1)); + } + + "function" != typeof /./ && "object" != (typeof Int8Array === "undefined" ? "undefined" : _typeof(Int8Array)) && "function" != typeof rr && (Cn = function Cn(n) { + return "function" == typeof n || !1; + }); + + var fr = Date.now || function () { + return new Date().getTime(); + }, + cr = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'", + "`": "`" + }, + lr = Mn(cr); + + function pr(r) { + var t = function t(n) { + return r[n]; + }, + n = "(?:" + Sn(r).join("|") + ")", + e = RegExp(n), + u = RegExp(n, "g"); + + return function (n) { + return n = null == n ? "" : "" + n, e.test(n) ? n.replace(u, t) : n; + }; + } + + var sr = pr(cr), + vr = pr(lr); + var hr = 0; + + var gr = h.templateSettings = { + evaluate: /<%([\s\S]+?)%>/g, + interpolate: /<%=([\s\S]+?)%>/g, + escape: /<%-([\s\S]+?)%>/g + }, + yr = /(.)^/, + dr = { + "'": "'", + "\\": "\\", + "\r": "r", + "\n": "n", + "\u2028": "u2028", + "\u2029": "u2029" + }, + mr = /\\|'|\r|\n|\u2028|\u2029/g, + br = function br(n) { + return "\\" + dr[n]; + }; + + function jr(n, r) { + return n._chain ? h(r).chain() : r; + } + + function _r(t) { + return E(En(t), function (n) { + var r = h[n] = t[n]; + + h.prototype[n] = function () { + var n = [this._wrapped]; + return u.apply(n, arguments), jr(this, r.apply(h, n)); + }; + }), h; + } + + E(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function (r) { + var t = e[r]; + + h.prototype[r] = function () { + var n = this._wrapped; + return t.apply(n, arguments), "shift" !== r && "splice" !== r || 0 !== n.length || delete n[0], jr(this, n); + }; + }), E(["concat", "join", "slice"], function (n) { + var r = e[n]; + + h.prototype[n] = function () { + return jr(this, r.apply(this._wrapped, arguments)); + }; + }), h.prototype.valueOf = h.prototype.toJSON = h.prototype.value = function () { + return this._wrapped; + }, h.prototype.toString = function () { + return String(this._wrapped); + }; + + var wr = _r({ + "default": h, + VERSION: g, + iteratee: m, + restArguments: j, + each: E, + forEach: E, + map: N, + collect: N, + reduce: I, + foldl: I, + inject: I, + reduceRight: T, + foldr: T, + find: B, + detect: B, + filter: R, + select: R, + reject: function reject(n, r, t) { + return R(n, mn(b(r)), t); + }, + every: F, + all: F, + some: q, + any: q, + contains: D, + includes: D, + include: D, + invoke: W, + pluck: z, + where: function where(n, r) { + return R(n, ir(r)); + }, + findWhere: function findWhere(n, r) { + return B(n, ir(r)); + }, + max: P, + min: function min(n, e, r) { + var t, + u, + o = 1 / 0, + i = 1 / 0; + if (null == e || "number" == typeof e && "object" != _typeof(n[0]) && null != n) for (var a = 0, f = (n = M(n) ? n : On(n)).length; a < f; a++) { + null != (t = n[a]) && t < o && (o = t); + } else e = b(e, r), E(n, function (n, r, t) { + ((u = e(n, r, t)) < i || u === 1 / 0 && o === 1 / 0) && (o = n, i = u); + }); + return o; + }, + shuffle: function shuffle(n) { + return K(n, 1 / 0); + }, + sample: K, + sortBy: function sortBy(n, e, r) { + var u = 0; + return e = b(e, r), z(N(n, function (n, r, t) { + return { + value: n, + index: u++, + criteria: e(n, r, t) + }; + }).sort(function (n, r) { + var t = n.criteria, + e = r.criteria; + + if (t !== e) { + if (e < t || void 0 === t) return 1; + if (t < e || void 0 === e) return -1; + } + + return n.index - r.index; + }), "value"); + }, + groupBy: V, + indexBy: C, + countBy: J, + toArray: function toArray(n) { + return n ? Kn(n) ? f.call(n) : Jn(n) ? n.match(U) : M(n) ? N(n, ur) : On(n) : []; + }, + size: function size(n) { + return null == n ? 0 : M(n) ? n.length : Sn(n).length; + }, + partition: $, + first: G, + head: G, + take: G, + initial: H, + last: function last(n, r, t) { + return null == n || n.length < 1 ? null == r ? void 0 : [] : null == r || t ? n[n.length - 1] : Q(n, Math.max(0, n.length - r)); + }, + rest: Q, + tail: Q, + drop: Q, + compact: function compact(n) { + return R(n, Boolean); + }, + flatten: function flatten(n, r) { + return X(n, r, !1); + }, + without: Y, + uniq: Z, + unique: Z, + union: nn, + intersection: function intersection(n) { + for (var r = [], t = arguments.length, e = 0, u = O(n); e < u; e++) { + var o = n[e]; + + if (!D(r, o)) { + var i; + + for (i = 1; i < t && D(arguments[i], o); i++) { + } + + i === t && r.push(o); + } + } + + return r; + }, + difference: rn, + unzip: tn, + zip: en, + object: function object(n, r) { + for (var t = {}, e = 0, u = O(n); e < u; e++) { + r ? t[n[e]] = r[e] : t[n[e][0]] = n[e][1]; + } + + return t; + }, + findIndex: on, + findLastIndex: an, + sortedIndex: fn, + indexOf: ln, + lastIndexOf: pn, + range: function range(n, r, t) { + null == r && (r = n || 0, n = 0), t || (t = r < n ? -1 : 1); + + for (var e = Math.max(Math.ceil((r - n) / t), 0), u = Array(e), o = 0; o < e; o++, n += t) { + u[o] = n; + } + + return u; + }, + chunk: function chunk(n, r) { + if (null == r || r < 1) return []; + + for (var t = [], e = 0, u = n.length; e < u;) { + t.push(f.call(n, e, e += r)); + } + + return t; + }, + bind: vn, + partial: hn, + bindAll: gn, + memoize: function memoize(e, u) { + var o = function o(n) { + var r = o.cache, + t = "" + (u ? u.apply(this, arguments) : n); + return x(r, t) || (r[t] = e.apply(this, arguments)), r[t]; + }; + + return o.cache = {}, o; + }, + delay: yn, + defer: dn, + throttle: function throttle(t, e, u) { + var o, + i, + a, + f, + c = 0; + u || (u = {}); + + var l = function l() { + c = !1 === u.leading ? 0 : fr(), o = null, f = t.apply(i, a), o || (i = a = null); + }, + n = function n() { + var n = fr(); + c || !1 !== u.leading || (c = n); + var r = e - (n - c); + return i = this, a = arguments, r <= 0 || e < r ? (o && (clearTimeout(o), o = null), c = n, f = t.apply(i, a), o || (i = a = null)) : o || !1 === u.trailing || (o = setTimeout(l, r)), f; + }; + + return n.cancel = function () { + clearTimeout(o), c = 0, o = i = a = null; + }, n; + }, + debounce: function debounce(t, e, u) { + var o, + i, + a = function a(n, r) { + o = null, r && (i = t.apply(n, r)); + }, + n = j(function (n) { + if (o && clearTimeout(o), u) { + var r = !o; + o = setTimeout(a, e), r && (i = t.apply(this, n)); + } else o = yn(a, e, this, n); + + return i; + }); + + return n.cancel = function () { + clearTimeout(o), o = null; + }, n; + }, + wrap: function wrap(n, r) { + return hn(r, n); + }, + negate: mn, + compose: function compose() { + var t = arguments, + e = t.length - 1; + return function () { + for (var n = e, r = t[e].apply(this, arguments); n--;) { + r = t[n].call(this, r); + } + + return r; + }; + }, + after: function after(n, r) { + return function () { + if (--n < 1) return r.apply(this, arguments); + }; + }, + before: bn, + once: jn, + keys: Sn, + allKeys: An, + values: On, + mapObject: function mapObject(n, r, t) { + r = b(r, t); + + for (var e = Sn(n), u = e.length, o = {}, i = 0; i < u; i++) { + var a = e[i]; + o[a] = r(n[a], a, n); + } + + return o; + }, + pairs: function pairs(n) { + for (var r = Sn(n), t = r.length, e = Array(t), u = 0; u < t; u++) { + e[u] = [r[u], n[r[u]]]; + } + + return e; + }, + invert: Mn, + functions: En, + methods: En, + extend: kn, + extendOwn: In, + assign: In, + findKey: Tn, + pick: Rn, + omit: Fn, + defaults: qn, + create: function create(n, r) { + var t = _(n); + + return r && In(t, r), t; + }, + clone: Dn, + tap: function tap(n, r) { + return r(n), n; + }, + isMatch: Wn, + isEqual: function isEqual(n, r) { + return zn(n, r); + }, + isEmpty: function isEmpty(n) { + return null == n || (M(n) && (Kn(n) || Jn(n) || Vn(n)) ? 0 === n.length : 0 === Sn(n).length); + }, + isElement: function isElement(n) { + return !(!n || 1 !== n.nodeType); + }, + isArray: Kn, + isObject: Ln, + isArguments: Vn, + isFunction: Cn, + isString: Jn, + isNumber: Un, + isDate: $n, + isRegExp: Gn, + isError: Hn, + isSymbol: Qn, + isMap: Xn, + isWeakMap: Yn, + isSet: Zn, + isWeakSet: nr, + isFinite: function isFinite(n) { + return !Qn(n) && l(n) && !c(parseFloat(n)); + }, + isNaN: tr, + isBoolean: er, + isNull: function isNull(n) { + return null === n; + }, + isUndefined: function isUndefined(n) { + return void 0 === n; + }, + has: function has(n, r) { + if (!Kn(r)) return x(n, r); + + for (var t = r.length, e = 0; e < t; e++) { + var u = r[e]; + if (null == n || !o.call(n, u)) return !1; + n = n[u]; + } + + return !!t; + }, + identity: ur, + constant: function constant(n) { + return function () { + return n; + }; + }, + noop: function noop() {}, + property: or, + propertyOf: function propertyOf(r) { + return null == r ? function () {} : function (n) { + return Kn(n) ? S(r, n) : r[n]; + }; + }, + matcher: ir, + matches: ir, + times: function times(n, r, t) { + var e = Array(Math.max(0, n)); + r = y(r, t, 1); + + for (var u = 0; u < n; u++) { + e[u] = r(u); + } + + return e; + }, + random: ar, + now: fr, + escape: sr, + unescape: vr, + result: function result(n, r, t) { + Kn(r) || (r = [r]); + var e = r.length; + if (!e) return Cn(t) ? t.call(n) : t; + + for (var u = 0; u < e; u++) { + var o = null == n ? void 0 : n[r[u]]; + void 0 === o && (o = t, u = e), n = Cn(o) ? o.call(n) : o; + } + + return n; + }, + uniqueId: function uniqueId(n) { + var r = ++hr + ""; + return n ? n + r : r; + }, + templateSettings: gr, + template: function template(o, n, r) { + !n && r && (n = r), n = qn({}, n, h.templateSettings); + var t, + e = RegExp([(n.escape || yr).source, (n.interpolate || yr).source, (n.evaluate || yr).source].join("|") + "|$", "g"), + i = 0, + a = "__p+='"; + o.replace(e, function (n, r, t, e, u) { + return a += o.slice(i, u).replace(mr, br), i = u + n.length, r ? a += "'+\n((__t=(" + r + "))==null?'':_.escape(__t))+\n'" : t ? a += "'+\n((__t=(" + t + "))==null?'':__t)+\n'" : e && (a += "';\n" + e + "\n__p+='"), n; + }), a += "';\n", n.variable || (a = "with(obj||{}){\n" + a + "}\n"), a = "var __t,__p='',__j=Array.prototype.join," + "print=function(){__p+=__j.call(arguments,'');};\n" + a + "return __p;\n"; + + try { + t = new Function(n.variable || "obj", "_", a); + } catch (n) { + throw n.source = a, n; + } + + var u = function u(n) { + return t.call(this, n, h); + }, + f = n.variable || "obj"; + + return u.source = "function(" + f + "){\n" + a + "}", u; + }, + chain: function chain(n) { + var r = h(n); + return r._chain = !0, r; + }, + mixin: _r + }); + + return wr._ = wr; + }); + }); + + var underscoreMin$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.assign(/*#__PURE__*/Object.create(null), underscoreMin, { + 'default': underscoreMin, + __moduleExports: underscoreMin + })); + + var global$1 = typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}; + + var lookup = []; + var revLookup = []; + var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array; + var inited = false; + + function init$8() { + inited = true; + var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + + for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i]; + revLookup[code.charCodeAt(i)] = i; + } + + revLookup['-'.charCodeAt(0)] = 62; + revLookup['_'.charCodeAt(0)] = 63; + } + + function toByteArray(b64) { + if (!inited) { + init$8(); + } + + var i, j, l, tmp, placeHolders, arr; + var len = b64.length; + + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4'); + } // the number of equal signs (place holders) + // if there are two placeholders, than the two characters before it + // represent one byte + // if there is only one, then the three characters before it represent 2 bytes + // this is just a cheap hack to not do indexOf twice + + + placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0; // base64 is 4/3 + up to two characters of the original data + + arr = new Arr(len * 3 / 4 - placeHolders); // if there are placeholders, only get up to the last complete 4 chars + + l = placeHolders > 0 ? len - 4 : len; + var L = 0; + + for (i = 0, j = 0; i < l; i += 4, j += 3) { + tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)]; + arr[L++] = tmp >> 16 & 0xFF; + arr[L++] = tmp >> 8 & 0xFF; + arr[L++] = tmp & 0xFF; + } + + if (placeHolders === 2) { + tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4; + arr[L++] = tmp & 0xFF; + } else if (placeHolders === 1) { + tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2; + arr[L++] = tmp >> 8 & 0xFF; + arr[L++] = tmp & 0xFF; + } + + return arr; + } + + function tripletToBase64(num) { + return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]; + } + + function encodeChunk(uint8, start, end) { + var tmp; + var output = []; + + for (var i = start; i < end; i += 3) { + tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + uint8[i + 2]; + output.push(tripletToBase64(tmp)); + } + + return output.join(''); + } + + function fromByteArray(uint8) { + if (!inited) { + init$8(); + } + + var tmp; + var len = uint8.length; + var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes + + var output = ''; + var parts = []; + var maxChunkLength = 16383; // must be multiple of 3 + // go through the array every three bytes, we'll deal with trailing stuff later + + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength)); + } // pad the end with zeros, but make sure to not forget the extra bytes + + + if (extraBytes === 1) { + tmp = uint8[len - 1]; + output += lookup[tmp >> 2]; + output += lookup[tmp << 4 & 0x3F]; + output += '=='; + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1]; + output += lookup[tmp >> 10]; + output += lookup[tmp >> 4 & 0x3F]; + output += lookup[tmp << 2 & 0x3F]; + output += '='; + } + + parts.push(output); + return parts.join(''); + } + + function read(buffer, offset, isLE, mLen, nBytes) { + var e, m; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = -7; + var i = isLE ? nBytes - 1 : 0; + var d = isLE ? -1 : 1; + var s = buffer[offset + i]; + i += d; + e = s & (1 << -nBits) - 1; + s >>= -nBits; + nBits += eLen; + + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity; + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); + } + + function write(buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; + var i = isLE ? 0 : nBytes - 1; + var d = isLE ? 1 : -1; + var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + value = Math.abs(value); + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + + if (value * c >= 2) { + e++; + c /= 2; + } + + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = e << mLen | m; + eLen += mLen; + + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128; + } + + var toString$2 = {}.toString; + + var isArray$1 = Array.isArray || function (arr) { + return toString$2.call(arr) == '[object Array]'; + }; + /*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ + + + var INSPECT_MAX_BYTES = 50; + /** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Due to various browser bugs, sometimes the Object implementation will be used even + * when the browser supports typed arrays. + * + * Note: + * + * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. + + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they + * get the Object implementation, which is slower but behaves correctly. + */ + + Buffer.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined ? global$1.TYPED_ARRAY_SUPPORT : true; + /* + * Export kMaxLength after typed array support is determined. + */ + + var _kMaxLength = kMaxLength(); + + function kMaxLength() { + return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff; + } + + function createBuffer(that, length) { + if (kMaxLength() < length) { + throw new RangeError('Invalid typed array length'); + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = new Uint8Array(length); + that.__proto__ = Buffer.prototype; + } else { + // Fallback: Return an object instance of the Buffer class + if (that === null) { + that = new Buffer(length); + } + + that.length = length; + } + + return that; + } + /** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + + + function Buffer(arg, encodingOrOffset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, encodingOrOffset, length); + } // Common case. + + + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new Error('If encoding is specified then the first argument must be a string'); + } + + return allocUnsafe(this, arg); + } + + return from(this, arg, encodingOrOffset, length); + } + + Buffer.poolSize = 8192; // not used by this implementation + // TODO: Legacy, not needed anymore. Remove in next major version. + + Buffer._augment = function (arr) { + arr.__proto__ = Buffer.prototype; + return arr; + }; + + function from(that, value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number'); + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, encodingOrOffset, length); + } + + if (typeof value === 'string') { + return fromString(that, value, encodingOrOffset); + } + + return fromObject(that, value); + } + /** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ + + + Buffer.from = function (value, encodingOrOffset, length) { + return from(null, value, encodingOrOffset, length); + }; + + if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype; + Buffer.__proto__ = Uint8Array; + } + + function assertSize(size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be a number'); + } else if (size < 0) { + throw new RangeError('"size" argument must not be negative'); + } + } + + function alloc(that, size, fill, encoding) { + assertSize(size); + + if (size <= 0) { + return createBuffer(that, size); + } + + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill); + } + + return createBuffer(that, size); + } + /** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ + + + Buffer.alloc = function (size, fill, encoding) { + return alloc(null, size, fill, encoding); + }; + + function allocUnsafe(that, size) { + assertSize(size); + that = createBuffer(that, size < 0 ? 0 : checked(size) | 0); + + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + that[i] = 0; + } + } + + return that; + } + /** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ + + + Buffer.allocUnsafe = function (size) { + return allocUnsafe(null, size); + }; + /** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ + + + Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(null, size); + }; + + function fromString(that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8'; + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding'); + } + + var length = byteLength(string, encoding) | 0; + that = createBuffer(that, length); + var actual = that.write(string, encoding); + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + that = that.slice(0, actual); + } + + return that; + } + + function fromArrayLike(that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0; + that = createBuffer(that, length); + + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255; + } + + return that; + } + + function fromArrayBuffer(that, array, byteOffset, length) { + array.byteLength; // this throws if `array` is not a valid ArrayBuffer + + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds'); + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds'); + } + + if (byteOffset === undefined && length === undefined) { + array = new Uint8Array(array); + } else if (length === undefined) { + array = new Uint8Array(array, byteOffset); + } else { + array = new Uint8Array(array, byteOffset, length); + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = array; + that.__proto__ = Buffer.prototype; + } else { + // Fallback: Return an object instance of the Buffer class + that = fromArrayLike(that, array); + } + + return that; + } + + function fromObject(that, obj) { + if (internalIsBuffer(obj)) { + var len = checked(obj.length) | 0; + that = createBuffer(that, len); + + if (that.length === 0) { + return that; + } + + obj.copy(that, 0, 0, len); + return that; + } + + if (obj) { + if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0); + } + + return fromArrayLike(that, obj); + } + + if (obj.type === 'Buffer' && isArray$1(obj.data)) { + return fromArrayLike(that, obj.data); + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.'); + } + + function checked(length) { + // Note: cannot use `length < kMaxLength()` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes'); + } + + return length | 0; + } + + function SlowBuffer(length) { + if (+length != length) { + // eslint-disable-line eqeqeq + length = 0; + } + + return Buffer.alloc(+length); + } + + Buffer.isBuffer = isBuffer; + + function internalIsBuffer(b) { + return !!(b != null && b._isBuffer); + } + + Buffer.compare = function compare(a, b) { + if (!internalIsBuffer(a) || !internalIsBuffer(b)) { + throw new TypeError('Arguments must be Buffers'); + } + + if (a === b) return 0; + var x = a.length; + var y = b.length; + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i]; + y = b[i]; + break; + } + } + + if (x < y) return -1; + if (y < x) return 1; + return 0; + }; + + Buffer.isEncoding = function isEncoding(encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true; + + default: + return false; + } + }; + + Buffer.concat = function concat(list, length) { + if (!isArray$1(list)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } + + if (list.length === 0) { + return Buffer.alloc(0); + } + + var i; + + if (length === undefined) { + length = 0; + + for (i = 0; i < list.length; ++i) { + length += list[i].length; + } + } + + var buffer = Buffer.allocUnsafe(length); + var pos = 0; + + for (i = 0; i < list.length; ++i) { + var buf = list[i]; + + if (!internalIsBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } + + buf.copy(buffer, pos); + pos += buf.length; + } + + return buffer; + }; + + function byteLength(string, encoding) { + if (internalIsBuffer(string)) { + return string.length; + } + + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength; + } + + if (typeof string !== 'string') { + string = '' + string; + } + + var len = string.length; + if (len === 0) return 0; // Use a for loop to avoid recursion + + var loweredCase = false; + + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len; + + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length; + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2; + + case 'hex': + return len >>> 1; + + case 'base64': + return base64ToBytes(string).length; + + default: + if (loweredCase) return utf8ToBytes(string).length; // assume utf8 + + encoding = ('' + encoding).toLowerCase(); + loweredCase = true; + } + } + } + + Buffer.byteLength = byteLength; + + function slowToString(encoding, start, end) { + var loweredCase = false; // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + + if (start === undefined || start < 0) { + start = 0; + } // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + + + if (start > this.length) { + return ''; + } + + if (end === undefined || end > this.length) { + end = this.length; + } + + if (end <= 0) { + return ''; + } // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + + + end >>>= 0; + start >>>= 0; + + if (end <= start) { + return ''; + } + + if (!encoding) encoding = 'utf8'; + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end); + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end); + + case 'ascii': + return asciiSlice(this, start, end); + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end); + + case 'base64': + return base64Slice(this, start, end); + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end); + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding); + encoding = (encoding + '').toLowerCase(); + loweredCase = true; + } + } + } // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect + // Buffer instances. + + + Buffer.prototype._isBuffer = true; + + function swap(b, n, m) { + var i = b[n]; + b[n] = b[m]; + b[m] = i; + } + + Buffer.prototype.swap16 = function swap16() { + var len = this.length; + + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits'); + } + + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1); + } + + return this; + }; + + Buffer.prototype.swap32 = function swap32() { + var len = this.length; + + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits'); + } + + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3); + swap(this, i + 1, i + 2); + } + + return this; + }; + + Buffer.prototype.swap64 = function swap64() { + var len = this.length; + + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits'); + } + + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7); + swap(this, i + 1, i + 6); + swap(this, i + 2, i + 5); + swap(this, i + 3, i + 4); + } + + return this; + }; + + Buffer.prototype.toString = function toString() { + var length = this.length | 0; + if (length === 0) return ''; + if (arguments.length === 0) return utf8Slice(this, 0, length); + return slowToString.apply(this, arguments); + }; + + Buffer.prototype.equals = function equals(b) { + if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer'); + if (this === b) return true; + return Buffer.compare(this, b) === 0; + }; + + Buffer.prototype.inspect = function inspect() { + var str = ''; + var max = INSPECT_MAX_BYTES; + + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' '); + if (this.length > max) str += ' ... '; + } + + return ''; + }; + + Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) { + if (!internalIsBuffer(target)) { + throw new TypeError('Argument must be a Buffer'); + } + + if (start === undefined) { + start = 0; + } + + if (end === undefined) { + end = target ? target.length : 0; + } + + if (thisStart === undefined) { + thisStart = 0; + } + + if (thisEnd === undefined) { + thisEnd = this.length; + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index'); + } + + if (thisStart >= thisEnd && start >= end) { + return 0; + } + + if (thisStart >= thisEnd) { + return -1; + } + + if (start >= end) { + return 1; + } + + start >>>= 0; + end >>>= 0; + thisStart >>>= 0; + thisEnd >>>= 0; + if (this === target) return 0; + var x = thisEnd - thisStart; + var y = end - start; + var len = Math.min(x, y); + var thisCopy = this.slice(thisStart, thisEnd); + var targetCopy = target.slice(start, end); + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i]; + y = targetCopy[i]; + break; + } + } + + if (x < y) return -1; + if (y < x) return 1; + return 0; + }; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, + // OR the last index of `val` in `buffer` at offset <= `byteOffset`. + // + // Arguments: + // - buffer - a Buffer to search + // - val - a string, Buffer, or number + // - byteOffset - an index into `buffer`; will be clamped to an int32 + // - encoding - an optional encoding, relevant is val is a string + // - dir - true for indexOf, false for lastIndexOf + + + function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1; // Normalize byteOffset + + if (typeof byteOffset === 'string') { + encoding = byteOffset; + byteOffset = 0; + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff; + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000; + } + + byteOffset = +byteOffset; // Coerce to Number. + + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : buffer.length - 1; + } // Normalize byteOffset: negative offsets start from the end of the buffer + + + if (byteOffset < 0) byteOffset = buffer.length + byteOffset; + + if (byteOffset >= buffer.length) { + if (dir) return -1;else byteOffset = buffer.length - 1; + } else if (byteOffset < 0) { + if (dir) byteOffset = 0;else return -1; + } // Normalize val + + + if (typeof val === 'string') { + val = Buffer.from(val, encoding); + } // Finally, search either indexOf (if dir is true) or lastIndexOf + + + if (internalIsBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1; + } + + return arrayIndexOf(buffer, val, byteOffset, encoding, dir); + } else if (typeof val === 'number') { + val = val & 0xFF; // Search for a byte value [0-255] + + if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset); + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset); + } + } + + return arrayIndexOf(buffer, [val], byteOffset, encoding, dir); + } + + throw new TypeError('val must be string, number or Buffer'); + } + + function arrayIndexOf(arr, val, byteOffset, encoding, dir) { + var indexSize = 1; + var arrLength = arr.length; + var valLength = val.length; + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase(); + + if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1; + } + + indexSize = 2; + arrLength /= 2; + valLength /= 2; + byteOffset /= 2; + } + } + + function read(buf, i) { + if (indexSize === 1) { + return buf[i]; + } else { + return buf.readUInt16BE(i * indexSize); + } + } + + var i; + + if (dir) { + var foundIndex = -1; + + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i; + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize; + } else { + if (foundIndex !== -1) i -= i - foundIndex; + foundIndex = -1; + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength; + + for (i = byteOffset; i >= 0; i--) { + var found = true; + + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false; + break; + } + } + + if (found) return i; + } + } + + return -1; + } + + Buffer.prototype.includes = function includes(val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1; + }; + + Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true); + }; + + Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false); + }; + + function hexWrite(buf, string, offset, length) { + offset = Number(offset) || 0; + var remaining = buf.length - offset; + + if (!length) { + length = remaining; + } else { + length = Number(length); + + if (length > remaining) { + length = remaining; + } + } // must be an even number of digits + + + var strLen = string.length; + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string'); + + if (length > strLen / 2) { + length = strLen / 2; + } + + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16); + if (isNaN(parsed)) return i; + buf[offset + i] = parsed; + } + + return i; + } + + function utf8Write(buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length); + } + + function asciiWrite(buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length); + } + + function latin1Write(buf, string, offset, length) { + return asciiWrite(buf, string, offset, length); + } + + function base64Write(buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length); + } + + function ucs2Write(buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length); + } + + Buffer.prototype.write = function write(string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8'; + length = this.length; + offset = 0; // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset; + length = this.length; + offset = 0; // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0; + + if (isFinite(length)) { + length = length | 0; + if (encoding === undefined) encoding = 'utf8'; + } else { + encoding = length; + length = undefined; + } // legacy write(string, encoding, offset, length) - remove in v0.13 + + } else { + throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported'); + } + + var remaining = this.length - offset; + if (length === undefined || length > remaining) length = remaining; + + if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds'); + } + + if (!encoding) encoding = 'utf8'; + var loweredCase = false; + + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length); + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length); + + case 'ascii': + return asciiWrite(this, string, offset, length); + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length); + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length); + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length); + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding); + encoding = ('' + encoding).toLowerCase(); + loweredCase = true; + } + } + }; + + Buffer.prototype.toJSON = function toJSON() { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + }; + }; + + function base64Slice(buf, start, end) { + if (start === 0 && end === buf.length) { + return fromByteArray(buf); + } else { + return fromByteArray(buf.slice(start, end)); + } + } + + function utf8Slice(buf, start, end) { + end = Math.min(buf.length, end); + var res = []; + var i = start; + + while (i < end) { + var firstByte = buf[i]; + var codePoint = null; + var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1; + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint; + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte; + } + + break; + + case 2: + secondByte = buf[i + 1]; + + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F; + + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint; + } + } + + break; + + case 3: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F; + + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint; + } + } + + break; + + case 4: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + fourthByte = buf[i + 3]; + + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F; + + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint; + } + } + + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD; + bytesPerSequence = 1; + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000; + res.push(codePoint >>> 10 & 0x3FF | 0xD800); + codePoint = 0xDC00 | codePoint & 0x3FF; + } + + res.push(codePoint); + i += bytesPerSequence; + } + + return decodeCodePointsArray(res); + } // Based on http://stackoverflow.com/a/22747272/680742, the browser with + // the lowest limit is Chrome, with 0x10000 args. + // We go 1 magnitude less, for safety + + + var MAX_ARGUMENTS_LENGTH = 0x1000; + + function decodeCodePointsArray(codePoints) { + var len = codePoints.length; + + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints); // avoid extra slice() + } // Decode in chunks to avoid "call stack size exceeded". + + + var res = ''; + var i = 0; + + while (i < len) { + res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)); + } + + return res; + } + + function asciiSlice(buf, start, end) { + var ret = ''; + end = Math.min(buf.length, end); + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F); + } + + return ret; + } + + function latin1Slice(buf, start, end) { + var ret = ''; + end = Math.min(buf.length, end); + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]); + } + + return ret; + } + + function hexSlice(buf, start, end) { + var len = buf.length; + if (!start || start < 0) start = 0; + if (!end || end < 0 || end > len) end = len; + var out = ''; + + for (var i = start; i < end; ++i) { + out += toHex(buf[i]); + } + + return out; + } + + function utf16leSlice(buf, start, end) { + var bytes = buf.slice(start, end); + var res = ''; + + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); + } + + return res; + } + + Buffer.prototype.slice = function slice(start, end) { + var len = this.length; + start = ~~start; + end = end === undefined ? len : ~~end; + + if (start < 0) { + start += len; + if (start < 0) start = 0; + } else if (start > len) { + start = len; + } + + if (end < 0) { + end += len; + if (end < 0) end = 0; + } else if (end > len) { + end = len; + } + + if (end < start) end = start; + var newBuf; + + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end); + newBuf.__proto__ = Buffer.prototype; + } else { + var sliceLen = end - start; + newBuf = new Buffer(sliceLen, undefined); + + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start]; + } + } + + return newBuf; + }; + /* + * Need to make sure that buffer isn't trying to write out of bounds. + */ + + + function checkOffset(offset, ext, length) { + if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint'); + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length'); + } + + Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) { + offset = offset | 0; + byteLength = byteLength | 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + var val = this[offset]; + var mul = 1; + var i = 0; + + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul; + } + + return val; + }; + + Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) { + offset = offset | 0; + byteLength = byteLength | 0; + + if (!noAssert) { + checkOffset(offset, byteLength, this.length); + } + + var val = this[offset + --byteLength]; + var mul = 1; + + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul; + } + + return val; + }; + + Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length); + return this[offset]; + }; + + Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length); + return this[offset] | this[offset + 1] << 8; + }; + + Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length); + return this[offset] << 8 | this[offset + 1]; + }; + + Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length); + return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000; + }; + + Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length); + return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]); + }; + + Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) { + offset = offset | 0; + byteLength = byteLength | 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + var val = this[offset]; + var mul = 1; + var i = 0; + + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul; + } + + mul *= 0x80; + if (val >= mul) val -= Math.pow(2, 8 * byteLength); + return val; + }; + + Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) { + offset = offset | 0; + byteLength = byteLength | 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + var i = byteLength; + var mul = 1; + var val = this[offset + --i]; + + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul; + } + + mul *= 0x80; + if (val >= mul) val -= Math.pow(2, 8 * byteLength); + return val; + }; + + Buffer.prototype.readInt8 = function readInt8(offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length); + if (!(this[offset] & 0x80)) return this[offset]; + return (0xff - this[offset] + 1) * -1; + }; + + Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length); + var val = this[offset] | this[offset + 1] << 8; + return val & 0x8000 ? val | 0xFFFF0000 : val; + }; + + Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length); + var val = this[offset + 1] | this[offset] << 8; + return val & 0x8000 ? val | 0xFFFF0000 : val; + }; + + Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length); + return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24; + }; + + Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length); + return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]; + }; + + Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length); + return read(this, offset, true, 23, 4); + }; + + Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length); + return read(this, offset, false, 23, 4); + }; + + Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length); + return read(this, offset, true, 52, 8); + }; + + Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length); + return read(this, offset, false, 52, 8); + }; + + function checkInt(buf, value, offset, ext, max, min) { + if (!internalIsBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance'); + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds'); + if (offset + ext > buf.length) throw new RangeError('Index out of range'); + } + + Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) { + value = +value; + offset = offset | 0; + byteLength = byteLength | 0; + + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1; + checkInt(this, value, offset, byteLength, maxBytes, 0); + } + + var mul = 1; + var i = 0; + this[offset] = value & 0xFF; + + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = value / mul & 0xFF; + } + + return offset + byteLength; + }; + + Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) { + value = +value; + offset = offset | 0; + byteLength = byteLength | 0; + + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1; + checkInt(this, value, offset, byteLength, maxBytes, 0); + } + + var i = byteLength - 1; + var mul = 1; + this[offset + i] = value & 0xFF; + + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = value / mul & 0xFF; + } + + return offset + byteLength; + }; + + Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0); + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value); + this[offset] = value & 0xff; + return offset + 1; + }; + + function objectWriteUInt16(buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1; + + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8; + } + } + + Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); + + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value & 0xff; + this[offset + 1] = value >>> 8; + } else { + objectWriteUInt16(this, value, offset, true); + } + + return offset + 2; + }; + + Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); + + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value >>> 8; + this[offset + 1] = value & 0xff; + } else { + objectWriteUInt16(this, value, offset, false); + } + + return offset + 2; + }; + + function objectWriteUInt32(buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1; + + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff; + } + } + + Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); + + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = value >>> 24; + this[offset + 2] = value >>> 16; + this[offset + 1] = value >>> 8; + this[offset] = value & 0xff; + } else { + objectWriteUInt32(this, value, offset, true); + } + + return offset + 4; + }; + + Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); + + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 0xff; + } else { + objectWriteUInt32(this, value, offset, false); + } + + return offset + 4; + }; + + Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) { + value = +value; + offset = offset | 0; + + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1); + checkInt(this, value, offset, byteLength, limit - 1, -limit); + } + + var i = 0; + var mul = 1; + var sub = 0; + this[offset] = value & 0xFF; + + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1; + } + + this[offset + i] = (value / mul >> 0) - sub & 0xFF; + } + + return offset + byteLength; + }; + + Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) { + value = +value; + offset = offset | 0; + + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1); + checkInt(this, value, offset, byteLength, limit - 1, -limit); + } + + var i = byteLength - 1; + var mul = 1; + var sub = 0; + this[offset + i] = value & 0xFF; + + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1; + } + + this[offset + i] = (value / mul >> 0) - sub & 0xFF; + } + + return offset + byteLength; + }; + + Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80); + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value); + if (value < 0) value = 0xff + value + 1; + this[offset] = value & 0xff; + return offset + 1; + }; + + Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); + + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value & 0xff; + this[offset + 1] = value >>> 8; + } else { + objectWriteUInt16(this, value, offset, true); + } + + return offset + 2; + }; + + Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); + + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value >>> 8; + this[offset + 1] = value & 0xff; + } else { + objectWriteUInt16(this, value, offset, false); + } + + return offset + 2; + }; + + Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); + + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value & 0xff; + this[offset + 1] = value >>> 8; + this[offset + 2] = value >>> 16; + this[offset + 3] = value >>> 24; + } else { + objectWriteUInt32(this, value, offset, true); + } + + return offset + 4; + }; + + Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { + value = +value; + offset = offset | 0; + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); + if (value < 0) value = 0xffffffff + value + 1; + + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 0xff; + } else { + objectWriteUInt32(this, value, offset, false); + } + + return offset + 4; + }; + + function checkIEEE754(buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range'); + if (offset < 0) throw new RangeError('Index out of range'); + } + + function writeFloat(buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4); + } + + write(buf, value, offset, littleEndian, 23, 4); + return offset + 4; + } + + Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert); + }; + + Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert); + }; + + function writeDouble(buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8); + } + + write(buf, value, offset, littleEndian, 52, 8); + return offset + 8; + } + + Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert); + }; + + Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert); + }; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) + + + Buffer.prototype.copy = function copy(target, targetStart, start, end) { + if (!start) start = 0; + if (!end && end !== 0) end = this.length; + if (targetStart >= target.length) targetStart = target.length; + if (!targetStart) targetStart = 0; + if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done + + if (end === start) return 0; + if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions + + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds'); + } + + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds'); + if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob? + + if (end > this.length) end = this.length; + + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start; + } + + var len = end - start; + var i; + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start]; + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start]; + } + } else { + Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart); + } + + return len; + }; // Usage: + // buffer.fill(number[, offset[, end]]) + // buffer.fill(buffer[, offset[, end]]) + // buffer.fill(string[, offset[, end]][, encoding]) + + + Buffer.prototype.fill = function fill(val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start; + start = 0; + end = this.length; + } else if (typeof end === 'string') { + encoding = end; + end = this.length; + } + + if (val.length === 1) { + var code = val.charCodeAt(0); + + if (code < 256) { + val = code; + } + } + + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string'); + } + + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding); + } + } else if (typeof val === 'number') { + val = val & 255; + } // Invalid ranges are not set to a default, so can range check early. + + + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index'); + } + + if (end <= start) { + return this; + } + + start = start >>> 0; + end = end === undefined ? this.length : end >>> 0; + if (!val) val = 0; + var i; + + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val; + } + } else { + var bytes = internalIsBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString()); + var len = bytes.length; + + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len]; + } + } + + return this; + }; // HELPER FUNCTIONS + // ================ + + + var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g; + + function base64clean(str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to '' + + if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + + while (str.length % 4 !== 0) { + str = str + '='; + } + + return str; + } + + function stringtrim(str) { + if (str.trim) return str.trim(); + return str.replace(/^\s+|\s+$/g, ''); + } + + function toHex(n) { + if (n < 16) return '0' + n.toString(16); + return n.toString(16); + } + + function utf8ToBytes(string, units) { + units = units || Infinity; + var codePoint; + var length = string.length; + var leadSurrogate = null; + var bytes = []; + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i); // is surrogate component + + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + continue; + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + continue; + } // valid lead + + + leadSurrogate = codePoint; + continue; + } // 2 leads in a row + + + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + leadSurrogate = codePoint; + continue; + } // valid surrogate pair + + + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000; + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + } + + leadSurrogate = null; // encode utf8 + + if (codePoint < 0x80) { + if ((units -= 1) < 0) break; + bytes.push(codePoint); + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break; + bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80); + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break; + bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80); + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break; + bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80); + } else { + throw new Error('Invalid code point'); + } + } + + return bytes; + } + + function asciiToBytes(str) { + var byteArray = []; + + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF); + } + + return byteArray; + } + + function utf16leToBytes(str, units) { + var c, hi, lo; + var byteArray = []; + + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break; + c = str.charCodeAt(i); + hi = c >> 8; + lo = c % 256; + byteArray.push(lo); + byteArray.push(hi); + } + + return byteArray; + } + + function base64ToBytes(str) { + return toByteArray(base64clean(str)); + } + + function blitBuffer(src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if (i + offset >= dst.length || i >= src.length) break; + dst[i + offset] = src[i]; + } + + return i; + } + + function isnan(val) { + return val !== val; // eslint-disable-line no-self-compare + } // the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence + // The _isBuffer check is for Safari 5-7 support, because it's missing + // Object.prototype.constructor. Remove this eventually + + + function isBuffer(obj) { + return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj)); + } + + function isFastBuffer(obj) { + return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj); + } // For Node v0.10 support. Remove this eventually. + + + function isSlowBuffer(obj) { + return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0)); + } + + var bufferEs6 = /*#__PURE__*/Object.freeze({ + __proto__: null, + Buffer: Buffer, + INSPECT_MAX_BYTES: INSPECT_MAX_BYTES, + SlowBuffer: SlowBuffer, + isBuffer: isBuffer, + kMaxLength: _kMaxLength + }); + + var jspdf_min = createCommonjsModule(function (module) { + /** + * jsPDF - PDF Document creation from JavaScript + * Version 1.0.150-git Built on 2014-05-30T00:40 + * CommitID dcbc9fcb9b + * + * Copyright (c) 2010-2014 James Hall, https://github.com/MrRio/jsPDF + * 2010 Aaron Spike, https://github.com/acspike + * 2012 Willow Systems Corporation, willow-systems.com + * 2012 Pablo Hess, https://github.com/pablohess + * 2012 Florian Jenett, https://github.com/fjenett + * 2013 Warren Weckesser, https://github.com/warrenweckesser + * 2013 Youssef Beddad, https://github.com/lifof + * 2013 Lee Driscoll, https://github.com/lsdriscoll + * 2013 Stefan Slonevskiy, https://github.com/stefslon + * 2013 Jeremy Morel, https://github.com/jmorel + * 2013 Christoph Hartmann, https://github.com/chris-rock + * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria + * 2014 James Makes, https://github.com/dollaruw + * 2014 Diego Casorran, https://github.com/diegocr + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Contributor(s): + * siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango, + * kim3er, mfo, alnorth, + */ + + /** + * jsPDF addHTML PlugIn + * Copyright (c) 2014 Diego Casorran + * Licensed under the MIT License. + * http://opensource.org/licenses/mit-license + */ + + /** + * jsPDF addImage plugin + * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/ + * 2013 Chris Dowling, https://github.com/gingerchris + * 2013 Trinh Ho, https://github.com/ineedfat + * 2013 Edwin Alejandro Perez, https://github.com/eaparango + * 2013 Norah Smith, https://github.com/burnburnrocket + * 2014 Diego Casorran, https://github.com/diegocr + * 2014 James Robb, https://github.com/jamesbrobb + */ + + /** + * jsPDF Cell plugin + * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com + * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br + * 2013 Lee Driscoll, https://github.com/lsdriscoll + * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria + * 2014 James Hall, james@parall.ax + * 2014 Diego Casorran, https://github.com/diegocr + */ + + /** + * jsPDF fromHTML plugin. BETA stage. API subject to change. Needs browser + * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com + * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria + * 2014 Diego Casorran, https://github.com/diegocr + * 2014 Daniel Husar, https://github.com/danielhusar + * 2014 Wolfgang Gassler, https://github.com/woolfg + */ + + /** + * jsPDF JavaScript plugin + * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com + */ + + /** + * jsPDF PNG PlugIn + * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb + */ + + /** + jsPDF Silly SVG plugin + Copyright (c) 2012 Willow Systems Corporation, willow-systems.com + */ + + /** + * jsPDF split_text_to_size plugin - MIT license. + * Copyright (c) 2012 Willow Systems Corporation, willow-systems.com + * 2014 Diego Casorran, https://github.com/diegocr + */ + + /** + jsPDF standard_fonts_metrics plugin + Copyright (c) 2012 Willow Systems Corporation, willow-systems.com + MIT license. + */ + + /** + * jsPDF total_pages plugin + * Copyright (c) 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br + */ + + /* Blob.js + * A Blob implementation. + * 2014-05-27 + * By Eli Grey, http://eligrey.com + * By Devin Samarin, https://github.com/eboyjr + * License: X11/MIT + * See https://github.com/eligrey/Blob.js/blob/master/LICENSE.md + */ + + /* FileSaver.js + * A saveAs() FileSaver implementation. + * 2014-05-27 + * By Eli Grey, http://eligrey.com + * License: X11/MIT + * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md + */ + + /* + * Copyright (c) 2012 chick307 + * Licensed under the MIT License. + * http://opensource.org/licenses/mit-license + */ + + /* + Deflate.js - https://github.com/gildas-lormeau/zip.js + Copyright (c) 2013 Gildas Lormeau. All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + 3. The names of the authors may not be used to endorse or promote products + derived from this software without specific prior written permission. + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT, + INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + /* + # PNG.js + # Copyright (c) 2011 Devon Govett + # MIT LICENSE + # + */ + + /* + * Extracted from pdf.js + * https://github.com/andreasgal/pdf.js + * Copyright (c) 2011 Mozilla Foundation + * Contributors: Andreas Gal + * Chris G Jones + * Shaon Barman + * Vivien Nicolas <21@vingtetun.org> + * Justin D'Arcangelo + * Yury Delendik + */ + + /** + * JavaScript Polyfill functions for jsPDF + * Collected from public resources by + * https://github.com/diegocr + */ + !function (t, e) { + e["true"] = t; + + var r = function (t) { + + function e(e) { + var r = {}; + this.subscribe = function (t, e, n) { + if ("function" != typeof e) return !1; + r.hasOwnProperty(t) || (r[t] = {}); + var s = Math.random().toString(35); + return r[t][s] = [e, !!n], s; + }, this.unsubscribe = function (t) { + for (var e in r) { + if (r[e][t]) return delete r[e][t], !0; + } + + return !1; + }, this.publish = function (n) { + if (r.hasOwnProperty(n)) { + var s = Array.prototype.slice.call(arguments, 1), + o = []; + + for (var i in r[n]) { + var a = r[n][i]; + + try { + a[0].apply(e, s); + } catch (u) { + t.console && console.error("jsPDF PubSub Error", u.message, u); + } + + a[1] && o.push(i); + } + + o.length && o.forEach(this.unsubscribe); + } + }; + } + + function r(a, u, c, l) { + var f = {}; + "object" == _typeof(a) && (f = a, a = f.orientation, u = f.unit || u, c = f.format || c, l = f.compress || f.compressPdf || l), u = u || "mm", c = c || "a4", a = ("" + (a || "P")).toLowerCase(); + + var d, + h, + p, + m, + w, + y = ("" + c).toLowerCase(), + g = !!l && "function" == typeof Uint8Array, + v = f.textColor || "0 g", + b = f.drawColor || "0 G", + q = f.fontSize || 16, + x = f.lineHeight || 1.15, + k = f.lineWidth || .200025, + _ = 2, + A = !1, + C = [], + S = {}, + E = {}, + z = 0, + I = [], + T = [], + B = 0, + O = 0, + P = 0, + R = { + title: "", + subject: "", + author: "", + keywords: "", + creator: "" + }, + D = {}, + U = new e(D), + F = function F(t) { + return t.toFixed(2); + }, + L = function L(t) { + return t.toFixed(3); + }, + j = function j(t) { + return ("0" + parseInt(t)).slice(-2); + }, + N = function N(t) { + A ? I[z].push(t) : (P += t.length + 1, T.push(t)); + }, + M = function M() { + return _++, C[_] = P, N(_ + " 0 obj"), _; + }, + H = function H(t) { + N("stream"), N(t), N("endstream"); + }, + G = function G() { + var e, + n, + o, + i, + a, + u, + c, + l = m * h, + f = w * h; + + for (c = t.adler32cs || r.adler32cs, g && "undefined" == typeof c && (g = !1), e = 1; z >= e; e++) { + if (M(), N("<>"), N("endobj"), n = I[e].join("\n"), M(), g) { + for (o = [], i = n.length; i--;) { + o[i] = n.charCodeAt(i); + } + + u = c.from(n), a = new s(6), a.append(new Uint8Array(o)), n = a.flush(), o = new Uint8Array(n.length + 6), o.set(new Uint8Array([120, 156])), o.set(n, 2), o.set(new Uint8Array([255 & u, u >> 8 & 255, u >> 16 & 255, u >> 24 & 255]), n.length + 2), n = String.fromCharCode.apply(null, o), N("<>"); + } else N("<>"); + + H(n), N("endobj"); + } + + C[1] = P, N("1 0 obj"), N("< i; i++) { + d += 3 + 2 * i + " 0 R "; + } + + N(d + "]"), N("/Count " + z), N("/MediaBox [0 0 " + F(l) + " " + F(f) + "]"), N(">>"), N("endobj"); + }, + J = function J(t) { + t.objectNumber = M(), N("<>"), N("endobj"); + }, + V = function V() { + for (var t in S) { + S.hasOwnProperty(t) && J(S[t]); + } + }, + W = function W() { + U.publish("putXobjectDict"); + }, + X = function X() { + N("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"), N("/Font <<"); + + for (var t in S) { + S.hasOwnProperty(t) && N("/" + t + " " + S[t].objectNumber + " 0 R"); + } + + N(">>"), N("/XObject <<"), W(), N(">>"); + }, + Y = function Y() { + V(), U.publish("putResources"), C[2] = P, N("2 0 obj"), N("<<"), X(), N(">>"), N("endobj"), U.publish("postPutResources"); + }, + K = function K(t, e, r) { + E.hasOwnProperty(e) || (E[e] = {}), E[e][r] = t; + }, + Q = function Q(t, e, r, n) { + var s = "F" + (Object.keys(S).length + 1).toString(10), + o = S[s] = { + id: s, + PostScriptName: t, + fontName: e, + fontStyle: r, + encoding: n, + metadata: {} + }; + return K(s, e, r), U.publish("addFont", o), s; + }, + $ = function $() { + for (var t = "helvetica", e = "times", r = "courier", n = "normal", s = "bold", o = "italic", i = "bolditalic", a = "StandardEncoding", u = [["Helvetica", t, n], ["Helvetica-Bold", t, s], ["Helvetica-Oblique", t, o], ["Helvetica-BoldOblique", t, i], ["Courier", r, n], ["Courier-Bold", r, s], ["Courier-Oblique", r, o], ["Courier-BoldOblique", r, i], ["Times-Roman", e, n], ["Times-Bold", e, s], ["Times-Italic", e, o], ["Times-BoldItalic", e, i]], c = 0, l = u.length; l > c; c++) { + var f = Q(u[c][0], u[c][1], u[c][2], a), + d = u[c][0].split("-"); + K(f, d[0], d[1] || ""); + } + + U.publish("addFonts", { + fonts: S, + dictionary: E + }); + }, + Z = function Z(e) { + return e.foo = function () { + try { + return e.apply(this, arguments); + } catch (r) { + var n = r.stack || ""; + ~n.indexOf(" at ") && (n = n.split(" at ")[1]); + var s = "Error in function " + n.split("\n")[0].split("<")[0] + ": " + r.message; + if (!t.console) throw new Error(s); + console.log(s, r), t.alert && alert(s), console.trace(); + } + }, e.foo.bar = e, e.foo; + }, + te = function te(t, e) { + var r, n, s, o, i, a, u, c, l; + + if (e = e || {}, s = e.sourceEncoding || "Unicode", i = e.outputEncoding, (e.autoencode || i) && S[d].metadata && S[d].metadata[s] && S[d].metadata[s].encoding && (o = S[d].metadata[s].encoding, !i && S[d].encoding && (i = S[d].encoding), !i && o.codePages && (i = o.codePages[0]), "string" == typeof i && (i = o[i]), i)) { + for (u = !1, a = [], r = 0, n = t.length; n > r; r++) { + c = i[t.charCodeAt(r)], c ? a.push(String.fromCharCode(c)) : a.push(t[r]), a[r].charCodeAt(0) >> 8 && (u = !0); + } + + t = a.join(""); + } + + for (r = t.length; void 0 === u && 0 !== r;) { + t.charCodeAt(r - 1) >> 8 && (u = !0), r--; + } + + if (!u) return t; + + for (a = e.noBOM ? [] : [254, 255], r = 0, n = t.length; n > r; r++) { + if (c = t.charCodeAt(r), l = c >> 8, l >> 8) throw new Error("Character at position " + r + " of string '" + t + "' exceeds 16bits. Cannot be encoded into UCS-2 BE"); + a.push(l), a.push(c - (l << 8)); + } + + return String.fromCharCode.apply(void 0, a); + }, + ee = function ee(t, e) { + return te(t, e).replace(/\\/g, "\\\\").replace(/\(/g, "\\(").replace(/\)/g, "\\)"); + }, + re = function re() { + N("/Producer (jsPDF " + r.version + ")"); + + for (var t in R) { + R.hasOwnProperty(t) && R[t] && N("/" + t.substr(0, 1).toUpperCase() + t.substr(1) + " (" + ee(R[t]) + ")"); + } + + var e = new Date(); + N(["/CreationDate (D:", e.getFullYear(), j(e.getMonth() + 1), j(e.getDate()), j(e.getHours()), j(e.getMinutes()), j(e.getSeconds()), ")"].join("")); + }, + ne = function ne() { + N("/Type /Catalog"), N("/Pages 1 0 R"), N("/OpenAction [3 0 R /FitH null]"), N("/PageLayout /OneColumn"), U.publish("putCatalog"); + }, + se = function se() { + N("/Size " + (_ + 1)), N("/Root " + _ + " 0 R"), N("/Info " + (_ - 1) + " 0 R"); + }, + oe = function oe() { + z++, A = !0, I[z] = []; + }, + ie = function ie() { + oe(), N(F(k * h) + " w"), N(b), 0 !== B && N(B + " J"), 0 !== O && N(O + " j"), U.publish("addPage", { + pageNumber: z + }); + }, + ae = function ae(t, e) { + var r; + t = void 0 !== t ? t : S[d].fontName, e = void 0 !== e ? e : S[d].fontStyle; + + try { + r = E[t][e] || E[t].normal; + } catch (n) {} + + if (!r) throw new Error("Unable to look up font label for font '" + t + "', '" + e + "'. Refer to getFontList() for available fonts."); + return r; + }, + ue = function ue() { + A = !1, _ = 2, T = [], C = [], N("%PDF-" + o), G(), Y(), M(), N("<<"), re(), N(">>"), N("endobj"), M(), N("<<"), ne(), N(">>"), N("endobj"); + var t, + e = P, + r = "0000000000"; + + for (N("xref"), N("0 " + (_ + 1)), N(r + " 65535 f "), t = 1; _ >= t; t++) { + N((r + C[t]).slice(-10) + " 00000 n "); + } + + return N("trailer"), N("<<"), se(), N(">>"), N("startxref"), N(e), N("%%EOF"), A = !0, T.join("\n"); + }, + ce = function ce(t) { + var e = "S"; + return "F" === t ? e = "f" : "FD" === t || "DF" === t ? e = "B" : ("f" === t || "f*" === t || "B" === t || "B*" === t) && (e = t), e; + }, + le = function le() { + for (var t = ue(), e = t.length, r = new ArrayBuffer(e), n = new Uint8Array(r); e--;) { + n[e] = t.charCodeAt(e); + } + + return r; + }, + fe = function fe() { + return new Blob([le()], { + type: "application/pdf" + }); + }, + de = Z(function (e, r) { + switch (e) { + case void 0: + return ue(); + + case "save": + if (navigator.getUserMedia && (void 0 === t.URL || void 0 === t.URL.createObjectURL)) return D.output("dataurlnewwindow"); + n(fe(), r), "function" == typeof n.unload && t.setTimeout && setTimeout(n.unload, 70); + break; + + case "arraybuffer": + return le(); + + case "blob": + return fe(); + + case "datauristring": + case "dataurlstring": + return "data:application/pdf;base64," + btoa(ue()); + + case "datauri": + case "dataurl": + t.document.location.href = "data:application/pdf;base64," + btoa(ue()); + break; + + case "dataurlnewwindow": + t.open("data:application/pdf;base64," + btoa(ue())); + break; + + default: + throw new Error('Output type "' + e + '" is not supported.'); + } + }); + + switch (u) { + case "pt": + h = 1; + break; + + case "mm": + h = 72 / 25.4; + break; + + case "cm": + h = 72 / 2.54; + break; + + case "in": + h = 72; + break; + + case "px": + h = 96 / 72; + break; + + case "pc": + h = 12; + break; + + case "em": + h = 12; + break; + + case "ex": + h = 6; + break; + + default: + throw "Invalid unit: " + u; + } + + if (i.hasOwnProperty(y)) w = i[y][1] / h, m = i[y][0] / h;else try { + w = c[1], m = c[0]; + } catch (he) { + throw new Error("Invalid format: " + c); + } + if ("p" === a || "portrait" === a) a = "p", m > w && (p = m, m = w, w = p);else { + if ("l" !== a && "landscape" !== a) throw "Invalid orientation: " + a; + a = "l", w > m && (p = m, m = w, w = p); + } + D.internal = { + pdfEscape: ee, + getStyle: ce, + getFont: function getFont() { + return S[ae.apply(D, arguments)]; + }, + getFontSize: function getFontSize() { + return q; + }, + getLineHeight: function getLineHeight() { + return q * x; + }, + write: function write(t) { + N(1 === arguments.length ? t : Array.prototype.join.call(arguments, " ")); + }, + getCoordinateString: function getCoordinateString(t) { + return F(t * h); + }, + getVerticalCoordinateString: function getVerticalCoordinateString(t) { + return F((w - t) * h); + }, + collections: {}, + newObject: M, + putStream: H, + events: U, + scaleFactor: h, + pageSize: { + width: m, + height: w + }, + output: function output(t, e) { + return de(t, e); + }, + getNumberOfPages: function getNumberOfPages() { + return I.length - 1; + }, + pages: I + }, D.addPage = function () { + return ie(), this; + }, D.text = function (t, e, r, n, s) { + function o(t) { + return t = t.split(" ").join(Array(f.TabLen || 9).join(" ")), ee(t, n); + } + + "number" == typeof t && (p = r, r = e, e = t, t = p), "string" == typeof t && t.match(/[\n\r]/) && (t = t.split(/\r\n|\r|\n/g)), "number" == typeof n && (s = n, n = null); + var i = "", + a = "Td"; + + if (s) { + s *= Math.PI / 180; + var u = Math.cos(s), + c = Math.sin(s); + i = [F(u), F(c), F(-1 * c), F(u), ""].join(" "), a = "Tm"; + } + + if (n = n || {}, "noBOM" in n || (n.noBOM = !0), "autoencode" in n || (n.autoencode = !0), "string" == typeof t) t = o(t);else { + if (!(t instanceof Array)) throw new Error('Type of text must be string or Array. "' + t + '" is not recognized.'); + + for (var l = t.concat(), m = [], y = l.length; y--;) { + m.push(o(l.shift())); + } + + t = m.join(") Tj\nT* ("); + } + return N("BT\n/" + d + " " + q + " Tf\n" + q * x + " TL\n" + v + "\n" + i + F(e * h) + " " + F((w - r) * h) + " " + a + "\n(" + t + ") Tj\nET"), this; + }, D.line = function (t, e, r, n) { + return this.lines([[r - t, n - e]], t, e); + }, D.lines = function (t, e, r, n, s, o) { + var i, a, u, c, l, f, d, m, y, g, v; + + for ("number" == typeof t && (p = r, r = e, e = t, t = p), n = n || [1, 1], N(L(e * h) + " " + L((w - r) * h) + " m "), i = n[0], a = n[1], c = t.length, g = e, v = r, u = 0; c > u; u++) { + l = t[u], 2 === l.length ? (g = l[0] * i + g, v = l[1] * a + v, N(L(g * h) + " " + L((w - v) * h) + " l")) : (f = l[0] * i + g, d = l[1] * a + v, m = l[2] * i + g, y = l[3] * a + v, g = l[4] * i + g, v = l[5] * a + v, N(L(f * h) + " " + L((w - d) * h) + " " + L(m * h) + " " + L((w - y) * h) + " " + L(g * h) + " " + L((w - v) * h) + " c")); + } + + return o && N(" h"), null !== s && N(ce(s)), this; + }, D.rect = function (t, e, r, n, s) { + ce(s); + return N([F(t * h), F((w - e) * h), F(r * h), F(-n * h), "re"].join(" ")), null !== s && N(ce(s)), this; + }, D.triangle = function (t, e, r, n, s, o, i) { + return this.lines([[r - t, n - e], [s - r, o - n], [t - s, e - o]], t, e, [1, 1], i, !0), this; + }, D.roundedRect = function (t, e, r, n, s, o, i) { + var a = 4 / 3 * (Math.SQRT2 - 1); + return this.lines([[r - 2 * s, 0], [s * a, 0, s, o - o * a, s, o], [0, n - 2 * o], [0, o * a, -(s * a), o, -s, o], [-r + 2 * s, 0], [-(s * a), 0, -s, -(o * a), -s, -o], [0, -n + 2 * o], [0, -(o * a), s * a, -o, s, -o]], t + s, e, [1, 1], i), this; + }, D.ellipse = function (t, e, r, n, s) { + var o = 4 / 3 * (Math.SQRT2 - 1) * r, + i = 4 / 3 * (Math.SQRT2 - 1) * n; + return N([F((t + r) * h), F((w - e) * h), "m", F((t + r) * h), F((w - (e - i)) * h), F((t + o) * h), F((w - (e - n)) * h), F(t * h), F((w - (e - n)) * h), "c"].join(" ")), N([F((t - o) * h), F((w - (e - n)) * h), F((t - r) * h), F((w - (e - i)) * h), F((t - r) * h), F((w - e) * h), "c"].join(" ")), N([F((t - r) * h), F((w - (e + i)) * h), F((t - o) * h), F((w - (e + n)) * h), F(t * h), F((w - (e + n)) * h), "c"].join(" ")), N([F((t + o) * h), F((w - (e + n)) * h), F((t + r) * h), F((w - (e + i)) * h), F((t + r) * h), F((w - e) * h), "c"].join(" ")), null !== s && N(ce(s)), this; + }, D.circle = function (t, e, r, n) { + return this.ellipse(t, e, r, r, n); + }, D.setProperties = function (t) { + for (var e in R) { + R.hasOwnProperty(e) && t[e] && (R[e] = t[e]); + } + + return this; + }, D.setFontSize = function (t) { + return q = t, this; + }, D.setFont = function (t, e) { + return d = ae(t, e), this; + }, D.setFontStyle = D.setFontType = function (t) { + return d = ae(void 0, t), this; + }, D.getFontList = function () { + var t, + e, + r, + n = {}; + + for (t in E) { + if (E.hasOwnProperty(t)) { + n[t] = r = []; + + for (e in E[t]) { + E[t].hasOwnProperty(e) && r.push(e); + } + } + } + + return n; + }, D.setLineWidth = function (t) { + return N((t * h).toFixed(2) + " w"), this; + }, D.setDrawColor = function (t, e, r, n) { + var s; + return s = void 0 === e || void 0 === n && t === e === r ? "string" == typeof t ? t + " G" : F(t / 255) + " G" : void 0 === n ? "string" == typeof t ? [t, e, r, "RG"].join(" ") : [F(t / 255), F(e / 255), F(r / 255), "RG"].join(" ") : "string" == typeof t ? [t, e, r, n, "K"].join(" ") : [F(t), F(e), F(r), F(n), "K"].join(" "), N(s), this; + }, D.setFillColor = function (t, e, r, n) { + var s; + return s = void 0 === e || void 0 === n && t === e === r ? "string" == typeof t ? t + " g" : F(t / 255) + " g" : void 0 === n ? "string" == typeof t ? [t, e, r, "rg"].join(" ") : [F(t / 255), F(e / 255), F(r / 255), "rg"].join(" ") : "string" == typeof t ? [t, e, r, n, "k"].join(" ") : [F(t), F(e), F(r), F(n), "k"].join(" "), N(s), this; + }, D.setTextColor = function (t, e, r) { + if ("string" == typeof t && /^#[0-9A-Fa-f]{6}$/.test(t)) { + var n = parseInt(t.substr(1), 16); + t = n >> 16 & 255, e = n >> 8 & 255, r = 255 & n; + } + + return v = 0 === t && 0 === e && 0 === r || "undefined" == typeof e ? L(t / 255) + " g" : [L(t / 255), L(e / 255), L(r / 255), "rg"].join(" "), this; + }, D.CapJoinStyles = { + 0: 0, + butt: 0, + but: 0, + miter: 0, + 1: 1, + round: 1, + rounded: 1, + circle: 1, + 2: 2, + projecting: 2, + project: 2, + square: 2, + bevel: 2 + }, D.setLineCap = function (t) { + var e = this.CapJoinStyles[t]; + if (void 0 === e) throw new Error("Line cap style of '" + t + "' is not recognized. See or extend .CapJoinStyles property for valid styles"); + return B = e, N(e + " J"), this; + }, D.setLineJoin = function (t) { + var e = this.CapJoinStyles[t]; + if (void 0 === e) throw new Error("Line join style of '" + t + "' is not recognized. See or extend .CapJoinStyles property for valid styles"); + return O = e, N(e + " j"), this; + }, D.output = de, D.save = function (t) { + D.output("save", t); + }; + + for (var pe in r.API) { + r.API.hasOwnProperty(pe) && ("events" === pe && r.API.events.length ? !function (t, e) { + var r, n, s; + + for (s = e.length - 1; -1 !== s; s--) { + r = e[s][0], n = e[s][1], t.subscribe.apply(t, [r].concat("function" == typeof n ? [n] : n)); + } + }(U, r.API.events) : D[pe] = r.API[pe]); + } + + return $(), d = "F1", ie(), U.publish("initialized"), D; + } + + var o = "1.3", + i = { + a0: [2383.94, 3370.39], + a1: [1683.78, 2383.94], + a2: [1190.55, 1683.78], + a3: [841.89, 1190.55], + a4: [595.28, 841.89], + a5: [419.53, 595.28], + a6: [297.64, 419.53], + a7: [209.76, 297.64], + a8: [147.4, 209.76], + a9: [104.88, 147.4], + a10: [73.7, 104.88], + b0: [2834.65, 4008.19], + b1: [2004.09, 2834.65], + b2: [1417.32, 2004.09], + b3: [1000.63, 1417.32], + b4: [708.66, 1000.63], + b5: [498.9, 708.66], + b6: [354.33, 498.9], + b7: [249.45, 354.33], + b8: [175.75, 249.45], + b9: [124.72, 175.75], + b10: [87.87, 124.72], + c0: [2599.37, 3676.54], + c1: [1836.85, 2599.37], + c2: [1298.27, 1836.85], + c3: [918.43, 1298.27], + c4: [649.13, 918.43], + c5: [459.21, 649.13], + c6: [323.15, 459.21], + c7: [229.61, 323.15], + c8: [161.57, 229.61], + c9: [113.39, 161.57], + c10: [79.37, 113.39], + dl: [311.81, 623.62], + letter: [612, 792], + "government-letter": [576, 756], + legal: [612, 1008], + "junior-legal": [576, 360], + ledger: [1224, 792], + tabloid: [792, 1224], + "credit-card": [153, 243] + }; + return r.API = { + events: [] + }, r.version = "1.0.150-git 2014-05-30T00:40:diegocr", t.jsPDF = r, r; + }("undefined" != typeof self && self || "undefined" != typeof window && window || this); + + !function (t) { + + t.addHTML = function (t, e, r, n, s) { + if ("undefined" == typeof html2canvas && "undefined" == typeof rasterizeHTML) throw new Error("You need either https://github.com/niklasvh/html2canvas or https://github.com/cburgmer/rasterizeHTML.js"); + "number" != typeof e && (n = e, s = r), "function" == typeof n && (s = n, n = null); + var o = this.internal, + i = o.scaleFactor, + a = o.pageSize.width, + u = o.pageSize.height; + if (n = n || {}, n.onrendered = function (t) { + e = parseInt(e) || 0, r = parseInt(r) || 0; + var o = n.dim || {}, + c = o.h || 0, + l = o.w || Math.min(a, t.width / i) - e, + f = "JPEG"; + + if (n.format && (f = n.format), t.height > u && n.pagesplit) { + var d = function () { + for (var n = 0;;) { + var o = document.createElement("canvas"); + o.width = Math.min(a * i, t.width), o.height = Math.min(u * i, t.height - n); + var c = o.getContext("2d"); + c.drawImage(t, 0, n, t.width, o.height, 0, 0, o.width, o.height); + var d = [o, e, n ? 0 : r, o.width / i, o.height / i, f, null, "SLOW"]; + if (this.addImage.apply(this, d), n += o.height, n >= t.height) break; + this.addPage(); + } + + s(l, n, null, d); + }.bind(this); + + if ("CANVAS" === t.nodeName) { + var h = new Image(); + h.onload = d, h.src = t.toDataURL("image/png"), t = h; + } else d(); + } else { + var p = Math.random().toString(35), + m = [t, e, r, l, c, f, p, "SLOW"]; + this.addImage.apply(this, m), s(l, c, p, m); + } + }.bind(this), "undefined" != typeof html2canvas && !n.rstz) return html2canvas(t, n); + + if ("undefined" != typeof rasterizeHTML) { + var c = "drawDocument"; + return "string" == typeof t && (c = /^http/.test(t) ? "drawURL" : "drawHTML"), n.width = n.width || a * i, rasterizeHTML[c](t, void 0, n).then(function (t) { + n.onrendered(t.image); + }, function (t) { + s(null, t); + }); + } + + return null; + }; + }(r.API), function (t) { + + var e = "addImage_", + r = ["jpeg", "jpg", "png"], + n = function n(t) { + var e = this.internal.newObject(), + r = this.internal.write, + s = this.internal.putStream; + + if (t.n = e, r("<>"), "trns" in t && t.trns.constructor == Array) { + for (var o = "", i = 0, a = t.trns.length; a > i; i++) { + o += t.trns[i] + " " + t.trns[i] + " "; + } + + r("/Mask [" + o + "]"); + } + + if ("smask" in t && r("/SMask " + (e + 1) + " 0 R"), r("/Length " + t.data.length + ">>"), s(t.data), r("endobj"), "smask" in t) { + var u = "/Predictor 15 /Colors 1 /BitsPerComponent " + t.bpc + " /Columns " + t.w, + c = { + w: t.w, + h: t.h, + cs: "DeviceGray", + bpc: t.bpc, + dp: u, + data: t.smask + }; + "f" in t && (c.f = t.f), n.call(this, c); + } + + t.cs === this.color_spaces.INDEXED && (this.internal.newObject(), r("<< /Length " + t.pal.length + ">>"), s(this.arrayBufferToBinaryString(new Uint8Array(t.pal))), r("endobj")); + }, + s = function s() { + var t = this.internal.collections[e + "images"]; + + for (var r in t) { + n.call(this, t[r]); + } + }, + o = function o() { + var t, + r = this.internal.collections[e + "images"], + n = this.internal.write; + + for (var s in r) { + t = r[s], n("/I" + t.i, t.n, "0", "R"); + } + }, + i = function i(e) { + return e && "string" == typeof e && (e = e.toUpperCase()), e in t.image_compression ? e : t.image_compression.NONE; + }, + a = function a() { + var t = this.internal.collections[e + "images"]; + return t || (this.internal.collections[e + "images"] = t = {}, this.internal.events.subscribe("putResources", s), this.internal.events.subscribe("putXobjectDict", o)), t; + }, + u = function u(t) { + var e = 0; + return t && (e = Object.keys ? Object.keys(t).length : function (t) { + var e = 0; + + for (var r in t) { + t.hasOwnProperty(r) && e++; + } + + return e; + }(t)), e; + }, + c = function c(t) { + return "undefined" == typeof t || null === t; + }, + l = function l() { + return void 0; + }, + f = function f(t) { + return -1 === r.indexOf(t); + }, + d = function d(e) { + return "function" != typeof t["process" + e.toUpperCase()]; + }, + h = function h(t) { + return "object" == _typeof(t) && 1 === t.nodeType; + }, + p = function p(t, e) { + if ("IMG" === t.nodeName && t.hasAttribute("src") && 0 === ("" + t.getAttribute("src")).indexOf("data:image/")) return t.getAttribute("src"); + if ("CANVAS" === t.nodeName) var r = t;else { + var r = document.createElement("canvas"); + r.width = t.clientWidth || t.width, r.height = t.clientHeight || t.height; + var n = r.getContext("2d"); + if (!n) throw "addImage requires canvas to be supported by browser."; + n.drawImage(t, 0, 0, r.width, r.height); + } + return r.toDataURL("png" == e ? "image/png" : "image/jpeg"); + }, + m = function m(t, e) { + var r; + if (e) for (var n in e) { + if (t === e[n].alias) { + r = e[n]; + break; + } + } + return r; + }, + w = function w(t, e, r) { + return t || e || (t = -96, e = -96), 0 > t && (t = -1 * r.w * 72 / t / this.internal.scaleFactor), 0 > e && (e = -1 * r.h * 72 / e / this.internal.scaleFactor), 0 === t && (t = e * r.w / r.h), 0 === e && (e = t * r.h / r.w), [t, e]; + }, + y = function y(t, e, r, n, s, o, i) { + var a = w.call(this, r, n, s), + u = this.internal.getCoordinateString, + c = this.internal.getVerticalCoordinateString; + r = a[0], n = a[1], i[o] = s, this.internal.write("q", u(r), "0 0", u(n), u(t), c(e + n), "cm /I" + s.i, "Do Q"); + }; + + t.color_spaces = { + DEVICE_RGB: "DeviceRGB", + DEVICE_GRAY: "DeviceGray", + DEVICE_CMYK: "DeviceCMYK", + CAL_GREY: "CalGray", + CAL_RGB: "CalRGB", + LAB: "Lab", + ICC_BASED: "ICCBased", + INDEXED: "Indexed", + PATTERN: "Pattern", + SEPERATION: "Seperation", + DEVICE_N: "DeviceN" + }, t.decode = { + DCT_DECODE: "DCTDecode", + FLATE_DECODE: "FlateDecode", + LZW_DECODE: "LZWDecode", + JPX_DECODE: "JPXDecode", + JBIG2_DECODE: "JBIG2Decode", + ASCII85_DECODE: "ASCII85Decode", + ASCII_HEX_DECODE: "ASCIIHexDecode", + RUN_LENGTH_DECODE: "RunLengthDecode", + CCITT_FAX_DECODE: "CCITTFaxDecode" + }, t.image_compression = { + NONE: "NONE", + FAST: "FAST", + MEDIUM: "MEDIUM", + SLOW: "SLOW" + }, t.isString = function (t) { + return "string" == typeof t; + }, t.extractInfoFromBase64DataURI = function (t) { + return /^data:([\w]+?\/([\w]+?));base64,(.+?)$/g.exec(t); + }, t.supportsArrayBuffer = function () { + return "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array; + }, t.isArrayBuffer = function (t) { + return this.supportsArrayBuffer() ? t instanceof ArrayBuffer : !1; + }, t.isArrayBufferView = function (t) { + return this.supportsArrayBuffer() ? "undefined" == typeof Uint32Array ? !1 : t instanceof Int8Array || t instanceof Uint8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array : !1; + }, t.binaryStringToUint8Array = function (t) { + for (var e = t.length, r = new Uint8Array(e), n = 0; e > n; n++) { + r[n] = t.charCodeAt(n); + } + + return r; + }, t.arrayBufferToBinaryString = function (t) { + this.isArrayBuffer(t) && (t = new Uint8Array(t)); + + for (var e = "", r = t.byteLength, n = 0; r > n; n++) { + e += String.fromCharCode(t[n]); + } + + return e; + }, t.arrayBufferToBase64 = function (t) { + for (var e, r, n, s, o, i = "", a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", u = new Uint8Array(t), c = u.byteLength, l = c % 3, f = c - l, d = 0; f > d; d += 3) { + o = u[d] << 16 | u[d + 1] << 8 | u[d + 2], e = (16515072 & o) >> 18, r = (258048 & o) >> 12, n = (4032 & o) >> 6, s = 63 & o, i += a[e] + a[r] + a[n] + a[s]; + } + + return 1 == l ? (o = u[f], e = (252 & o) >> 2, r = (3 & o) << 4, i += a[e] + a[r] + "==") : 2 == l && (o = u[f] << 8 | u[f + 1], e = (64512 & o) >> 10, r = (1008 & o) >> 4, n = (15 & o) << 2, i += a[e] + a[r] + a[n] + "="), i; + }, t.createImageInfo = function (t, e, r, n, s, o, i, a, u, c, l, f) { + var d = { + alias: a, + w: e, + h: r, + cs: n, + bpc: s, + i: i, + data: t + }; + return o && (d.f = o), u && (d.dp = u), c && (d.trns = c), l && (d.pal = l), f && (d.smask = f), d; + }, t.addImage = function (t, e, n, s, o, w, g, v) { + if ("number" == typeof e) { + var b = w; + w = o, o = s, s = n, n = e, e = b; + } + + var q, + x, + k = a.call(this); + + if (v = i(v), e = (e || "JPEG").toLowerCase(), c(g) && (g = l()), h(t) && (t = p(t, e)), this.isString(t)) { + var _ = this.extractInfoFromBase64DataURI(t); + + _ ? (e = _[2], t = atob(_[3]), this.supportsArrayBuffer() && (x = t, t = this.binaryStringToUint8Array(t))) : 255 !== t.charCodeAt(0) && (q = m(t, k)); + } + + if (f(e)) throw new Error("addImage currently only supports formats " + r + ", not '" + e + "'"); + if (d(e)) throw new Error("please ensure that the plugin for '" + e + "' support is added"); + var A = u(k), + C = q; + if (C || (C = this["process" + e.toUpperCase()](t, A, g, v, x)), !C) throw new Error("An unkwown error occurred whilst processing the image"); + return y.call(this, n, s, o, w, C, A, k), this; + }; + + var g = function g(t) { + var e, r; + if (255 === !t.charCodeAt(0) || 216 === !t.charCodeAt(1) || 255 === !t.charCodeAt(2) || 224 === !t.charCodeAt(3) || !t.charCodeAt(6) === "J".charCodeAt(0) || !t.charCodeAt(7) === "F".charCodeAt(0) || !t.charCodeAt(8) === "I".charCodeAt(0) || !t.charCodeAt(9) === "F".charCodeAt(0) || 0 === !t.charCodeAt(10)) throw new Error("getJpegSize requires a binary string jpeg file"); + + for (var n = 256 * t.charCodeAt(4) + t.charCodeAt(5), s = 4, o = t.length; o > s;) { + if (s += n, 255 !== t.charCodeAt(s)) throw new Error("getJpegSize could not find the size of the image"); + if (192 === t.charCodeAt(s + 1) || 193 === t.charCodeAt(s + 1) || 194 === t.charCodeAt(s + 1) || 195 === t.charCodeAt(s + 1) || 196 === t.charCodeAt(s + 1) || 197 === t.charCodeAt(s + 1) || 198 === t.charCodeAt(s + 1) || 199 === t.charCodeAt(s + 1)) return r = 256 * t.charCodeAt(s + 5) + t.charCodeAt(s + 6), e = 256 * t.charCodeAt(s + 7) + t.charCodeAt(s + 8), [e, r]; + s += 2, n = 256 * t.charCodeAt(s) + t.charCodeAt(s + 1); + } + }, + v = function v(t) { + var e = t[0] << 8 | t[1]; + if (65496 !== e) throw new Error("Supplied data is not a JPEG"); + + for (var r, n, s, o = t.length, i = (t[4] << 8) + t[5], a = 4; o > a;) { + if (a += i, r = b(t, a), i = (r[2] << 8) + r[3], (192 === r[1] || 194 === r[1]) && 255 === r[0] && i > 7) return r = b(t, a + 5), n = (r[2] << 8) + r[3], s = (r[0] << 8) + r[1], { + width: n, + height: s + }; + a += 2; + } + + throw new Error("getJpegSizeFromBytes could not find the size of the image"); + }, + b = function b(t, e) { + return t.subarray(e, e + 4); + }; + + t.processJPEG = function (t, e, r, n, s) { + var o, + i = this.color_spaces.DEVICE_RGB, + a = this.decode.DCT_DECODE, + u = 8; + return this.isString(t) ? (o = g(t), this.createImageInfo(t, o[0], o[1], i, u, a, e, r)) : (this.isArrayBuffer(t) && (t = new Uint8Array(t)), this.isArrayBufferView(t) ? (o = v(t), t = s || this.arrayBufferToBinaryString(t), this.createImageInfo(t, o.width, o.height, i, u, a, e, r)) : null); + }, t.processJPG = function () { + return this.processJPEG.apply(this, arguments); + }; + }(r.API), function (t) { + + t.autoPrint = function () { + var t; + return this.internal.events.subscribe("postPutResources", function () { + t = this.internal.newObject(), this.internal.write("<< /S/Named /Type/Action /N/Print >>", "endobj"); + }), this.internal.events.subscribe("putCatalog", function () { + this.internal.write("/OpenAction " + t + " 0 R"); + }), this; + }; + }(r.API), function (t) { + + var e, + r, + n, + s, + o = 3, + i = 13, + a = { + x: void 0, + y: void 0, + w: void 0, + h: void 0, + ln: void 0 + }, + u = 1, + c = function c(t, e, r, n, s) { + a = { + x: t, + y: e, + w: r, + h: n, + ln: s + }; + }, + l = function l() { + return a; + }, + f = { + left: 0, + top: 0, + bottom: 0 + }; + + t.setHeaderFunction = function (t) { + s = t; + }, t.getTextDimensions = function (t) { + e = this.internal.getFont().fontName, r = this.table_font_size || this.internal.getFontSize(), n = this.internal.getFont().fontStyle; + var s, + o, + i = 19.049976 / 25.4; + return o = document.createElement("font"), o.id = "jsPDFCell", o.style.fontStyle = n, o.style.fontName = e, o.style.fontSize = r + "pt", o.innerText = t, document.body.appendChild(o), s = { + w: (o.offsetWidth + 1) * i, + h: (o.offsetHeight + 1) * i + }, document.body.removeChild(o), s; + }, t.cellAddPage = function () { + var t = this.margins || f; + this.addPage(), c(t.left, t.top, void 0, void 0), u += 1; + }, t.cellInitialize = function () { + a = { + x: void 0, + y: void 0, + w: void 0, + h: void 0, + ln: void 0 + }, u = 1; + }, t.cell = function (t, e, r, n, s, a, u) { + var d = l(); + if (void 0 !== d.ln) if (d.ln === a) t = d.x + d.w, e = d.y;else { + var h = this.margins || f; + d.y + d.h + n + i >= this.internal.pageSize.height - h.bottom && (this.cellAddPage(), this.printHeaders && this.tableHeaderRow && this.printHeaderRow(a, !0)), e = l().y + l().h; + } + if (void 0 !== s[0]) if (this.printingHeaderRow ? this.rect(t, e, r, n, "FD") : this.rect(t, e, r, n), "right" === u) { + if (s instanceof Array) for (var p = 0; p < s.length; p++) { + var m = s[p], + w = this.getStringUnitWidth(m) * this.internal.getFontSize(); + this.text(m, t + r - w - o, e + this.internal.getLineHeight() * (p + 1)); + } + } else this.text(s, t + o, e + this.internal.getLineHeight()); + return c(t, e, r, n, a), this; + }, t.arrayMax = function (t, e) { + var r, + n, + s, + o = t[0]; + + for (r = 0, n = t.length; n > r; r += 1) { + s = t[r], e ? -1 === e(o, s) && (o = s) : s > o && (o = s); + } + + return o; + }, t.table = function (e, r, n, s, o) { + if (!n) throw "No data for PDF table"; + var i, + c, + l, + d, + h, + p, + m, + w, + y, + g, + v = [], + b = [], + q = {}, + x = {}, + k = [], + _ = [], + A = !1, + C = !0, + S = 12, + E = f; + if (E.width = this.internal.pageSize.width, o && (o.autoSize === !0 && (A = !0), o.printHeaders === !1 && (C = !1), o.fontSize && (S = o.fontSize), o.margins && (E = o.margins)), this.lnMod = 0, a = { + x: void 0, + y: void 0, + w: void 0, + h: void 0, + ln: void 0 + }, u = 1, this.printHeaders = C, this.margins = E, this.setFontSize(S), this.table_font_size = S, void 0 === s || null === s) v = Object.keys(n[0]);else if (s[0] && "string" != typeof s[0]) { + var z = 19.049976 / 25.4; + + for (c = 0, l = s.length; l > c; c += 1) { + i = s[c], v.push(i.name), b.push(i.prompt), x[i.name] = i.width * z; + } + } else v = s; + if (A) for (g = function g(t) { + return t[i]; + }, c = 0, l = v.length; l > c; c += 1) { + for (i = v[c], q[i] = n.map(g), k.push(this.getTextDimensions(b[c] || i).w), p = q[i], m = 0, d = p.length; d > m; m += 1) { + h = p[m], k.push(this.getTextDimensions(h).w); + } + + x[i] = t.arrayMax(k); + } + + if (C) { + var I = this.calculateLineHeight(v, x, b.length ? b : v); + + for (c = 0, l = v.length; l > c; c += 1) { + i = v[c], _.push([e, r, x[i], I, String(b.length ? b[c] : i)]); + } + + this.setTableHeaderRow(_), this.printHeaderRow(1, !1); + } + + for (c = 0, l = n.length; l > c; c += 1) { + var I; + + for (w = n[c], I = this.calculateLineHeight(v, x, w), m = 0, y = v.length; y > m; m += 1) { + i = v[m], this.cell(e, r, x[i], I, w[i], c + 2, i.align); + } + } + + return this.lastCellPos = a, this.table_x = e, this.table_y = r, this; + }, t.calculateLineHeight = function (t, e, r) { + for (var n, s = 0, i = 0; i < t.length; i++) { + n = t[i], r[n] = this.splitTextToSize(String(r[n]), e[n] - o); + var a = this.internal.getLineHeight() * r[n].length + o; + a > s && (s = a); + } + + return s; + }, t.setTableHeaderRow = function (t) { + this.tableHeaderRow = t; + }, t.printHeaderRow = function (t, e) { + if (!this.tableHeaderRow) throw "Property tableHeaderRow does not exist."; + var r, n, o, i; + + if (this.printingHeaderRow = !0, void 0 !== s) { + var a = s(this, u); + c(a[0], a[1], a[2], a[3], -1); + } + + this.setFontStyle("bold"); + var l = []; + + for (o = 0, i = this.tableHeaderRow.length; i > o; o += 1) { + this.setFillColor(200, 200, 200), r = this.tableHeaderRow[o], e && (r[1] = this.margins && this.margins.top || 0, l.push(r)), n = [].concat(r), this.cell.apply(this, n.concat(t)); + } + + l.length > 0 && this.setTableHeaderRow(l), this.setFontStyle("normal"), this.printingHeaderRow = !1; + }; + }(r.API), function (t) { + var e, _r, n, s, o, i, a, u, c, l, f, d, h, p, m, w, y; + + e = function () { + function t() {} + + return function (e) { + return t.prototype = e, new t(); + }; + }(), a = function a(t) { + var e, r, n, s, o, i, a; + + for (r = 0, n = t.length, e = void 0, s = !1, i = !1; !s && r !== n;) { + e = t[r] = t[r].trimLeft(), e && (s = !0), r++; + } + + for (r = n - 1; n && !i && -1 !== r;) { + e = t[r] = t[r].trimRight(), e && (i = !0), r--; + } + + for (o = /\s+$/g, a = !0, r = 0; r !== n;) { + e = t[r].replace(/\s+/g, " "), a && (e = e.trimLeft()), e && (a = o.test(e)), t[r] = e, r++; + } + + return t; + }, u = function u(t, e, r, n) { + return this.pdf = t, this.x = e, this.y = r, this.settings = n, this.init(), this; + }, c = function c(t) { + var e, r, s; + + for (e = void 0, s = t.split(","), r = s.shift(); !e && r;) { + e = n[r.trim().toLowerCase()], r = s.shift(); + } + + return e; + }, l = function l(t) { + t = "auto" === t ? "0px" : t, t.indexOf("em") > -1 && !isNaN(Number(t.replace("em", ""))) && (t = 18.719 * Number(t.replace("em", "")) + "px"), t.indexOf("pt") > -1 && !isNaN(Number(t.replace("pt", ""))) && (t = 1.333 * Number(t.replace("pt", "")) + "px"); + var e, r, n; + return r = void 0, e = 16, (n = f[t]) ? n : (n = { + "xx-small": 9, + "x-small": 11, + small: 13, + medium: 16, + large: 19, + "x-large": 23, + "xx-large": 28, + auto: 0 + }[{ + css_line_height_string: t + }], n !== r ? f[t] = n / e : (n = parseFloat(t)) ? f[t] = n / e : (n = t.match(/([\d\.]+)(px)/), f[t] = 3 === n.length ? parseFloat(n[1]) / e : 1)); + }, i = function i(t) { + var e, r, n; + return n = function (t) { + var e; + return e = function (t) { + return document.defaultView && document.defaultView.getComputedStyle ? document.defaultView.getComputedStyle(t, null) : t.currentStyle ? t.currentStyle : t.style; + }(t), function (t) { + return t = t.replace(/-\D/g, function (t) { + return t.charAt(1).toUpperCase(); + }), e[t]; + }; + }(t), e = {}, r = void 0, e["font-family"] = c(n("font-family")) || "times", e["font-style"] = s[n("font-style")] || "normal", e["text-align"] = TextAlignMap[n("text-align")] || "left", r = o[n("font-weight")] || "normal", "bold" === r && (e["font-style"] = "normal" === e["font-style"] ? r : r + e["font-style"]), e["font-size"] = l(n("font-size")) || 1, e["line-height"] = l(n("line-height")) || 1, e.display = "inline" === n("display") ? "inline" : "block", "block" === e.display && (e["margin-top"] = l(n("margin-top")) || 0, e["margin-bottom"] = l(n("margin-bottom")) || 0, e["padding-top"] = l(n("padding-top")) || 0, e["padding-bottom"] = l(n("padding-bottom")) || 0, e["margin-left"] = l(n("margin-left")) || 0, e["margin-right"] = l(n("margin-right")) || 0, e["padding-left"] = l(n("padding-left")) || 0, e["padding-right"] = l(n("padding-right")) || 0), e; + }, d = function d(t, e, r) { + var n, s, o, i; + if (o = !1, s = void 0, i = void 0, n = r["#" + t.id]) if ("function" == typeof n) o = n(t, e);else for (s = 0, i = n.length; !o && s !== i;) { + o = n[s](t, e), s++; + } + if (n = r[t.nodeName], !o && n) if ("function" == typeof n) o = n(t, e);else for (s = 0, i = n.length; !o && s !== i;) { + o = n[s](t, e), s++; + } + return o; + }, y = function y(t, e) { + var r, n, s, o, i, a, u, c, l, f; + + for (r = [], n = [], s = 0, f = t.rows[0].cells.length, c = t.clientWidth; f > s;) { + l = t.rows[0].cells[s], n[s] = { + name: l.textContent.toLowerCase().replace(/\s+/g, ""), + prompt: l.textContent.replace(/\r?\n/g, ""), + width: l.clientWidth / c * e.pdf.internal.pageSize.width + }, s++; + } + + for (s = 1; s < t.rows.length;) { + for (a = t.rows[s], i = {}, o = 0; o < a.cells.length;) { + i[n[o].name] = a.cells[o].textContent.replace(/\r?\n/g, ""), o++; + } + + r.push(i), s++; + } + + return u = { + rows: r, + headers: n + }; + }; + var g = { + SCRIPT: 1, + STYLE: 1, + NOSCRIPT: 1, + OBJECT: 1, + EMBED: 1, + SELECT: 1 + }, + v = 1; + _r = function r(t, e, n) { + var s, o, a, u, c, l, p, m; + + for (o = t.childNodes, s = void 0, a = i(t), c = "block" === a.display, c && (e.setBlockBoundary(), e.setBlockStyle(a)), u = 0, l = o.length; l > u;) { + if (s = o[u], "object" == _typeof(s)) { + if (1 === s.nodeType && "HEADER" === s.nodeName) { + var w = s, + b = e.pdf.margins_doc.top; + e.pdf.internal.events.subscribe("addPage", function () { + e.y = b, _r(w, e, n), e.pdf.margins_doc.top = e.y + 10, e.y += 10; + }, !1); + } + + if (8 === s.nodeType && "#comment" === s.nodeName) ~s.textContent.indexOf("ADD_PAGE") && (e.pdf.addPage(), e.y = e.pdf.margins_doc.top);else if (1 !== s.nodeType || g[s.nodeName]) { + if (3 === s.nodeType) { + var q = s.nodeValue; + if (s.nodeValue && "LI" === s.parentNode.nodeName) if ("OL" === s.parentNode.parentNode.nodeName) q = v++ + ". " + q;else { + var x = 16 * a["font-size"], + k = 2; + x > 20 && (k = 3), m = function m(t, e) { + this.pdf.circle(t, e, k, "FD"); + }; + } + e.addText(q, a); + } else "string" == typeof s && e.addText(s, a); + } else if ("IMG" === s.nodeName && h[s.getAttribute("src")]) e.pdf.internal.pageSize.height - e.pdf.margins_doc.bottom < e.y + s.height && e.y > e.pdf.margins_doc.top && (e.pdf.addPage(), e.y = e.pdf.margins_doc.top), e.pdf.addImage(h[s.getAttribute("src")], e.x, e.y, s.width, s.height), e.y += s.height;else if ("TABLE" === s.nodeName) p = y(s, e), e.y += 10, e.pdf.table(e.x, e.y, p.rows, p.headers, { + autoSize: !1, + printHeaders: !0, + margins: e.pdf.margins_doc + }), e.y = e.pdf.lastCellPos.y + e.pdf.lastCellPos.h + 20;else if ("OL" === s.nodeName || "UL" === s.nodeName) v = 1, d(s, e, n) || _r(s, e, n), e.y += 10;else if ("LI" === s.nodeName) { + var _ = e.x; + e.x += "UL" === s.parentNode.nodeName ? 22 : 10, e.y += 3, d(s, e, n) || _r(s, e, n), e.x = _; + } else d(s, e, n) || _r(s, e, n); + } + + u++; + } + + return c ? e.setBlockBoundary(m) : void 0; + }, h = {}, p = function p(t, e, r, n) { + function s() { + e.pdf.internal.events.publish("imagesLoaded"), n(); + } + + function o(t, e, r) { + if (t) { + var n = new Image(); + ++u, n.crossOrigin = "", n.onerror = n.onload = function () { + n.complete && (0 === n.src.indexOf("data:image/") && (n.width = e || n.width || 0, n.height = r || n.height || 0), n.width + n.height && (h[t] = h[t] || n)), --u || s(); + }, n.src = t; + } + } + + for (var i = t.getElementsByTagName("img"), a = i.length, u = 0; a--;) { + o(i[a].getAttribute("src"), i[a].width, i[a].height); + } + + return u || s(); + }, m = function m(t, e, n, s) { + var o = t.getElementsByTagName("footer"); + + if (o.length > 0) { + o = o[0]; + var i = e.pdf.internal.write, + a = e.y; + e.pdf.internal.write = function () {}, _r(o, e, n); + var u = Math.ceil(e.y - a) + 5; + e.y = a, e.pdf.internal.write = i, e.pdf.margins_doc.bottom += u; + + for (var c = function c(t) { + var s = void 0 !== t ? t.pageNumber : 1, + i = e.y; + e.y = e.pdf.internal.pageSize.height - e.pdf.margins_doc.bottom, e.pdf.margins_doc.bottom -= u; + + for (var a = o.getElementsByTagName("span"), c = 0; c < a.length; ++c) { + (" " + a[c].className + " ").replace(/[\n\t]/g, " ").indexOf(" pageCounter ") > -1 && (a[c].innerHTML = s), (" " + a[c].className + " ").replace(/[\n\t]/g, " ").indexOf(" totalPages ") > -1 && (a[c].innerHTML = "###jsPDFVarTotalPages###"); + } + + _r(o, e, n), e.pdf.margins_doc.bottom += u, e.y = i; + }, l = o.getElementsByTagName("span"), f = 0; f < l.length; ++f) { + (" " + l[f].className + " ").replace(/[\n\t]/g, " ").indexOf(" totalPages ") > -1 && e.pdf.internal.events.subscribe("htmlRenderingFinished", e.pdf.putTotalPages.bind(e.pdf, "###jsPDFVarTotalPages###"), !0); + } + + e.pdf.internal.events.subscribe("addPage", c, !1), c(), g.FOOTER = 1; + } + + s(); + }, w = function w(t, e, n, s, o, i) { + if (!e) return !1; + "string" == typeof e || e.parentNode || (e = "" + e.innerHTML), "string" == typeof e && (e = function (t) { + var e, r, n, s; + return n = "jsPDFhtmlText" + Date.now().toString() + (1e3 * Math.random()).toFixed(0), s = "position: absolute !important;clip: rect(1px 1px 1px 1px); /* IE6, IE7 */clip: rect(1px, 1px, 1px, 1px);padding:0 !important;border:0 !important;height: 1px !important;width: 1px !important; top:auto;left:-100px;overflow: hidden;", r = document.createElement("div"), r.style.cssText = s, r.innerHTML = '