{"version":3,"file":"services.32ecd78c8bf79d8c1044.bundle.js","mappings":"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","sources":["webpack://@dupage/cms/./node_modules/core-js-pure/actual/instance/for-each.js","webpack://@dupage/cms/./node_modules/core-js-pure/actual/instance/push.js","webpack://@dupage/cms/./node_modules/core-js-pure/actual/instance/replace-all.js","webpack://@dupage/cms/./node_modules/core-js-pure/actual/instance/reverse.js","webpack://@dupage/cms/./node_modules/core-js-pure/actual/instance/slice.js","webpack://@dupage/cms/./node_modules/core-js-pure/actual/object/create.js","webpack://@dupage/cms/./node_modules/core-js-pure/actual/object/define-property.js","webpack://@dupage/cms/./node_modules/core-js-pure/actual/object/get-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/actual/object/set-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/actual/promise/index.js","webpack://@dupage/cms/./node_modules/core-js-pure/actual/symbol/index.js","webpack://@dupage/cms/./node_modules/core-js-pure/actual/symbol/iterator.js","webpack://@dupage/cms/./node_modules/core-js-pure/actual/symbol/to-primitive.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/array/virtual/concat.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/array/virtual/filter.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/array/virtual/for-each.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/array/virtual/push.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/array/virtual/reduce.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/array/virtual/reverse.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/array/virtual/slice.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/array/virtual/splice.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/instance/concat.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/instance/filter.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/instance/push.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/instance/reduce.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/instance/replace-all.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/instance/reverse.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/instance/slice.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/instance/splice.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/json/stringify.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/object/create.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/object/define-property.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/object/get-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/object/set-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/promise/index.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/string/virtual/replace-all.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/symbol/index.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/symbol/iterator.js","webpack://@dupage/cms/./node_modules/core-js-pure/es/symbol/to-primitive.js","webpack://@dupage/cms/./node_modules/core-js-pure/features/instance/for-each.js","webpack://@dupage/cms/./node_modules/core-js-pure/features/instance/push.js","webpack://@dupage/cms/./node_modules/core-js-pure/features/instance/replace-all.js","webpack://@dupage/cms/./node_modules/core-js-pure/features/instance/reverse.js","webpack://@dupage/cms/./node_modules/core-js-pure/features/instance/slice.js","webpack://@dupage/cms/./node_modules/core-js-pure/features/object/create.js","webpack://@dupage/cms/./node_modules/core-js-pure/features/object/define-property.js","webpack://@dupage/cms/./node_modules/core-js-pure/features/object/get-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/features/object/set-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/features/promise/index.js","webpack://@dupage/cms/./node_modules/core-js-pure/features/symbol/index.js","webpack://@dupage/cms/./node_modules/core-js-pure/features/symbol/iterator.js","webpack://@dupage/cms/./node_modules/core-js-pure/full/instance/for-each.js","webpack://@dupage/cms/./node_modules/core-js-pure/full/instance/push.js","webpack://@dupage/cms/./node_modules/core-js-pure/full/instance/replace-all.js","webpack://@dupage/cms/./node_modules/core-js-pure/full/instance/reverse.js","webpack://@dupage/cms/./node_modules/core-js-pure/full/instance/slice.js","webpack://@dupage/cms/./node_modules/core-js-pure/full/object/create.js","webpack://@dupage/cms/./node_modules/core-js-pure/full/object/define-property.js","webpack://@dupage/cms/./node_modules/core-js-pure/full/object/get-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/full/object/set-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/full/promise/index.js","webpack://@dupage/cms/./node_modules/core-js-pure/full/symbol/index.js","webpack://@dupage/cms/./node_modules/core-js-pure/full/symbol/iterator.js","webpack://@dupage/cms/./node_modules/core-js-pure/full/symbol/to-primitive.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/a-callable.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/a-constructor.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/a-possible-prototype.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/add-to-unscopables.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/an-instance.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/an-object.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/array-for-each.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/array-from.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/array-includes.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/array-iteration.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/array-method-has-species-support.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/array-method-is-strict.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/array-reduce.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/array-set-length.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/array-slice-simple.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/array-slice.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/array-sort.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/array-species-constructor.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/array-species-create.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/check-correctness-of-iteration.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/classof-raw.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/classof.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/copy-constructor-properties.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/correct-prototype-getter.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/create-iter-result-object.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/create-non-enumerable-property.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/create-property-descriptor.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/create-property.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/define-built-in-accessor.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/define-built-in.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/define-built-ins.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/define-global-property.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/delete-property-or-throw.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/descriptors.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/document-all.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/document-create-element.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/dom-iterables.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/engine-is-browser.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/engine-is-bun.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/engine-is-deno.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/engine-is-ios-pebble.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/engine-is-ios.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/engine-is-node.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/engine-is-webos-webkit.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/engine-user-agent.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/engine-v8-version.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/entry-virtual.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/enum-bug-keys.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/error-stack-clear.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/error-stack-install.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/error-stack-installable.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/export.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/fails.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/function-apply.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/function-bind-context.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/function-bind-native.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/function-call.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/function-name.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/function-uncurry-this-accessor.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/function-uncurry-this-clause.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/function-uncurry-this.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/get-built-in.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/get-iterator-method.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/get-iterator.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/get-json-replacer-function.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/get-method.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/get-substitution.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/global.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/has-own-property.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/hidden-keys.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/host-report-errors.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/html.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/ie8-dom-define.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/indexed-object.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/inspect-source.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/install-error-cause.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/internal-state.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/is-array-iterator-method.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/is-array.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/is-callable.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/is-constructor.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/is-forced.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/is-null-or-undefined.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/is-object.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/is-pure.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/is-regexp.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/is-symbol.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/iterate.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/iterator-close.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/iterator-create-constructor.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/iterator-define.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/iterators-core.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/iterators.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/length-of-array-like.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/math-trunc.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/microtask.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/new-promise-capability.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/normalize-string-argument.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-assign.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-create.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-define-properties.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-define-property.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-get-own-property-names-external.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-get-own-property-names.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-get-own-property-symbols.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-get-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-is-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-keys-internal.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-keys.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-property-is-enumerable.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-set-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/object-to-string.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/ordinary-to-primitive.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/own-keys.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/path.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/perform.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/promise-constructor-detection.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/promise-native-constructor.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/promise-resolve.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/promise-statics-incorrect-iteration.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/queue.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/regexp-flags.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/regexp-get-flags.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/require-object-coercible.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/schedulers-fix.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/set-species.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/set-to-string-tag.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/shared-key.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/shared-store.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/shared.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/species-constructor.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/string-multibyte.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/string-punycode-to-ascii.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/symbol-constructor-detection.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/symbol-define-to-primitive.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/symbol-is-registered.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/symbol-is-well-known.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/symbol-registry-detection.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/task.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/to-absolute-index.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/to-indexed-object.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/to-integer-or-infinity.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/to-length.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/to-object.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/to-primitive.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/to-property-key.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/to-string-tag-support.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/to-string.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/try-to-string.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/uid.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/url-constructor-detection.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/use-symbol-as-uid.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/v8-prototype-define-bug.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/validate-arguments-length.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/weak-map-basic-detection.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/well-known-symbol-define.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/well-known-symbol-wrapped.js","webpack://@dupage/cms/./node_modules/core-js-pure/internals/well-known-symbol.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.aggregate-error.constructor.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.aggregate-error.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.array.concat.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.array.filter.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.array.for-each.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.array.iterator.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.array.push.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.array.reduce.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.array.reverse.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.array.slice.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.array.splice.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.json.stringify.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.json.to-string-tag.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.object.create.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.object.define-property.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.object.get-own-property-symbols.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.object.get-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.object.set-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.promise.all-settled.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.promise.all.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.promise.any.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.promise.catch.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.promise.constructor.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.promise.finally.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.promise.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.promise.race.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.promise.reject.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.promise.resolve.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.string.iterator.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.string.replace-all.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.async-iterator.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.constructor.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.for.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.has-instance.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.iterator.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.key-for.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.match-all.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.match.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.replace.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.search.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.species.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.split.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.to-primitive.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.to-string-tag.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/es.symbol.unscopables.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.aggregate-error.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.function.metadata.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.promise.all-settled.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.promise.any.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.promise.try.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.promise.with-resolvers.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.string.replace-all.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.symbol.dispose.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.symbol.is-registered-symbol.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.symbol.is-registered.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.symbol.is-well-known-symbol.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.symbol.is-well-known.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.symbol.matcher.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.symbol.metadata-key.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.symbol.metadata.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.symbol.observable.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/esnext.symbol.replace-all.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/web.dom-collections.iterator.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/web.set-interval.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/web.set-timeout.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/web.timers.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/web.url-search-params.constructor.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/web.url-search-params.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/web.url.can-parse.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/web.url.constructor.js","webpack://@dupage/cms/./node_modules/core-js-pure/modules/web.url.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/array/virtual/for-each.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/instance/concat.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/instance/filter.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/instance/for-each.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/instance/push.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/instance/reduce.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/instance/replace-all.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/instance/reverse.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/instance/slice.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/instance/splice.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/json/stringify.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/object/create.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/object/define-property.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/object/get-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/object/set-prototype-of.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/promise/index.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/set-timeout.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/symbol/index.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/symbol/iterator.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/symbol/to-primitive.js","webpack://@dupage/cms/./node_modules/core-js-pure/stable/url/index.js","webpack://@dupage/cms/./node_modules/core-js-pure/web/url-search-params.js","webpack://@dupage/cms/./node_modules/core-js-pure/web/url.js","webpack://@dupage/cms/./node_modules/lottie-web/build/player/lottie.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/core-js-stable/instance/splice.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/core-js-stable/json/stringify.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/core-js-stable/promise.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/core-js-stable/set-timeout.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/core-js-stable/url.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/core-js/instance/replace-all.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/helpers/regeneratorRuntime.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/helpers/typeof.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/regenerator/index.js","webpack://@dupage/cms/webpack/bootstrap","webpack://@dupage/cms/webpack/runtime/amd options","webpack://@dupage/cms/webpack/runtime/compat get default export","webpack://@dupage/cms/webpack/runtime/define property getters","webpack://@dupage/cms/webpack/runtime/global","webpack://@dupage/cms/webpack/runtime/hasOwnProperty shorthand","webpack://@dupage/cms/webpack/runtime/publicPath","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/helpers/esm/asyncToGenerator.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/helpers/esm/classCallCheck.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/helpers/esm/typeof.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/helpers/esm/toPropertyKey.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/helpers/esm/toPrimitive.js","webpack://@dupage/cms/./node_modules/@babel/runtime-corejs3/helpers/esm/createClass.js","webpack://@dupage/cms/./src/js/search.js","webpack://@dupage/cms/./src/json/Duly_loader_strokestofill.json","webpack://@dupage/cms/./src/js/utils.js","webpack://@dupage/cms/./src/js/appointments/service-search.js","webpack://@dupage/cms/./src/js/appointments/alert-modal.js","webpack://@dupage/cms/./src/js/youtube-api.js","webpack://@dupage/cms/./src/pages/services/index.js","webpack://@dupage/cms/./src/js/services-detail.js"],"sourcesContent":["'use strict';\nvar parent = require('../../stable/instance/for-each');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/instance/push');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/instance/replace-all');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/instance/reverse');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/instance/slice');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/object/create');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/object/define-property');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/object/get-prototype-of');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/object/set-prototype-of');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/promise');\nrequire('../../modules/esnext.promise.with-resolvers');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/symbol');\n\nrequire('../../modules/esnext.function.metadata');\nrequire('../../modules/esnext.symbol.async-dispose');\nrequire('../../modules/esnext.symbol.dispose');\nrequire('../../modules/esnext.symbol.metadata');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/symbol/iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/symbol/to-primitive');\n\nmodule.exports = parent;\n","'use strict';\nrequire('../../../modules/es.array.concat');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').concat;\n","'use strict';\nrequire('../../../modules/es.array.filter');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').filter;\n","'use strict';\nrequire('../../../modules/es.array.for-each');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').forEach;\n","'use strict';\nrequire('../../../modules/es.array.push');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').push;\n","'use strict';\nrequire('../../../modules/es.array.reduce');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').reduce;\n","'use strict';\nrequire('../../../modules/es.array.reverse');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').reverse;\n","'use strict';\nrequire('../../../modules/es.array.slice');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').slice;\n","'use strict';\nrequire('../../../modules/es.array.splice');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').splice;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/concat');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.concat;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.concat) ? method : own;\n};\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/filter');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.filter;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.filter) ? method : own;\n};\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/push');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.push;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.push) ? method : own;\n};\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/reduce');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.reduce;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.reduce) ? method : own;\n};\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/replace-all');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n var own = it.replaceAll;\n return typeof it == 'string' || it === StringPrototype\n || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.replaceAll) ? method : own;\n};\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/reverse');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.reverse;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.reverse) ? method : own;\n};\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/slice');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.slice;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.slice) ? method : own;\n};\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/splice');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.splice;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.splice) ? method : own;\n};\n","'use strict';\nrequire('../../modules/es.json.stringify');\nvar path = require('../../internals/path');\nvar apply = require('../../internals/function-apply');\n\n// eslint-disable-next-line es/no-json -- safe\nif (!path.JSON) path.JSON = { stringify: JSON.stringify };\n\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nmodule.exports = function stringify(it, replacer, space) {\n return apply(path.JSON.stringify, null, arguments);\n};\n","'use strict';\nrequire('../../modules/es.object.create');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nmodule.exports = function create(P, D) {\n return Object.create(P, D);\n};\n","'use strict';\nrequire('../../modules/es.object.define-property');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar defineProperty = module.exports = function defineProperty(it, key, desc) {\n return Object.defineProperty(it, key, desc);\n};\n\nif (Object.defineProperty.sham) defineProperty.sham = true;\n","'use strict';\nrequire('../../modules/es.object.get-prototype-of');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.getPrototypeOf;\n","'use strict';\nrequire('../../modules/es.object.set-prototype-of');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.setPrototypeOf;\n","'use strict';\nrequire('../../modules/es.aggregate-error');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.any');\nrequire('../../modules/es.promise.finally');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","'use strict';\nrequire('../../../modules/es.regexp.exec');\nrequire('../../../modules/es.string.replace');\nrequire('../../../modules/es.string.replace-all');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('String').replaceAll;\n","'use strict';\nrequire('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.json.to-string-tag');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.reflect.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.symbol.iterator');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('iterator');\n","'use strict';\nrequire('../../modules/es.date.to-primitive');\nrequire('../../modules/es.symbol.to-primitive');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('toPrimitive');\n","'use strict';\nmodule.exports = require('../../full/instance/for-each');\n","'use strict';\nmodule.exports = require('../../full/instance/push');\n","'use strict';\nmodule.exports = require('../../full/instance/replace-all');\n","'use strict';\nmodule.exports = require('../../full/instance/reverse');\n","'use strict';\nmodule.exports = require('../../full/instance/slice');\n","'use strict';\nmodule.exports = require('../../full/object/create');\n","'use strict';\nmodule.exports = require('../../full/object/define-property');\n","'use strict';\nmodule.exports = require('../../full/object/get-prototype-of');\n","'use strict';\nmodule.exports = require('../../full/object/set-prototype-of');\n","'use strict';\nmodule.exports = require('../../full/promise');\n","'use strict';\nmodule.exports = require('../../full/symbol');\n","'use strict';\nmodule.exports = require('../../full/symbol/iterator');\n","'use strict';\nvar parent = require('../../actual/instance/for-each');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/instance/push');\n\nmodule.exports = parent;\n","'use strict';\n// TODO: remove from `core-js@4`\nrequire('../../modules/esnext.string.replace-all');\n\nvar parent = require('../../actual/instance/replace-all');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/instance/reverse');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/instance/slice');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/object/create');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/object/define-property');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/object/get-prototype-of');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/object/set-prototype-of');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/promise');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.aggregate-error');\nrequire('../../modules/esnext.promise.all-settled');\nrequire('../../modules/esnext.promise.try');\nrequire('../../modules/esnext.promise.any');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/symbol');\nrequire('../../modules/esnext.symbol.is-registered-symbol');\nrequire('../../modules/esnext.symbol.is-well-known-symbol');\nrequire('../../modules/esnext.symbol.matcher');\nrequire('../../modules/esnext.symbol.observable');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.symbol.is-registered');\nrequire('../../modules/esnext.symbol.is-well-known');\nrequire('../../modules/esnext.symbol.metadata-key');\nrequire('../../modules/esnext.symbol.pattern-match');\nrequire('../../modules/esnext.symbol.replace-all');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/symbol/iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/symbol/to-primitive');\n\nmodule.exports = parent;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nmodule.exports = function () { /* empty */ };\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw new $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n var n = 0;\n for (; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (target, key, value, options) {\n if (options && options.enumerable) target[key] = value;\n else createNonEnumerableProperty(target, key, value);\n return target;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) {\n if (options && options.unsafe && target[key]) target[key] = src[key];\n else defineBuiltIn(target, key, src[key], options);\n } return target;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","'use strict';\n/* global Bun -- Deno case */\nmodule.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string';\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\nvar path = require('../internals/path');\n\nmodule.exports = function (CONSTRUCTOR) {\n return path[CONSTRUCTOR + 'Prototype'];\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n if (ERROR_STACK_INSTALLABLE) {\n if (captureStackTrace) captureStackTrace(error, C);\n else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = new Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar isCallable = require('../internals/is-callable');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\n\nvar wrapConstructor = function (NativeConstructor) {\n var Wrapper = function (a, b, c) {\n if (this instanceof Wrapper) {\n switch (arguments.length) {\n case 0: return new NativeConstructor();\n case 1: return new NativeConstructor(a);\n case 2: return new NativeConstructor(a, b);\n } return new NativeConstructor(a, b, c);\n } return apply(NativeConstructor, this, arguments);\n };\n Wrapper.prototype = NativeConstructor.prototype;\n return Wrapper;\n};\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var PROTO = options.proto;\n\n var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype;\n\n var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET];\n var targetPrototype = target.prototype;\n\n var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n for (key in source) {\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contains in native\n USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key);\n\n targetProperty = target[key];\n\n if (USE_NATIVE) if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(nativeSource, key);\n nativeProperty = descriptor && descriptor.value;\n } else nativeProperty = nativeSource[key];\n\n // export native or implementation\n sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n if (USE_NATIVE && typeof targetProperty == typeof sourceProperty) continue;\n\n // bind methods to global for calling from export context\n if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global);\n // wrap global constructors for prevent changes in this version\n else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n // make static versions for prototype methods\n else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty);\n // default case\n else resultProperty = sourceProperty;\n\n // add a flag to not completely full polyfills\n if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(resultProperty, 'sham', true);\n }\n\n createNonEnumerableProperty(target, key, resultProperty);\n\n if (PROTO) {\n VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n if (!hasOwn(path, VIRTUAL_PROTOTYPE)) {\n createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n }\n // export virtual prototype methods\n createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty);\n // export real prototype methods\n if (options.real && targetPrototype && (FORCED || !targetPrototype[key])) {\n createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n }\n }\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar path = require('../internals/path');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (variable) {\n return isCallable(variable) ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = true;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol('assign detection');\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENGINE_IS_BUN = require('../internals/engine-is-bun');\nvar USER_AGENT = require('../internals/engine-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = global.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () {\n var version = global.Bun.version.split('.');\n return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n var firstParamIndex = hasTimeArg ? 2 : 1;\n return WRAP ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n var fn = isCallable(handler) ? handler : Function(handler);\n var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n var callback = boundArgs ? function () {\n apply(fn, this, params);\n } : fn;\n return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n } : scheduler;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/object-to-string');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC, SET_METHOD) {\n if (it) {\n var target = STATIC ? it : it.prototype;\n if (!hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {\n createNonEnumerableProperty(target, 'toString', toString);\n }\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.33.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue === n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Symbol = getBuiltIn('Symbol');\nvar keyFor = Symbol.keyFor;\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\nmodule.exports = Symbol.isRegisteredSymbol || function isRegisteredSymbol(value) {\n try {\n return keyFor(thisSymbolValue(value)) !== undefined;\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isSymbol = require('../internals/is-symbol');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Symbol = getBuiltIn('Symbol');\nvar $isWellKnownSymbol = Symbol.isWellKnownSymbol;\nvar getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames');\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\nvar WellKnownSymbolsStore = shared('wks');\n\nfor (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {\n // some old engines throws on access to some keys like `arguments` or `caller`\n try {\n var symbolKey = symbolKeys[i];\n if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey);\n } catch (error) { /* empty */ }\n}\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\nmodule.exports = function isWellKnownSymbol(value) {\n if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true;\n try {\n var symbol = thisSymbolValue(value);\n for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {\n // eslint-disable-next-line eqeqeq -- polyfilled symbols case\n if (WellKnownSymbolsStore[keys[j]] == symbol) return true;\n }\n } catch (error) { /* empty */ }\n return false;\n};\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var params = url.searchParams;\n var params2 = new URLSearchParams('a=1&a=2&b=3');\n var result = '';\n url.pathname = 'c%20d';\n params.forEach(function (value, key) {\n params['delete']('b');\n result += key + value;\n });\n params2['delete']('a', 2);\n // `undefined` case is a Chromium 117 bug\n // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n params2['delete']('b', undefined);\n return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n || (!params.size && (IS_PURE || !DESCRIPTORS))\n || !params.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || params.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !params[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n installErrorStack(that, $AggregateError, that.stack, 1);\n if (arguments.length > 2) installErrorCause(that, arguments[2]);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);\nelse copyConstructorProperties($AggregateError, $Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true, constructor: true, arity: 2 }, {\n AggregateError: $AggregateError\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.aggregate-error.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, {\n forEach: forEach\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n switch (kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","'use strict';\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n defineProperty: defineProperty\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","'use strict';\nvar $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (!isNullOrUndefined(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = global.RangeError;\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor(this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty(this, tag, descriptor);\n }\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.aggregate-error');\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar METADATA = wellKnownSymbol('metadata');\nvar FunctionPrototype = Function.prototype;\n\n// Function.prototype[@@metadata]\n// https://github.com/tc39/proposal-decorator-metadata\nif (FunctionPrototype[METADATA] === undefined) {\n defineProperty(FunctionPrototype, METADATA, {\n value: null\n });\n}\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.all-settled.js');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.any');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\n\n// `Promise.try` method\n// https://github.com/tc39/proposal-promise-try\n$({ target: 'Promise', stat: true, forced: true }, {\n 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n var result = perform(callbackfn);\n (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n return promiseCapability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\n// `Promise.withResolvers` method\n// https://github.com/tc39/proposal-promise-with-resolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.replace-all');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-async-explicit-resource-management\ndefineWellKnownSymbol('asyncDispose');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-explicit-resource-management\ndefineWellKnownSymbol('dispose');\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true }, {\n isRegisteredSymbol: isRegisteredSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegistered` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true, name: 'isRegisteredSymbol' }, {\n isRegistered: isRegisteredSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, forced: true }, {\n isWellKnownSymbol: isWellKnownSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnown` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, name: 'isWellKnownSymbol', forced: true }, {\n isWellKnown: isWellKnownSymbol\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('matcher');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadataKey` well-known symbol\n// https://github.com/tc39/proposal-decorator-metadata\ndefineWellKnownSymbol('metadataKey');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadata` well-known symbol\n// https://github.com/tc39/proposal-decorators\ndefineWellKnownSymbol('metadata');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\ndefineWellKnownSymbol('replaceAll');\n","'use strict';\nrequire('../modules/es.array.iterator');\nvar DOMIterables = require('../internals/dom-iterables');\nvar global = require('../internals/global');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype && classof(CollectionPrototype) !== TO_STRING_TAG) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n Iterators[COLLECTION_NAME] = Iterators.Array;\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setInterval = schedulersFix(global.setInterval, true);\n\n// Bun / IE9- setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n$({ global: true, bind: true, forced: global.setInterval !== setInterval }, {\n setInterval: setInterval\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setTimeout = schedulersFix(global.setTimeout, true);\n\n// Bun / IE9- setTimeout additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n$({ global: true, bind: true, forced: global.setTimeout !== setTimeout }, {\n setTimeout: setTimeout\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.set-interval');\nrequire('../modules/web.set-timeout');\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nvar safeGetBuiltIn = function (name) {\n if (!DESCRIPTORS) return global[name];\n var descriptor = getOwnPropertyDescriptor(global, name);\n return descriptor && descriptor.value;\n};\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw new TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(this.entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var state = setInternalState(this, new URLSearchParamsState(init));\n if (!DESCRIPTORS) this.size = state.entries.length;\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 2);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n if (!DESCRIPTORS) this.length++;\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name /* , value */) {\n var state = getInternalParamsState(this);\n var length = validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index];\n if (entry.key === key && (value === undefined || entry.value === value)) {\n splice(entries, index, 1);\n if (value !== undefined) break;\n } else index++;\n }\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name /* , value */) {\n var entries = getInternalParamsState(this).entries;\n var length = validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index++];\n if (entry.key === key && (value === undefined || entry.value === value)) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n return getInternalParamsState(this).entries.length;\n },\n configurable: true,\n enumerable: true\n});\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(nativeFetch)) {\n $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(NativeRequest)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url-search-params.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar toString = require('../internals/to-string');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\n\nvar URL = getBuiltIn('URL');\n\n// https://github.com/nodejs/node/issues/47505\n// https://github.com/denoland/deno/issues/18893\nvar THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () {\n URL.canParse();\n});\n\n// `URL.canParse` method\n// https://url.spec.whatwg.org/#dom-url-canparse\n$({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS }, {\n canParse: function canParse(url) {\n var length = validateArgumentsLength(arguments.length, 1);\n var urlString = toString(url);\n var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n try {\n return !!new URL(urlString, base);\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+/;\nvar TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] === '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part === '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) === '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix === 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index === partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() === ':') {\n if (charAt(input, 1) !== ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex === 8) return;\n if (chr() === ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() === '.') {\n if (length === 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() === '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece === 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++;\n }\n if (numbersSeen !== 4) return;\n break;\n } else if (chr() === ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex !== 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length === 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length === 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw new TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw new TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_C0_CONTROL_OR_SPACE, '');\n input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) {\n buffer += toLowerCase(chr);\n } else if (chr === ':') {\n if (stateOverride && (\n (url.isSpecial() !== hasOwn(specialSchemes, buffer)) ||\n (buffer === 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme === 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme === 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme === url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] === '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr === '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme === 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr === '/' && codePoints[pointer + 1] === '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr === '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr === EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr === '/' || (chr === '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr === '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr === '/' || chr === '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr === '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr !== '/' && chr !== '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr === '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint === ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer === '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme === 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr === ':' && !seenBracket) {\n if (buffer === '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride === HOSTNAME) return;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer === '') return INVALID_HOST;\n if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr === '[') seenBracket = true;\n else if (chr === ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer !== '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr === '/' || chr === '\\\\') state = FILE_SLASH;\n else if (base && base.scheme === 'file') {\n switch (chr) {\n case EOF:\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n break;\n case '?':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n break;\n case '#':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n break;\n default:\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr === '/' || chr === '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr === EOF || chr === '/' || chr === '\\\\' || chr === '?' || chr === '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer === '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host === 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr !== '/' && chr !== '\\\\') continue;\n } else if (!stateOverride && chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n state = PATH;\n if (chr !== '/') continue;\n } break;\n\n case PATH:\n if (\n chr === EOF || chr === '/' ||\n (chr === '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr === '?' || chr === '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n if (chr === \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr === '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) === '[') {\n if (charAt(input, input.length - 1) !== ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme === 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username !== '' || this.password !== '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme === 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw new TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme === 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme === 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port === '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search === '') {\n this.query = null;\n } else {\n if (charAt(search, 0) === '?') search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash === '') {\n this.fragment = null;\n return;\n }\n if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","'use strict';\nvar parent = require('../../../es/array/virtual/for-each');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/instance/concat');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/instance/filter');\n\nmodule.exports = parent;\n","'use strict';\nrequire('../../modules/web.dom-collections.iterator');\nvar classof = require('../../internals/classof');\nvar hasOwn = require('../../internals/has-own-property');\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/for-each');\n\nvar ArrayPrototype = Array.prototype;\n\nvar DOMIterables = {\n DOMTokenList: true,\n NodeList: true\n};\n\nmodule.exports = function (it) {\n var own = it.forEach;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.forEach)\n || hasOwn(DOMIterables, classof(it)) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/push');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/instance/reduce');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/instance/replace-all');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/instance/reverse');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/instance/slice');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/instance/splice');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/json/stringify');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/object/create');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/object/define-property');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/object/get-prototype-of');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/object/set-prototype-of');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/promise');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nrequire('../modules/web.timers');\nvar path = require('../internals/path');\n\nmodule.exports = path.setTimeout;\n","'use strict';\nvar parent = require('../../es/symbol');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/symbol/iterator');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/symbol/to-primitive');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../web/url');\n\nmodule.exports = parent;\n","'use strict';\nrequire('../modules/web.url-search-params');\nrequire('../modules/web.url-search-params.delete');\nrequire('../modules/web.url-search-params.has');\nrequire('../modules/web.url-search-params.size');\nvar path = require('../internals/path');\n\nmodule.exports = path.URLSearchParams;\n","'use strict';\nrequire('./url-search-params');\nrequire('../modules/web.url');\nrequire('../modules/web.url.can-parse');\nrequire('../modules/web.url.to-json');\nvar path = require('../internals/path');\n\nmodule.exports = path.URL;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","module.exports = require(\"core-js-pure/stable/instance/concat\");","module.exports = require(\"core-js-pure/stable/instance/filter\");","module.exports = require(\"core-js-pure/stable/instance/for-each\");","module.exports = require(\"core-js-pure/stable/instance/reduce\");","module.exports = require(\"core-js-pure/stable/instance/splice\");","module.exports = require(\"core-js-pure/stable/json/stringify\");","module.exports = require(\"core-js-pure/stable/promise\");","module.exports = require(\"core-js-pure/stable/set-timeout\");","module.exports = require(\"core-js-pure/stable/url\");","module.exports = require(\"core-js-pure/features/instance/replace-all\");","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar _Object$defineProperty = require(\"core-js-pure/features/object/define-property.js\");\nvar _Symbol = require(\"core-js-pure/features/symbol/index.js\");\nvar _Object$create = require(\"core-js-pure/features/object/create.js\");\nvar _Object$getPrototypeOf = require(\"core-js-pure/features/object/get-prototype-of.js\");\nvar _forEachInstanceProperty = require(\"core-js-pure/features/instance/for-each.js\");\nvar _pushInstanceProperty = require(\"core-js-pure/features/instance/push.js\");\nvar _Object$setPrototypeOf = require(\"core-js-pure/features/object/set-prototype-of.js\");\nvar _Promise = require(\"core-js-pure/features/promise/index.js\");\nvar _reverseInstanceProperty = require(\"core-js-pure/features/instance/reverse.js\");\nvar _sliceInstanceProperty = require(\"core-js-pure/features/instance/slice.js\");\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = _Object$defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof _Symbol ? _Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return _Object$defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = _Object$create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = _Object$getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = _Object$create(p);\n function defineIteratorMethods(t) {\n var _context;\n _forEachInstanceProperty(_context = [\"next\", \"throw\", \"return\"]).call(_context, function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var _context2;\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), _pushInstanceProperty(_context2 = this.tryEntries).call(_context2, e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], _forEachInstanceProperty(t).call(t, pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return _Object$setPrototypeOf ? _Object$setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = _Object$create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = _Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) _pushInstanceProperty(r).call(r, n);\n return _reverseInstanceProperty(r).call(r), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n var _context3;\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, _forEachInstanceProperty(_context3 = this.tryEntries).call(_context3, resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+_sliceInstanceProperty(r).call(r, 1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _Symbol = require(\"core-js-pure/features/symbol/index.js\");\nvar _Symbol$iterator = require(\"core-js-pure/features/symbol/iterator.js\");\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof _Symbol && \"symbol\" == typeof _Symbol$iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof _Symbol && o.constructor === _Symbol && o !== _Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","__webpack_require__.p = \"/\";","import _Promise from \"core-js-pure/features/promise/index.js\";\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n _Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new _Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import _Symbol from \"core-js-pure/features/symbol/index.js\";\nimport _Symbol$iterator from \"core-js-pure/features/symbol/iterator.js\";\nexport default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof _Symbol && \"symbol\" == typeof _Symbol$iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof _Symbol && o.constructor === _Symbol && o !== _Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nimport _Symbol$toPrimitive from \"core-js-pure/features/symbol/to-primitive.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[_Symbol$toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _Object$defineProperty from \"core-js-pure/features/object/define-property.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n _Object$defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n _Object$defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","'use strict';\n\n/**\n * A self-contained search input helper.\n * It wraps itself around an input field and provides \"recent history\" and \"auto suggestions\" lists.\n * \n */\nexport class Search {\n\n /**\n * constructor innitiates the class\n * \n * @param {*} inputSelector - CSS selector for the primary input field\n * @param {*} inputContainerSelector - CSS selector for a parent container that contains the input;\n * used to handle \"position: absolute\" elements floating around the input field\n * @param {*} autoCompleteUrl - a url that will be used to find auto suggestions; it should return a JSON array of strings\n * @param {*} autoCompleteSearchParameter - a parameter in the autoCompleteUrl that should be updated with user's input\n * @param {*} recentHistoryTemplateSelector - CSS selector for the recent history html content template\n * @param {*} autoCompleteTemplateSelector - CSS selector for the auto-complete html content template\n * @param {*} autoCompleteCallback - optional function called when a user selects an item from the autocomplete list\n */\n constructor(\n inputSelector,\n inputContainerSelector,\n autoCompleteUrl,\n autoCompleteSearchParameter,\n recentHistoryTemplateSelector,\n autoCompleteTemplateSelector,\n autoCompleteCallback = () => void 0\n ) {\n this.inputSelector = inputSelector;\n this.autoCompleteUrl = autoCompleteUrl;\n this.recentHistoryTemplate = document.querySelector(recentHistoryTemplateSelector);\n this.autoCompleteTemplate = document.querySelector(autoCompleteTemplateSelector);\n this.autoCompleteSearchParameter = autoCompleteSearchParameter;\n this.inputContainerSelector = inputContainerSelector;\n this.inputElement = document.querySelector(this.inputSelector);\n this.inputContainerElement = document.querySelector(inputContainerSelector);\n this.autoCompleteCallback = autoCompleteCallback\n if (this.inputElement) {\n this.setup();\n }\n }\n\n /**\n * storeRecentSearch stores a provided query so it can be shown in \"recent history\"\n * \n * @param {*} query\n */\n storeRecentSearch(query) {\n // do not store empty strings\n if (query && query.length > 0) {\n // store in localStorage\n let list = JSON.parse(localStorage.getItem(`search-recent-history-${this.inputSelector}`));\n list = list ? list : [];\n\n // remove duplicates\n list = list.filter(v => v !== query);\n\n // push query on top of the list\n list.push(query);\n\n // update the new list in localStorage\n localStorage.setItem(`search-recent-history-${this.inputSelector}`, JSON.stringify(list));\n\n this.repopulateHistory();\n }\n }\n\n /**\n * setup setups listeners asnd other controls\n */\n setup() {\n // create the search history container\n this.createSearchHistoryContainer();\n this.createAutocompleteContainer();\n this.repopulateHistory();\n this.setOnClearListener();\n this.setFocusAndBlurListeners();\n this.setAutoCompleteListeners();\n this.setArrowKeysListeners();\n }\n\n /**\n * createSearchHistoryContainer creates a floating container that will be used to display the list of recent searches\n */\n createSearchHistoryContainer() {\n let searchHistory = this.inputContainerElement.querySelector(\".search-history\");\n if (searchHistory) {\n searchHistory.parentNode.removeChild(searchHistory);\n }\n searchHistory = this.recentHistoryTemplate.content.cloneNode(true);\n this.inputContainerElement.appendChild(searchHistory);\n this.searchHistory = this.inputContainerElement.querySelector(\".search-history\");\n }\n\n /**\n * createAutocompleteContainer creates a floating container that will be used to display the list of auto suggestions\n */\n createAutocompleteContainer() {\n let autoComplete = this.inputContainerElement.querySelector(\".auto-complete\");\n if (autoComplete) {\n autoComplete.parentNode.removeChild(autoComplete);\n }\n autoComplete = this.autoCompleteTemplate.content.cloneNode(true);\n this.inputContainerElement.appendChild(autoComplete);\n this.autoComplete = this.inputContainerElement.querySelector(\".auto-complete\");\n }\n\n /**\n * repopulateHistory checks the most recent list in localStorage and refreshes the list of recent searches\n */\n repopulateHistory() {\n let list = JSON.parse(localStorage.getItem(`search-recent-history-${this.inputSelector}`));\n list = list ? list.splice(list.length - 5, list.length) : [];\n this.inputContainerElement.querySelector(\".list-of-recent-searches\").dataset.count = list.length;\n list = list.reduce((accumulator, currentValue) => `
${currentValue}
` + accumulator, \"\");\n this.inputContainerElement.querySelector(\".list-of-recent-searches\").innerHTML = list;\n\n this.inputContainerElement.querySelector(\".list-of-recent-searches\").querySelectorAll(\".item\").forEach(item => {\n item.addEventListener(\"click\", ({ target }) => {\n this.inputElement.value = target.innerText;\n this.searchHistory.classList.remove(\"show-recent-history\");\n this.inputElement.focus();\n this.autoComplete.classList.remove(\"show-auto-complete\");\n this.showingAutoSuggestions = false;\n this.showingHistory = true;\n });\n });\n }\n\n /**\n * \n * @param {*} callback - fn that be called when the ajax call is over\n */\n throttlePopulateAutoComplete(callback) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout((e) => {\n this.populateAutoComplete(callback, this._timeout);\n }, 500);\n }\n\n /**\n * Use a provided autoCompleteUrl url to get a list of auto complete strings\n * \n * @param {*} callback - fn that be called when the ajax call is over\n * @param {*} timeout - setTimeout id; used to control overlapping ajax cals\n */\n populateAutoComplete(callback, timeout) {\n let href = new URL(this.autoCompleteUrl);\n href.searchParams.set(this.autoCompleteSearchParameter, this.inputElement.value);\n this.autoCompleteUrl = href;\n\n fetch(this.autoCompleteUrl, {\n method: 'GET',\n mode: 'same-origin',\n cache: 'no-cache',\n follow: true,\n async: true,\n credentials: 'same-origin',\n headers: {\n 'Accept': 'text/html',\n 'x-isAjax': true\n }\n }).then(response => {\n return response.json();\n }).then(list => {\n if (this._timeout !== timeout) {\n return;\n }\n\n list = list ? list.splice(0, 5) : [];\n this.autoComplete.dataset.count = list.length;\n\n list = list.reduce((accumulator, currentValue) => accumulator + `
${currentValue}
`, \"\");\n\n if (list.length == 0) {\n this.autoComplete.classList.remove(\"show-auto-complete\");\n return;\n }\n\n this.inputContainerElement.querySelector(\".list-of-suggestions\").innerHTML = list;\n\n this.inputContainerElement.querySelector(\".list-of-suggestions\").querySelectorAll(\".item\").forEach(item => {\n item.addEventListener(\"click\", ({ target }) => {\n this.inputElement.value = target.innerText;\n this.autoComplete.classList.remove(\"show-auto-complete\");\n this.searchHistory.classList.remove(\"show-recent-history\");\n this.inputElement.focus();\n this.autoCompleteCallback(target.innerText)\n });\n });\n\n callback && callback();\n });\n }\n\n /**\n * setOnClearListener sets up the \"clear\" button listener\n */\n setOnClearListener() {\n this.inputContainerElement.querySelector(\".search-history .clear\").addEventListener(\"click\", _ => {\n localStorage.removeItem(`search-recent-history-${this.inputSelector}`);\n this.repopulateHistory();\n });\n }\n\n /**\n * setFocusAndBlurListeners sets up listeners around the input field\n */\n setFocusAndBlurListeners() {\n this.inputElement.addEventListener(\"click\", e => {\n if (this.inputElement.value.length > 0) {\n this.searchHistory.classList.remove(\"show-recent-history\");\n this.autoComplete.classList.add(\"show-auto-complete\");\n } else {\n this.searchHistory.classList.add(\"show-recent-history\");\n this.autoComplete.classList.remove(\"show-auto-complete\");\n }\n });\n\n document.querySelector(\"body\").addEventListener(\"click\", e => {\n if (e.target.closest(this.inputContainerSelector)) {\n return;\n }\n this.searchHistory.classList.remove(\"show-recent-history\");\n this.autoComplete.classList.remove(\"show-auto-complete\");\n });\n }\n\n /**\n * setAutoCompleteListeners sets up listeners to trigger auto suggestions\n */\n setAutoCompleteListeners() {\n this.inputElement.addEventListener(\"keyup\", event => {\n this.lastKey = event.keyCode;\n if (event.target.value.length > 0) {\n if (event.keyCode !== 38 && event.keyCode !== 40 && event.keyCode !== 13) {\n this.throttlePopulateAutoComplete(_ => {\n if (this.lastKey !== 38 && this.lastKey !== 40 && this.lastKey !== 13) {\n this.searchHistory.classList.remove(\"show-recent-history\");\n this.autoComplete.classList.add(\"show-auto-complete\");\n }\n });\n }\n } else {\n this.searchHistory.classList.add(\"show-recent-history\");\n this.autoComplete.classList.remove(\"show-auto-complete\");\n }\n });\n }\n\n /**\n * Enables navigating through the dropdown lists using arrow keys\n */\n setArrowKeysListeners() {\n this.currentListSelectionIndex = null;\n this.inputContainerElement.addEventListener(\"keyup\", event => {\n if (event.keyCode == 38) {\n // up key\n if (this.currentListSelectionIndex == null) {\n this.currentListSelectionIndex = 0;\n } else {\n this.currentListSelectionIndex--;\n this.currentListSelectionIndex = this.currentListSelectionIndex < 0 ? 0 : this.currentListSelectionIndex;\n }\n this.markCurrentItemAsSelected();\n } else if (event.keyCode == 40) {\n // down key\n if (this.currentListSelectionIndex == null) {\n this.currentListSelectionIndex = 0;\n } else {\n this.currentListSelectionIndex++;\n if (this.searchHistory.classList.contains(\"show-recent-history\")) {\n let currentCount = this.inputContainerElement.querySelector(\".list-of-recent-searches\").dataset.count;\n this.currentListSelectionIndex = this.currentListSelectionIndex + 1 <= currentCount ? this.currentListSelectionIndex : currentCount - 1;\n } else if (this.autoComplete.classList.contains(\"show-auto-complete\")) {\n let currentCount = this.autoComplete.dataset.count;\n this.currentListSelectionIndex = this.currentListSelectionIndex + 1 <= currentCount ? this.currentListSelectionIndex : currentCount - 1;\n }\n }\n this.markCurrentItemAsSelected();\n } else if (event.keyCode == 13) {\n this.searchHistory.classList.remove(\"show-recent-history\");\n this.autoComplete.classList.remove(\"show-auto-complete\");\n }\n });\n }\n\n /**\n * Once this.currentListSelectionIndex is set, this function adds a \"selected\" class to the selected item.\n * It also fills out the input field with the selected value.\n */\n markCurrentItemAsSelected() {\n let selectedItem = null;\n if (this.searchHistory.classList.contains(\"show-recent-history\")) {\n this.inputContainerElement.querySelectorAll(\".list-of-recent-searches .item\").forEach((item, index) => {\n if (index === this.currentListSelectionIndex) {\n item.classList.add(\"selected\");\n selectedItem = item;\n } else {\n item.classList.remove(\"selected\");\n }\n });\n } else if (this.autoComplete.classList.contains(\"show-auto-complete\")) {\n this.autoComplete.querySelectorAll(\".item\").forEach((item, index) => {\n if (index === this.currentListSelectionIndex) {\n item.classList.add(\"selected\");\n selectedItem = item;\n } else {\n item.classList.remove(\"selected\");\n }\n });\n }\n\n if (selectedItem) {\n this.inputElement.value = selectedItem.innerText;\n }\n }\n}","export default __webpack_public_path__ + \"Duly_loader_strokestofill.json\";","'use strict';\nimport lottie from 'lottie-web';\nimport '../json/Duly_loader_strokestofill.json';\nimport { AsYouType } from 'libphonenumber-js';\n\n/**\n * Prevents tabbing outside of the provided list of elements.\n * \n * @param {*} focusableElementsSelectorString \n */\nexport const enableFocusTrap = (focusableElementsSelectorString) => {\n let focusable = document.querySelectorAll(focusableElementsSelectorString);\n if (focusable.length) {\n focusable[0].focus();\n }\n\n window.addEventListener('keydown', e => {\n if (e.keyCode === 9) {\n focusable = document.querySelectorAll(focusableElementsSelectorString);\n if (focusable.length) {\n let first = focusable[0];\n let last = focusable[focusable.length - 1];\n let shift = e.shiftKey;\n if (shift) {\n if (e.target === first) { // shift-tab pressed on first input in dialog\n last.focus();\n e.preventDefault();\n }\n } else {\n if (e.target === last) { // tab pressed on last input in dialog\n first.focus();\n e.preventDefault();\n }\n }\n }\n }\n });\n};\n\nexport const initLottie = () => {\n document.querySelectorAll(\".lottie\").forEach(element => {\n if (element.lottieInitialized) {\n return;\n }\n\n let path = null;\n\n // if CDN is used, we need to remove \"/dist\" and use the CDN domain\n const mainJSBundleScriptTag = document.querySelector(\"#main-js-bundle\");\n const distCdnUrl = mainJSBundleScriptTag.dataset.distCdnUrl ? mainJSBundleScriptTag.dataset.distCdnUrl : null;\n const distMountPoint = mainJSBundleScriptTag.dataset.distMountPoint ? mainJSBundleScriptTag.dataset.distMountPoint : null;\n if (distCdnUrl !== null || distMountPoint !== null) {\n path = `${distCdnUrl}${distMountPoint}Duly_loader_strokestofill.json`;\n path = path.replace(\"/dist\", \"/dist\");\n } else {\n path = \"/Duly_loader_strokestofill.json\";\n }\n\n lottie.loadAnimation({\n container: element, // Required\n path: path, // Required\n loop: true, // Optional\n autoplay: true // Optional\n });\n\n element.lottieInitialized = true;\n });\n}\n\nexport const setupPhoneHandler = (input) => {\n ['keyup', 'focus', 'blur', 'paste'].forEach((event) => {\n input.addEventListener(event, (e) => {\n const formattedNumber = new AsYouType('US').input(e.target.value);\n e.target.value = formattedNumber;\n });\n });\n}\n\n/**\n * Returns an identifier corresponding to the current site we are on. \n * @returns \"dmg\"|\"sbc\"|\"unknown\"\n */\nexport const determineCurrentSite = () => {\n let el = document.querySelector('.main-footer input[name=\"current-site-handle\"]');\n if (!el || !el.value) return \"unknown\";\n if (el.value === \"default\") return \"dmg\";\n if (el.value === \"southBendClinic\") return \"sbc\";\n if (el.value === \"qmg\") return \"qmg\";\n else return \"unknown\";\n}\n\n/**\n * default coords for initializing map for each site\n */\nexport const initMapCoords = {\n dmg: [-88.014710, 41.831440],\n sbc: [-86.2569242, 41.6748274],\n qmg: [-91.4013785, 39.9322798],\n}\n\nexport const handleLocationCardViewAllHours = () => {\n const viewAllHours = document.querySelectorAll('.locationCard .viewAllHours,.nearestLocations');\n viewAllHours.forEach((viewAll) => {\n const toggle = viewAll.querySelector('.toggle');\n toggle.addEventListener('click', () => {\n viewAll.classList.toggle('active');\n })\n });\n}\n\nexport const setupDateInputListeners = (monthInput, dayInput, yearInput, onInput = () => void 0) => {\n monthInput.addEventListener(\"input\", (e) => {\n e.preventDefault();\n const { target } = e;\n target.value = target.value.replace(/\\D/g, \"\");\n onInput();\n // skip to the day field\n if (target.value.length === 2) {\n dayInput.select();\n }\n });\n\n dayInput.addEventListener(\"input\", (e) => {\n e.preventDefault();\n const { target } = e;\n target.value = target.value.replace(/\\D/g, \"\");\n onInput();\n // skip to the year field\n if (target.value.length === 2) {\n yearInput.select();\n }\n });\n\n yearInput.addEventListener(\"input\", (e) => {\n e.preventDefault();\n const { target } = e;\n target.value = target.value.replace(/\\D/g, \"\");\n onInput();\n });\n}\n\nexport const handleTableScroll = () => {\n const tableContainers = document.querySelectorAll(\".table-container\");\n if (!tableContainers) {\n return;\n }\n const handleShowScrollViewMore = () => {\n tableContainers.forEach((container) => {\n const table = container.querySelector(\"table\");\n if (!table) {\n return;\n }\n const scrollViewMore = container.nextElementSibling;\n if (container.offsetWidth < table.offsetWidth) {\n scrollViewMore.classList.remove(\"hidden\");\n } else {\n scrollViewMore.classList.add(\"hidden\");\n }\n });\n };\n handleShowScrollViewMore();\n window.addEventListener(\"resize\", () => {\n handleShowScrollViewMore();\n });\n};\n ","'use strict';\nimport { Search } from '../search';\nimport { enableFocusTrap } from '../utils';\n\nexport class ServiceSearch {\n constructor() {\n if (!document.querySelector('.schedule-services-page')) {\n return;\n }\n\n this.query = new Search(\n \"#search-services\",\n \".search-content form.search-appointment-services\",\n location.origin + \"/schedule/services/auto-suggestions\",\n \"query\",\n \"#html-content-template-recent-searches\",\n \"#html-content-template-auto-complete\"\n );\n\n document.querySelectorAll(\".search-results-container form\").forEach(form => form.addEventListener(\"submit\", e => {\n e.preventDefault();\n e.stopPropagation();\n this.submitSearch();\n return false;\n }), true);\n\n this.addEventListeners();\n\n this.href = new URL(location.href);\n this.searchTerm = this.href.searchParams.get('query');\n let container = document.querySelector('.results-container');\n \n if (this.searchTerm) {\n this.prepopulateResults();\n } \n\n if (document.querySelector('.no-schedule-for-service')) {\n this.showAlertModals();\n }\n\n container.classList.remove('hidden');\n }\n\n showAlertModals() {\n const events = ['click', 'keydown'];\n let modals = document.querySelectorAll('.no-schedule-for-service');\n let dismissBtns = document.querySelectorAll('.dismiss-modal');\n let closeBtns = document.querySelectorAll('.close');\n\n events.forEach(event => {\n modals.forEach(modal => {\n modal.addEventListener(event, (e)=> {\n if (this.keydownOrClick(event, e)) {\n // focus on modal while open\n enableFocusTrap('.no-appointment-types-modal button, .no-appointment-types-modal span.material-icons.close');\n \n let id = modal.id.split('service-')[1];\n\n if (document.querySelector('#alert-' + id) && id) {\n document.querySelector('#alert-' + id).classList.remove('hidden');\n }\n }\n })\n })\n\n dismissBtns.forEach(btn => {\n btn.addEventListener(event, (e) => {\n if (this.keydownOrClick(event, e)) {\n this.hideAllModals();\n }\n });\n });\n\n closeBtns.forEach(btn => {\n btn.addEventListener(event, (e) => {\n if (this.keydownOrClick(event, e)) {\n this.hideAllModals();\n }\n });\n });\n });\n }\n\n hideAllModals() {\n let modals = document.querySelectorAll('.no-appointment-types-modal');\n\n for (let i = 0; i < modals.length; i++) {\n modals[i].classList.add('hidden');\n }\n }\n\n prepopulateResults() {\n let container = document.querySelector('.search-appointment-services');\n let searchBar = document.querySelector('#search-services');\n let label = container.querySelector('span.mdc-floating-label');\n \n if (label && searchBar) {\n label.classList.add('mdc-floating-label--float-above');\n searchBar.value = this.searchTerm;\n this.fireAjaxEvent();\n }\n }\n\n keydownOrClick(event, e) {\n if ((event === 'keydown' && e.keyCode === 13) || event === \"click\") {\n return true;\n } else {\n return false;\n }\n }\n\n submitSearch() {\n let query_value = document.querySelector(\"#search-services\").value;\n if (query_value.length > 0) {\n this.query.storeRecentSearch(query_value);\n }\n }\n\n addEventListeners() {\n const btn = document.querySelector('.search-results-btn');\n const events = ['click', 'keydown'];\n const form = document.querySelector('#search-services');\n\n form.addEventListener('keydown', (e)=> {\n if (e.keyCode === 13) {\n this.fireAjaxEvent();\n }\n })\n\n events.forEach((event) => {\n btn.addEventListener(event, (e)=> {\n if (this.keydownOrClick(event, e)) {\n this.fireAjaxEvent();\n }\n })\n });\n }\n\n /**\n * Update the view with search results\n */\n async fireAjaxEvent() {\n let spinner = document.querySelector('.loading-spinner');\n let container = document.querySelector('.dynamic-results');\n let searchBar = document.querySelector('#search-services');\n\n // hide content\n spinner.classList.remove('hidden');\n container.classList.add('hidden');\n\n this.href.searchParams.delete('query');\n this.href.searchParams.set('query', searchBar.value);\n\n fetch(this.href, {\n method: 'GET',\n mode: 'same-origin',\n cache: 'no-cache',\n follow: true,\n async: true,\n credentials: 'same-origin',\n headers: {\n 'Accept': 'text/html',\n 'x-isAjax': true\n }\n }).then(async (response) => {\n const text = await response.text();\n if (response.ok) {\n return text;\n } else {\n return Promise.reject(response)\n }\n }).then(async (data) => {\n document.querySelector('.dynamic-results').innerHTML = data;\n spinner.classList.add('hidden');\n container.classList.remove('hidden');\n this.addEventListeners();\n this.showAlertModals();\n }).catch((response) => {\n if (document.querySelector('.fetch-error')) {\n let error = document.querySelector('.fetch-error');\n error.classList.remove('hidden');\n error.textContent = \"Sorry, we weren’t able to proceed. Please try again.\"\n }\n });\n }\n}","/**\n * represents an entry from the alertModals section in the CMS\n * @param {element} - the html element node for the modal, the outermost div in templates/_alerts/_modal.twig\n * @param {function} onContinue - the callback function to be executed when the user clicks the CTA to continue\n * @param {function} onDismiss - callback function to be executed when the modal is dismissed from the close icon \n */\nclass AlertModal {\n\tconstructor(element, onContinue = () => {}, onDismiss = () => {}) {\n\t\tthis.root = element;\n\t\tthis.onContinue = onContinue;\n\t\tthis.onDismiss = onDismiss;\n\t\tthis.setupDismissButton();\n\t\tthis.setupContinueButtons();\n\t}\n\t/**\n\t * attaches event listener to the dismiss button if modal is dismissible\n\t */\n\tsetupDismissButton() {\n\t\tthis.dismissButton = this.root.querySelector(\".closeModal\");\n\t\tif (!this.dismissButton) {\n\t\t\treturn;\n\t\t}\n\t\tthis.dismissButton.addEventListener(\"click\", () => {\n\t\t\tthis.hide();\n\t\t\tthis.onDismiss();\n\t\t});\n\t}\n\t/**\n\t * attaches event listener to the continue buttons\n\t */\n\tsetupContinueButtons() {\n\t\tthis.continueButtons = this.root.querySelectorAll(\"button.continue\");\n\t\tif (!this.continueButtons) {\n\t\t\treturn;\n\t\t}\n\t\tthis.continueButtons.forEach((button) => {\n\t\t\tbutton.addEventListener(\"click\", (e) => this.onContinue(e));\n\t\t});\n\t}\n\t/**\n\t * shows the modal\n\t */\n\tshow() {\n\t\tthis.root.classList.remove(\"hidden\");\n\t}\n\t/**\n\t * hides the modal\n\t */\n\thide() {\n\t\tthis.root.classList.add(\"hidden\");\n\t}\n}\n\nexport default AlertModal;\n","'use strict';\n\nexport class YouTubeApi {\n constructor() {\n this.connectYouTubeApi();\n }\n\n grabYouTubeId(url) {\n let regex = url.split(/(vi\\/|v=|\\/v\\/|youtu\\.be\\/|\\/embed\\/)/);\n return (regex[2] !== undefined) ? regex[2].split(/[^0-9a-z_\\-]/i)[0] : regex[0];\n }\n\n keydownOrClick(event, e) {\n if ((event === 'keydown' && e.keyCode === 13) || event === \"click\" || event === \"touchmove\") {\n return true;\n } else {\n return false;\n }\n }\n\n getVideoJson(id, element) {\n let url = '/services/youtube-api?id=' + id;\n\n fetch(url, {\n method: 'GET',\n credentials: 'same-origin',\n async: true,\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n }\n }).then(async (response) => {\n const json = await response.json();\n return response.ok ? json : Promise.reject(json);\n }).then((response) => {\n let thumbnail = response['thumbnail_url'];\n let title = response['title'];\n\n let imgContainer = element.querySelector('.image');\n let img = document.createElement('img');\n img.src = thumbnail;\n img.alt = title;\n imgContainer.appendChild(img);\n\n element.querySelector('span').innerHTML = \"https://www.youtube.com/embed/\" + id + \"?enablejsapi=1\";\n\n let header = element.querySelector('.title');\n header.innerHTML = title;\n }).catch((response) => {\n console.log(\"YouTube API Error:\" + response);\n });\n }\n\n replaceMainVideo(element) {\n let main = document.querySelector('#hero-video');\n main.querySelector('iframe').src = element.querySelector('.hidden').innerHTML;\n\n let mainVideo = main.querySelector('.video');\n let mainContent = mainVideo.querySelector('.content');\n let elementContent = element.querySelector('.content');\n\n let cloneElement = elementContent.cloneNode(true);\n let cloneMain = mainContent.cloneNode(true);\n\n mainVideo.appendChild(cloneElement);\n element.appendChild(cloneMain);\n\n element.removeChild(elementContent);\n mainVideo.removeChild(mainContent);\n }\n\n addEventListeners(videos) {\n let clickEvents = ['click', 'keydown'];\n\n clickEvents.forEach((event) => {\n videos.forEach((element) => {\n element.addEventListener(event, (e)=> {\n if (this.keydownOrClick(event, e)) {\n this.replaceMainVideo(element);\n }\n });\n })\n });\n }\n \n pauseVideo() {\n if (document.querySelector('#iframe-video')) {\n // https://stackoverflow.com/a/8668741\n let iframe = document.querySelector('#iframe-video').contentWindow;\n iframe.postMessage('{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*');\n }\n }\n\n connectYouTubeApi() {\n const container = document.querySelector('.service-videos-section');\n const videos = container.querySelectorAll('.video');\n const mainVideoSrc = container.querySelector('iframe').src;\n const mainId = this.grabYouTubeId(mainVideoSrc);\n container.querySelector('iframe').src = \"https://www.youtube.com/embed/\" + mainId + \"?enablejsapi=1\";\n\n for (let i = 0; i < videos.length; i++) {\n let video = videos[i];\n let link = video.querySelector('span').innerHTML;\n let id = this.grabYouTubeId(link);\n\n if (id) {\n this.getVideoJson(id, video);\n }\n }\n\n this.addEventListeners(videos);\n }\n}","import \"./styles.scss\";\nimport { ServiceSearch } from \"../../js/appointments/service-search\";\nimport { ServicesDetail } from \"../../js/services-detail\";\n\nnew ServicesDetail();\nnew ServiceSearch();\n","'use strict';\nimport AlertModal from './appointments/alert-modal';\nimport { YouTubeApi } from './youtube-api';\n\nexport class ServicesDetail {\n constructor() {\n\n this.container = document.querySelector('.services-detail-container');\n if (this.container) {\n this.setup();\n }\n }\n\n setup() {\n // per designs, not all categories may be loaded based on detail content\n // need to check to make sure containers are loaded in DOM first\n this.initActiveState('.interactive-container');\n this.hideEmptyNavigationBar();\n\n if (document.querySelector('.expand-procedures')) {\n this.viewMoreProcedures();\n }\n\n if (document.querySelector('.expand-conditions')) {\n this.viewMoreConditions();\n }\n\n if (document.querySelector('.hospital-affiliation')) {\n this.hospitalAffliations();\n }\n\n if (document.querySelector('.service-videos-section')) {\n this.player = new YouTubeApi();\n }\n\n if (document.querySelector('.choose-patient-prompt')) {\n this.patientLoginModal();\n }\n\n if (document.getElementById('specials')) {\n this.handleSpecials();\n }\n this.setupServiceForm();\n }\n\n setupServiceForm() {\n this.serviceForm = document.querySelector('form.servicesForm');\n if (!this.serviceForm) {\n return;\n }\n this.serviceForm.addEventListener('submit', (e) => {\n e.preventDefault();\n const modal = this.serviceForm.querySelector('.alertModal');\n if (!modal) {\n this.serviceForm.submit();\n return;\n }\n const alertModal = new AlertModal(modal, () => this.serviceForm.submit());\n alertModal.show();\n })\n }\n\n hideEmptyNavigationBar() {\n const sidebar = document.querySelector('.sidebar-navigation');\n const scheduleCta = sidebar.querySelector('.schedule');\n const height = sidebar.offsetHeight;\n \n if (!height && !scheduleCta) {\n sidebar.classList.add('hidden');\n this.container.classList.add('justify-center');\n }\n }\n\n removeActiveSelect(categories) {\n for (let i = 0; i < categories.length; i++) {\n categories[i].classList.remove('active');\n }\n }\n\n showColumns(cols) {\n for (let i = 0; i < cols.length; i++) {\n cols[i].classList.remove('hidden');\n }\n }\n\n hideColumns(cols) {\n for (let i = 0; i < cols.length; i++) {\n // first two columns should always be shown\n if (i > 1) {\n cols[i].classList.add('hidden');\n }\n }\n }\n\n keydownOrClick(event, e) {\n if ((event === 'keydown' && e.keyCode === 13) || event === \"click\" || event === \"touchmove\") {\n return true;\n } else {\n return false;\n }\n }\n\n patientLoginModal() {\n const scheduleBtn = document.querySelector('.servicesForm');\n const modal = document.querySelector('.choose-patient-prompt');\n\n if (modal !== null && scheduleBtn !== null) {\n scheduleBtn.addEventListener('submit', (e)=> {\n e.preventDefault();\n modal.classList.remove('hidden');\n })\n }\n }\n\n viewMoreConditions() {\n const container = document.querySelector('.interactive-container');\n const conditions = container.querySelector('.conditions');\n const conditionBtn = container.querySelector('.expand-conditions');\n const cols = conditions.querySelectorAll('.column');\n this.addExpandEvent(conditionBtn, cols)\n }\n\n viewMoreProcedures() {\n const container = document.querySelector('.interactive-container');\n const procedures = container.querySelector('.procedures');\n const procedureBtn = container.querySelector('.expand-procedures');\n const cols = procedures.querySelectorAll('.column');\n this.addExpandEvent(procedureBtn, cols)\n }\n\n addExpandEvent(btn, cols) {\n const clickEvents = ['click', 'keydown'];\n\n clickEvents.forEach((event) => {\n btn.addEventListener(event, (e) => {\n if (this.keydownOrClick(event, e)) {\n if (btn.classList.contains('view-less')) {\n this.hideColumns(cols);\n btn.classList.remove('view-less');\n } else {\n this.showColumns(cols);\n btn.classList.add('view-less');\n }\n }\n });\n });\n }\n\n displayCategoryContent(container, element) {\n const categories = container.querySelectorAll('.container');\n let selector = element.querySelector('h3').innerText;\n let modifiedSelector = selector.toLowerCase().replace(' & ', '').replaceAll(' ', '-');\n for (let i = 0; i < categories.length; i++) {\n if (categories[i].classList.contains(modifiedSelector)) {\n if (modifiedSelector != 'interactive') {\n if (this.player) {\n this.player.pauseVideo();\n }\n }\n categories[i].classList.add('active');\n } else {\n categories[i].classList.remove('active');\n }\n }\n }\n\n initActiveState(containerElement) {\n const containers = document.querySelectorAll(containerElement);\n containers.forEach((container) => {\n const categories = container.querySelectorAll('.category');\n const clickEvents = ['click', 'keydown'];\n \n // first container displayed can be dynamic\n // grab first one and make it active\n \n let headers = container.querySelectorAll('.category');\n let containers = container.querySelectorAll('.container');\n \n if (headers[0]) {\n headers[0].classList.add('active');\n }\n \n if (containers[0]) {\n containers[0].classList.add('active');\n }\n \n categories.forEach((element) => {\n clickEvents.forEach((event) => {\n element.addEventListener(event, (e) => {\n if (this.keydownOrClick(event, e)) {\n this.removeActiveSelect(categories);\n element.classList.add('active');\n this.displayCategoryContent(container, element);\n }\n })\n })\n })\n })\n }\n\n hospitalAffliations() {\n const container = document.querySelector('.hospital-affiliation');\n const hospitalNames = container.querySelectorAll('.name');\n const hospitalContainers = container.querySelectorAll('.hospital');\n const clickEvents = ['click', 'keydown', 'touchmove'];\n\n hospitalNames.forEach((element) => {\n clickEvents.forEach((event) => {\n element.addEventListener(event, (e)=> {\n if (this.keydownOrClick(event, e)) {\n let parent = element.parentNode;\n\n if (parent.classList.contains('active')) {\n parent.classList.remove('active');\n } else {\n this.removeActiveSelect(hospitalContainers);\n parent.classList.add('active');\n }\n }\n });\n });\n });\n }\n\n handleSpecials() {\n const _specials = document.getElementById('specials');\n if (!_specials) {\n return;\n }\n const specials = _specials.querySelectorAll('.specialContainer');\n if (!specials.length) {\n return;\n }\n const viewMoreToggle = document.getElementById('viewMoreToggle');\n if (!viewMoreToggle) { \n return;\n }\n const toggleText = viewMoreToggle.querySelector('.toggleText');\n let isActive = false;\n viewMoreToggle.addEventListener('click', () => {\n isActive = !isActive;\n toggleText.innerText = isActive ? 'Show Less' : 'Show More';\n isActive ? viewMoreToggle.classList.add('active') : viewMoreToggle.classList.remove('active');\n specials.forEach((special) => {\n if (isActive) {\n if (special.classList.contains('hidden')) {\n special.classList.remove('hidden');\n }\n } else {\n if (special.dataset.hidden) {\n special.classList.add('hidden');\n }\n }\n })\n })\n }\n}\n"],"names":["parent","module","exports","entryVirtual","concat","filter","forEach","push","reduce","reverse","slice","splice","isPrototypeOf","method","ArrayPrototype","Array","prototype","it","own","StringPrototype","String","replaceAll","path","apply","JSON","stringify","replacer","space","arguments","Object","P","D","create","defineProperty","key","desc","sham","getPrototypeOf","setPrototypeOf","Promise","Symbol","WrappedWellKnownSymbolModule","f","isCallable","tryToString","$TypeError","TypeError","argument","isConstructor","$String","Prototype","isObject","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","this","length","undefined","bind","call","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","lengthOfArrayLike","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","O","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","result","step","iterator","next","value","iteratorMethod","index","done","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","indexOf","uncurryThis","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","that","specificCreate","self","boundFunction","target","map","some","every","find","findIndex","filterReject","fails","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","Boolean","aCallable","IS_RIGHT","memo","i","left","right","DESCRIPTORS","isArray","getOwnPropertyDescriptor","SILENT_ON_NON_WRITABLE_LENGTH_SET","writable","error","max","Math","start","end","k","fin","n","arraySlice","floor","mergeSort","comparefn","middle","insertionSort","merge","element","j","llength","rlength","lindex","rindex","originalArray","C","arraySpeciesConstructor","anObject","iteratorClose","fn","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","from","exec","SKIP_CLOSING","ITERATION_SUPPORT","object","toString","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","tag","tryGet","callee","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","source","exceptions","keys","F","createPropertyDescriptor","bitmap","enumerable","configurable","toPropertyKey","propertyKey","name","descriptor","createNonEnumerableProperty","options","defineBuiltIn","src","unsafe","global","get","documentAll","document","all","IS_HTMLDDA","EXISTS","createElement","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","IS_DENO","IS_NODE","window","Bun","version","Deno","userAgent","test","Pebble","classof","process","navigator","match","versions","v8","split","CONSTRUCTOR","$Error","Error","replace","TEST","stack","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","prepareStackTrace","clearErrorStack","ERROR_STACK_INSTALLABLE","captureStackTrace","isForced","wrapConstructor","NativeConstructor","Wrapper","a","b","c","FORCED","USE_NATIVE","VIRTUAL_PROTOTYPE","sourceProperty","targetProperty","nativeProperty","resultProperty","TARGET","GLOBAL","STATIC","stat","PROTO","proto","nativeSource","targetPrototype","forced","dontCallGetSet","wrap","real","NATIVE_BIND","FunctionPrototype","Function","Reflect","hasOwnProperty","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","aFunction","variable","namespace","getMethod","isNullOrUndefined","Iterators","usingIterator","rawLength","keysLength","root","V","func","charAt","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","str","position","captures","namedCaptures","replacement","tailPos","m","symbols","ch","capture","check","globalThis","g","getBuiltIn","propertyIsEnumerable","store","functionToString","inspectSource","cause","set","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","metadata","facade","STATE","enforce","getterFor","type","$documentAll","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","MATCH","isRegExp","USE_SYMBOL_AS_UID","$Symbol","Result","stopped","ResultPrototype","iterable","unboundFunction","iterFn","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","kind","innerResult","innerError","IteratorPrototype","setToStringTag","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","$","IS_PURE","FunctionName","createIteratorConstructor","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","obj","ceil","trunc","x","notify","toggle","node","promise","then","macrotask","Queue","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","microtask","queue","flush","domain","exit","head","enter","resolve","nextTick","createTextNode","observe","characterData","add","PromiseCapability","reject","$$resolve","$$reject","$default","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","assign","A","B","symbol","alphabet","chr","join","T","getOwnPropertySymbols","S","activeXDocument","definePropertiesModule","enumBugKeys","html","documentCreateElement","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","style","display","appendChild","contentWindow","open","Properties","V8_PROTOTYPE_DEFINE_BUG","defineProperties","props","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","$getOwnPropertyNames","windowNames","getOwnPropertyNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","$propertyIsEnumerable","NASHORN_BUG","uncurryThisAccessor","aPossiblePrototype","setter","CORRECT_SETTER","__proto__","input","pref","val","valueOf","getOwnPropertyNamesModule","NativePromiseConstructor","IS_BROWSER","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","REJECTION_EVENT","newPromiseCapability","promiseCapability","checkCorrectnessOfIteration","tail","item","entry","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","regExpFlags","RegExpPrototype","RegExp","R","flags","ENGINE_IS_BUN","USER_AGENT","validateArgumentsLength","WRAP","scheduler","hasTimeArg","firstParamIndex","handler","timeout","boundArgs","params","callback","defineBuiltInAccessor","CONSTRUCTOR_NAME","Constructor","TAG","SET_METHOD","uid","defineGlobalProperty","SHARED","mode","copyright","license","aConstructor","defaultConstructor","toIntegerOrInfinity","requireObjectCoercible","charCodeAt","CONVERT_TO_STRING","pos","first","second","size","codeAt","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","$RangeError","RangeError","fromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","base","encode","output","counter","extra","ucs2decode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","q","t","qMinusT","baseMinusT","label","encoded","labels","SymbolPrototype","TO_PRIMITIVE","hint","arity","keyFor","thisSymbolValue","isRegisteredSymbol","isSymbol","$isWellKnownSymbol","isWellKnownSymbol","WellKnownSymbolsStore","symbolKeys","symbolKeysLength","symbolKey","NATIVE_SYMBOL","$location","defer","channel","port","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","ONREADYSTATECHANGE","location","run","id","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","args","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","min","integer","number","ordinaryToPrimitive","exoticToPrim","toPrimitive","postfix","random","url","URL","searchParams","params2","URLSearchParams","pathname","toJSON","sort","href","username","hash","passed","required","wrappedWellKnownSymbolModule","createWellKnownSymbol","withoutSetter","copyConstructorProperties","installErrorCause","installErrorStack","iterate","normalizeStringArgument","$AggregateError","errors","message","isInstance","AggregateErrorPrototype","errorsArray","AggregateError","doesNotExceedSafeInteger","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","arg","len","E","$filter","addToUnscopables","InternalStateModule","defineIterator","createIterResultObject","ARRAY_ITERATOR","setInternalState","getInternalState","iterated","Arguments","setArrayLength","properErrorOnNonWritableLength","argCount","$reduce","CHROME_VERSION","nativeReverse","nativeSlice","HAS_SPECIES_SUPPORT","deletePropertyOrThrow","deleteCount","insertCount","actualDeleteCount","to","actualStart","getReplacerFunction","$stringify","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","offset","prev","$getOwnPropertySymbols","nativeGetPrototypeOf","newPromiseCapabilityModule","perform","allSettled","capability","promiseResolve","remaining","alreadyCalled","status","reason","$promiseResolve","PROMISE_STATICS_INCORRECT_ITERATION","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","onRejected","Internal","OwnPromiseCapability","nativeThen","setSpecies","anInstance","speciesConstructor","task","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","PromiseWrapper","onFinally","isFunction","e","race","r","PromiseConstructorWrapper","CHECK_WRAPPER","STRING_ITERATOR","point","getRegExpFlags","getSubstitution","REPLACE","stringIndexOf","searchValue","replaceValue","IS_REG_EXP","searchString","functionalReplace","searchLength","advanceBy","endOfLastMatch","defineWellKnownSymbol","$toString","nativeObjectCreate","getOwnPropertyNamesExternal","defineSymbolToPrimitive","HIDDEN","SYMBOL","QObject","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","fallbackDefineProperty","ObjectPrototypeDescriptor","setSymbolDescriptor","description","$defineProperties","properties","IS_OBJECT_PROTOTYPE","useSetter","useSimple","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","sym","METADATA","withResolvers","isRegistered","isWellKnown","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","setInterval","schedulersFix","USE_NATIVE_URL","defineBuiltIns","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","safeGetBuiltIn","nativeFetch","NativeRequest","Headers","RequestPrototype","HeadersPrototype","decodeURIComponent","encodeURIComponent","shift","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","replacements","serialize","URLSearchParamsIterator","URLSearchParamsState","init","parseObject","parseQuery","bindURL","update","entryIterator","entryNext","query","attribute","attributes","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","append","$value","getAll","found","headersHas","headersSet","wrapRequestOptions","headers","body","fetch","RequestConstructor","Request","getState","canParse","urlString","EOF","arrayFrom","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","parseInt","pow","pop","unshift","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_C0_CONTROL_OR_SPACE","TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","compress","ignore0","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","code","specialSchemes","ftp","file","http","https","ws","wss","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","failure","parse","stateOverride","codePoints","bufferCodePoints","pointer","buffer","seenAt","seenBracket","seenPasswordToken","scheme","password","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","parseIPv6","partsLength","numbers","part","radix","ipv4","parts","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","origin","getProtocol","setProtocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","search","getSearchParams","getHash","setHash","URLPrototype","accessorDescriptor","getter","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","factory","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","attr","prop","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","_shouldRoundValues","bmPow","bmSqrt","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","abs","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","round","styleDiv","top","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","h","s","v","p","RGBtoHSV","d","addSaturationToRGB","color","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","_workerSelf","setupWorker","Worker","Blob","blob","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","ks","o","checkVersion","minimum","animVersionString","animVersion","minimumVersion","checkText","iterateLayers","textLayer","documentData","animationData","assets","checkChars","chars","charData","ip","op","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","errorCallback","XMLHttpRequest","err","onreadystatechange","readyState","send","completeData","payload","animation","onComplete","onError","createProcess","loadAnimation","processId","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","width","height","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","u","testImageLoaded","img","intervalId","getBBox","_imageLoaded","clearInterval","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","destroy","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","removeEventListener","markerParser","parsePayloadLines","line","lines","keysCount","trim","_markers","markers","_marker","markerData","time","tm","duration","dr","cm","_","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","loop","renderer","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","container","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","lastIndexOf","substr","fileName","trigger","setData","wrapperAttributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","setSubframe","renderFrame","resetFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","Number","isNaN","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","setLoop","isLooping","getPath","getAssetData","hide","show","getDuration","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","setAttribute","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","storedData","buildBezierData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","ti","ind","__fnct","getBezierEasing","y","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","by","bz","bw","acos","sin","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","l","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","multiply","matrix","matrixProps","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","setSubframeRendering","setPrefix","prefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","vars","queryString","pair","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","p10","p11","p20","p21","bounds","bottom","other","shapeSegmentInverted","pointsType","count","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","w","combinedCharacters","BLACK_FLAG_CODE_POINT","REGIONAL_CHARACTER_A_CODE_POINT","REGIONAL_CHARACTER_Z_CODE_POINT","surrogateModifiers","setUpNode","font","family","parentNode","fontFamily","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","createHelper","def","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","text","getComputedTextLength","getCodePoint","isRegionalCode","Font","typekitLoaded","_warned","Date","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","fontPrototype","list","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","getCharData","_char","console","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","SlotManager","slotFactory","RenderableElement","slots","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","opacity","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","of","ms","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentIndex","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","config","svgElement","ariaLabel","title","titleElement","titleId","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","filterSize","runExpressions","destroyed","ShapeTransformManager","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","addTransformSequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","strokeStyle","lineCap","CVContextData","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","CanvasRenderer","clearCanvas","context","dpr","devicePixelRatio","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","getTransform","exitLayer","forceRealStack","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","grd","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","globalAlpha","rule","actionFlag","containerStyle","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","lineHeight","tParent","tCont","children","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","nodecrypto","rngname","startdenom","significance","ARC4","keylen","me","copy","flatten","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","initialize$2","propTypes","SHAPE","_typeof$1","ExpressionManager","frames","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","property","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","active","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","anchor_point","startTime","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","stringValue","fillColor","_typeof","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","expressionHelpers","searchExpressions","speed","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","sigma","dimensions","sigmaX","sigmaY","edgeMode","forceFrame","isUniformScale","scaleHeight","scaleWidth","_Object$defineProperty","_Symbol","_Object$create","_Object$getPrototypeOf","_forEachInstanceProperty","_pushInstanceProperty","_Object$setPrototypeOf","_Promise","_reverseInstanceProperty","_sliceInstanceProperty","_regeneratorRuntime","__esModule","asyncIterator","toStringTag","define","Generator","Context","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_context","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","_context2","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","displayName","isGeneratorFunction","mark","awrap","async","_context3","rval","handle","complete","finish","delegateYield","_Symbol$iterator","runtime","regeneratorRuntime","accidentalStrictMode","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","definition","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","_classCallCheck","instance","_toPropertyKey","prim","res","_defineProperties","_createClass","protoProps","staticProps","Search","inputSelector","inputContainerSelector","autoCompleteUrl","autoCompleteSearchParameter","recentHistoryTemplateSelector","autoCompleteTemplateSelector","autoCompleteCallback","recentHistoryTemplate","querySelector","autoCompleteTemplate","inputElement","inputContainerElement","localStorage","getItem","_filterInstanceProperty","setItem","_JSON$stringify","repopulateHistory","createSearchHistoryContainer","createAutocompleteContainer","setOnClearListener","setFocusAndBlurListeners","setAutoCompleteListeners","setArrowKeysListeners","searchHistory","cloneNode","autoComplete","_this","_spliceInstanceProperty","dataset","_reduceInstanceProperty","accumulator","innerHTML","_ref","classList","remove","focus","showingAutoSuggestions","showingHistory","_this2","clearTimeout","_timeout","_setTimeout","populateAutoComplete","_this3","_URL","follow","credentials","json","_ref2","_this4","removeItem","_this5","closest","_this6","lastKey","keyCode","throttlePopulateAutoComplete","_this7","currentListSelectionIndex","markCurrentItemAsSelected","contains","currentCount","_this8","selectedItem","_context4","ServiceSearch","form","preventDefault","stopPropagation","submitSearch","addEventListeners","searchTerm","prepopulateResults","showAlertModals","_fireAjaxEvent","events","modals","dismissBtns","closeBtns","modal","keydownOrClick","focusableElementsSelectorString","last","shiftKey","btn","hideAllModals","searchBar","fireAjaxEvent","query_value","storeRecentSearch","_callee3","spinner","delete","_callee","_x","_callee2","_x2","catch","AlertModal","onContinue","onDismiss","setupDismissButton","setupContinueButtons","dismissButton","continueButtons","button","YouTubeApi","connectYouTubeApi","regex","thumbnail","imgContainer","alt","main","mainVideo","mainContent","elementContent","cloneElement","cloneMain","videos","clickEvents","replaceMainVideo","mainVideoSrc","mainId","grabYouTubeId","video","link","getVideoJson","ServicesDetail","initActiveState","hideEmptyNavigationBar","viewMoreProcedures","viewMoreConditions","hospitalAffliations","player","patientLoginModal","handleSpecials","setupServiceForm","serviceForm","submit","sidebar","scheduleCta","categories","cols","scheduleBtn","conditions","conditionBtn","addExpandEvent","procedures","procedureBtn","hideColumns","showColumns","selector","modifiedSelector","_replaceAllInstanceProperty","pauseVideo","containerElement","containers","removeActiveSelect","displayCategoryContent","hospitalNames","hospitalContainers","_specials","specials","viewMoreToggle","toggleText","isActive","special"],"sourceRoot":""}