{"version":3,"file":"store.c1e9c370.js","sources":["../../../node_modules/vue-advanced-chat/dist/vue-advanced-chat.es.js","../../../app/javascript/components/appraiser/Chatbot.vue?vue&type=template&lang.js","../../../app/javascript/components/appraiser/Chatbot.vue","../../../app/javascript/components/chatbot/store.js"],"sourcesContent":["function makeMap$2(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nconst NOOP$1 = () => {\n};\nconst extend$2 = Object.assign;\nconst hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nconst hasOwn$1 = (val, key) => hasOwnProperty$1.call(val, key);\nconst isArray$2 = Array.isArray;\nconst isMap$1 = (val) => toTypeString$1(val) === \"[object Map]\";\nconst isFunction$2 = (val) => typeof val === \"function\";\nconst isString$2 = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject$2 = (val) => val !== null && typeof val === \"object\";\nconst objectToString$1 = Object.prototype.toString;\nconst toTypeString$1 = (value) => objectToString$1.call(value);\nconst toRawType = (value) => {\n return toTypeString$1(value).slice(8, -1);\n};\nconst isIntegerKey = (key) => isString$2(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst hasChanged$1 = (value, oldValue) => !Object.is(value, oldValue);\nconst def$1 = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.active = true;\n this.effects = [];\n this.cleanups = [];\n if (!detached && activeEffectScope) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n run(fn) {\n if (this.active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n }\n }\n on() {\n activeEffectScope = this;\n }\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this.active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.active = false;\n }\n }\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit;\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n } else {\n deps[ptr++] = dep;\n }\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\nconst targetMap = /* @__PURE__ */ new WeakMap();\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol(\"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(\"\");\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = void 0;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n } else {\n cleanupEffect(this);\n }\n return this.fn();\n } finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = void 0;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n if (activeEffect === this) {\n this.deferStop = true;\n } else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect) {\n const { deps } = effect;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect);\n }\n deps.length = 0;\n }\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep());\n }\n trackEffects(dep);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack2 = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit;\n shouldTrack2 = !wasTracked(dep);\n }\n } else {\n shouldTrack2 = !dep.has(activeEffect);\n }\n if (shouldTrack2) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray$2(target)) {\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 >= newValue) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray$2(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap$1(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray$2(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap$1(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap$1(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n if (deps.length === 1) {\n if (deps[0]) {\n {\n triggerEffects(deps[0]);\n }\n }\n } else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n const effects = isArray$2(dep) ? dep : [...dep];\n for (const effect of effects) {\n if (effect.computed) {\n triggerEffect(effect);\n }\n }\n for (const effect of effects) {\n if (!effect.computed) {\n triggerEffect(effect);\n }\n }\n}\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\n if (effect !== activeEffect || effect.allowRecurse) {\n if (effect.scheduler) {\n effect.scheduler();\n } else {\n effect.run();\n }\n }\n}\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap$2(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst get$1 = /* @__PURE__ */ createGetter();\nconst shallowGet = /* @__PURE__ */ createGetter(false, true);\nconst readonlyGet = /* @__PURE__ */ createGetter(true);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction createGetter(isReadonly2 = false, shallow = false) {\n return function get3(target, key, receiver) {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return shallow;\n } else if (key === \"__v_raw\" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray$2(target);\n if (!isReadonly2 && targetIsArray && hasOwn$1(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject$2(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n };\n}\nconst set$1 = /* @__PURE__ */ createSetter();\nconst shallowSet = /* @__PURE__ */ createSetter(true);\nfunction createSetter(shallow = false) {\n return function set2(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!shallow && !isReadonly(value)) {\n if (!isShallow(value)) {\n value = toRaw(value);\n oldValue = toRaw(oldValue);\n }\n if (!isArray$2(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray$2(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn$1(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged$1(value, oldValue)) {\n trigger(target, \"set\", key, value);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn$1(target, key);\n target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0);\n }\n return result;\n}\nfunction has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\", isArray$2(target) ? \"length\" : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nconst mutableHandlers = {\n get: get$1,\n set: set$1,\n deleteProperty,\n has,\n ownKeys\n};\nconst readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n return true;\n },\n deleteProperty(target, key) {\n return true;\n }\n};\nconst shallowReactiveHandlers = /* @__PURE__ */ extend$2({}, mutableHandlers, {\n get: shallowGet,\n set: shallowSet\n});\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1$1(target, key, isReadonly2 = false, isShallow2 = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\n if (key !== rawKey) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly2 = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\n if (key !== rawKey) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly2 = false) {\n target = target[\"__v_raw\"];\n !isReadonly2 && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set$1$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n }\n const oldValue = get3.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged$1(value, oldValue)) {\n trigger(target, \"set\", key, value);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n }\n get3 ? get3.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0);\n }\n return result;\n}\nfunction createForEach(isReadonly2, isShallow2) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap$1(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n return {\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n return type === \"delete\" ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get$1$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get$1$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get$1$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get$1$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(hasOwn$1(instrumentations, key) && key in target ? instrumentations : target, key, receiver);\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\nfunction shallowReactive(target) {\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n}\nfunction readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject$2(target)) {\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def$1(value, \"__v_skip\", true);\n return value;\n}\nconst toReactive = (value) => isObject$2(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject$2(value) ? readonly(value) : value;\nfunction trackRefValue(ref) {\n if (shouldTrack && activeEffect) {\n ref = toRaw(ref);\n {\n trackEffects(ref.dep || (ref.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref, newVal) {\n ref = toRaw(ref);\n if (ref.dep) {\n {\n triggerEffects(ref.dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly2, isSSR) {\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly2;\n }\n get value() {\n const self2 = toRaw(this);\n trackRefValue(self2);\n if (self2._dirty || !self2._cacheable) {\n self2._dirty = false;\n self2._value = self2.effect.run();\n }\n return self2._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction$2(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = NOOP$1;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n return cRef;\n}\nfunction makeMap$1(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nfunction normalizeStyle(value) {\n if (isArray$1(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString$1(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString$1(value)) {\n return value;\n } else if (isObject$1(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:(.+)/;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString$1(value)) {\n res = value;\n } else if (isArray$1(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject$1(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString$1(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\nconst toDisplayString = (val) => {\n return isString$1(val) ? val : val == null ? \"\" : isArray$1(val) || isObject$1(val) && (val.toString === objectToString || !isFunction$1(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {\n entries[`${key} =>`] = val2;\n return entries;\n }, {})\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()]\n };\n } else if (isObject$1(val) && !isArray$1(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst EMPTY_OBJ = {};\nconst EMPTY_ARR = [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst onRE$1 = /^on[^a-z]/;\nconst isOn$1 = (key) => onRE$1.test(key);\nconst isModelListener$1 = (key) => key.startsWith(\"onUpdate:\");\nconst extend$1 = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray$1 = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isFunction$1 = (val) => typeof val === \"function\";\nconst isString$1 = (val) => typeof val === \"string\";\nconst isObject$1 = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return isObject$1(val) && isFunction$1(val.then) && isFunction$1(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isReservedProp = /* @__PURE__ */ makeMap$1(\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst cacheStringFunction$1 = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE$1 = /-(\\w)/g;\nconst camelize$1 = cacheStringFunction$1((str) => {\n return str.replace(camelizeRE$1, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE$1 = /\\B([A-Z])/g;\nconst hyphenate$1 = cacheStringFunction$1((str) => str.replace(hyphenateRE$1, \"-$1\").toLowerCase());\nconst capitalize$1 = cacheStringFunction$1((str) => str.charAt(0).toUpperCase() + str.slice(1));\nconst toHandlerKey = cacheStringFunction$1((str) => str ? `on${capitalize$1(str)}` : ``);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst toNumber$1 = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nfunction callWithErrorHandling(fn, instance2, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance2, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance2, type, args) {\n if (isFunction$1(fn)) {\n const res = callWithErrorHandling(fn, instance2, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance2, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance2, type, args));\n }\n return values;\n}\nfunction handleError(err, instance2, type, throwInDev = true) {\n const contextVNode = instance2 ? instance2.vnode : null;\n if (instance2) {\n let cur = instance2.parent;\n const exposedInstance = instance2.proxy;\n const errorInfo = type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance2.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(appErrorHandler, null, 10, [err, exposedInstance, errorInfo]);\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n {\n console.error(err);\n }\n}\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPreFlushCbs = [];\nlet activePreFlushCbs = null;\nlet preFlushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nlet currentPreFlushParentJob = null;\nfunction nextTick(fn) {\n const p2 = currentFlushPromise || resolvedPromise;\n return fn ? p2.then(this ? fn.bind(this) : fn) : p2;\n}\nfunction findInsertionIndex(id) {\n let start2 = flushIndex + 1;\n let end = queue.length;\n while (start2 < end) {\n const middle = start2 + end >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? start2 = middle + 1 : end = middle;\n }\n return start2;\n}\nfunction queueJob(job) {\n if ((!queue.length || !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) && job !== currentPreFlushParentJob) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\n if (!isArray$1(cb)) {\n if (!activeQueue || !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\n pendingQueue.push(cb);\n }\n } else {\n pendingQueue.push(...cb);\n }\n queueFlush();\n}\nfunction queuePreFlushCb(cb) {\n queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\n}\nfunction queuePostFlushCb(cb) {\n queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\n}\nfunction flushPreFlushCbs(seen, parentJob = null) {\n if (pendingPreFlushCbs.length) {\n currentPreFlushParentJob = parentJob;\n activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\n pendingPreFlushCbs.length = 0;\n for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\n activePreFlushCbs[preFlushIndex]();\n }\n activePreFlushCbs = null;\n preFlushIndex = 0;\n currentPreFlushParentJob = null;\n flushPreFlushCbs(seen, parentJob);\n }\n}\nfunction flushPostFlushCbs(seen) {\n flushPreFlushCbs();\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n flushPreFlushCbs(seen);\n queue.sort((a, b) => getId(a) - getId(b));\n const check2 = NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (false)\n ;\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs();\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPreFlushCbs.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction emit$1(instance2, event, ...rawArgs) {\n if (instance2.isUnmounted)\n return;\n const props = instance2.vnode.props || EMPTY_OBJ;\n let args = rawArgs;\n const isModelListener2 = event.startsWith(\"update:\");\n const modelArg = isModelListener2 && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => a.trim());\n }\n if (number) {\n args = rawArgs.map(toNumber$1);\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || props[handlerName = toHandlerKey(camelize$1(event))];\n if (!handler && isModelListener2) {\n handler = props[handlerName = toHandlerKey(hyphenate$1(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(handler, instance2, 6, args);\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance2.emitted) {\n instance2.emitted = {};\n } else if (instance2.emitted[handlerName]) {\n return;\n }\n instance2.emitted[handlerName] = true;\n callWithAsyncErrorHandling(onceHandler, instance2, 6, args);\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (!isFunction$1(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend$1(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n cache.set(comp, null);\n return null;\n }\n if (isArray$1(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend$1(normalized, raw);\n }\n cache.set(comp, normalized);\n return normalized;\n}\nfunction isEmitListener(options2, key) {\n if (!options2 || !isOn$1(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options2, key[0].toLowerCase() + key.slice(1)) || hasOwn(options2, hyphenate$1(key)) || hasOwn(options2, key);\n}\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance2) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance2;\n currentScopeId = instance2 && instance2.type.__scopeId || null;\n return prev;\n}\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n const res = fn(...args);\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\nfunction markAttrsAccessed() {\n}\nfunction renderComponentRoot(instance2) {\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit: emit2, render: render2, renderCache, data, setupState, ctx, inheritAttrs } = instance2;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance2);\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(render2.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\n fallthroughAttrs = attrs;\n } else {\n const render3 = Component;\n if (false)\n ;\n result = normalizeVNode(render3.length > 1 ? render3(props, false ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit: emit2\n } : { attrs, slots, emit: emit2 }) : render3(props, null));\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance2, 1);\n result = createVNode(Comment);\n }\n let root = result;\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener$1)) {\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\n }\n root = cloneVNode(root, fallthroughAttrs);\n }\n }\n }\n if (vnode.dirs) {\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n root.transition = vnode.transition;\n }\n {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn$1(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener$1(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\nconst isSuspense = (type) => type.__isSuspense;\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray$1(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction provide(key, value) {\n if (!currentInstance)\n ;\n else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance2 = currentInstance || currentRenderingInstance;\n if (instance2) {\n const provides = instance2.parent == null ? instance2.vnode.appContext && instance2.vnode.appContext.provides : instance2.parent.provides;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction$1(defaultValue) ? defaultValue.call(instance2.proxy) : defaultValue;\n } else\n ;\n }\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options2) {\n return doWatch(source, cb, options2);\n}\nfunction doWatch(source, cb, { immediate, deep, flush: flush2, onTrack, onTrigger } = EMPTY_OBJ) {\n const instance2 = currentInstance;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n } else if (isArray$1(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return traverse(s);\n } else if (isFunction$1(s)) {\n return callWithErrorHandling(s, instance2, 2);\n } else\n ;\n });\n } else if (isFunction$1(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance2, 2);\n } else {\n getter = () => {\n if (instance2 && instance2.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(source, instance2, 3, [onCleanup]);\n };\n }\n } else {\n getter = NOOP;\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance2, 4);\n };\n };\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance2, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n return NOOP;\n }\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance2, 3, [\n newValue,\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush2 === \"sync\") {\n scheduler = job;\n } else if (flush2 === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance2 && instance2.suspense);\n } else {\n scheduler = () => queuePreFlushCb(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush2 === \"post\") {\n queuePostRenderEffect(effect.run.bind(effect), instance2 && instance2.suspense);\n } else {\n effect.run();\n }\n return () => {\n effect.stop();\n if (instance2 && instance2.scope) {\n remove(instance2.scope.effects, effect);\n }\n };\n}\nfunction instanceWatch(source, value, options2) {\n const publicThis = this.proxy;\n const getter = isString$1(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction$1(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options2 = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options2);\n if (cur) {\n setCurrentInstance(cur);\n } else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject$1(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n } else if (isArray$1(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\nfunction useTransitionState() {\n const state2 = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state2.isMounted = true;\n });\n onBeforeUnmount(() => {\n state2.isUnmounting = true;\n });\n return state2;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n },\n setup(props, { slots }) {\n const instance2 = getCurrentInstance();\n const state2 = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n for (const c of children) {\n if (c.type !== Comment) {\n child = c;\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (state2.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state2, instance2);\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance2.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === void 0) {\n prevTransitionKey = key;\n } else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state2, instance2);\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state2.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state2.isLeaving = false;\n instance2.update();\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(state2, oldInnerChild);\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el._leaveCb = () => {\n earlyRemove();\n el._leaveCb = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state2, vnode) {\n const { leavingVNodes } = state2;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state2, instance2) {\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state2, vnode);\n const callHook2 = (hook, args) => {\n hook && callWithAsyncErrorHandling(hook, instance2, 9, args);\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook2(hook, args);\n if (isArray$1(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state2.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el._leaveCb) {\n el._leaveCb(true);\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) {\n leavingVNode.el._leaveCb();\n }\n callHook2(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state2.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el._enterCb = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook2(cancelHook, [el]);\n } else {\n callHook2(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el._enterCb = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove2) {\n const key2 = String(vnode.key);\n if (el._enterCb) {\n el._enterCb(true);\n }\n if (state2.isUnmounting) {\n return remove2();\n }\n callHook2(onBeforeLeave, [el]);\n let called = false;\n const done = el._leaveCb = (cancelled) => {\n if (called)\n return;\n called = true;\n remove2();\n if (cancelled) {\n callHook2(onLeaveCancelled, [el]);\n } else {\n callHook2(onAfterLeave, [el]);\n }\n el._leaveCb = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state2, instance2);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\nfunction defineComponent(options2) {\n return isFunction$1(options2) ? { setup: options2, name: options2.name } : options2;\n}\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(type, hook, keepAliveRoot, true);\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, hook, target);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n return vnode;\n }\n const instance2 = getExposeProxy(internalInstance) || internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (isFunction$1(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance: instance2,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance2, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance2, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol();\nfunction resolveDynamicComponent(component) {\n if (isString$1(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance2 = currentRenderingInstance || currentInstance;\n if (instance2) {\n const Component = instance2.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(Component, false);\n if (selfName && (selfName === name || selfName === camelize$1(name) || selfName === capitalize$1(camelize$1(name)))) {\n return Component;\n }\n }\n const res = resolve(instance2[type] || Component[type], name) || resolve(instance2.appContext[type], name);\n if (!res && maybeSelfReference) {\n return Component;\n }\n return res;\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize$1(name)] || registry[capitalize$1(camelize$1(name))]);\n}\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray$1(source) || isString$1(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject$1(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray$1(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.fn;\n }\n }\n return slots;\n}\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n return createVNode(\"slot\", name === \"default\" ? null : { name }, fallback && fallback());\n }\n let slot = slots[name];\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(Fragment, { key: props.key || `_${name}` }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = /* @__PURE__ */ extend$1(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => i.props,\n $attrs: (i) => i.attrs,\n $slots: (i) => i.slots,\n $refs: (i) => i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => resolveMergedOptions(i),\n $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => instanceWatch.bind(i)\n});\nconst PublicInstanceProxyHandlers = {\n get({ _: instance2 }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance2;\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1:\n return setupState[key];\n case 2:\n return data[key];\n case 4:\n return ctx[key];\n case 3:\n return props[key];\n }\n } else if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {\n accessCache[key] = 1;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2;\n return data[key];\n } else if ((normalizedProps = instance2.propsOptions[0]) && hasOwn(normalizedProps, key)) {\n accessCache[key] = 3;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4;\n return ctx[key];\n } else if (shouldCacheAccess) {\n accessCache[key] = 0;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance2, \"get\", key);\n }\n return publicGetter(instance2);\n } else if ((cssModule = type.__cssModules) && (cssModule = cssModule[key])) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4;\n return ctx[key];\n } else if (globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)) {\n {\n return globalProperties[key];\n }\n } else\n ;\n },\n set({ _: instance2 }, key, value) {\n const { data, setupState, ctx } = instance2;\n if (setupState !== EMPTY_OBJ && hasOwn(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance2.props, key)) {\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance2) {\n return false;\n } else {\n {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({ _: { data, setupState, accessCache, ctx, appContext, propsOptions } }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || setupState !== EMPTY_OBJ && hasOwn(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nlet shouldCacheAccess = true;\nfunction applyOptions(instance2) {\n const options2 = resolveMergedOptions(instance2);\n const publicThis = instance2.proxy;\n const ctx = instance2.ctx;\n shouldCacheAccess = false;\n if (options2.beforeCreate) {\n callHook$1(options2.beforeCreate, instance2, \"bc\");\n }\n const {\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n created,\n beforeMount: beforeMount2,\n mounted,\n beforeUpdate,\n updated: updated2,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted: unmounted2,\n render: render2,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n expose,\n inheritAttrs,\n components,\n directives,\n filters\n } = options2;\n const checkDuplicateProperties = null;\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance2.appContext.config.unwrapInjectedRef);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction$1(methodHandler)) {\n {\n ctx[key] = methodHandler.bind(publicThis);\n }\n }\n }\n }\n if (dataOptions) {\n const data = dataOptions.call(publicThis, publicThis);\n if (!isObject$1(data))\n ;\n else {\n instance2.data = reactive(data);\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get3 = isFunction$1(opt) ? opt.bind(publicThis, publicThis) : isFunction$1(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n const set2 = !isFunction$1(opt) && isFunction$1(opt.set) ? opt.set.bind(publicThis) : NOOP;\n const c = computed({\n get: get3,\n set: set2\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction$1(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook$1(created, instance2, \"c\");\n }\n function registerLifecycleHook(register2, hook) {\n if (isArray$1(hook)) {\n hook.forEach((_hook) => register2(_hook.bind(publicThis)));\n } else if (hook) {\n register2(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount2);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated2);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted2);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray$1(expose)) {\n if (expose.length) {\n const exposed = instance2.exposed || (instance2.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance2.exposed) {\n instance2.exposed = {};\n }\n }\n if (render2 && instance2.render === NOOP) {\n instance2.render = render2;\n }\n if (inheritAttrs != null) {\n instance2.inheritAttrs = inheritAttrs;\n }\n if (components)\n instance2.components = components;\n if (directives)\n instance2.directives = directives;\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\n if (isArray$1(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject$1(opt)) {\n if (\"default\" in opt) {\n injected = inject(opt.from || key, opt.default, true);\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n if (unwrapRef) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n } else {\n ctx[key] = injected;\n }\n }\n}\nfunction callHook$1(hook, instance2, type) {\n callWithAsyncErrorHandling(isArray$1(hook) ? hook.map((h2) => h2.bind(instance2.proxy)) : hook.bind(instance2.proxy), instance2, type);\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n const getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString$1(raw)) {\n const handler = ctx[raw];\n if (isFunction$1(handler)) {\n watch(getter, handler);\n }\n } else if (isFunction$1(raw)) {\n watch(getter, raw.bind(publicThis));\n } else if (isObject$1(raw)) {\n if (isArray$1(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction$1(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction$1(handler)) {\n watch(getter, handler, raw);\n }\n }\n } else\n ;\n}\nfunction resolveMergedOptions(instance2) {\n const base = instance2.type;\n const { mixins, extends: extendsOptions } = base;\n const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance2.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n cache.set(base, resolved);\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach((m) => mergeOptions(to, m, strats, true));\n }\n for (const key in from) {\n if (asMixin && key === \"expose\")\n ;\n else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeObjectOptions,\n emits: mergeObjectOptions,\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n watch: mergeWatchOptions,\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return extend$1(isFunction$1(to) ? to.call(this, this) : to, isFunction$1(from) ? from.call(this, this) : from);\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray$1(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend$1(extend$1(/* @__PURE__ */ Object.create(null), to), from) : from;\n}\nfunction mergeWatchOptions(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend$1(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\nfunction initProps(instance2, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = {};\n def(attrs, InternalObjectKey, 1);\n instance2.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance2, rawProps, props, attrs);\n for (const key in instance2.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (isStateful) {\n instance2.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance2.type.props) {\n instance2.props = attrs;\n } else {\n instance2.props = props;\n }\n }\n instance2.attrs = attrs;\n}\nfunction updateProps(instance2, rawProps, rawPrevProps, optimized) {\n const { props, attrs, vnode: { patchFlag } } = instance2;\n const rawCurrentProps = toRaw(props);\n const [options2] = instance2.propsOptions;\n let hasAttrsChanged = false;\n if ((optimized || patchFlag > 0) && !(patchFlag & 16)) {\n if (patchFlag & 8) {\n const propsToUpdate = instance2.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance2.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options2) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize$1(key);\n props[camelizedKey] = resolvePropValue(options2, rawCurrentProps, camelizedKey, value, instance2, false);\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance2, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate$1(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options2) {\n if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(options2, rawCurrentProps, key, void 0, instance2, true);\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance2, \"set\", \"$attrs\");\n }\n}\nfunction setFullProps(instance2, rawProps, props, attrs) {\n const [options2, needCastKeys] = instance2.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options2 && hasOwn(options2, camelKey = camelize$1(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance2.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(options2, rawCurrentProps, key, castValues[key], instance2, !hasOwn(castValues, key));\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options2, props, key, value, instance2, isAbsent) {\n const opt = options2[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && isFunction$1(defaultValue)) {\n const { propsDefaults } = instance2;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n setCurrentInstance(instance2);\n value = propsDefaults[key] = defaultValue.call(null, props);\n unsetCurrentInstance();\n }\n } else {\n value = defaultValue;\n }\n }\n if (opt[0]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1] && (value === \"\" || value === hyphenate$1(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (!isFunction$1(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend$1(normalized, props);\n if (keys)\n needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n cache.set(comp, EMPTY_ARR);\n return EMPTY_ARR;\n }\n if (isArray$1(raw)) {\n for (let i = 0; i < raw.length; i++) {\n const normalizedKey = camelize$1(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n for (const key in raw) {\n const normalizedKey = camelize$1(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray$1(opt) || isFunction$1(opt) ? { type: opt } : opt;\n if (prop) {\n const booleanIndex = getTypeIndex(Boolean, prop.type);\n const stringIndex = getTypeIndex(String, prop.type);\n prop[0] = booleanIndex > -1;\n prop[1] = stringIndex < 0 || booleanIndex < stringIndex;\n if (booleanIndex > -1 || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n cache.set(comp, res);\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\") {\n return true;\n }\n return false;\n}\nfunction getType(ctor) {\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ctor === null ? \"null\" : \"\";\n}\nfunction isSameType(a, b) {\n return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n if (isArray$1(expectedTypes)) {\n return expectedTypes.findIndex((t) => isSameType(t, type));\n } else if (isFunction$1(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n return -1;\n}\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray$1(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance2) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key))\n continue;\n const value = rawSlots[key];\n if (isFunction$1(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance2, children) => {\n const normalized = normalizeSlotValue(children);\n instance2.slots.default = () => normalized;\n};\nconst initSlots = (instance2, children) => {\n if (instance2.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n instance2.slots = toRaw(children);\n def(children, \"_\", type);\n } else {\n normalizeObjectSlots(children, instance2.slots = {});\n }\n } else {\n instance2.slots = {};\n if (children) {\n normalizeVNodeSlots(instance2, children);\n }\n }\n def(instance2.slots, InternalObjectKey, 1);\n};\nconst updateSlots = (instance2, children, optimized) => {\n const { vnode, slots } = instance2;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n extend$1(slots, children);\n if (!optimized && type === 1) {\n delete slots._;\n }\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance2, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\n delete slots[key];\n }\n }\n }\n};\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid = 0;\nfunction createAppAPI(render2, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction$1(rootComponent)) {\n rootComponent = Object.assign({}, rootComponent);\n }\n if (rootProps != null && !isObject$1(rootProps)) {\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new Set();\n let isMounted = false;\n const app = context.app = {\n _uid: uid++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n },\n use(plugin, ...options2) {\n if (installedPlugins.has(plugin))\n ;\n else if (plugin && isFunction$1(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options2);\n } else if (isFunction$1(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options2);\n } else\n ;\n return app;\n },\n mixin(mixin) {\n {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n }\n }\n return app;\n },\n component(name, component) {\n if (!component) {\n return context.components[name];\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive2) {\n if (!directive2) {\n return context.directives[name];\n }\n context.directives[name] = directive2;\n return app;\n },\n mount(rootContainer, isHydrate, isSVG) {\n if (!isMounted) {\n const vnode = createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n } else {\n render2(vnode, rootContainer, isSVG);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n return getExposeProxy(vnode.component) || vnode.component.proxy;\n }\n },\n unmount() {\n if (isMounted) {\n render2(null, app._container);\n delete app._container.__vue_app__;\n }\n },\n provide(key, value) {\n context.provides[key] = value;\n return app;\n }\n };\n return app;\n };\n}\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray$1(rawRef)) {\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray$1(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getExposeProxy(vnode.component) || vnode.component.proxy : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n if (oldRef != null && oldRef !== ref) {\n if (isString$1(oldRef)) {\n refs[oldRef] = null;\n if (hasOwn(setupState, oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction$1(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString$1(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? refs[ref] : ref.value;\n if (isUnmount) {\n isArray$1(existing) && remove(existing, refValue);\n } else {\n if (!isArray$1(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (hasOwn(setupState, ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k)\n refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (hasOwn(setupState, ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k)\n refs[rawRef.k] = value;\n } else\n ;\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n }\n }\n}\nconst queuePostRenderEffect = queueEffectWithSuspense;\nfunction createRenderer(options2) {\n return baseCreateRenderer(options2);\n}\nfunction baseCreateRenderer(options2, createHydrationFns) {\n const target = getGlobalThis();\n target.__VUE__ = true;\n const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, cloneNode: hostCloneNode, insertStaticContent: hostInsertStaticContent } = options2;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, isSVG);\n }\n break;\n case Fragment:\n processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n break;\n default:\n if (shapeFlag & 1) {\n processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else if (shapeFlag & 6) {\n processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else if (shapeFlag & 64) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n } else if (shapeFlag & 128) {\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\n } else\n ;\n }\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(n2.el = hostCreateText(n2.children), container, anchor);\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(n2.el = hostCreateComment(n2.children || \"\"), container, anchor);\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, isSVG) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG, n2.el, n2.anchor);\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next2;\n while (el && el !== anchor) {\n next2 = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next2;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next2;\n while (el && el !== anchor) {\n next2 = hostNextSibling(el);\n hostRemove(el);\n el = next2;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n isSVG = isSVG || n2.type === \"svg\";\n if (n1 == null) {\n mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n patchElement(n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { type, props, shapeFlag, transition, patchFlag, dirs } = vnode;\n if (vnode.el && hostCloneNode !== void 0 && patchFlag === -1) {\n el = vnode.el = hostCloneNode(vnode.el);\n } else {\n el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is, props);\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(vnode.children, el, null, parentComponent, parentSuspense, isSVG && type !== \"foreignObject\", slotScopeIds, optimized);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (vnode === subTree) {\n const parentVNode = parentComponent.vnode;\n setScopeId(el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent);\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start2 = 0) => {\n for (let i = start2; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(null, child, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n const areChildrenSVG = isSVG && n2.type !== \"foreignObject\";\n if (dynamicChildren) {\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds);\n } else if (!optimized) {\n patchChildren(n1, n2, el, null, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds, false);\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, isSVG);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, isSVG);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next2 = newProps[key];\n if (next2 !== prev || key === \"value\") {\n hostPatchProp(el, key, prev, next2, isSVG, n1.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : fallbackContainer;\n patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, true);\n }\n };\n const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => {\n if (oldProps !== newProps) {\n for (const key in newProps) {\n if (isReservedProp(key))\n continue;\n const next2 = newProps[key];\n const prev = oldProps[key];\n if (next2 !== prev && key !== \"value\") {\n hostPatchProp(el, key, prev, next2, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(el, key, oldProps[key], null, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);\n }\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(n2.children, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && n1.dynamicChildren) {\n patchBlockChildren(n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, isSVG, slotScopeIds);\n if (n2.key != null || parentComponent && n2 === parentComponent.subTree) {\n traverseStaticChildren(n1, n2, true);\n }\n } else {\n patchChildren(n1, n2, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(n2, container, anchor, isSVG, optimized);\n } else {\n mountComponent(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\n const instance2 = initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense);\n if (isKeepAlive(initialVNode)) {\n instance2.ctx.renderer = internals;\n }\n {\n setupComponent(instance2);\n }\n if (instance2.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance2, setupRenderEffect);\n if (!initialVNode.el) {\n const placeholder = instance2.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n }\n return;\n }\n setupRenderEffect(instance2, initialVNode, container, anchor, parentSuspense, isSVG, optimized);\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance2 = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance2.asyncDep && !instance2.asyncResolved) {\n updateComponentPreRender(instance2, n2, optimized);\n return;\n } else {\n instance2.next = n2;\n invalidateJob(instance2.update);\n instance2.update();\n }\n } else {\n n2.el = n1.el;\n instance2.vnode = n2;\n }\n };\n const setupRenderEffect = (instance2, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {\n const componentUpdateFn = () => {\n if (!instance2.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent } = instance2;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance2, false);\n if (bm) {\n invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance2, true);\n if (el && hydrateNode) {\n const hydrateSubTree = () => {\n instance2.subTree = renderComponentRoot(instance2);\n hydrateNode(el, instance2.subTree, instance2, parentSuspense, null);\n };\n if (isAsyncWrapperVNode) {\n initialVNode.type.__asyncLoader().then(\n () => !instance2.isUnmounted && hydrateSubTree()\n );\n } else {\n hydrateSubTree();\n }\n } else {\n const subTree = instance2.subTree = renderComponentRoot(instance2);\n patch(null, subTree, container, anchor, instance2, parentSuspense, isSVG);\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense);\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance2.a && queuePostRenderEffect(instance2.a, parentSuspense);\n }\n instance2.isMounted = true;\n initialVNode = container = anchor = null;\n } else {\n let { next: next2, bu, u, parent, vnode } = instance2;\n let originNext = next2;\n let vnodeHook;\n toggleRecurse(instance2, false);\n if (next2) {\n next2.el = vnode.el;\n updateComponentPreRender(instance2, next2, optimized);\n } else {\n next2 = vnode;\n }\n if (bu) {\n invokeArrayFns(bu);\n }\n if (vnodeHook = next2.props && next2.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next2, vnode);\n }\n toggleRecurse(instance2, true);\n const nextTree = renderComponentRoot(instance2);\n const prevTree = instance2.subTree;\n instance2.subTree = nextTree;\n patch(\n prevTree,\n nextTree,\n hostParentNode(prevTree.el),\n getNextHostNode(prevTree),\n instance2,\n parentSuspense,\n isSVG\n );\n next2.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance2, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next2.props && next2.props.onVnodeUpdated) {\n queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next2, vnode), parentSuspense);\n }\n }\n };\n const effect = instance2.effect = new ReactiveEffect(\n componentUpdateFn,\n () => queueJob(update2),\n instance2.scope\n );\n const update2 = instance2.update = () => effect.run();\n update2.id = instance2.uid;\n toggleRecurse(instance2, true);\n update2();\n };\n const updateComponentPreRender = (instance2, nextVNode, optimized) => {\n nextVNode.component = instance2;\n const prevProps = instance2.vnode.props;\n instance2.vnode = nextVNode;\n instance2.next = null;\n updateProps(instance2, nextVNode.props, prevProps, optimized);\n updateSlots(instance2, nextVNode.children, optimized);\n pauseTracking();\n flushPreFlushCbs(void 0, instance2.update);\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(c1[i], nextChild, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n }\n if (oldLength > newLength) {\n unmountChildren(c1, parentComponent, parentSuspense, true, false, commonLength);\n } else {\n mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, commonLength);\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(null, c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(prevChild, c2[newIndex], container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(null, nextChild, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove3 = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove3();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove3, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs } = vnode;\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(vnode, parentComponent, parentSuspense, optimized, internals, doRemove);\n } else if (dynamicChildren && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove2(vnode);\n }\n }\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n }, parentSuspense);\n }\n };\n const remove2 = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next2;\n while (cur !== end) {\n next2 = hostNextSibling(cur);\n hostRemove(cur);\n cur = next2;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance2, parentSuspense, doRemove) => {\n const { bum, scope, update: update2, subTree, um } = instance2;\n if (bum) {\n invokeArrayFns(bum);\n }\n scope.stop();\n if (update2) {\n update2.active = false;\n unmount(subTree, instance2, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance2.isUnmounted = true;\n }, parentSuspense);\n if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance2.asyncDep && !instance2.asyncResolved && instance2.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start2 = 0) => {\n for (let i = start2; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n return hostNextSibling(vnode.anchor || vnode.el);\n };\n const render2 = (vnode, container, isSVG) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n } else {\n patch(container._vnode || null, vnode, container, null, null, null, isSVG);\n }\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove2,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options2\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(internals);\n }\n return {\n render: render2,\n hydrate,\n createApp: createAppAPI(render2, hydrate)\n };\n}\nfunction toggleRecurse({ effect, update: update2 }, allowed) {\n effect.allowRecurse = update2.allowRecurse = allowed;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray$1(ch1) && isArray$1(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow)\n traverseStaticChildren(c1, c2);\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p2 = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p2[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p2[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p2[v];\n }\n return result;\n}\nconst isTeleport = (type) => type.__isTeleport;\nconst Fragment = Symbol(void 0);\nconst Text = Symbol(void 0);\nconst Comment = Symbol(void 0);\nconst Static = Symbol(void 0);\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n}\nfunction setupBlock(vnode) {\n vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n closeBlock();\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, true));\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(createVNode(type, props, children, patchFlag, dynamicProps, true));\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n return n1.type === n2.type && n1.key === n2.key;\n}\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({ ref, ref_key, ref_for }) => {\n return ref != null ? isString$1(ref) || isRef(ref) || isFunction$1(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString$1(children) ? 8 : 16;\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock && (vnode.patchFlag > 0 || shapeFlag & 6) && vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(type, props, true);\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag |= -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString$1(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject$1(style)) {\n if (isProxy(style) && !isArray$1(style)) {\n style = extend$1({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString$1(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject$1(type) ? 4 : isFunction$1(type) ? 2 : 0;\n return createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, isBlockNode, true);\n}\nfunction guardReactiveProps(props) {\n if (!props)\n return null;\n return isProxy(props) || InternalObjectKey in props ? extend$1({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? mergeRef && ref ? isArray$1(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor\n };\n return cloned;\n}\nfunction createTextVNode(text2 = \" \", flag = 0) {\n return createVNode(Text, null, text2, flag);\n}\nfunction createCommentVNode(text2 = \"\", asBlock = false) {\n return asBlock ? (openBlock(), createBlock(Comment, null, text2)) : createVNode(Comment, null, text2);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (isArray$1(child)) {\n return createVNode(\n Fragment,\n null,\n child.slice()\n );\n } else if (typeof child === \"object\") {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray$1(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey in children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction$1(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn$1(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray$1(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance2, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance2, 7, [\n vnode,\n prevVNode\n ]);\n}\nconst emptyAppContext = createAppContext();\nlet uid$1 = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance2 = {\n uid: uid$1++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n next: null,\n subTree: null,\n effect: null,\n update: null,\n scope: new EffectScope(true),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n accessCache: null,\n renderCache: [],\n components: null,\n directives: null,\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n emit: null,\n emitted: null,\n propsDefaults: EMPTY_OBJ,\n inheritAttrs: type.inheritAttrs,\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n {\n instance2.ctx = { _: instance2 };\n }\n instance2.root = parent ? parent.root : instance2;\n instance2.emit = emit$1.bind(null, instance2);\n if (vnode.ce) {\n vnode.ce(instance2);\n }\n return instance2;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nconst setCurrentInstance = (instance2) => {\n currentInstance = instance2;\n instance2.scope.on();\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n currentInstance = null;\n};\nfunction isStatefulComponent(instance2) {\n return instance2.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance2, isSSR = false) {\n isInSSRComponentSetup = isSSR;\n const { props, children } = instance2.vnode;\n const isStateful = isStatefulComponent(instance2);\n initProps(instance2, props, isStateful, isSSR);\n initSlots(instance2, children);\n const setupResult = isStateful ? setupStatefulComponent(instance2, isSSR) : void 0;\n isInSSRComponentSetup = false;\n return setupResult;\n}\nfunction setupStatefulComponent(instance2, isSSR) {\n const Component = instance2.type;\n instance2.accessCache = /* @__PURE__ */ Object.create(null);\n instance2.proxy = markRaw(new Proxy(instance2.ctx, PublicInstanceProxyHandlers));\n const { setup } = Component;\n if (setup) {\n const setupContext = instance2.setupContext = setup.length > 1 ? createSetupContext(instance2) : null;\n setCurrentInstance(instance2);\n pauseTracking();\n const setupResult = callWithErrorHandling(setup, instance2, 0, [instance2.props, setupContext]);\n resetTracking();\n unsetCurrentInstance();\n if (isPromise(setupResult)) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance2, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance2, 0);\n });\n } else {\n instance2.asyncDep = setupResult;\n }\n } else {\n handleSetupResult(instance2, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance2, isSSR);\n }\n}\nfunction handleSetupResult(instance2, setupResult, isSSR) {\n if (isFunction$1(setupResult)) {\n if (instance2.type.__ssrInlineRender) {\n instance2.ssrRender = setupResult;\n } else {\n instance2.render = setupResult;\n }\n } else if (isObject$1(setupResult)) {\n instance2.setupState = proxyRefs(setupResult);\n } else\n ;\n finishComponentSetup(instance2, isSSR);\n}\nlet compile;\nfunction finishComponentSetup(instance2, isSSR, skipOptions) {\n const Component = instance2.type;\n if (!instance2.render) {\n if (!isSSR && compile && !Component.render) {\n const template = Component.template;\n if (template) {\n const { isCustomElement, compilerOptions } = instance2.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend$1(extend$1({\n isCustomElement,\n delimiters\n }, compilerOptions), componentCompilerOptions);\n Component.render = compile(template, finalCompilerOptions);\n }\n }\n instance2.render = Component.render || NOOP;\n }\n {\n setCurrentInstance(instance2);\n pauseTracking();\n applyOptions(instance2);\n resetTracking();\n unsetCurrentInstance();\n }\n}\nfunction createAttrsProxy(instance2) {\n return new Proxy(instance2.attrs, {\n get(target, key) {\n track(instance2, \"get\", \"$attrs\");\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance2) {\n const expose = (exposed) => {\n instance2.exposed = exposed || {};\n };\n let attrs;\n {\n return {\n get attrs() {\n return attrs || (attrs = createAttrsProxy(instance2));\n },\n slots: instance2.slots,\n emit: instance2.emit,\n expose\n };\n }\n}\nfunction getExposeProxy(instance2) {\n if (instance2.exposed) {\n return instance2.exposeProxy || (instance2.exposeProxy = new Proxy(proxyRefs(markRaw(instance2.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance2);\n }\n }\n }));\n }\n}\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction$1(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction isClassComponent(value) {\n return isFunction$1(value) && \"__vccOpts\" in value;\n}\nconst computed = (getterOrOptions, debugOptions) => {\n return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n};\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject$1(propsOrChildren) && !isArray$1(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\nconst version = \"3.2.37\";\nfunction makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst isArray = Array.isArray;\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\nconst toNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n insert: (child, parent, anchor) => {\n parent.insertBefore(child, anchor || null);\n },\n remove: (child) => {\n const parent = child.parentNode;\n if (parent) {\n parent.removeChild(child);\n }\n },\n createElement: (tag, isSVG, is, props) => {\n const el = isSVG ? doc.createElementNS(svgNS, tag) : doc.createElement(tag, is ? { is } : void 0);\n if (tag === \"select\" && props && props.multiple != null) {\n el.setAttribute(\"multiple\", props.multiple);\n }\n return el;\n },\n createText: (text2) => doc.createTextNode(text2),\n createComment: (text2) => doc.createComment(text2),\n setText: (node, text2) => {\n node.nodeValue = text2;\n },\n setElementText: (el, text2) => {\n el.textContent = text2;\n },\n parentNode: (node) => node.parentNode,\n nextSibling: (node) => node.nextSibling,\n querySelector: (selector) => doc.querySelector(selector),\n setScopeId(el, id) {\n el.setAttribute(id, \"\");\n },\n cloneNode(el) {\n const cloned = el.cloneNode(true);\n if (`_value` in el) {\n cloned._value = el._value;\n }\n return cloned;\n },\n insertStaticContent(content, parent, anchor, isSVG, start2, end) {\n const before = anchor ? anchor.previousSibling : parent.lastChild;\n if (start2 && (start2 === end || start2.nextSibling)) {\n while (true) {\n parent.insertBefore(start2.cloneNode(true), anchor);\n if (start2 === end || !(start2 = start2.nextSibling))\n break;\n }\n } else {\n templateContainer.innerHTML = isSVG ? `${content}` : content;\n const template = templateContainer.content;\n if (isSVG) {\n const wrapper = template.firstChild;\n while (wrapper.firstChild) {\n template.appendChild(wrapper.firstChild);\n }\n template.removeChild(wrapper);\n }\n parent.insertBefore(template, anchor);\n }\n return [\n before ? before.nextSibling : parent.firstChild,\n anchor ? anchor.previousSibling : parent.lastChild\n ];\n }\n};\nfunction patchClass(el, value, isSVG) {\n const transitionClasses = el._vtc;\n if (transitionClasses) {\n value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n }\n if (value == null) {\n el.removeAttribute(\"class\");\n } else if (isSVG) {\n el.setAttribute(\"class\", value);\n } else {\n el.className = value;\n }\n}\nfunction patchStyle(el, prev, next2) {\n const style = el.style;\n const isCssString = isString(next2);\n if (next2 && !isCssString) {\n for (const key in next2) {\n setStyle(style, key, next2[key]);\n }\n if (prev && !isString(prev)) {\n for (const key in prev) {\n if (next2[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n }\n } else {\n const currentDisplay = style.display;\n if (isCssString) {\n if (prev !== next2) {\n style.cssText = next2;\n }\n } else if (prev) {\n el.removeAttribute(\"style\");\n }\n if (\"_vod\" in el) {\n style.display = currentDisplay;\n }\n }\n}\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n if (isArray(val)) {\n val.forEach((v) => setStyle(style, name, v));\n } else {\n if (val == null)\n val = \"\";\n if (name.startsWith(\"--\")) {\n style.setProperty(name, val);\n } else {\n const prefixed = autoPrefix(style, name);\n if (importantRE.test(val)) {\n style.setProperty(hyphenate(prefixed), val.replace(importantRE, \"\"), \"important\");\n } else {\n style[prefixed] = val;\n }\n }\n }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n const cached = prefixCache[rawName];\n if (cached) {\n return cached;\n }\n let name = camelize$1(rawName);\n if (name !== \"filter\" && name in style) {\n return prefixCache[rawName] = name;\n }\n name = capitalize(name);\n for (let i = 0; i < prefixes.length; i++) {\n const prefixed = prefixes[i] + name;\n if (prefixed in style) {\n return prefixCache[rawName] = prefixed;\n }\n }\n return rawName;\n}\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance2) {\n if (isSVG && key.startsWith(\"xlink:\")) {\n if (value == null) {\n el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n const isBoolean = isSpecialBooleanAttr(key);\n if (value == null || isBoolean && !includeBooleanAttr(value)) {\n el.removeAttribute(key);\n } else {\n el.setAttribute(key, isBoolean ? \"\" : value);\n }\n }\n}\nfunction patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n if (prevChildren) {\n unmountChildren(prevChildren, parentComponent, parentSuspense);\n }\n el[key] = value == null ? \"\" : value;\n return;\n }\n if (key === \"value\" && el.tagName !== \"PROGRESS\" && !el.tagName.includes(\"-\")) {\n el._value = value;\n const newValue = value == null ? \"\" : value;\n if (el.value !== newValue || el.tagName === \"OPTION\") {\n el.value = newValue;\n }\n if (value == null) {\n el.removeAttribute(key);\n }\n return;\n }\n let needRemove = false;\n if (value === \"\" || value == null) {\n const type = typeof el[key];\n if (type === \"boolean\") {\n value = includeBooleanAttr(value);\n } else if (value == null && type === \"string\") {\n value = \"\";\n needRemove = true;\n } else if (type === \"number\") {\n value = 0;\n needRemove = true;\n }\n }\n try {\n el[key] = value;\n } catch (e) {\n }\n needRemove && el.removeAttribute(key);\n}\nconst [_getNow, skipTimestampCheck] = /* @__PURE__ */ (() => {\n let _getNow2 = Date.now;\n let skipTimestampCheck2 = false;\n if (typeof window !== \"undefined\") {\n if (Date.now() > document.createEvent(\"Event\").timeStamp) {\n _getNow2 = performance.now.bind(performance);\n }\n const ffMatch = navigator.userAgent.match(/firefox\\/(\\d+)/i);\n skipTimestampCheck2 = !!(ffMatch && Number(ffMatch[1]) <= 53);\n }\n return [_getNow2, skipTimestampCheck2];\n})();\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst reset = () => {\n cachedNow = 0;\n};\nconst getNow = () => cachedNow || (p.then(reset), cachedNow = _getNow());\nfunction addEventListener$1(el, event, handler, options2) {\n el.addEventListener(event, handler, options2);\n}\nfunction removeEventListener(el, event, handler, options2) {\n el.removeEventListener(event, handler, options2);\n}\nfunction patchEvent(el, rawName, prevValue, nextValue, instance2 = null) {\n const invokers = el._vei || (el._vei = {});\n const existingInvoker = invokers[rawName];\n if (nextValue && existingInvoker) {\n existingInvoker.value = nextValue;\n } else {\n const [name, options2] = parseName(rawName);\n if (nextValue) {\n const invoker = invokers[rawName] = createInvoker(nextValue, instance2);\n addEventListener$1(el, name, invoker, options2);\n } else if (existingInvoker) {\n removeEventListener(el, name, existingInvoker, options2);\n invokers[rawName] = void 0;\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n let options2;\n if (optionsModifierRE.test(name)) {\n options2 = {};\n let m;\n while (m = name.match(optionsModifierRE)) {\n name = name.slice(0, name.length - m[0].length);\n options2[m[0].toLowerCase()] = true;\n }\n }\n return [hyphenate(name.slice(2)), options2];\n}\nfunction createInvoker(initialValue, instance2) {\n const invoker = (e) => {\n const timeStamp = e.timeStamp || _getNow();\n if (skipTimestampCheck || timeStamp >= invoker.attached - 1) {\n callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance2, 5, [e]);\n }\n };\n invoker.value = initialValue;\n invoker.attached = getNow();\n return invoker;\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop.call(e);\n e._stopped = true;\n };\n return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));\n } else {\n return value;\n }\n}\nconst nativeOnRE = /^on[a-z]/;\nconst patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {\n if (key === \"class\") {\n patchClass(el, nextValue, isSVG);\n } else if (key === \"style\") {\n patchStyle(el, prevValue, nextValue);\n } else if (isOn(key)) {\n if (!isModelListener(key)) {\n patchEvent(el, key, prevValue, nextValue, parentComponent);\n }\n } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n patchDOMProp(el, key, nextValue, prevChildren, parentComponent, parentSuspense, unmountChildren);\n } else {\n if (key === \"true-value\") {\n el._trueValue = nextValue;\n } else if (key === \"false-value\") {\n el._falseValue = nextValue;\n }\n patchAttr(el, key, nextValue, isSVG);\n }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n if (isSVG) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n return true;\n }\n if (key in el && nativeOnRE.test(key) && isFunction(value)) {\n return true;\n }\n return false;\n }\n if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\") {\n return false;\n }\n if (key === \"form\") {\n return false;\n }\n if (key === \"list\" && el.tagName === \"INPUT\") {\n return false;\n }\n if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n return false;\n }\n if (nativeOnRE.test(key) && isString(value)) {\n return false;\n }\n return key in el;\n}\nfunction defineCustomElement(options2, hydrate) {\n const Comp = defineComponent(options2);\n class VueCustomElement extends VueElement {\n constructor(initialProps) {\n super(Comp, initialProps, hydrate);\n }\n }\n VueCustomElement.def = Comp;\n return VueCustomElement;\n}\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n constructor(_def, _props = {}, hydrate) {\n super();\n this._def = _def;\n this._props = _props;\n this._instance = null;\n this._connected = false;\n this._resolved = false;\n this._numberProps = null;\n if (this.shadowRoot && hydrate) {\n hydrate(this._createVNode(), this.shadowRoot);\n } else {\n this.attachShadow({ mode: \"open\" });\n }\n }\n connectedCallback() {\n this._connected = true;\n if (!this._instance) {\n this._resolveDef();\n }\n }\n disconnectedCallback() {\n this._connected = false;\n nextTick(() => {\n if (!this._connected) {\n render(null, this.shadowRoot);\n this._instance = null;\n }\n });\n }\n _resolveDef() {\n if (this._resolved) {\n return;\n }\n this._resolved = true;\n for (let i = 0; i < this.attributes.length; i++) {\n this._setAttr(this.attributes[i].name);\n }\n new MutationObserver((mutations) => {\n for (const m of mutations) {\n this._setAttr(m.attributeName);\n }\n }).observe(this, { attributes: true });\n const resolve3 = (def2) => {\n const { props, styles } = def2;\n const hasOptions = !isArray(props);\n const rawKeys = props ? hasOptions ? Object.keys(props) : props : [];\n let numberProps;\n if (hasOptions) {\n for (const key in this._props) {\n const opt = props[key];\n if (opt === Number || opt && opt.type === Number) {\n this._props[key] = toNumber(this._props[key]);\n (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[key] = true;\n }\n }\n }\n this._numberProps = numberProps;\n for (const key of Object.keys(this)) {\n if (key[0] !== \"_\") {\n this._setProp(key, this[key], true, false);\n }\n }\n for (const key of rawKeys.map(camelize)) {\n Object.defineProperty(this, key, {\n get() {\n return this._getProp(key);\n },\n set(val) {\n this._setProp(key, val);\n }\n });\n }\n this._applyStyles(styles);\n this._update();\n };\n const asyncDef = this._def.__asyncLoader;\n if (asyncDef) {\n asyncDef().then(resolve3);\n } else {\n resolve3(this._def);\n }\n }\n _setAttr(key) {\n let value = this.getAttribute(key);\n if (this._numberProps && this._numberProps[key]) {\n value = toNumber(value);\n }\n this._setProp(camelize(key), value, false);\n }\n _getProp(key) {\n return this._props[key];\n }\n _setProp(key, val, shouldReflect = true, shouldUpdate = true) {\n if (val !== this._props[key]) {\n this._props[key] = val;\n if (shouldUpdate && this._instance) {\n this._update();\n }\n if (shouldReflect) {\n if (val === true) {\n this.setAttribute(hyphenate(key), \"\");\n } else if (typeof val === \"string\" || typeof val === \"number\") {\n this.setAttribute(hyphenate(key), val + \"\");\n } else if (!val) {\n this.removeAttribute(hyphenate(key));\n }\n }\n }\n }\n _update() {\n render(this._createVNode(), this.shadowRoot);\n }\n _createVNode() {\n const vnode = createVNode(this._def, extend({}, this._props));\n if (!this._instance) {\n vnode.ce = (instance2) => {\n this._instance = instance2;\n instance2.isCE = true;\n instance2.emit = (event, ...args) => {\n this.dispatchEvent(new CustomEvent(event, {\n detail: args\n }));\n };\n let parent = this;\n while (parent = parent && (parent.parentNode || parent.host)) {\n if (parent instanceof VueElement) {\n instance2.parent = parent._instance;\n break;\n }\n }\n };\n }\n return vnode;\n }\n _applyStyles(styles) {\n if (styles) {\n styles.forEach((css) => {\n const s = document.createElement(\"style\");\n s.textContent = css;\n this.shadowRoot.appendChild(s);\n });\n }\n }\n}\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);\nTransition.displayName = \"Transition\";\nconst DOMTransitionPropsValidators = {\n name: String,\n type: String,\n css: {\n type: Boolean,\n default: true\n },\n duration: [String, Number, Object],\n enterFromClass: String,\n enterActiveClass: String,\n enterToClass: String,\n appearFromClass: String,\n appearActiveClass: String,\n appearToClass: String,\n leaveFromClass: String,\n leaveActiveClass: String,\n leaveToClass: String\n};\nconst TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend({}, BaseTransition.props, DOMTransitionPropsValidators);\nconst callHook = (hook, args = []) => {\n if (isArray(hook)) {\n hook.forEach((h2) => h2(...args));\n } else if (hook) {\n hook(...args);\n }\n};\nconst hasExplicitCallback = (hook) => {\n return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n const baseProps = {};\n for (const key in rawProps) {\n if (!(key in DOMTransitionPropsValidators)) {\n baseProps[key] = rawProps[key];\n }\n }\n if (rawProps.css === false) {\n return baseProps;\n }\n const { name = \"v\", type, duration, enterFromClass = `${name}-enter-from`, enterActiveClass = `${name}-enter-active`, enterToClass = `${name}-enter-to`, appearFromClass = enterFromClass, appearActiveClass = enterActiveClass, appearToClass = enterToClass, leaveFromClass = `${name}-leave-from`, leaveActiveClass = `${name}-leave-active`, leaveToClass = `${name}-leave-to` } = rawProps;\n const durations = normalizeDuration(duration);\n const enterDuration = durations && durations[0];\n const leaveDuration = durations && durations[1];\n const { onBeforeEnter, onEnter, onEnterCancelled, onLeave, onLeaveCancelled, onBeforeAppear = onBeforeEnter, onAppear = onEnter, onAppearCancelled = onEnterCancelled } = baseProps;\n const finishEnter = (el, isAppear, done) => {\n removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n done && done();\n };\n const finishLeave = (el, done) => {\n el._isLeaving = false;\n removeTransitionClass(el, leaveFromClass);\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n done && done();\n };\n const makeEnterHook = (isAppear) => {\n return (el, done) => {\n const hook = isAppear ? onAppear : onEnter;\n const resolve3 = () => finishEnter(el, isAppear, done);\n callHook(hook, [el, resolve3]);\n nextFrame(() => {\n removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n if (!hasExplicitCallback(hook)) {\n whenTransitionEnds(el, type, enterDuration, resolve3);\n }\n });\n };\n };\n return extend(baseProps, {\n onBeforeEnter(el) {\n callHook(onBeforeEnter, [el]);\n addTransitionClass(el, enterFromClass);\n addTransitionClass(el, enterActiveClass);\n },\n onBeforeAppear(el) {\n callHook(onBeforeAppear, [el]);\n addTransitionClass(el, appearFromClass);\n addTransitionClass(el, appearActiveClass);\n },\n onEnter: makeEnterHook(false),\n onAppear: makeEnterHook(true),\n onLeave(el, done) {\n el._isLeaving = true;\n const resolve3 = () => finishLeave(el, done);\n addTransitionClass(el, leaveFromClass);\n forceReflow();\n addTransitionClass(el, leaveActiveClass);\n nextFrame(() => {\n if (!el._isLeaving) {\n return;\n }\n removeTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveToClass);\n if (!hasExplicitCallback(onLeave)) {\n whenTransitionEnds(el, type, leaveDuration, resolve3);\n }\n });\n callHook(onLeave, [el, resolve3]);\n },\n onEnterCancelled(el) {\n finishEnter(el, false);\n callHook(onEnterCancelled, [el]);\n },\n onAppearCancelled(el) {\n finishEnter(el, true);\n callHook(onAppearCancelled, [el]);\n },\n onLeaveCancelled(el) {\n finishLeave(el);\n callHook(onLeaveCancelled, [el]);\n }\n });\n}\nfunction normalizeDuration(duration) {\n if (duration == null) {\n return null;\n } else if (isObject(duration)) {\n return [NumberOf(duration.enter), NumberOf(duration.leave)];\n } else {\n const n = NumberOf(duration);\n return [n, n];\n }\n}\nfunction NumberOf(val) {\n const res = toNumber(val);\n return res;\n}\nfunction addTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n (el._vtc || (el._vtc = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n const { _vtc } = el;\n if (_vtc) {\n _vtc.delete(cls);\n if (!_vtc.size) {\n el._vtc = void 0;\n }\n }\n}\nfunction nextFrame(cb) {\n requestAnimationFrame(() => {\n requestAnimationFrame(cb);\n });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve3) {\n const id = el._endId = ++endId;\n const resolveIfNotStale = () => {\n if (id === el._endId) {\n resolve3();\n }\n };\n if (explicitTimeout) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n if (!type) {\n return resolve3();\n }\n const endEvent = type + \"end\";\n let ended = 0;\n const end = () => {\n el.removeEventListener(endEvent, onEnd);\n resolveIfNotStale();\n };\n const onEnd = (e) => {\n if (e.target === el && ++ended >= propCount) {\n end();\n }\n };\n setTimeout(() => {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n const styles = window.getComputedStyle(el);\n const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n const transitionDelays = getStyleProperties(TRANSITION + \"Delay\");\n const transitionDurations = getStyleProperties(TRANSITION + \"Duration\");\n const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n const animationDelays = getStyleProperties(ANIMATION + \"Delay\");\n const animationDurations = getStyleProperties(ANIMATION + \"Duration\");\n const animationTimeout = getTimeout(animationDelays, animationDurations);\n let type = null;\n let timeout = 0;\n let propCount = 0;\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n }\n const hasTransform = type === TRANSITION && /\\b(transform|all)(,|$)/.test(styles[TRANSITION + \"Property\"]);\n return {\n type,\n timeout,\n propCount,\n hasTransform\n };\n}\nfunction getTimeout(delays, durations) {\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow() {\n return document.body.offsetHeight;\n}\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst TransitionGroupImpl = {\n name: \"TransitionGroup\",\n props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {\n tag: String,\n moveClass: String\n }),\n setup(props, { slots }) {\n const instance2 = getCurrentInstance();\n const state2 = useTransitionState();\n let prevChildren;\n let children;\n onUpdated(() => {\n if (!prevChildren.length) {\n return;\n }\n const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n if (!hasCSSTransform(prevChildren[0].el, instance2.vnode.el, moveClass)) {\n return;\n }\n prevChildren.forEach(callPendingCbs);\n prevChildren.forEach(recordPosition);\n const movedChildren = prevChildren.filter(applyTranslation);\n forceReflow();\n movedChildren.forEach((c) => {\n const el = c.el;\n const style = el.style;\n addTransitionClass(el, moveClass);\n style.transform = style.webkitTransform = style.transitionDuration = \"\";\n const cb = el._moveCb = (e) => {\n if (e && e.target !== el) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(\"transitionend\", cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n };\n el.addEventListener(\"transitionend\", cb);\n });\n });\n return () => {\n const rawProps = toRaw(props);\n const cssTransitionProps = resolveTransitionProps(rawProps);\n let tag = rawProps.tag || Fragment;\n prevChildren = children;\n children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.key != null) {\n setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state2, instance2));\n }\n }\n if (prevChildren) {\n for (let i = 0; i < prevChildren.length; i++) {\n const child = prevChildren[i];\n setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state2, instance2));\n positionMap.set(child, child.el.getBoundingClientRect());\n }\n }\n return createVNode(tag, null, children);\n };\n }\n};\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n const el = c.el;\n if (el._moveCb) {\n el._moveCb();\n }\n if (el._enterCb) {\n el._enterCb();\n }\n}\nfunction recordPosition(c) {\n newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n const oldPos = positionMap.get(c);\n const newPos = newPositionMap.get(c);\n const dx = oldPos.left - newPos.left;\n const dy = oldPos.top - newPos.top;\n if (dx || dy) {\n const s = c.el.style;\n s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n s.transitionDuration = \"0s\";\n return c;\n }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n const clone = el.cloneNode();\n if (el._vtc) {\n el._vtc.forEach((cls) => {\n cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n });\n }\n moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n clone.style.display = \"none\";\n const container = root.nodeType === 1 ? root : root.parentNode;\n container.appendChild(clone);\n const { hasTransform } = getTransitionInfo(clone);\n container.removeChild(clone);\n return hasTransform;\n}\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n stop: (e) => e.stopPropagation(),\n prevent: (e) => e.preventDefault(),\n self: (e) => e.target !== e.currentTarget,\n ctrl: (e) => !e.ctrlKey,\n shift: (e) => !e.shiftKey,\n alt: (e) => !e.altKey,\n meta: (e) => !e.metaKey,\n left: (e) => \"button\" in e && e.button !== 0,\n middle: (e) => \"button\" in e && e.button !== 1,\n right: (e) => \"button\" in e && e.button !== 2,\n exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n return (event, ...args) => {\n for (let i = 0; i < modifiers.length; i++) {\n const guard = modifierGuards[modifiers[i]];\n if (guard && guard(event, modifiers))\n return;\n }\n return fn(event, ...args);\n };\n};\nconst keyNames = {\n esc: \"escape\",\n space: \" \",\n up: \"arrow-up\",\n left: \"arrow-left\",\n right: \"arrow-right\",\n down: \"arrow-down\",\n delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n return (event) => {\n if (!(\"key\" in event)) {\n return;\n }\n const eventKey = hyphenate(event.key);\n if (modifiers.some((k) => k === eventKey || keyNames[k] === eventKey)) {\n return fn(event);\n }\n };\n};\nconst vShow = {\n beforeMount(el, { value }, { transition }) {\n el._vod = el.style.display === \"none\" ? \"\" : el.style.display;\n if (transition && value) {\n transition.beforeEnter(el);\n } else {\n setDisplay(el, value);\n }\n },\n mounted(el, { value }, { transition }) {\n if (transition && value) {\n transition.enter(el);\n }\n },\n updated(el, { value, oldValue }, { transition }) {\n if (!value === !oldValue)\n return;\n if (transition) {\n if (value) {\n transition.beforeEnter(el);\n setDisplay(el, true);\n transition.enter(el);\n } else {\n transition.leave(el, () => {\n setDisplay(el, false);\n });\n }\n } else {\n setDisplay(el, value);\n }\n },\n beforeUnmount(el, { value }) {\n setDisplay(el, value);\n }\n};\nfunction setDisplay(el, value) {\n el.style.display = value ? el._vod : \"none\";\n}\nconst rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);\nlet renderer;\nfunction ensureRenderer() {\n return renderer || (renderer = createRenderer(rendererOptions));\n}\nconst render = (...args) => {\n ensureRenderer().render(...args);\n};\nvar _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst _sfc_main$q = {\n name: \"AppLoader\",\n props: {\n show: { type: Boolean, default: false },\n infinite: { type: Boolean, default: false },\n type: { type: String, required: true },\n messageId: { type: String, default: \"\" }\n }\n};\nconst _hoisted_1$q = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_2$n = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_3$j = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_4$h = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_5$b = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nconst _hoisted_6$7 = /* @__PURE__ */ createBaseVNode(\"div\", { id: \"vac-circle\" }, null, -1);\nfunction _sfc_render$q(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, {\n name: \"vac-fade-spinner\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n $props.show ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-loader-wrapper\", {\n \"vac-container-center\": !$props.infinite,\n \"vac-container-top\": $props.infinite\n }])\n }, [\n $props.type === \"rooms\" ? renderSlot(_ctx.$slots, \"spinner-icon-rooms\", { key: 0 }, () => [\n _hoisted_1$q\n ]) : createCommentVNode(\"\", true),\n $props.type === \"infinite-rooms\" ? renderSlot(_ctx.$slots, \"spinner-icon-infinite-rooms\", { key: 1 }, () => [\n _hoisted_2$n\n ]) : createCommentVNode(\"\", true),\n $props.type === \"message-file\" ? renderSlot(_ctx.$slots, \"spinner-icon-message-file_\" + $props.messageId, { key: 2 }, () => [\n _hoisted_3$j\n ]) : createCommentVNode(\"\", true),\n $props.type === \"room-file\" ? renderSlot(_ctx.$slots, \"spinner-icon-room-file\", { key: 3 }, () => [\n _hoisted_4$h\n ]) : createCommentVNode(\"\", true),\n $props.type === \"messages\" ? renderSlot(_ctx.$slots, \"spinner-icon-messages\", { key: 4 }, () => [\n _hoisted_5$b\n ]) : createCommentVNode(\"\", true),\n $props.type === \"infinite-messages\" ? renderSlot(_ctx.$slots, \"spinner-icon-infinite-messages\", { key: 5 }, () => [\n _hoisted_6$7\n ]) : createCommentVNode(\"\", true)\n ], 2)) : createCommentVNode(\"\", true)\n ]),\n _: 3\n });\n}\nvar Loader = /* @__PURE__ */ _export_sfc(_sfc_main$q, [[\"render\", _sfc_render$q]]);\nconst _sfc_main$p = {\n name: \"SvgIcon\",\n props: {\n name: { type: String, default: null },\n param: { type: String, default: null }\n },\n data() {\n return {\n svgItem: {\n search: {\n path: \"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\"\n },\n add: {\n path: \"M17,13H13V17H11V13H7V11H11V7H13V11H17M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"\n },\n toggle: {\n path: \"M5,13L9,17L7.6,18.42L1.18,12L7.6,5.58L9,7L5,11H21V13H5M21,6V8H11V6H21M21,16V18H11V16H21Z\"\n },\n menu: {\n path: \"M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z\"\n },\n close: {\n path: \"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z\"\n },\n file: {\n path: \"M14,17H7V15H14M17,13H7V11H17M17,9H7V7H17M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\"\n },\n paperclip: {\n path: \"M16.5,6V17.5A4,4 0 0,1 12.5,21.5A4,4 0 0,1 8.5,17.5V5A2.5,2.5 0 0,1 11,2.5A2.5,2.5 0 0,1 13.5,5V15.5A1,1 0 0,1 12.5,16.5A1,1 0 0,1 11.5,15.5V6H10V15.5A2.5,2.5 0 0,0 12.5,18A2.5,2.5 0 0,0 15,15.5V5A4,4 0 0,0 11,1A4,4 0 0,0 7,5V17.5A5.5,5.5 0 0,0 12.5,23A5.5,5.5 0 0,0 18,17.5V6H16.5Z\"\n },\n \"close-outline\": {\n path: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\"\n },\n send: {\n path: \"M2,21L23,12L2,3V10L17,12L2,14V21Z\"\n },\n emoji: {\n path: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\"\n },\n document: {\n path: \"M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z\"\n },\n pencil: {\n path: \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\"\n },\n checkmark: {\n path: \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"\n },\n \"double-checkmark\": {\n path: \"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z\"\n },\n eye: {\n path: \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"\n },\n dropdown: {\n path: \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\"\n },\n deleted: {\n path: \"M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,13.85 4.63,15.55 5.68,16.91L16.91,5.68C15.55,4.63 13.85,4 12,4M12,20A8,8 0 0,0 20,12C20,10.15 19.37,8.45 18.32,7.09L7.09,18.32C8.45,19.37 10.15,20 12,20Z\"\n },\n microphone: {\n size: \"large\",\n path: \"M432.8,216.4v39.2c0,45.2-15.3,84.3-45.2,118.4c-29.8,33.2-67.3,52.8-111.6,57.9v40.9h78.4c5.1,0,10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6c0,5.1-1.7,10.2-6,13.6c-4.3,4.3-8.5,6-13.6,6H157.6c-5.1,0-10.2-1.7-13.6-6c-4.3-4.3-6-8.5-6-13.6c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6H236v-40.9c-44.3-5.1-81.8-23.9-111.6-57.9s-45.2-73.3-45.2-118.4v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6s10.2,1.7,13.6,6c4.3,4.3,6,8.5,6,13.6v39.2c0,37.5,13.6,70.7,40,97.1s59.6,40,97.1,40s70.7-13.6,97.1-40c26.4-26.4,40-59.6,40-97.1v-39.2c0-5.1,1.7-10.2,6-13.6c4.3-4.3,8.5-6,13.6-6c5.1,0,10.2,1.7,13.6,6C430.2,206.2,432.8,211.3,432.8,216.4z M353.5,98v157.6c0,27.3-9.4,50.3-29,69c-19.6,19.6-42.6,29-69,29s-50.3-9.4-69-29c-19.6-19.6-29-42.6-29-69V98c0-27.3,9.4-50.3,29-69c19.6-19.6,42.6-29,69-29s50.3,9.4,69,29C344.2,47.7,353.5,71.6,353.5,98z\"\n },\n \"audio-play\": {\n size: \"medium\",\n path: \"M43.331,21.237L7.233,0.397c-0.917-0.529-2.044-0.529-2.96,0c-0.916,0.528-1.48,1.505-1.48,2.563v41.684 c0,1.058,0.564,2.035,1.48,2.563c0.458,0.268,0.969,0.397,1.48,0.397c0.511,0,1.022-0.133,1.48-0.397l36.098-20.84 c0.918-0.529,1.479-1.506,1.479-2.564S44.247,21.767,43.331,21.237z\"\n },\n \"audio-pause\": {\n size: \"medium\",\n path: \"M17.991,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C4.729,2.969,7.698,0,11.36,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z\",\n path2: \"M42.877,40.976c0,3.662-2.969,6.631-6.631,6.631l0,0c-3.662,0-6.631-2.969-6.631-6.631V6.631C29.616,2.969,32.585,0,36.246,0l0,0c3.662,0,6.631,2.969,6.631,6.631V40.976z\"\n }\n }\n };\n },\n computed: {\n svgId() {\n const param = this.param ? \"-\" + this.param : \"\";\n return `vac-icon-${this.name}${param}`;\n },\n size() {\n const item = this.svgItem[this.name];\n if (item.size === \"large\")\n return 512;\n else if (item.size === \"medium\")\n return 48;\n else\n return 24;\n }\n }\n};\nconst _hoisted_1$p = [\"viewBox\"];\nconst _hoisted_2$m = [\"id\", \"d\"];\nconst _hoisted_3$i = [\"id\", \"d\"];\nfunction _sfc_render$p(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n version: \"1.1\",\n width: \"24\",\n height: \"24\",\n viewBox: `0 0 ${$options.size} ${$options.size}`\n }, [\n createBaseVNode(\"path\", {\n id: $options.svgId,\n d: $data.svgItem[$props.name].path\n }, null, 8, _hoisted_2$m),\n $data.svgItem[$props.name].path2 ? (openBlock(), createElementBlock(\"path\", {\n key: 0,\n id: $options.svgId,\n d: $data.svgItem[$props.name].path2\n }, null, 8, _hoisted_3$i)) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1$p);\n}\nvar SvgIcon = /* @__PURE__ */ _export_sfc(_sfc_main$p, [[\"render\", _sfc_render$p]]);\nconst _sfc_main$o = {\n name: \"RoomsSearch\",\n components: { SvgIcon },\n props: {\n textMessages: { type: Object, required: true },\n showSearch: { type: Boolean, required: true },\n showAddRoom: { type: Boolean, required: true },\n rooms: { type: Array, required: true },\n loadingRooms: { type: Boolean, required: true }\n },\n emits: [\"search-room\", \"add-room\"],\n computed: {\n showSearchBar() {\n return this.showSearch || this.showAddRoom;\n }\n }\n};\nconst _hoisted_1$o = {\n key: 0,\n class: \"vac-icon-search\"\n};\nconst _hoisted_2$l = [\"placeholder\"];\nfunction _sfc_render$o(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass({\n \"vac-box-search\": $options.showSearchBar,\n \"vac-box-empty\": !$options.showSearchBar\n })\n }, [\n $props.showSearch ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n !$props.loadingRooms && $props.rooms.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$o, [\n renderSlot(_ctx.$slots, \"search-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"search\" })\n ])\n ])) : createCommentVNode(\"\", true),\n !$props.loadingRooms && $props.rooms.length ? (openBlock(), createElementBlock(\"input\", {\n key: 1,\n type: \"search\",\n placeholder: $props.textMessages.SEARCH,\n autocomplete: \"off\",\n class: \"vac-input\",\n onInput: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"search-room\", $event))\n }, null, 40, _hoisted_2$l)) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true),\n $props.showAddRoom ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"vac-svg-button vac-add-icon\",\n onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"add-room\"))\n }, [\n renderSlot(_ctx.$slots, \"add-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"add\" })\n ])\n ])) : createCommentVNode(\"\", true)\n ], 2);\n}\nvar RoomsSearch = /* @__PURE__ */ _export_sfc(_sfc_main$o, [[\"render\", _sfc_render$o]]);\nvar linkify = {};\nvar _class$4 = {};\n_class$4.__esModule = true;\n_class$4.inherits = inherits;\nfunction inherits(parent, child) {\n var props = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n var extended = Object.create(parent.prototype);\n for (var p2 in props) {\n extended[p2] = props[p2];\n }\n extended.constructor = child;\n child.prototype = extended;\n return child;\n}\nvar options$1 = {};\noptions$1.__esModule = true;\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n return typeof obj;\n} : function(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\nvar defaults = {\n defaultProtocol: \"http\",\n events: null,\n format: noop$1,\n formatHref: noop$1,\n nl2br: false,\n tagName: \"a\",\n target: typeToTarget,\n validate: true,\n ignoreTags: [],\n attributes: null,\n className: \"linkified\"\n};\noptions$1.defaults = defaults;\noptions$1.Options = Options;\noptions$1.contains = contains;\nfunction Options(opts) {\n opts = opts || {};\n this.defaultProtocol = opts.hasOwnProperty(\"defaultProtocol\") ? opts.defaultProtocol : defaults.defaultProtocol;\n this.events = opts.hasOwnProperty(\"events\") ? opts.events : defaults.events;\n this.format = opts.hasOwnProperty(\"format\") ? opts.format : defaults.format;\n this.formatHref = opts.hasOwnProperty(\"formatHref\") ? opts.formatHref : defaults.formatHref;\n this.nl2br = opts.hasOwnProperty(\"nl2br\") ? opts.nl2br : defaults.nl2br;\n this.tagName = opts.hasOwnProperty(\"tagName\") ? opts.tagName : defaults.tagName;\n this.target = opts.hasOwnProperty(\"target\") ? opts.target : defaults.target;\n this.validate = opts.hasOwnProperty(\"validate\") ? opts.validate : defaults.validate;\n this.ignoreTags = [];\n this.attributes = opts.attributes || opts.linkAttributes || defaults.attributes;\n this.className = opts.hasOwnProperty(\"className\") ? opts.className : opts.linkClass || defaults.className;\n var ignoredTags = opts.hasOwnProperty(\"ignoreTags\") ? opts.ignoreTags : defaults.ignoreTags;\n for (var i = 0; i < ignoredTags.length; i++) {\n this.ignoreTags.push(ignoredTags[i].toUpperCase());\n }\n}\nOptions.prototype = {\n resolve: function resolve2(token) {\n var href = token.toHref(this.defaultProtocol);\n return {\n formatted: this.get(\"format\", token.toString(), token),\n formattedHref: this.get(\"formatHref\", href, token),\n tagName: this.get(\"tagName\", href, token),\n className: this.get(\"className\", href, token),\n target: this.get(\"target\", href, token),\n events: this.getObject(\"events\", href, token),\n attributes: this.getObject(\"attributes\", href, token)\n };\n },\n check: function check(token) {\n return this.get(\"validate\", token.toString(), token);\n },\n get: function get(key, operator, token) {\n var optionValue = void 0, option = this[key];\n if (!option) {\n return option;\n }\n switch (typeof option === \"undefined\" ? \"undefined\" : _typeof(option)) {\n case \"function\":\n return option(operator, token.type);\n case \"object\":\n optionValue = option.hasOwnProperty(token.type) ? option[token.type] : defaults[key];\n return typeof optionValue === \"function\" ? optionValue(operator, token.type) : optionValue;\n }\n return option;\n },\n getObject: function getObject(key, operator, token) {\n var option = this[key];\n return typeof option === \"function\" ? option(operator, token.type) : option;\n }\n};\nfunction contains(arr, value) {\n for (var i = 0; i < arr.length; i++) {\n if (arr[i] === value) {\n return true;\n }\n }\n return false;\n}\nfunction noop$1(val) {\n return val;\n}\nfunction typeToTarget(href, type) {\n return type === \"url\" ? \"_blank\" : null;\n}\nvar scanner$1 = {};\nvar state = {};\nstate.__esModule = true;\nstate.stateify = state.TokenState = state.CharacterState = void 0;\nvar _class$3 = _class$4;\nfunction createStateClass() {\n return function(tClass) {\n this.j = [];\n this.T = tClass || null;\n };\n}\nvar BaseState = createStateClass();\nBaseState.prototype = {\n defaultTransition: false,\n on: function on(symbol, state2) {\n if (symbol instanceof Array) {\n for (var i = 0; i < symbol.length; i++) {\n this.j.push([symbol[i], state2]);\n }\n return this;\n }\n this.j.push([symbol, state2]);\n return this;\n },\n next: function next(item) {\n for (var i = 0; i < this.j.length; i++) {\n var jump2 = this.j[i];\n var symbol = jump2[0];\n var state2 = jump2[1];\n if (this.test(item, symbol)) {\n return state2;\n }\n }\n return this.defaultTransition;\n },\n accepts: function accepts() {\n return !!this.T;\n },\n test: function test(item, symbol) {\n return item === symbol;\n },\n emit: function emit() {\n return this.T;\n }\n};\nvar CharacterState = (0, _class$3.inherits)(BaseState, createStateClass(), {\n test: function test2(character, charOrRegExp) {\n return character === charOrRegExp || charOrRegExp instanceof RegExp && charOrRegExp.test(character);\n }\n});\nvar TokenState = (0, _class$3.inherits)(BaseState, createStateClass(), {\n jump: function jump(token) {\n var tClass = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;\n var state2 = this.next(new token(\"\"));\n if (state2 === this.defaultTransition) {\n state2 = new this.constructor(tClass);\n this.on(token, state2);\n } else if (tClass) {\n state2.T = tClass;\n }\n return state2;\n },\n test: function test3(token, tokenClass) {\n return token instanceof tokenClass;\n }\n});\nfunction stateify(str, start2, endToken, defaultToken) {\n var i = 0, len = str.length, state2 = start2, newStates = [], nextState = void 0;\n while (i < len && (nextState = state2.next(str[i]))) {\n state2 = nextState;\n i++;\n }\n if (i >= len) {\n return [];\n }\n while (i < len - 1) {\n nextState = new CharacterState(defaultToken);\n newStates.push(nextState);\n state2.on(str[i], nextState);\n state2 = nextState;\n i++;\n }\n nextState = new CharacterState(endToken);\n newStates.push(nextState);\n state2.on(str[len - 1], nextState);\n return newStates;\n}\nstate.CharacterState = CharacterState;\nstate.TokenState = TokenState;\nstate.stateify = stateify;\nvar text$1 = {};\nvar createTokenClass$1 = {};\ncreateTokenClass$1.__esModule = true;\nfunction createTokenClass() {\n return function(value) {\n if (value) {\n this.v = value;\n }\n };\n}\ncreateTokenClass$1.createTokenClass = createTokenClass;\ntext$1.__esModule = true;\ntext$1.AMPERSAND = text$1.CLOSEPAREN = text$1.CLOSEANGLEBRACKET = text$1.CLOSEBRACKET = text$1.CLOSEBRACE = text$1.OPENPAREN = text$1.OPENANGLEBRACKET = text$1.OPENBRACKET = text$1.OPENBRACE = text$1.WS = text$1.TLD = text$1.SYM = text$1.UNDERSCORE = text$1.SLASH = text$1.MAILTO = text$1.PROTOCOL = text$1.QUERY = text$1.POUND = text$1.PLUS = text$1.NUM = text$1.NL = text$1.LOCALHOST = text$1.PUNCTUATION = text$1.DOT = text$1.COLON = text$1.AT = text$1.DOMAIN = text$1.Base = void 0;\nvar _createTokenClass$1 = createTokenClass$1;\nvar _class$2 = _class$4;\nvar TextToken = (0, _createTokenClass$1.createTokenClass)();\nTextToken.prototype = {\n toString: function toString() {\n return this.v + \"\";\n }\n};\nfunction inheritsToken(value) {\n var props = value ? { v: value } : {};\n return (0, _class$2.inherits)(TextToken, (0, _createTokenClass$1.createTokenClass)(), props);\n}\nvar DOMAIN = inheritsToken();\nvar AT = inheritsToken(\"@\");\nvar COLON = inheritsToken(\":\");\nvar DOT = inheritsToken(\".\");\nvar PUNCTUATION = inheritsToken();\nvar LOCALHOST = inheritsToken();\nvar NL$1 = inheritsToken(\"\\n\");\nvar NUM = inheritsToken();\nvar PLUS = inheritsToken(\"+\");\nvar POUND = inheritsToken(\"#\");\nvar PROTOCOL = inheritsToken();\nvar MAILTO = inheritsToken(\"mailto:\");\nvar QUERY = inheritsToken(\"?\");\nvar SLASH = inheritsToken(\"/\");\nvar UNDERSCORE = inheritsToken(\"_\");\nvar SYM = inheritsToken();\nvar TLD = inheritsToken();\nvar WS = inheritsToken();\nvar OPENBRACE = inheritsToken(\"{\");\nvar OPENBRACKET = inheritsToken(\"[\");\nvar OPENANGLEBRACKET = inheritsToken(\"<\");\nvar OPENPAREN = inheritsToken(\"(\");\nvar CLOSEBRACE = inheritsToken(\"}\");\nvar CLOSEBRACKET = inheritsToken(\"]\");\nvar CLOSEANGLEBRACKET = inheritsToken(\">\");\nvar CLOSEPAREN = inheritsToken(\")\");\nvar AMPERSAND = inheritsToken(\"&\");\ntext$1.Base = TextToken;\ntext$1.DOMAIN = DOMAIN;\ntext$1.AT = AT;\ntext$1.COLON = COLON;\ntext$1.DOT = DOT;\ntext$1.PUNCTUATION = PUNCTUATION;\ntext$1.LOCALHOST = LOCALHOST;\ntext$1.NL = NL$1;\ntext$1.NUM = NUM;\ntext$1.PLUS = PLUS;\ntext$1.POUND = POUND;\ntext$1.QUERY = QUERY;\ntext$1.PROTOCOL = PROTOCOL;\ntext$1.MAILTO = MAILTO;\ntext$1.SLASH = SLASH;\ntext$1.UNDERSCORE = UNDERSCORE;\ntext$1.SYM = SYM;\ntext$1.TLD = TLD;\ntext$1.WS = WS;\ntext$1.OPENBRACE = OPENBRACE;\ntext$1.OPENBRACKET = OPENBRACKET;\ntext$1.OPENANGLEBRACKET = OPENANGLEBRACKET;\ntext$1.OPENPAREN = OPENPAREN;\ntext$1.CLOSEBRACE = CLOSEBRACE;\ntext$1.CLOSEBRACKET = CLOSEBRACKET;\ntext$1.CLOSEANGLEBRACKET = CLOSEANGLEBRACKET;\ntext$1.CLOSEPAREN = CLOSEPAREN;\ntext$1.AMPERSAND = AMPERSAND;\nscanner$1.__esModule = true;\nscanner$1.start = scanner$1.run = scanner$1.TOKENS = scanner$1.State = void 0;\nvar _state$1 = state;\nvar _text$2 = text$1;\nvar TOKENS = _interopRequireWildcard$2(_text$2);\nfunction _interopRequireWildcard$2(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key))\n newObj[key] = obj[key];\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nvar tlds = \"aaa|aarp|abarth|abb|abbott|abbvie|abc|able|abogado|abudhabi|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|aetna|af|afamilycompany|afl|africa|ag|agakhan|agency|ai|aig|aigo|airbus|airforce|airtel|akdn|al|alfaromeo|alibaba|alipay|allfinanz|allstate|ally|alsace|alstom|am|americanexpress|americanfamily|amex|amfam|amica|amsterdam|analytics|android|anquan|anz|ao|aol|apartments|app|apple|aq|aquarelle|ar|arab|aramco|archi|army|arpa|art|arte|as|asda|asia|associates|at|athleta|attorney|au|auction|audi|audible|audio|auspost|author|auto|autos|avianca|aw|aws|ax|axa|az|azure|ba|baby|baidu|banamex|bananarepublic|band|bank|bar|barcelona|barclaycard|barclays|barefoot|bargains|baseball|basketball|bauhaus|bayern|bb|bbc|bbt|bbva|bcg|bcn|bd|be|beats|beauty|beer|bentley|berlin|best|bestbuy|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|blanco|blockbuster|blog|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bofa|bom|bond|boo|book|booking|boots|bosch|bostik|boston|bot|boutique|box|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|calvinklein|cam|camera|camp|cancerresearch|canon|capetown|capital|capitalone|car|caravan|cards|care|career|careers|cars|cartier|casa|case|caseih|cash|casino|cat|catering|catholic|cba|cbn|cbre|cbs|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chintai|chloe|christmas|chrome|chrysler|church|ci|cipriani|circle|cisco|citadel|citi|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|comcast|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cookingchannel|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruise|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|data|date|dating|datsun|day|dclk|dds|de|deal|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|dhl|diamonds|diet|digital|direct|directory|discount|discover|dish|diy|dj|dk|dm|dnp|do|docs|doctor|dodge|dog|doha|domains|dot|download|drive|dtv|dubai|duck|dunlop|duns|dupont|durban|dvag|dvr|dz|earth|eat|ec|eco|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epost|epson|equipment|er|ericsson|erni|es|esq|estate|esurance|et|etisalat|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|extraspace|fage|fail|fairwinds|faith|family|fan|fans|farm|farmers|fashion|fast|fedex|feedback|ferrari|ferrero|fi|fiat|fidelity|fido|film|final|finance|financial|fire|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|flir|florist|flowers|fly|fm|fo|foo|food|foodnetwork|football|ford|forex|forsale|forum|foundation|fox|fr|free|fresenius|frl|frogans|frontdoor|frontier|ftr|fujitsu|fujixerox|fun|fund|furniture|futbol|fyi|ga|gal|gallery|gallo|gallup|game|games|gap|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|george|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glade|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|godaddy|gold|goldpoint|golf|goo|goodhands|goodyear|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|grocery|group|gs|gt|gu|guardian|gucci|guge|guide|guitars|guru|gw|gy|hair|hamburg|hangout|haus|hbo|hdfc|hdfcbank|health|healthcare|help|helsinki|here|hermes|hgtv|hiphop|hisamitsu|hitachi|hiv|hk|hkt|hm|hn|hockey|holdings|holiday|homedepot|homegoods|homes|homesense|honda|honeywell|horse|hospital|host|hosting|hot|hoteles|hotels|hotmail|house|how|hr|hsbc|ht|htc|hu|hughes|hyatt|hyundai|ibm|icbc|ice|icu|id|ie|ieee|ifm|ikano|il|im|imamat|imdb|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|intel|international|intuit|investments|io|ipiranga|iq|ir|irish|is|iselect|ismaili|ist|istanbul|it|itau|itv|iveco|iwc|jaguar|java|jcb|jcp|je|jeep|jetzt|jewelry|jio|jlc|jll|jm|jmp|jnj|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|juniper|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kindle|kitchen|kiwi|km|kn|koeln|komatsu|kosher|kp|kpmg|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|ladbrokes|lamborghini|lamer|lancaster|lancia|lancome|land|landrover|lanxess|lasalle|lat|latino|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|lefrak|legal|lego|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|lilly|limited|limo|lincoln|linde|link|lipsy|live|living|lixil|lk|loan|loans|locker|locus|loft|lol|london|lotte|lotto|love|lpl|lplfinancial|lr|ls|lt|ltd|ltda|lu|lundbeck|lupin|luxe|luxury|lv|ly|ma|macys|madrid|maif|maison|makeup|man|management|mango|map|market|marketing|markets|marriott|marshalls|maserati|mattel|mba|mc|mckinsey|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|merckmsd|metlife|mg|mh|miami|microsoft|mil|mini|mint|mit|mitsubishi|mk|ml|mlb|mls|mm|mma|mn|mo|mobi|mobile|mobily|moda|moe|moi|mom|monash|money|monster|mopar|mormon|mortgage|moscow|moto|motorcycles|mov|movie|movistar|mp|mq|mr|ms|msd|mt|mtn|mtr|mu|museum|mutual|mv|mw|mx|my|mz|na|nab|nadex|nagoya|name|nationwide|natura|navy|nba|nc|ne|nec|net|netbank|netflix|network|neustar|new|newholland|news|next|nextdirect|nexus|nf|nfl|ng|ngo|nhk|ni|nico|nike|nikon|ninja|nissan|nissay|nl|no|nokia|northwesternmutual|norton|now|nowruz|nowtv|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|observer|off|office|okinawa|olayan|olayangroup|oldnavy|ollo|om|omega|one|ong|onl|online|onyourside|ooo|open|oracle|orange|org|organic|origins|osaka|otsuka|ott|ovh|pa|page|panasonic|panerai|paris|pars|partners|parts|party|passagens|pay|pccw|pe|pet|pf|pfizer|pg|ph|pharmacy|phd|philips|phone|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pioneer|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pnc|pohl|poker|politie|porn|post|pr|pramerica|praxi|press|prime|pro|prod|productions|prof|progressive|promo|properties|property|protection|pru|prudential|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|qvc|racing|radio|raid|re|read|realestate|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|reliance|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|richardli|ricoh|rightathome|ril|rio|rip|rmit|ro|rocher|rocks|rodeo|rogers|room|rs|rsvp|ru|rugby|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsclub|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|save|saxo|sb|sbi|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scjohnson|scor|scot|sd|se|search|seat|secure|security|seek|select|sener|services|ses|seven|sew|sex|sexy|sfr|sg|sh|shangrila|sharp|shaw|shell|shia|shiksha|shoes|shop|shopping|shouji|show|showtime|shriram|si|silk|sina|singles|site|sj|sk|ski|skin|sky|skype|sl|sling|sm|smart|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|srt|st|stada|staples|star|starhub|statebank|statefarm|statoil|stc|stcgroup|stockholm|storage|store|stream|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiftcover|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|talk|taobao|target|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|tdk|team|tech|technology|tel|telecity|telefonica|temasek|tennis|teva|tf|tg|th|thd|theater|theatre|tiaa|tickets|tienda|tiffany|tips|tires|tirol|tj|tjmaxx|tjx|tk|tkmaxx|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tr|trade|trading|training|travel|travelchannel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubank|ubs|uconnect|ug|uk|unicom|university|uno|uol|ups|us|uy|uz|va|vacations|vana|vanguard|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|vig|viking|villas|vin|vip|virgin|visa|vision|vista|vistaprint|viva|vivo|vlaanderen|vn|vodka|volkswagen|volvo|vote|voting|voto|voyage|vu|vuelos|wales|walmart|walter|wang|wanggou|warman|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weibo|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|winners|wme|wolterskluwer|woodside|work|works|world|wow|ws|wtc|wtf|xbox|xerox|xfinity|xihuan|xin|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--30rr7y|xn--3bst00m|xn--3ds443g|xn--3e0b707e|xn--3hcrj9c|xn--3oq18vl8pn36a|xn--3pxu8k|xn--42c2d9a|xn--45br5cyl|xn--45brj9c|xn--45q11c|xn--4gbrim|xn--54b7fta0cc|xn--55qw42g|xn--55qx5d|xn--5su34j936bgsg|xn--5tzm5g|xn--6frz82g|xn--6qq986b3xl|xn--80adxhks|xn--80ao21a|xn--80aqecdr1a|xn--80asehdb|xn--80aswg|xn--8y0a063a|xn--90a3ac|xn--90ae|xn--90ais|xn--9dbq2a|xn--9et52u|xn--9krt00a|xn--b4w605ferd|xn--bck1b9a5dre4c|xn--c1avg|xn--c2br7g|xn--cck2b3b|xn--cg4bki|xn--clchc0ea0b2g2a9gcd|xn--czr694b|xn--czrs0t|xn--czru2d|xn--d1acj3b|xn--d1alf|xn--e1a4c|xn--eckvdtc9d|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fhbei|xn--fiq228c5hs|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--fjq720a|xn--flw351e|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--fzys8d69uvgm|xn--g2xx48c|xn--gckr3f0f|xn--gecrj9c|xn--gk3at1e|xn--h2breg3eve|xn--h2brj9c|xn--h2brj9c8c|xn--hxt814e|xn--i1b6b1a6a2e|xn--imr513n|xn--io0a7i|xn--j1aef|xn--j1amh|xn--j6w193g|xn--jlq61u9w7b|xn--jvr189m|xn--kcrx77d1x4a|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--kput3i|xn--l1acc|xn--lgbbat1ad8j|xn--mgb9awbf|xn--mgba3a3ejt|xn--mgba3a4f16a|xn--mgba7c0bbn0a|xn--mgbaakc7dvf|xn--mgbaam7a8h|xn--mgbab2bd|xn--mgbai9azgqp6j|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a|xn--mgbbh1a71e|xn--mgbc0a9azcg|xn--mgbca7dzdo|xn--mgberp4a5d4ar|xn--mgbgu82a|xn--mgbi4ecexp|xn--mgbpl2fh|xn--mgbt3dhd|xn--mgbtx2b|xn--mgbx4cd0ab|xn--mix891f|xn--mk1bu44c|xn--mxtq1m|xn--ngbc5azd|xn--ngbe9e0a|xn--ngbrx|xn--node|xn--nqv7f|xn--nqv7fs00ema|xn--nyqy26a|xn--o3cw4h|xn--ogbpf8fl|xn--p1acf|xn--p1ai|xn--pbt977c|xn--pgbs0dh|xn--pssy2u|xn--q9jyb4c|xn--qcka1pmc|xn--qxam|xn--rhqv96g|xn--rovu88b|xn--rvc1e0am3e|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--tckwe|xn--tiq49xqyj|xn--unup4y|xn--vermgensberater-ctb|xn--vermgensberatung-pwb|xn--vhquv|xn--vuq861b|xn--w4r85el8fhu5dnra|xn--w4rs40l|xn--wgbh1c|xn--wgbl6a|xn--xhq521b|xn--xkc2al3hye2a|xn--xkc2dl3a5ee0h|xn--y9a3aq|xn--yfro4i67o|xn--ygbi2ammx|xn--zfr164b|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|you|youtube|yt|yun|za|zappos|zara|zero|zip|zippo|zm|zone|zuerich|zw\".split(\"|\");\nvar NUMBERS = \"0123456789\".split(\"\");\nvar ALPHANUM = \"0123456789abcdefghijklmnopqrstuvwxyz\".split(\"\");\nvar WHITESPACE = [\" \", \"\\f\", \"\\r\", \"\t\", \"\\v\", \"\\xA0\", \"\\u1680\", \"\\u180E\"];\nvar domainStates = [];\nvar makeState$1 = function makeState(tokenClass) {\n return new _state$1.CharacterState(tokenClass);\n};\nvar S_START$1 = makeState$1();\nvar S_NUM = makeState$1(_text$2.NUM);\nvar S_DOMAIN$1 = makeState$1(_text$2.DOMAIN);\nvar S_DOMAIN_HYPHEN = makeState$1();\nvar S_WS = makeState$1(_text$2.WS);\nS_START$1.on(\"@\", makeState$1(_text$2.AT)).on(\".\", makeState$1(_text$2.DOT)).on(\"+\", makeState$1(_text$2.PLUS)).on(\"#\", makeState$1(_text$2.POUND)).on(\"?\", makeState$1(_text$2.QUERY)).on(\"/\", makeState$1(_text$2.SLASH)).on(\"_\", makeState$1(_text$2.UNDERSCORE)).on(\":\", makeState$1(_text$2.COLON)).on(\"{\", makeState$1(_text$2.OPENBRACE)).on(\"[\", makeState$1(_text$2.OPENBRACKET)).on(\"<\", makeState$1(_text$2.OPENANGLEBRACKET)).on(\"(\", makeState$1(_text$2.OPENPAREN)).on(\"}\", makeState$1(_text$2.CLOSEBRACE)).on(\"]\", makeState$1(_text$2.CLOSEBRACKET)).on(\">\", makeState$1(_text$2.CLOSEANGLEBRACKET)).on(\")\", makeState$1(_text$2.CLOSEPAREN)).on(\"&\", makeState$1(_text$2.AMPERSAND)).on([\",\", \";\", \"!\", '\"', \"'\"], makeState$1(_text$2.PUNCTUATION));\nS_START$1.on(\"\\n\", makeState$1(_text$2.NL)).on(WHITESPACE, S_WS);\nS_WS.on(WHITESPACE, S_WS);\nfor (var i = 0; i < tlds.length; i++) {\n var newStates = (0, _state$1.stateify)(tlds[i], S_START$1, _text$2.TLD, _text$2.DOMAIN);\n domainStates.push.apply(domainStates, newStates);\n}\nvar partialProtocolFileStates = (0, _state$1.stateify)(\"file\", S_START$1, _text$2.DOMAIN, _text$2.DOMAIN);\nvar partialProtocolFtpStates = (0, _state$1.stateify)(\"ftp\", S_START$1, _text$2.DOMAIN, _text$2.DOMAIN);\nvar partialProtocolHttpStates = (0, _state$1.stateify)(\"http\", S_START$1, _text$2.DOMAIN, _text$2.DOMAIN);\nvar partialProtocolMailtoStates = (0, _state$1.stateify)(\"mailto\", S_START$1, _text$2.DOMAIN, _text$2.DOMAIN);\ndomainStates.push.apply(domainStates, partialProtocolFileStates);\ndomainStates.push.apply(domainStates, partialProtocolFtpStates);\ndomainStates.push.apply(domainStates, partialProtocolHttpStates);\ndomainStates.push.apply(domainStates, partialProtocolMailtoStates);\nvar S_PROTOCOL_FILE = partialProtocolFileStates.pop();\nvar S_PROTOCOL_FTP = partialProtocolFtpStates.pop();\nvar S_PROTOCOL_HTTP = partialProtocolHttpStates.pop();\nvar S_MAILTO$1 = partialProtocolMailtoStates.pop();\nvar S_PROTOCOL_SECURE = makeState$1(_text$2.DOMAIN);\nvar S_FULL_PROTOCOL = makeState$1(_text$2.PROTOCOL);\nvar S_FULL_MAILTO = makeState$1(_text$2.MAILTO);\nS_PROTOCOL_FTP.on(\"s\", S_PROTOCOL_SECURE).on(\":\", S_FULL_PROTOCOL);\nS_PROTOCOL_HTTP.on(\"s\", S_PROTOCOL_SECURE).on(\":\", S_FULL_PROTOCOL);\ndomainStates.push(S_PROTOCOL_SECURE);\nS_PROTOCOL_FILE.on(\":\", S_FULL_PROTOCOL);\nS_PROTOCOL_SECURE.on(\":\", S_FULL_PROTOCOL);\nS_MAILTO$1.on(\":\", S_FULL_MAILTO);\nvar partialLocalhostStates = (0, _state$1.stateify)(\"localhost\", S_START$1, _text$2.LOCALHOST, _text$2.DOMAIN);\ndomainStates.push.apply(domainStates, partialLocalhostStates);\nS_START$1.on(NUMBERS, S_NUM);\nS_NUM.on(\"-\", S_DOMAIN_HYPHEN).on(NUMBERS, S_NUM).on(ALPHANUM, S_DOMAIN$1);\nS_DOMAIN$1.on(\"-\", S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN$1);\nfor (var _i = 0; _i < domainStates.length; _i++) {\n domainStates[_i].on(\"-\", S_DOMAIN_HYPHEN).on(ALPHANUM, S_DOMAIN$1);\n}\nS_DOMAIN_HYPHEN.on(\"-\", S_DOMAIN_HYPHEN).on(NUMBERS, S_DOMAIN$1).on(ALPHANUM, S_DOMAIN$1);\nS_START$1.defaultTransition = makeState$1(_text$2.SYM);\nvar run$2 = function run(str) {\n var lowerStr = str.replace(/[A-Z]/g, function(c) {\n return c.toLowerCase();\n });\n var len = str.length;\n var tokens = [];\n var cursor = 0;\n while (cursor < len) {\n var state2 = S_START$1;\n var nextState = null;\n var tokenLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n while (cursor < len && (nextState = state2.next(lowerStr[cursor]))) {\n state2 = nextState;\n if (state2.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state2;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n tokenLength++;\n cursor++;\n }\n if (sinceAccepts < 0) {\n continue;\n }\n cursor -= sinceAccepts;\n tokenLength -= sinceAccepts;\n var TOKEN = latestAccepting.emit();\n tokens.push(new TOKEN(str.substr(cursor - tokenLength, tokenLength)));\n }\n return tokens;\n};\nvar start = S_START$1;\nscanner$1.State = _state$1.CharacterState;\nscanner$1.TOKENS = TOKENS;\nscanner$1.run = run$2;\nscanner$1.start = start;\nvar parser$1 = {};\nvar multi = {};\nmulti.__esModule = true;\nmulti.URL = multi.TEXT = multi.NL = multi.EMAIL = multi.MAILTOEMAIL = multi.Base = void 0;\nvar _createTokenClass = createTokenClass$1;\nvar _class$1 = _class$4;\nvar _text$1 = text$1;\nfunction isDomainToken(token) {\n return token instanceof _text$1.DOMAIN || token instanceof _text$1.TLD;\n}\nvar MultiToken = (0, _createTokenClass.createTokenClass)();\nMultiToken.prototype = {\n type: \"token\",\n isLink: false,\n toString: function toString2() {\n var result = [];\n for (var i = 0; i < this.v.length; i++) {\n result.push(this.v[i].toString());\n }\n return result.join(\"\");\n },\n toHref: function toHref() {\n return this.toString();\n },\n toObject: function toObject() {\n var protocol = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : \"http\";\n return {\n type: this.type,\n value: this.toString(),\n href: this.toHref(protocol)\n };\n }\n};\nvar MAILTOEMAIL = (0, _class$1.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n type: \"email\",\n isLink: true\n});\nvar EMAIL = (0, _class$1.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n type: \"email\",\n isLink: true,\n toHref: function toHref2() {\n return \"mailto:\" + this.toString();\n }\n});\nvar TEXT = (0, _class$1.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), { type: \"text\" });\nvar NL = (0, _class$1.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), { type: \"nl\" });\nvar URL$1 = (0, _class$1.inherits)(MultiToken, (0, _createTokenClass.createTokenClass)(), {\n type: \"url\",\n isLink: true,\n toHref: function toHref3() {\n var protocol = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : \"http\";\n var hasProtocol2 = false;\n var hasSlashSlash = false;\n var tokens = this.v;\n var result = [];\n var i = 0;\n while (tokens[i] instanceof _text$1.PROTOCOL) {\n hasProtocol2 = true;\n result.push(tokens[i].toString().toLowerCase());\n i++;\n }\n while (tokens[i] instanceof _text$1.SLASH) {\n hasSlashSlash = true;\n result.push(tokens[i].toString());\n i++;\n }\n while (isDomainToken(tokens[i])) {\n result.push(tokens[i].toString().toLowerCase());\n i++;\n }\n for (; i < tokens.length; i++) {\n result.push(tokens[i].toString());\n }\n result = result.join(\"\");\n if (!(hasProtocol2 || hasSlashSlash)) {\n result = protocol + \"://\" + result;\n }\n return result;\n },\n hasProtocol: function hasProtocol() {\n return this.v[0] instanceof _text$1.PROTOCOL;\n }\n});\nmulti.Base = MultiToken;\nmulti.MAILTOEMAIL = MAILTOEMAIL;\nmulti.EMAIL = EMAIL;\nmulti.NL = NL;\nmulti.TEXT = TEXT;\nmulti.URL = URL$1;\nparser$1.__esModule = true;\nparser$1.start = parser$1.run = parser$1.TOKENS = parser$1.State = void 0;\nvar _state = state;\nvar _multi = multi;\nvar MULTI_TOKENS = _interopRequireWildcard$1(_multi);\nvar _text = text$1;\nfunction _interopRequireWildcard$1(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key))\n newObj[key] = obj[key];\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nvar makeState2 = function makeState3(tokenClass) {\n return new _state.TokenState(tokenClass);\n};\nvar S_START = makeState2();\nvar S_PROTOCOL = makeState2();\nvar S_MAILTO = makeState2();\nvar S_PROTOCOL_SLASH = makeState2();\nvar S_PROTOCOL_SLASH_SLASH = makeState2();\nvar S_DOMAIN = makeState2();\nvar S_DOMAIN_DOT = makeState2();\nvar S_TLD = makeState2(_multi.URL);\nvar S_TLD_COLON = makeState2();\nvar S_TLD_PORT = makeState2(_multi.URL);\nvar S_URL = makeState2(_multi.URL);\nvar S_URL_NON_ACCEPTING = makeState2();\nvar S_URL_OPENBRACE = makeState2();\nvar S_URL_OPENBRACKET = makeState2();\nvar S_URL_OPENANGLEBRACKET = makeState2();\nvar S_URL_OPENPAREN = makeState2();\nvar S_URL_OPENBRACE_Q = makeState2(_multi.URL);\nvar S_URL_OPENBRACKET_Q = makeState2(_multi.URL);\nvar S_URL_OPENANGLEBRACKET_Q = makeState2(_multi.URL);\nvar S_URL_OPENPAREN_Q = makeState2(_multi.URL);\nvar S_URL_OPENBRACE_SYMS = makeState2();\nvar S_URL_OPENBRACKET_SYMS = makeState2();\nvar S_URL_OPENANGLEBRACKET_SYMS = makeState2();\nvar S_URL_OPENPAREN_SYMS = makeState2();\nvar S_EMAIL_DOMAIN = makeState2();\nvar S_EMAIL_DOMAIN_DOT = makeState2();\nvar S_EMAIL = makeState2(_multi.EMAIL);\nvar S_EMAIL_COLON = makeState2();\nvar S_EMAIL_PORT = makeState2(_multi.EMAIL);\nvar S_MAILTO_EMAIL = makeState2(_multi.MAILTOEMAIL);\nvar S_MAILTO_EMAIL_NON_ACCEPTING = makeState2();\nvar S_LOCALPART = makeState2();\nvar S_LOCALPART_AT = makeState2();\nvar S_LOCALPART_DOT = makeState2();\nvar S_NL = makeState2(_multi.NL);\nS_START.on(_text.NL, S_NL).on(_text.PROTOCOL, S_PROTOCOL).on(_text.MAILTO, S_MAILTO).on(_text.SLASH, S_PROTOCOL_SLASH);\nS_PROTOCOL.on(_text.SLASH, S_PROTOCOL_SLASH);\nS_PROTOCOL_SLASH.on(_text.SLASH, S_PROTOCOL_SLASH_SLASH);\nS_START.on(_text.TLD, S_DOMAIN).on(_text.DOMAIN, S_DOMAIN).on(_text.LOCALHOST, S_TLD).on(_text.NUM, S_DOMAIN);\nS_PROTOCOL_SLASH_SLASH.on(_text.TLD, S_URL).on(_text.DOMAIN, S_URL).on(_text.NUM, S_URL).on(_text.LOCALHOST, S_URL);\nS_DOMAIN.on(_text.DOT, S_DOMAIN_DOT);\nS_EMAIL_DOMAIN.on(_text.DOT, S_EMAIL_DOMAIN_DOT);\nS_DOMAIN_DOT.on(_text.TLD, S_TLD).on(_text.DOMAIN, S_DOMAIN).on(_text.NUM, S_DOMAIN).on(_text.LOCALHOST, S_DOMAIN);\nS_EMAIL_DOMAIN_DOT.on(_text.TLD, S_EMAIL).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.NUM, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL_DOMAIN);\nS_TLD.on(_text.DOT, S_DOMAIN_DOT);\nS_EMAIL.on(_text.DOT, S_EMAIL_DOMAIN_DOT);\nS_TLD.on(_text.COLON, S_TLD_COLON).on(_text.SLASH, S_URL);\nS_TLD_COLON.on(_text.NUM, S_TLD_PORT);\nS_TLD_PORT.on(_text.SLASH, S_URL);\nS_EMAIL.on(_text.COLON, S_EMAIL_COLON);\nS_EMAIL_COLON.on(_text.NUM, S_EMAIL_PORT);\nvar qsAccepting = [_text.DOMAIN, _text.AT, _text.LOCALHOST, _text.NUM, _text.PLUS, _text.POUND, _text.PROTOCOL, _text.SLASH, _text.TLD, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND];\nvar qsNonAccepting = [_text.COLON, _text.DOT, _text.QUERY, _text.PUNCTUATION, _text.CLOSEBRACE, _text.CLOSEBRACKET, _text.CLOSEANGLEBRACKET, _text.CLOSEPAREN, _text.OPENBRACE, _text.OPENBRACKET, _text.OPENANGLEBRACKET, _text.OPENPAREN];\nS_URL.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);\nS_URL_NON_ACCEPTING.on(_text.OPENBRACE, S_URL_OPENBRACE).on(_text.OPENBRACKET, S_URL_OPENBRACKET).on(_text.OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET).on(_text.OPENPAREN, S_URL_OPENPAREN);\nS_URL_OPENBRACE.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN.on(_text.CLOSEPAREN, S_URL);\nS_URL_OPENBRACE_Q.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET_Q.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET_Q.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN_Q.on(_text.CLOSEPAREN, S_URL);\nS_URL_OPENBRACE_SYMS.on(_text.CLOSEBRACE, S_URL);\nS_URL_OPENBRACKET_SYMS.on(_text.CLOSEBRACKET, S_URL);\nS_URL_OPENANGLEBRACKET_SYMS.on(_text.CLOSEANGLEBRACKET, S_URL);\nS_URL_OPENPAREN_SYMS.on(_text.CLOSEPAREN, S_URL);\nS_URL_OPENBRACE.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);\nS_URL_OPENBRACKET.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);\nS_URL_OPENANGLEBRACKET.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\nS_URL_OPENPAREN.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);\nS_URL_OPENBRACE_Q.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_Q.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_Q.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_Q.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE_Q.on(qsNonAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_Q.on(qsNonAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_Q.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_Q.on(qsNonAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE_SYMS.on(qsAccepting, S_URL_OPENBRACE_Q);\nS_URL_OPENBRACKET_SYMS.on(qsAccepting, S_URL_OPENBRACKET_Q);\nS_URL_OPENANGLEBRACKET_SYMS.on(qsAccepting, S_URL_OPENANGLEBRACKET_Q);\nS_URL_OPENPAREN_SYMS.on(qsAccepting, S_URL_OPENPAREN_Q);\nS_URL_OPENBRACE_SYMS.on(qsNonAccepting, S_URL_OPENBRACE_SYMS);\nS_URL_OPENBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENBRACKET_SYMS);\nS_URL_OPENANGLEBRACKET_SYMS.on(qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\nS_URL_OPENPAREN_SYMS.on(qsNonAccepting, S_URL_OPENPAREN_SYMS);\nS_URL.on(qsAccepting, S_URL);\nS_URL_NON_ACCEPTING.on(qsAccepting, S_URL);\nS_URL.on(qsNonAccepting, S_URL_NON_ACCEPTING);\nS_URL_NON_ACCEPTING.on(qsNonAccepting, S_URL_NON_ACCEPTING);\nS_MAILTO.on(_text.TLD, S_MAILTO_EMAIL).on(_text.DOMAIN, S_MAILTO_EMAIL).on(_text.NUM, S_MAILTO_EMAIL).on(_text.LOCALHOST, S_MAILTO_EMAIL);\nS_MAILTO_EMAIL.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\nS_MAILTO_EMAIL_NON_ACCEPTING.on(qsAccepting, S_MAILTO_EMAIL).on(qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\nvar localpartAccepting = [_text.DOMAIN, _text.NUM, _text.PLUS, _text.POUND, _text.QUERY, _text.UNDERSCORE, _text.SYM, _text.AMPERSAND, _text.TLD];\nS_DOMAIN.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);\nS_TLD.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT);\nS_DOMAIN_DOT.on(localpartAccepting, S_LOCALPART);\nS_LOCALPART.on(localpartAccepting, S_LOCALPART).on(_text.AT, S_LOCALPART_AT).on(_text.DOT, S_LOCALPART_DOT);\nS_LOCALPART_DOT.on(localpartAccepting, S_LOCALPART);\nS_LOCALPART_AT.on(_text.TLD, S_EMAIL_DOMAIN).on(_text.DOMAIN, S_EMAIL_DOMAIN).on(_text.LOCALHOST, S_EMAIL);\nvar run$1 = function run2(tokens) {\n var len = tokens.length;\n var cursor = 0;\n var multis = [];\n var textTokens = [];\n while (cursor < len) {\n var state2 = S_START;\n var secondState = null;\n var nextState = null;\n var multiLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n while (cursor < len && !(secondState = state2.next(tokens[cursor]))) {\n textTokens.push(tokens[cursor++]);\n }\n while (cursor < len && (nextState = secondState || state2.next(tokens[cursor]))) {\n secondState = null;\n state2 = nextState;\n if (state2.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state2;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n cursor++;\n multiLength++;\n }\n if (sinceAccepts < 0) {\n for (var i = cursor - multiLength; i < cursor; i++) {\n textTokens.push(tokens[i]);\n }\n } else {\n if (textTokens.length > 0) {\n multis.push(new _multi.TEXT(textTokens));\n textTokens = [];\n }\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts;\n var MULTI = latestAccepting.emit();\n multis.push(new MULTI(tokens.slice(cursor - multiLength, cursor)));\n }\n }\n if (textTokens.length > 0) {\n multis.push(new _multi.TEXT(textTokens));\n }\n return multis;\n};\nparser$1.State = _state.TokenState;\nparser$1.TOKENS = MULTI_TOKENS;\nparser$1.run = run$1;\nparser$1.start = S_START;\nlinkify.__esModule = true;\nlinkify.tokenize = linkify.test = linkify.scanner = linkify.parser = linkify.options = linkify.inherits = linkify.find = void 0;\nvar _class = _class$4;\nvar _options = options$1;\nvar options = _interopRequireWildcard(_options);\nvar _scanner = scanner$1;\nvar scanner = _interopRequireWildcard(_scanner);\nvar _parser = parser$1;\nvar parser = _interopRequireWildcard(_parser);\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key))\n newObj[key] = obj[key];\n }\n }\n newObj.default = obj;\n return newObj;\n }\n}\nif (!Array.isArray) {\n Array.isArray = function(arg) {\n return Object.prototype.toString.call(arg) === \"[object Array]\";\n };\n}\nvar tokenize = function tokenize2(str) {\n return parser.run(scanner.run(str));\n};\nvar find = function find2(str) {\n var type = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;\n var tokens = tokenize(str);\n var filtered = [];\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.isLink && (!type || token.type === type)) {\n filtered.push(token.toObject());\n }\n }\n return filtered;\n};\nvar test4 = function test5(str) {\n var type = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;\n var tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].type === type);\n};\nlinkify.find = find;\nlinkify.inherits = _class.inherits;\nlinkify.options = options;\nlinkify.parser = parser;\nlinkify.scanner = scanner;\nlinkify.test = test4;\nlinkify.tokenize = tokenize;\nvar linkifyjs = linkify;\nvar formatString$1 = (text2, doLinkify, textFormatting) => {\n const typeMarkdown = {\n bold: textFormatting.bold,\n italic: textFormatting.italic,\n strike: textFormatting.strike,\n underline: textFormatting.underline,\n multilineCode: textFormatting.multilineCode,\n inlineCode: textFormatting.inlineCode\n };\n const pseudoMarkdown = {\n [typeMarkdown.bold]: {\n end: \"\\\\\" + typeMarkdown.bold,\n allowed_chars: \".\",\n type: \"bold\"\n },\n [typeMarkdown.italic]: {\n end: typeMarkdown.italic,\n allowed_chars: \".\",\n type: \"italic\"\n },\n [typeMarkdown.strike]: {\n end: typeMarkdown.strike,\n allowed_chars: \".\",\n type: \"strike\"\n },\n [typeMarkdown.underline]: {\n end: typeMarkdown.underline,\n allowed_chars: \".\",\n type: \"underline\"\n },\n [typeMarkdown.multilineCode]: {\n end: typeMarkdown.multilineCode,\n allowed_chars: \"(.|\\n)\",\n type: \"multiline-code\"\n },\n [typeMarkdown.inlineCode]: {\n end: typeMarkdown.inlineCode,\n allowed_chars: \".\",\n type: \"inline-code\"\n },\n \"\": {\n allowed_chars: \".\",\n end: \"\",\n type: \"tag\"\n }\n };\n const json = compileToJSON(text2, pseudoMarkdown);\n const html = compileToHTML(json, pseudoMarkdown);\n const result = [].concat.apply([], html);\n if (doLinkify)\n linkifyResult(result);\n return result;\n};\nfunction compileToJSON(str, pseudoMarkdown) {\n let result = [];\n let minIndexOf = -1;\n let minIndexOfKey = null;\n let links = linkifyjs.find(str);\n let minIndexFromLink = false;\n if (links.length > 0) {\n minIndexOf = str.indexOf(links[0].value);\n minIndexFromLink = true;\n }\n Object.keys(pseudoMarkdown).forEach((startingValue) => {\n const io = str.indexOf(startingValue);\n if (io >= 0 && (minIndexOf < 0 || io < minIndexOf)) {\n minIndexOf = io;\n minIndexOfKey = startingValue;\n minIndexFromLink = false;\n }\n });\n if (minIndexFromLink && minIndexOfKey !== -1) {\n let strLeft = str.substr(0, minIndexOf);\n let strLink = str.substr(minIndexOf, links[0].value.length);\n let strRight = str.substr(minIndexOf + links[0].value.length);\n result.push(strLeft);\n result.push(strLink);\n result = result.concat(compileToJSON(strRight, pseudoMarkdown));\n return result;\n }\n if (minIndexOfKey) {\n let strLeft = str.substr(0, minIndexOf);\n const char = minIndexOfKey;\n let strRight = str.substr(minIndexOf + char.length);\n if (str.replace(/\\s/g, \"\").length === char.length * 2) {\n return [str];\n }\n const match = strRight.match(\n new RegExp(\n \"^(\" + (pseudoMarkdown[char].allowed_chars || \".\") + \"*\" + (pseudoMarkdown[char].end ? \"?\" : \"\") + \")\" + (pseudoMarkdown[char].end ? \"(\" + pseudoMarkdown[char].end + \")\" : \"\"),\n \"m\"\n )\n );\n if (!match || !match[1]) {\n strLeft = strLeft + char;\n result.push(strLeft);\n } else {\n if (strLeft) {\n result.push(strLeft);\n }\n const object = {\n start: char,\n content: compileToJSON(match[1], pseudoMarkdown),\n end: match[2],\n type: pseudoMarkdown[char].type\n };\n result.push(object);\n strRight = strRight.substr(match[0].length);\n }\n result = result.concat(compileToJSON(strRight, pseudoMarkdown));\n return result;\n } else {\n if (str) {\n return [str];\n } else {\n return [];\n }\n }\n}\nfunction compileToHTML(json, pseudoMarkdown) {\n const result = [];\n json.forEach((item) => {\n if (typeof item === \"string\") {\n result.push({ types: [], value: item });\n } else {\n if (pseudoMarkdown[item.start]) {\n result.push(parseContent(item));\n }\n }\n });\n return result;\n}\nfunction parseContent(item) {\n const result = [];\n iterateContent(item, result, []);\n return result;\n}\nfunction iterateContent(item, result, types) {\n item.content.forEach((it) => {\n if (typeof it === \"string\") {\n result.push({\n types: removeDuplicates(types.concat([item.type])),\n value: it\n });\n } else {\n iterateContent(\n it,\n result,\n removeDuplicates([it.type].concat([item.type]).concat(types))\n );\n }\n });\n}\nfunction removeDuplicates(items) {\n return [...new Set(items)];\n}\nfunction linkifyResult(array) {\n const result = [];\n array.forEach((arr) => {\n const links = linkifyjs.find(arr.value);\n if (links.length) {\n const spaces = arr.value.replace(links[0].value, \"\");\n result.push({ types: arr.types, value: spaces });\n arr.types = [\"url\"].concat(arr.types);\n arr.href = links[0].href;\n arr.value = links[0].value;\n }\n result.push(arr);\n });\n return result;\n}\nconst IMAGE_TYPES = [\"png\", \"jpg\", \"jpeg\", \"webp\", \"svg\", \"gif\"];\nconst VIDEO_TYPES = [\"mp4\", \"video/ogg\", \"webm\", \"quicktime\"];\nconst AUDIO_TYPES = [\"mp3\", \"audio/ogg\", \"wav\", \"mpeg\"];\nconst _sfc_main$n = {\n name: \"FormatMessage\",\n components: { SvgIcon },\n props: {\n messageId: { type: String, default: \"\" },\n roomId: { type: String, default: \"\" },\n roomList: { type: Boolean, default: false },\n content: { type: [String, Number], required: true },\n deleted: { type: Boolean, default: false },\n users: { type: Array, default: () => [] },\n linkify: { type: Boolean, default: true },\n singleLine: { type: Boolean, default: false },\n reply: { type: Boolean, default: false },\n textFormatting: { type: Object, required: true },\n textMessages: { type: Object, default: () => {\n } },\n linkOptions: { type: Object, required: true }\n },\n emits: [\"open-user-tag\"],\n computed: {\n linkifiedMessage() {\n if (this.deleted) {\n return [{ value: this.textMessages.MESSAGE_DELETED }];\n }\n const message = formatString$1(\n this.formatTags(this.content),\n this.linkify && !this.linkOptions.disabled,\n this.textFormatting\n );\n message.forEach((m) => {\n m.url = this.checkType(m, \"url\");\n m.bold = this.checkType(m, \"bold\");\n m.italic = this.checkType(m, \"italic\");\n m.strike = this.checkType(m, \"strike\");\n m.underline = this.checkType(m, \"underline\");\n m.inline = this.checkType(m, \"inline-code\");\n m.multiline = this.checkType(m, \"multiline-code\");\n m.tag = this.checkType(m, \"tag\");\n m.image = this.checkImageType(m);\n m.value = this.replaceEmojiByElement(m.value);\n });\n return message;\n },\n formattedContent() {\n if (this.deleted) {\n return this.textMessages.MESSAGE_DELETED;\n } else {\n return this.formatTags(this.content);\n }\n }\n },\n methods: {\n checkType(message, type) {\n return message.types && message.types.indexOf(type) !== -1;\n },\n checkImageType(message) {\n let index = message.value.lastIndexOf(\".\");\n const slashIndex = message.value.lastIndexOf(\"/\");\n if (slashIndex > index)\n index = -1;\n const type = message.value.substring(index + 1, message.value.length);\n const isMedia = index > 0 && IMAGE_TYPES.some((t) => type.toLowerCase().includes(t));\n if (isMedia)\n this.setImageSize(message);\n return isMedia;\n },\n setImageSize(message) {\n const image = new Image();\n image.src = message.value;\n image.addEventListener(\"load\", onLoad);\n function onLoad(img) {\n const ratio = img.path[0].width / 150;\n message.height = Math.round(img.path[0].height / ratio) + \"px\";\n image.removeEventListener(\"load\", onLoad);\n }\n },\n formatTags(content) {\n const firstTag = \"\";\n const secondTag = \"\";\n const usertags = [...content.matchAll(new RegExp(firstTag, \"gi\"))].map(\n (a) => a.index\n );\n const initialContent = content;\n usertags.forEach((index) => {\n const userId = initialContent.substring(\n index + firstTag.length,\n initialContent.indexOf(secondTag, index)\n );\n const user = this.users.find((user2) => user2._id === userId);\n content = content.replaceAll(userId, `@${(user == null ? void 0 : user.username) || \"unknown\"}`);\n });\n return content;\n },\n openTag(message) {\n if (!this.singleLine && this.checkType(message, \"tag\")) {\n const user = this.users.find(\n (u) => message.value.indexOf(u.username) !== -1\n );\n this.$emit(\"open-user-tag\", user);\n }\n },\n replaceEmojiByElement(value) {\n let emojiSize;\n if (this.singleLine) {\n emojiSize = 16;\n } else {\n const onlyEmojis = this.containsOnlyEmojis();\n emojiSize = onlyEmojis ? 28 : 20;\n }\n return value.replaceAll(\n /[\\p{Extended_Pictographic}\\u{1F3FB}-\\u{1F3FF}\\u{1F9B0}-\\u{1F9B3}]/gu,\n (v) => {\n return `${v}`;\n }\n );\n },\n containsOnlyEmojis() {\n const onlyEmojis = this.content.replace(\n new RegExp(\"[\\0-\\u1EEFf]\", \"g\"),\n \"\"\n );\n const visibleChars = this.content.replace(\n new RegExp(\"[\\n\\rs]+|( )+\", \"g\"),\n \"\"\n );\n return onlyEmojis.length === visibleChars.length;\n }\n }\n};\nconst _hoisted_1$n = { class: \"vac-image-link-container\" };\nconst _hoisted_2$k = { class: \"vac-image-link-message\" };\nconst _hoisted_3$h = [\"innerHTML\"];\nconst _hoisted_4$g = [\"innerHTML\"];\nfunction _sfc_render$n(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vac-format-message-wrapper\", { \"vac-text-ellipsis\": $props.singleLine }])\n }, [\n !$props.textFormatting.disabled ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass({ \"vac-text-ellipsis\": $props.singleLine })\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.linkifiedMessage, (message, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: i,\n class: \"vac-format-container\"\n }, [\n (openBlock(), createBlock(resolveDynamicComponent(message.url ? \"a\" : \"span\"), {\n class: normalizeClass({\n \"vac-text-ellipsis\": $props.singleLine,\n \"vac-text-bold\": message.bold,\n \"vac-text-italic\": $props.deleted || message.italic,\n \"vac-text-strike\": message.strike,\n \"vac-text-underline\": message.underline,\n \"vac-text-inline-code\": !$props.singleLine && message.inline,\n \"vac-text-multiline-code\": !$props.singleLine && message.multiline,\n \"vac-text-tag\": !$props.singleLine && !$props.reply && message.tag\n }),\n href: message.href,\n target: message.href ? $props.linkOptions.target : null,\n rel: message.href ? $props.linkOptions.rel : null,\n onClick: ($event) => $options.openTag(message)\n }, {\n default: withCtx(() => [\n $props.deleted ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n renderSlot(\n _ctx.$slots,\n $props.roomList ? \"deleted-icon-room_\" + $props.roomId : \"deleted-icon_\" + $props.messageId,\n {},\n () => [\n createVNode(_component_svg_icon, {\n name: \"deleted\",\n class: normalizeClass([\"vac-icon-deleted\", { \"vac-icon-deleted-room\": $props.roomList }])\n }, null, 8, [\"class\"])\n ]\n ),\n createTextVNode(\" \" + toDisplayString($props.textMessages.MESSAGE_DELETED), 1)\n ], 64)) : message.url && message.image ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n createBaseVNode(\"div\", _hoisted_1$n, [\n createBaseVNode(\"div\", {\n class: \"vac-image-link\",\n style: normalizeStyle({\n \"background-image\": `url('${message.value}')`,\n height: message.height\n })\n }, null, 4)\n ]),\n createBaseVNode(\"div\", _hoisted_2$k, [\n createBaseVNode(\"span\", null, toDisplayString(message.value), 1)\n ])\n ], 64)) : (openBlock(), createElementBlock(\"span\", {\n key: 2,\n innerHTML: message.value\n }, null, 8, _hoisted_3$h))\n ]),\n _: 2\n }, 1032, [\"class\", \"href\", \"target\", \"rel\", \"onClick\"]))\n ]);\n }), 128))\n ], 2)) : (openBlock(), createElementBlock(\"div\", {\n key: 1,\n innerHTML: $options.formattedContent\n }, null, 8, _hoisted_4$g))\n ], 2);\n}\nvar FormatMessage = /* @__PURE__ */ _export_sfc(_sfc_main$n, [[\"render\", _sfc_render$n]]);\nconst HANDLERS_PROPERTY = \"__v-click-outside\";\nconst HAS_WINDOWS = typeof window !== \"undefined\";\nconst HAS_NAVIGATOR = typeof navigator !== \"undefined\";\nconst IS_TOUCH = HAS_WINDOWS && (\"ontouchstart\" in window || HAS_NAVIGATOR && navigator.msMaxTouchPoints > 0);\nconst EVENTS = IS_TOUCH ? [\"touchstart\"] : [\"click\"];\nconst processDirectiveArguments = (bindingValue) => {\n const isFunction2 = typeof bindingValue === \"function\";\n if (!isFunction2 && typeof bindingValue !== \"object\") {\n throw new Error(\n \"v-click-outside: Binding value must be a function or an object\"\n );\n }\n return {\n handler: isFunction2 ? bindingValue : bindingValue.handler,\n middleware: bindingValue.middleware || ((item) => item),\n events: bindingValue.events || EVENTS,\n isActive: !(bindingValue.isActive === false),\n detectIframe: !(bindingValue.detectIframe === false),\n capture: Boolean(bindingValue.capture)\n };\n};\nconst execHandler = ({ event, handler, middleware }) => {\n if (middleware(event)) {\n handler(event);\n }\n};\nconst onFauxIframeClick = ({ el, event, handler, middleware }) => {\n setTimeout(() => {\n const { activeElement } = document;\n if (activeElement && activeElement.tagName === \"IFRAME\" && !el.contains(activeElement)) {\n execHandler({ event, handler, middleware });\n }\n }, 0);\n};\nconst onEvent = ({ el, event, handler, middleware }) => {\n const path = event.path || event.composedPath && event.composedPath();\n const isClickOutside = path ? path.indexOf(el) < 0 : !el.contains(event.target);\n if (!isClickOutside) {\n return;\n }\n execHandler({ event, handler, middleware });\n};\nconst beforeMount = (el, { value }) => {\n const {\n events,\n handler,\n middleware,\n isActive,\n detectIframe,\n capture\n } = processDirectiveArguments(value);\n if (!isActive) {\n return;\n }\n el[HANDLERS_PROPERTY] = events.map((eventName) => ({\n event: eventName,\n srcTarget: document.documentElement,\n handler: (event) => onEvent({ el, event, handler, middleware }),\n capture\n }));\n if (detectIframe) {\n const detectIframeEvent = {\n event: \"blur\",\n srcTarget: window,\n handler: (event) => onFauxIframeClick({ el, event, handler, middleware }),\n capture\n };\n el[HANDLERS_PROPERTY] = [...el[HANDLERS_PROPERTY], detectIframeEvent];\n }\n el[HANDLERS_PROPERTY].forEach(\n ({ event, srcTarget, handler: thisHandler }) => setTimeout(() => {\n if (!el[HANDLERS_PROPERTY]) {\n return;\n }\n srcTarget.addEventListener(event, thisHandler, capture);\n }, 0)\n );\n};\nconst unmounted = (el) => {\n const handlers = el[HANDLERS_PROPERTY] || [];\n handlers.forEach(\n ({ event, srcTarget, handler, capture }) => srcTarget.removeEventListener(event, handler, capture)\n );\n delete el[HANDLERS_PROPERTY];\n};\nconst updated = (el, { value, oldValue }) => {\n if (JSON.stringify(value) === JSON.stringify(oldValue)) {\n return;\n }\n unmounted(el);\n beforeMount(el, { value });\n};\nconst directive = {\n beforeMount,\n updated,\n unmounted\n};\nvar vClickOutside = HAS_WINDOWS ? directive : {};\nvar typingText = (room, currentUserId, textMessages) => {\n if (room.typingUsers && room.typingUsers.length) {\n const typingUsers = room.users.filter((user) => {\n if (user._id === currentUserId)\n return;\n if (room.typingUsers.indexOf(user._id) === -1)\n return;\n if (user.status && user.status.state === \"offline\")\n return;\n return true;\n });\n if (!typingUsers.length)\n return;\n if (room.users.length === 2) {\n return textMessages.IS_TYPING;\n } else {\n return typingUsers.map((user) => user.username).join(\", \") + \" \" + textMessages.IS_TYPING;\n }\n }\n};\nfunction checkMediaType(types, file) {\n if (!file || !file.type)\n return;\n return types.some((t) => file.type.toLowerCase().includes(t));\n}\nfunction isImageFile(file) {\n return checkMediaType(IMAGE_TYPES, file);\n}\nfunction isVideoFile(file) {\n return checkMediaType(VIDEO_TYPES, file);\n}\nfunction isImageVideoFile(file) {\n return checkMediaType(IMAGE_TYPES, file) || checkMediaType(VIDEO_TYPES, file);\n}\nfunction isAudioFile(file) {\n return checkMediaType(AUDIO_TYPES, file);\n}\nconst _sfc_main$m = {\n name: \"RoomsContent\",\n components: {\n SvgIcon,\n FormatMessage\n },\n directives: {\n clickOutside: vClickOutside\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n room: { type: Object, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n textMessages: { type: Object, required: true },\n roomActions: { type: Array, required: true }\n },\n emits: [\"room-action-handler\"],\n data() {\n return {\n roomMenuOpened: null\n };\n },\n computed: {\n getLastMessage() {\n const isTyping = this.typingUsers;\n if (isTyping)\n return isTyping;\n const content = this.room.lastMessage.content;\n if (this.room.users.length <= 2) {\n return content;\n }\n const user = this.room.users.find(\n (user2) => user2._id === this.room.lastMessage.senderId\n );\n if (this.room.lastMessage.username) {\n return `${this.room.lastMessage.username} - ${content}`;\n } else if (!user || user._id === this.currentUserId) {\n return content;\n }\n return `${user.username} - ${content}`;\n },\n userStatus() {\n if (!this.room.users || this.room.users.length !== 2)\n return;\n const user = this.room.users.find((u) => u._id !== this.currentUserId);\n if (user && user.status)\n return user.status.state;\n return null;\n },\n typingUsers() {\n return typingText(this.room, this.currentUserId, this.textMessages);\n },\n isMessageCheckmarkVisible() {\n return !this.typingUsers && this.room.lastMessage && !this.room.lastMessage.deleted && this.room.lastMessage.senderId === this.currentUserId && (this.room.lastMessage.saved || this.room.lastMessage.distributed || this.room.lastMessage.seen);\n },\n formattedDuration() {\n var _a, _b;\n const file = (_b = (_a = this.room.lastMessage) == null ? void 0 : _a.files) == null ? void 0 : _b[0];\n if (file) {\n if (!file.duration) {\n return `${file.name}.${file.extension}`;\n }\n let s = Math.floor(file.duration);\n return (s - (s %= 60)) / 60 + (s > 9 ? \":\" : \":0\") + s;\n }\n return \"\";\n },\n isAudio() {\n return this.room.lastMessage.files ? isAudioFile(this.room.lastMessage.files[0]) : false;\n }\n },\n methods: {\n roomActionHandler(action) {\n this.closeRoomMenu();\n this.$emit(\"room-action-handler\", { action, roomId: this.room.roomId });\n },\n closeRoomMenu() {\n this.roomMenuOpened = null;\n }\n }\n};\nconst _hoisted_1$m = { class: \"vac-room-container\" };\nconst _hoisted_2$j = { class: \"vac-name-container vac-text-ellipsis\" };\nconst _hoisted_3$g = { class: \"vac-title-container\" };\nconst _hoisted_4$f = { class: \"vac-room-name vac-text-ellipsis\" };\nconst _hoisted_5$a = {\n key: 1,\n class: \"vac-text-date\"\n};\nconst _hoisted_6$6 = { key: 0 };\nconst _hoisted_7$6 = {\n key: 1,\n class: \"vac-text-ellipsis\"\n};\nconst _hoisted_8$4 = {\n key: 3,\n class: \"vac-text-ellipsis\"\n};\nconst _hoisted_9$4 = { class: \"vac-room-options-container\" };\nconst _hoisted_10$4 = {\n key: 0,\n class: \"vac-badge-counter vac-room-badge\"\n};\nconst _hoisted_11$3 = {\n key: 0,\n class: \"vac-menu-options\"\n};\nconst _hoisted_12$3 = { class: \"vac-menu-list\" };\nconst _hoisted_13$1 = [\"onClick\"];\nfunction _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_format_message = resolveComponent(\"format-message\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$m, [\n renderSlot(_ctx.$slots, \"room-list-item_\" + $props.room.roomId, {}, () => [\n renderSlot(_ctx.$slots, \"room-list-avatar_\" + $props.room.roomId, {}, () => [\n $props.room.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar\",\n style: normalizeStyle({ \"background-image\": `url('${$props.room.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true)\n ]),\n createBaseVNode(\"div\", _hoisted_2$j, [\n createBaseVNode(\"div\", _hoisted_3$g, [\n $options.userStatus ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-state-circle\", { \"vac-state-online\": $options.userStatus === \"online\" }])\n }, null, 2)) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", _hoisted_4$f, toDisplayString($props.room.roomName), 1),\n $props.room.lastMessage ? (openBlock(), createElementBlock(\"div\", _hoisted_5$a, toDisplayString($props.room.lastMessage.timestamp), 1)) : createCommentVNode(\"\", true)\n ]),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-text-last\", {\n \"vac-message-new\": $props.room.lastMessage && $props.room.lastMessage.new && !$options.typingUsers\n }])\n }, [\n $options.isMessageCheckmarkVisible ? (openBlock(), createElementBlock(\"span\", _hoisted_6$6, [\n renderSlot(_ctx.$slots, \"checkmark-icon_\" + $props.room.roomId, {}, () => [\n createVNode(_component_svg_icon, {\n name: $props.room.lastMessage.distributed ? \"double-checkmark\" : \"checkmark\",\n param: $props.room.lastMessage.seen ? \"seen\" : \"\",\n class: \"vac-icon-check\"\n }, null, 8, [\"name\", \"param\"])\n ])\n ])) : createCommentVNode(\"\", true),\n $props.room.lastMessage && !$props.room.lastMessage.deleted && $options.isAudio ? (openBlock(), createElementBlock(\"div\", _hoisted_7$6, [\n renderSlot(_ctx.$slots, \"microphone-icon_\" + $props.room.roomId, {}, () => [\n createVNode(_component_svg_icon, {\n name: \"microphone\",\n class: \"vac-icon-microphone\"\n })\n ]),\n createTextVNode(\" \" + toDisplayString($options.formattedDuration), 1)\n ])) : $props.room.lastMessage ? (openBlock(), createBlock(_component_format_message, {\n key: 2,\n \"message-id\": $props.room.lastMessage._id,\n \"room-id\": $props.room.roomId,\n \"room-list\": true,\n content: $options.getLastMessage,\n deleted: !!$props.room.lastMessage.deleted && !$options.typingUsers,\n users: $props.room.users,\n \"text-messages\": $props.textMessages,\n linkify: false,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"single-line\": true\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message-id\", \"room-id\", \"content\", \"deleted\", \"users\", \"text-messages\", \"text-formatting\", \"link-options\"])) : createCommentVNode(\"\", true),\n !$props.room.lastMessage && $options.typingUsers ? (openBlock(), createElementBlock(\"div\", _hoisted_8$4, toDisplayString($options.typingUsers), 1)) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", _hoisted_9$4, [\n $props.room.unreadCount ? (openBlock(), createElementBlock(\"div\", _hoisted_10$4, toDisplayString($props.room.unreadCount), 1)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"room-list-options_\" + $props.room.roomId, {}, () => [\n $props.roomActions.length ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-svg-button vac-list-room-options\",\n onClick: _cache[0] || (_cache[0] = withModifiers(($event) => $data.roomMenuOpened = $props.room.roomId, [\"stop\"]))\n }, [\n renderSlot(_ctx.$slots, \"room-list-options-icon_\" + $props.room.roomId, {}, () => [\n createVNode(_component_svg_icon, {\n name: \"dropdown\",\n param: \"room\"\n })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.roomActions.length ? (openBlock(), createBlock(Transition, {\n key: 1,\n name: \"vac-slide-left\"\n }, {\n default: withCtx(() => [\n $data.roomMenuOpened === $props.room.roomId ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_11$3, [\n createBaseVNode(\"div\", _hoisted_12$3, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.roomActions, (action) => {\n return openBlock(), createElementBlock(\"div\", {\n key: action.name\n }, [\n createBaseVNode(\"div\", {\n class: \"vac-menu-item\",\n onClick: withModifiers(($event) => $options.roomActionHandler(action), [\"stop\"])\n }, toDisplayString(action.title), 9, _hoisted_13$1)\n ]);\n }), 128))\n ])\n ])), [\n [_directive_click_outside, $options.closeRoomMenu]\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ])\n ])\n ], 2)\n ])\n ])\n ]);\n}\nvar RoomContent = /* @__PURE__ */ _export_sfc(_sfc_main$m, [[\"render\", _sfc_render$m]]);\nvar filteredItems = (items, prop, val, startsWith = false) => {\n if (!val || val === \"\")\n return items;\n return items.filter((v) => {\n if (startsWith)\n return formatString(v[prop]).startsWith(formatString(val));\n return formatString(v[prop]).includes(formatString(val));\n });\n};\nfunction formatString(string) {\n return string.toLowerCase().normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\nconst _sfc_main$l = {\n name: \"RoomsList\",\n components: {\n Loader,\n RoomsSearch,\n RoomContent\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n textMessages: { type: Object, required: true },\n showRoomsList: { type: Boolean, required: true },\n showSearch: { type: Boolean, required: true },\n showAddRoom: { type: Boolean, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n isMobile: { type: Boolean, required: true },\n rooms: { type: Array, required: true },\n loadingRooms: { type: Boolean, required: true },\n roomsLoaded: { type: Boolean, required: true },\n room: { type: Object, required: true },\n customSearchRoomEnabled: { type: [Boolean, String], default: false },\n roomActions: { type: Array, required: true },\n scrollDistance: { type: Number, required: true }\n },\n emits: [\n \"add-room\",\n \"search-room\",\n \"room-action-handler\",\n \"loading-more-rooms\",\n \"fetch-room\",\n \"fetch-more-rooms\"\n ],\n data() {\n return {\n filteredRooms: this.rooms || [],\n observer: null,\n showLoader: true,\n loadingMoreRooms: false,\n selectedRoomId: \"\"\n };\n },\n watch: {\n rooms: {\n deep: true,\n handler(newVal, oldVal) {\n this.filteredRooms = newVal;\n if (newVal.length !== oldVal.length || this.roomsLoaded) {\n this.loadingMoreRooms = false;\n }\n }\n },\n loadingRooms(val) {\n if (!val) {\n setTimeout(() => this.initIntersectionObserver());\n }\n },\n loadingMoreRooms(val) {\n this.$emit(\"loading-more-rooms\", val);\n },\n roomsLoaded: {\n immediate: true,\n handler(val) {\n if (val) {\n this.loadingMoreRooms = false;\n if (!this.loadingRooms) {\n this.showLoader = false;\n }\n }\n }\n },\n room: {\n immediate: true,\n handler(val) {\n if (val && !this.isMobile)\n this.selectedRoomId = val.roomId;\n }\n }\n },\n methods: {\n initIntersectionObserver() {\n if (this.observer) {\n this.showLoader = true;\n this.observer.disconnect();\n }\n const loader = this.$el.querySelector(\"#infinite-loader-rooms\");\n if (loader) {\n const options2 = {\n root: this.$el.querySelector(\"#rooms-list\"),\n rootMargin: `${this.scrollDistance}px`,\n threshold: 0\n };\n this.observer = new IntersectionObserver((entries) => {\n if (entries[0].isIntersecting) {\n this.loadMoreRooms();\n }\n }, options2);\n this.observer.observe(loader);\n }\n },\n searchRoom(ev) {\n if (this.customSearchRoomEnabled) {\n this.$emit(\"search-room\", ev.target.value);\n } else {\n this.filteredRooms = filteredItems(\n this.rooms,\n \"roomName\",\n ev.target.value\n );\n }\n },\n openRoom(room) {\n if (room.roomId === this.room.roomId && !this.isMobile)\n return;\n if (!this.isMobile)\n this.selectedRoomId = room.roomId;\n this.$emit(\"fetch-room\", { room });\n },\n loadMoreRooms() {\n if (this.loadingMoreRooms)\n return;\n if (this.roomsLoaded) {\n this.loadingMoreRooms = false;\n this.showLoader = false;\n return;\n }\n this.$emit(\"fetch-more-rooms\");\n this.loadingMoreRooms = true;\n }\n }\n};\nconst _hoisted_1$l = {\n key: 0,\n class: \"vac-rooms-empty\"\n};\nconst _hoisted_2$i = {\n key: 1,\n id: \"rooms-list\",\n class: \"vac-room-list\"\n};\nconst _hoisted_3$f = [\"id\", \"onClick\"];\nconst _hoisted_4$e = {\n key: 0,\n id: \"infinite-loader-rooms\"\n};\nfunction _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_rooms_search = resolveComponent(\"rooms-search\");\n const _component_loader = resolveComponent(\"loader\");\n const _component_room_content = resolveComponent(\"room-content\");\n return withDirectives((openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vac-rooms-container\", {\n \"vac-rooms-container-full\": $props.isMobile,\n \"vac-app-border-r\": !$props.isMobile\n }])\n }, [\n renderSlot(_ctx.$slots, \"rooms-header\"),\n renderSlot(_ctx.$slots, \"rooms-list-search\", {}, () => [\n createVNode(_component_rooms_search, {\n rooms: $props.rooms,\n \"loading-rooms\": $props.loadingRooms,\n \"text-messages\": $props.textMessages,\n \"show-search\": $props.showSearch,\n \"show-add-room\": $props.showAddRoom,\n onSearchRoom: $options.searchRoom,\n onAddRoom: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"add-room\"))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"rooms\", \"loading-rooms\", \"text-messages\", \"show-search\", \"show-add-room\", \"onSearchRoom\"])\n ]),\n createVNode(_component_loader, {\n show: $props.loadingRooms,\n type: \"rooms\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\"]),\n !$props.loadingRooms && !$props.rooms.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$l, [\n renderSlot(_ctx.$slots, \"rooms-empty\", {}, () => [\n createTextVNode(toDisplayString($props.textMessages.ROOMS_EMPTY), 1)\n ])\n ])) : createCommentVNode(\"\", true),\n !$props.loadingRooms ? (openBlock(), createElementBlock(\"div\", _hoisted_2$i, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($data.filteredRooms, (fRoom) => {\n return openBlock(), createElementBlock(\"div\", {\n id: fRoom.roomId,\n key: fRoom.roomId,\n class: normalizeClass([\"vac-room-item\", { \"vac-room-selected\": $data.selectedRoomId === fRoom.roomId }]),\n onClick: ($event) => $options.openRoom(fRoom)\n }, [\n createVNode(_component_room_content, {\n \"current-user-id\": $props.currentUserId,\n room: fRoom,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"text-messages\": $props.textMessages,\n \"room-actions\": $props.roomActions,\n onRoomActionHandler: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"room-action-handler\", $event))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"room\", \"text-formatting\", \"link-options\", \"text-messages\", \"room-actions\"])\n ], 10, _hoisted_3$f);\n }), 128)),\n createVNode(Transition, { name: \"vac-fade-message\" }, {\n default: withCtx(() => [\n $props.rooms.length && !$props.loadingRooms ? (openBlock(), createElementBlock(\"div\", _hoisted_4$e, [\n createVNode(_component_loader, {\n show: $data.showLoader,\n infinite: true,\n type: \"infinite-rooms\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\"])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ])) : createCommentVNode(\"\", true)\n ], 2)), [\n [vShow, $props.showRoomsList]\n ]);\n}\nvar RoomsList = /* @__PURE__ */ _export_sfc(_sfc_main$l, [[\"render\", _sfc_render$l]]);\nconst _sfc_main$k = {\n name: \"RoomHeader\",\n components: {\n SvgIcon\n },\n directives: {\n clickOutside: vClickOutside\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n textMessages: { type: Object, required: true },\n singleRoom: { type: Boolean, required: true },\n showRoomsList: { type: Boolean, required: true },\n isMobile: { type: Boolean, required: true },\n roomInfoEnabled: { type: Boolean, required: true },\n menuActions: { type: Array, required: true },\n room: { type: Object, required: true },\n messageSelectionEnabled: { type: Boolean, required: true },\n messageSelectionActions: { type: Array, required: true },\n selectedMessagesTotal: { type: Number, required: true }\n },\n emits: [\n \"toggle-rooms-list\",\n \"room-info\",\n \"menu-action-handler\",\n \"cancel-message-selection\",\n \"message-selection-action-handler\"\n ],\n data() {\n return {\n menuOpened: false,\n messageSelectionAnimationEnded: true\n };\n },\n computed: {\n typingUsers() {\n return typingText(this.room, this.currentUserId, this.textMessages);\n },\n userStatus() {\n if (!this.room.users || this.room.users.length !== 2)\n return;\n const user = this.room.users.find((u) => u._id !== this.currentUserId);\n if (!(user == null ? void 0 : user.status))\n return;\n let text2 = \"\";\n if (user.status.state === \"online\") {\n text2 = this.textMessages.IS_ONLINE;\n } else if (user.status.lastChanged) {\n text2 = this.textMessages.LAST_SEEN + user.status.lastChanged;\n }\n return text2;\n }\n },\n watch: {\n messageSelectionEnabled(val) {\n if (val) {\n this.messageSelectionAnimationEnded = false;\n } else {\n setTimeout(() => {\n this.messageSelectionAnimationEnded = true;\n }, 300);\n }\n }\n },\n methods: {\n menuActionHandler(action) {\n this.closeMenu();\n this.$emit(\"menu-action-handler\", action);\n },\n closeMenu() {\n this.menuOpened = false;\n },\n messageSelectionActionHandler(action) {\n this.$emit(\"message-selection-action-handler\", action);\n }\n }\n};\nconst _hoisted_1$k = { class: \"vac-room-header vac-app-border-b\" };\nconst _hoisted_2$h = { class: \"vac-room-wrapper\" };\nconst _hoisted_3$e = {\n key: 0,\n class: \"vac-room-selection\"\n};\nconst _hoisted_4$d = [\"id\"];\nconst _hoisted_5$9 = [\"onClick\"];\nconst _hoisted_6$5 = { class: \"vac-selection-button-count\" };\nconst _hoisted_7$5 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_8$3 = { class: \"vac-room-name vac-text-ellipsis\" };\nconst _hoisted_9$3 = {\n key: 0,\n class: \"vac-room-info vac-text-ellipsis\"\n};\nconst _hoisted_10$3 = {\n key: 1,\n class: \"vac-room-info vac-text-ellipsis\"\n};\nconst _hoisted_11$2 = {\n key: 0,\n class: \"vac-menu-options\"\n};\nconst _hoisted_12$2 = { class: \"vac-menu-list\" };\nconst _hoisted_13 = [\"onClick\"];\nfunction _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$k, [\n renderSlot(_ctx.$slots, \"room-header\", {}, () => [\n createBaseVNode(\"div\", _hoisted_2$h, [\n createVNode(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.messageSelectionEnabled ? (openBlock(), createElementBlock(\"div\", _hoisted_3$e, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.messageSelectionActions, (action) => {\n return openBlock(), createElementBlock(\"div\", {\n id: action.name,\n key: action.name\n }, [\n createBaseVNode(\"div\", {\n class: \"vac-selection-button\",\n onClick: ($event) => $options.messageSelectionActionHandler(action)\n }, [\n createTextVNode(toDisplayString(action.title) + \" \", 1),\n createBaseVNode(\"span\", _hoisted_6$5, toDisplayString($props.selectedMessagesTotal), 1)\n ], 8, _hoisted_5$9)\n ], 8, _hoisted_4$d);\n }), 128)),\n createBaseVNode(\"div\", {\n class: \"vac-selection-cancel vac-item-clickable\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"cancel-message-selection\"))\n }, toDisplayString($props.textMessages.CANCEL_SELECT_MESSAGE), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n !$props.messageSelectionEnabled && $data.messageSelectionAnimationEnded ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n !$props.singleRoom ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-svg-button vac-toggle-button\", {\n \"vac-rotate-icon-init\": !$props.isMobile,\n \"vac-rotate-icon\": !$props.showRoomsList && !$props.isMobile\n }]),\n onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"toggle-rooms-list\"))\n }, [\n renderSlot(_ctx.$slots, \"toggle-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"toggle\" })\n ])\n ], 2)) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-info-wrapper\", { \"vac-item-clickable\": $props.roomInfoEnabled }]),\n onClick: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"room-info\"))\n }, [\n renderSlot(_ctx.$slots, \"room-header-avatar\", {}, () => [\n $props.room.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar\",\n style: normalizeStyle({ \"background-image\": `url('${$props.room.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true)\n ]),\n renderSlot(_ctx.$slots, \"room-header-info\", {}, () => [\n createBaseVNode(\"div\", _hoisted_7$5, [\n createBaseVNode(\"div\", _hoisted_8$3, toDisplayString($props.room.roomName), 1),\n $options.typingUsers ? (openBlock(), createElementBlock(\"div\", _hoisted_9$3, toDisplayString($options.typingUsers), 1)) : (openBlock(), createElementBlock(\"div\", _hoisted_10$3, toDisplayString($options.userStatus), 1))\n ])\n ])\n ], 2),\n $props.room.roomId ? renderSlot(_ctx.$slots, \"room-options\", { key: 1 }, () => [\n $props.menuActions.length ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-svg-button vac-room-options\",\n onClick: _cache[3] || (_cache[3] = ($event) => $data.menuOpened = !$data.menuOpened)\n }, [\n renderSlot(_ctx.$slots, \"menu-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"menu\" })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.menuActions.length ? (openBlock(), createBlock(Transition, {\n key: 1,\n name: \"vac-slide-left\"\n }, {\n default: withCtx(() => [\n $data.menuOpened ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_11$2, [\n createBaseVNode(\"div\", _hoisted_12$2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.menuActions, (action) => {\n return openBlock(), createElementBlock(\"div\", {\n key: action.name\n }, [\n createBaseVNode(\"div\", {\n class: \"vac-menu-item\",\n onClick: ($event) => $options.menuActionHandler(action)\n }, toDisplayString(action.title), 9, _hoisted_13)\n ]);\n }), 128))\n ])\n ])), [\n [_directive_click_outside, $options.closeMenu]\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ]) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true)\n ])\n ])\n ]);\n}\nvar RoomHeader = /* @__PURE__ */ _export_sfc(_sfc_main$k, [[\"render\", _sfc_render$k]]);\nfunction assertNonEmptyString(str) {\n if (typeof str !== \"string\" || !str) {\n throw new Error(\"expected a non-empty string, got: \" + str);\n }\n}\nfunction assertNumber(number) {\n if (typeof number !== \"number\") {\n throw new Error(\"expected a number, got: \" + number);\n }\n}\nconst DB_VERSION_CURRENT = 1;\nconst DB_VERSION_INITIAL = 1;\nconst STORE_EMOJI = \"emoji\";\nconst STORE_KEYVALUE = \"keyvalue\";\nconst STORE_FAVORITES = \"favorites\";\nconst FIELD_TOKENS = \"tokens\";\nconst INDEX_TOKENS = \"tokens\";\nconst FIELD_UNICODE = \"unicode\";\nconst INDEX_COUNT = \"count\";\nconst FIELD_GROUP = \"group\";\nconst FIELD_ORDER = \"order\";\nconst INDEX_GROUP_AND_ORDER = \"group-order\";\nconst KEY_ETAG = \"eTag\";\nconst KEY_URL = \"url\";\nconst KEY_PREFERRED_SKINTONE = \"skinTone\";\nconst MODE_READONLY = \"readonly\";\nconst MODE_READWRITE = \"readwrite\";\nconst INDEX_SKIN_UNICODE = \"skinUnicodes\";\nconst FIELD_SKIN_UNICODE = \"skinUnicodes\";\nconst DEFAULT_DATA_SOURCE$1 = \"https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json\";\nconst DEFAULT_LOCALE$1 = \"en\";\nfunction uniqBy$1(arr, func) {\n const set2 = /* @__PURE__ */ new Set();\n const res = [];\n for (const item of arr) {\n const key = func(item);\n if (!set2.has(key)) {\n set2.add(key);\n res.push(item);\n }\n }\n return res;\n}\nfunction uniqEmoji(emojis) {\n return uniqBy$1(emojis, (_) => _.unicode);\n}\nfunction initialMigration(db) {\n function createObjectStore(name, keyPath, indexes) {\n const store = keyPath ? db.createObjectStore(name, { keyPath }) : db.createObjectStore(name);\n if (indexes) {\n for (const [indexName, [keyPath2, multiEntry]] of Object.entries(indexes)) {\n store.createIndex(indexName, keyPath2, { multiEntry });\n }\n }\n return store;\n }\n createObjectStore(STORE_KEYVALUE);\n createObjectStore(STORE_EMOJI, FIELD_UNICODE, {\n [INDEX_TOKENS]: [FIELD_TOKENS, true],\n [INDEX_GROUP_AND_ORDER]: [[FIELD_GROUP, FIELD_ORDER]],\n [INDEX_SKIN_UNICODE]: [FIELD_SKIN_UNICODE, true]\n });\n createObjectStore(STORE_FAVORITES, void 0, {\n [INDEX_COUNT]: [\"\"]\n });\n}\nconst openReqs = {};\nconst databaseCache = {};\nconst onCloseListeners = {};\nfunction handleOpenOrDeleteReq(resolve3, reject, req) {\n req.onerror = () => reject(req.error);\n req.onblocked = () => reject(new Error(\"IDB blocked\"));\n req.onsuccess = () => resolve3(req.result);\n}\nasync function createDatabase(dbName) {\n const db = await new Promise((resolve3, reject) => {\n const req = indexedDB.open(dbName, DB_VERSION_CURRENT);\n openReqs[dbName] = req;\n req.onupgradeneeded = (e) => {\n if (e.oldVersion < DB_VERSION_INITIAL) {\n initialMigration(req.result);\n }\n };\n handleOpenOrDeleteReq(resolve3, reject, req);\n });\n db.onclose = () => closeDatabase(dbName);\n return db;\n}\nfunction openDatabase(dbName) {\n if (!databaseCache[dbName]) {\n databaseCache[dbName] = createDatabase(dbName);\n }\n return databaseCache[dbName];\n}\nfunction dbPromise(db, storeName, readOnlyOrReadWrite, cb) {\n return new Promise((resolve3, reject) => {\n const txn = db.transaction(storeName, readOnlyOrReadWrite, { durability: \"relaxed\" });\n const store = typeof storeName === \"string\" ? txn.objectStore(storeName) : storeName.map((name) => txn.objectStore(name));\n let res;\n cb(store, txn, (result) => {\n res = result;\n });\n txn.oncomplete = () => resolve3(res);\n txn.onerror = () => reject(txn.error);\n });\n}\nfunction closeDatabase(dbName) {\n const req = openReqs[dbName];\n const db = req && req.result;\n if (db) {\n db.close();\n const listeners = onCloseListeners[dbName];\n if (listeners) {\n for (const listener of listeners) {\n listener();\n }\n }\n }\n delete openReqs[dbName];\n delete databaseCache[dbName];\n delete onCloseListeners[dbName];\n}\nfunction deleteDatabase(dbName) {\n return new Promise((resolve3, reject) => {\n closeDatabase(dbName);\n const req = indexedDB.deleteDatabase(dbName);\n handleOpenOrDeleteReq(resolve3, reject, req);\n });\n}\nfunction addOnCloseListener(dbName, listener) {\n let listeners = onCloseListeners[dbName];\n if (!listeners) {\n listeners = onCloseListeners[dbName] = [];\n }\n listeners.push(listener);\n}\nconst irregularEmoticons = /* @__PURE__ */ new Set([\n \":D\",\n \"XD\",\n \":'D\",\n \"O:)\",\n \":X\",\n \":P\",\n \";P\",\n \"XP\",\n \":L\",\n \":Z\",\n \":j\",\n \"8D\",\n \"XO\",\n \"8)\",\n \":B\",\n \":O\",\n \":S\",\n \":'o\",\n \"Dx\",\n \"X(\",\n \"D:\",\n \":C\",\n \">0)\",\n \":3\",\n \" {\n if (!word.match(/\\w/) || irregularEmoticons.has(word)) {\n return word.toLowerCase();\n }\n return word.replace(/[)(:,]/g, \"\").replace(/’/g, \"'\").toLowerCase();\n }).filter(Boolean);\n}\nconst MIN_SEARCH_TEXT_LENGTH$1 = 2;\nfunction normalizeTokens(str) {\n return str.filter(Boolean).map((_) => _.toLowerCase()).filter((_) => _.length >= MIN_SEARCH_TEXT_LENGTH$1);\n}\nfunction transformEmojiData(emojiData) {\n const res = emojiData.map(({ annotation, emoticon, group, order, shortcodes, skins, tags, emoji, version: version2 }) => {\n const tokens = [...new Set(\n normalizeTokens([\n ...(shortcodes || []).map(extractTokens).flat(),\n ...tags.map(extractTokens).flat(),\n ...extractTokens(annotation),\n emoticon\n ])\n )].sort();\n const res2 = {\n annotation,\n group,\n order,\n tags,\n tokens,\n unicode: emoji,\n version: version2\n };\n if (emoticon) {\n res2.emoticon = emoticon;\n }\n if (shortcodes) {\n res2.shortcodes = shortcodes;\n }\n if (skins) {\n res2.skinTones = [];\n res2.skinUnicodes = [];\n res2.skinVersions = [];\n for (const { tone, emoji: emoji2, version: version3 } of skins) {\n res2.skinTones.push(tone);\n res2.skinUnicodes.push(emoji2);\n res2.skinVersions.push(version3);\n }\n }\n return res2;\n });\n return res;\n}\nfunction callStore(store, method, key, cb) {\n store[method](key).onsuccess = (e) => cb && cb(e.target.result);\n}\nfunction getIDB(store, key, cb) {\n callStore(store, \"get\", key, cb);\n}\nfunction getAllIDB(store, key, cb) {\n callStore(store, \"getAll\", key, cb);\n}\nfunction commit(txn) {\n if (txn.commit) {\n txn.commit();\n }\n}\nfunction minBy(array, func) {\n let minItem = array[0];\n for (let i = 1; i < array.length; i++) {\n const item = array[i];\n if (func(minItem) > func(item)) {\n minItem = item;\n }\n }\n return minItem;\n}\nfunction findCommonMembers(arrays, uniqByFunc) {\n const shortestArray = minBy(arrays, (_) => _.length);\n const results = [];\n for (const item of shortestArray) {\n if (!arrays.some((array) => array.findIndex((_) => uniqByFunc(_) === uniqByFunc(item)) === -1)) {\n results.push(item);\n }\n }\n return results;\n}\nasync function isEmpty(db) {\n return !await get2(db, STORE_KEYVALUE, KEY_URL);\n}\nasync function hasData(db, url, eTag) {\n const [oldETag, oldUrl] = await Promise.all([KEY_ETAG, KEY_URL].map((key) => get2(db, STORE_KEYVALUE, key)));\n return oldETag === eTag && oldUrl === url;\n}\nasync function doFullDatabaseScanForSingleResult(db, predicate) {\n const BATCH_SIZE = 50;\n return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n let lastKey;\n const processNextBatch = () => {\n emojiStore.getAll(lastKey && IDBKeyRange.lowerBound(lastKey, true), BATCH_SIZE).onsuccess = (e) => {\n const results = e.target.result;\n for (const result of results) {\n lastKey = result.unicode;\n if (predicate(result)) {\n return cb(result);\n }\n }\n if (results.length < BATCH_SIZE) {\n return cb();\n }\n processNextBatch();\n };\n };\n processNextBatch();\n });\n}\nasync function loadData(db, emojiData, url, eTag) {\n try {\n const transformedData = transformEmojiData(emojiData);\n await dbPromise(db, [STORE_EMOJI, STORE_KEYVALUE], MODE_READWRITE, ([emojiStore, metaStore], txn) => {\n let oldETag;\n let oldUrl;\n let todo = 0;\n function checkFetched() {\n if (++todo === 2) {\n onFetched();\n }\n }\n function onFetched() {\n if (oldETag === eTag && oldUrl === url) {\n return;\n }\n emojiStore.clear();\n for (const data of transformedData) {\n emojiStore.put(data);\n }\n metaStore.put(eTag, KEY_ETAG);\n metaStore.put(url, KEY_URL);\n commit(txn);\n }\n getIDB(metaStore, KEY_ETAG, (result) => {\n oldETag = result;\n checkFetched();\n });\n getIDB(metaStore, KEY_URL, (result) => {\n oldUrl = result;\n checkFetched();\n });\n });\n } finally {\n }\n}\nasync function getEmojiByGroup(db, group) {\n return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n const range = IDBKeyRange.bound([group, 0], [group + 1, 0], false, true);\n getAllIDB(emojiStore.index(INDEX_GROUP_AND_ORDER), range, cb);\n });\n}\nasync function getEmojiBySearchQuery(db, query) {\n const tokens = normalizeTokens(extractTokens(query));\n if (!tokens.length) {\n return [];\n }\n return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => {\n const intermediateResults = [];\n const checkDone = () => {\n if (intermediateResults.length === tokens.length) {\n onDone();\n }\n };\n const onDone = () => {\n const results = findCommonMembers(intermediateResults, (_) => _.unicode);\n cb(results.sort((a, b) => a.order < b.order ? -1 : 1));\n };\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n const range = i === tokens.length - 1 ? IDBKeyRange.bound(token, token + \"\\uFFFF\", false, true) : IDBKeyRange.only(token);\n getAllIDB(emojiStore.index(INDEX_TOKENS), range, (result) => {\n intermediateResults.push(result);\n checkDone();\n });\n }\n });\n}\nasync function getEmojiByShortcode(db, shortcode) {\n const emojis = await getEmojiBySearchQuery(db, shortcode);\n if (!emojis.length) {\n const predicate = (_) => (_.shortcodes || []).includes(shortcode.toLowerCase());\n return await doFullDatabaseScanForSingleResult(db, predicate) || null;\n }\n return emojis.filter((_) => {\n const lowerShortcodes = (_.shortcodes || []).map((_2) => _2.toLowerCase());\n return lowerShortcodes.includes(shortcode.toLowerCase());\n })[0] || null;\n}\nasync function getEmojiByUnicode(db, unicode) {\n return dbPromise(db, STORE_EMOJI, MODE_READONLY, (emojiStore, txn, cb) => getIDB(emojiStore, unicode, (result) => {\n if (result) {\n return cb(result);\n }\n getIDB(emojiStore.index(INDEX_SKIN_UNICODE), unicode, (result2) => cb(result2 || null));\n }));\n}\nfunction get2(db, storeName, key) {\n return dbPromise(db, storeName, MODE_READONLY, (store, txn, cb) => getIDB(store, key, cb));\n}\nfunction set(db, storeName, key, value) {\n return dbPromise(db, storeName, MODE_READWRITE, (store, txn) => {\n store.put(value, key);\n commit(txn);\n });\n}\nfunction incrementFavoriteEmojiCount(db, unicode) {\n return dbPromise(db, STORE_FAVORITES, MODE_READWRITE, (store, txn) => getIDB(store, unicode, (result) => {\n store.put((result || 0) + 1, unicode);\n commit(txn);\n }));\n}\nfunction getTopFavoriteEmoji(db, customEmojiIndex2, limit) {\n if (limit === 0) {\n return [];\n }\n return dbPromise(db, [STORE_FAVORITES, STORE_EMOJI], MODE_READONLY, ([favoritesStore, emojiStore], txn, cb) => {\n const results = [];\n favoritesStore.index(INDEX_COUNT).openCursor(void 0, \"prev\").onsuccess = (e) => {\n const cursor = e.target.result;\n if (!cursor) {\n return cb(results);\n }\n function addResult(result) {\n results.push(result);\n if (results.length === limit) {\n return cb(results);\n }\n cursor.continue();\n }\n const unicodeOrName = cursor.primaryKey;\n const custom = customEmojiIndex2.byName(unicodeOrName);\n if (custom) {\n return addResult(custom);\n }\n getIDB(emojiStore, unicodeOrName, (emoji) => {\n if (emoji) {\n return addResult(emoji);\n }\n cursor.continue();\n });\n };\n });\n}\nconst CODA_MARKER = \"\";\nfunction trie(arr, itemToTokens) {\n const map = /* @__PURE__ */ new Map();\n for (const item of arr) {\n const tokens = itemToTokens(item);\n for (const token of tokens) {\n let currentMap = map;\n for (let i = 0; i < token.length; i++) {\n const char = token.charAt(i);\n let nextMap = currentMap.get(char);\n if (!nextMap) {\n nextMap = /* @__PURE__ */ new Map();\n currentMap.set(char, nextMap);\n }\n currentMap = nextMap;\n }\n let valuesAtCoda = currentMap.get(CODA_MARKER);\n if (!valuesAtCoda) {\n valuesAtCoda = [];\n currentMap.set(CODA_MARKER, valuesAtCoda);\n }\n valuesAtCoda.push(item);\n }\n }\n const search = (query, exact) => {\n let currentMap = map;\n for (let i = 0; i < query.length; i++) {\n const char = query.charAt(i);\n const nextMap = currentMap.get(char);\n if (nextMap) {\n currentMap = nextMap;\n } else {\n return [];\n }\n }\n if (exact) {\n const results2 = currentMap.get(CODA_MARKER);\n return results2 || [];\n }\n const results = [];\n const queue2 = [currentMap];\n while (queue2.length) {\n const currentMap2 = queue2.shift();\n const entriesSortedByKey = [...currentMap2.entries()].sort((a, b) => a[0] < b[0] ? -1 : 1);\n for (const [key, value] of entriesSortedByKey) {\n if (key === CODA_MARKER) {\n results.push(...value);\n } else {\n queue2.push(value);\n }\n }\n }\n return results;\n };\n return search;\n}\nconst requiredKeys$1 = [\n \"name\",\n \"url\"\n];\nfunction assertCustomEmojis(customEmojis) {\n const isArray2 = customEmojis && Array.isArray(customEmojis);\n const firstItemIsFaulty = isArray2 && customEmojis.length && (!customEmojis[0] || requiredKeys$1.some((key) => !(key in customEmojis[0])));\n if (!isArray2 || firstItemIsFaulty) {\n throw new Error(\"Custom emojis are in the wrong format\");\n }\n}\nfunction customEmojiIndex(customEmojis) {\n assertCustomEmojis(customEmojis);\n const sortByName = (a, b) => a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1;\n const all = customEmojis.sort(sortByName);\n const emojiToTokens = (emoji) => [...new Set((emoji.shortcodes || []).map((shortcode) => extractTokens(shortcode)).flat())];\n const searchTrie = trie(customEmojis, emojiToTokens);\n const searchByExactMatch = (_) => searchTrie(_, true);\n const searchByPrefix = (_) => searchTrie(_, false);\n const search = (query) => {\n const tokens = extractTokens(query);\n const intermediateResults = tokens.map((token, i) => (i < tokens.length - 1 ? searchByExactMatch : searchByPrefix)(token));\n return findCommonMembers(intermediateResults, (_) => _.name).sort(sortByName);\n };\n const shortcodeToEmoji = /* @__PURE__ */ new Map();\n const nameToEmoji = /* @__PURE__ */ new Map();\n for (const customEmoji of customEmojis) {\n nameToEmoji.set(customEmoji.name.toLowerCase(), customEmoji);\n for (const shortcode of customEmoji.shortcodes || []) {\n shortcodeToEmoji.set(shortcode.toLowerCase(), customEmoji);\n }\n }\n const byShortcode = (shortcode) => shortcodeToEmoji.get(shortcode.toLowerCase());\n const byName = (name) => nameToEmoji.get(name.toLowerCase());\n return {\n all,\n search,\n byShortcode,\n byName\n };\n}\nfunction cleanEmoji(emoji) {\n if (!emoji) {\n return emoji;\n }\n delete emoji.tokens;\n if (emoji.skinTones) {\n const len = emoji.skinTones.length;\n emoji.skins = Array(len);\n for (let i = 0; i < len; i++) {\n emoji.skins[i] = {\n tone: emoji.skinTones[i],\n unicode: emoji.skinUnicodes[i],\n version: emoji.skinVersions[i]\n };\n }\n delete emoji.skinTones;\n delete emoji.skinUnicodes;\n delete emoji.skinVersions;\n }\n return emoji;\n}\nfunction warnETag(eTag) {\n if (!eTag) {\n console.warn(\"emoji-picker-element is more efficient if the dataSource server exposes an ETag header.\");\n }\n}\nconst requiredKeys = [\n \"annotation\",\n \"emoji\",\n \"group\",\n \"order\",\n \"tags\",\n \"version\"\n];\nfunction assertEmojiData(emojiData) {\n if (!emojiData || !Array.isArray(emojiData) || !emojiData[0] || typeof emojiData[0] !== \"object\" || requiredKeys.some((key) => !(key in emojiData[0]))) {\n throw new Error(\"Emoji data is in the wrong format\");\n }\n}\nfunction assertStatus(response, dataSource) {\n if (Math.floor(response.status / 100) !== 2) {\n throw new Error(\"Failed to fetch: \" + dataSource + \": \" + response.status);\n }\n}\nasync function getETag(dataSource) {\n const response = await fetch(dataSource, { method: \"HEAD\" });\n assertStatus(response, dataSource);\n const eTag = response.headers.get(\"etag\");\n warnETag(eTag);\n return eTag;\n}\nasync function getETagAndData(dataSource) {\n const response = await fetch(dataSource);\n assertStatus(response, dataSource);\n const eTag = response.headers.get(\"etag\");\n warnETag(eTag);\n const emojiData = await response.json();\n assertEmojiData(emojiData);\n return [eTag, emojiData];\n}\nfunction arrayBufferToBinaryString(buffer) {\n var binary = \"\";\n var bytes = new Uint8Array(buffer);\n var length = bytes.byteLength;\n var i = -1;\n while (++i < length) {\n binary += String.fromCharCode(bytes[i]);\n }\n return binary;\n}\nfunction binaryStringToArrayBuffer(binary) {\n var length = binary.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n var i = -1;\n while (++i < length) {\n arr[i] = binary.charCodeAt(i);\n }\n return buf;\n}\nasync function jsonChecksum(object) {\n const inString = JSON.stringify(object);\n const inBuffer = binaryStringToArrayBuffer(inString);\n const outBuffer = await crypto.subtle.digest(\"SHA-1\", inBuffer);\n const outBinString = arrayBufferToBinaryString(outBuffer);\n const res = btoa(outBinString);\n return res;\n}\nasync function checkForUpdates(db, dataSource) {\n let emojiData;\n let eTag = await getETag(dataSource);\n if (!eTag) {\n const eTagAndData = await getETagAndData(dataSource);\n eTag = eTagAndData[0];\n emojiData = eTagAndData[1];\n if (!eTag) {\n eTag = await jsonChecksum(emojiData);\n }\n }\n if (await hasData(db, dataSource, eTag))\n ;\n else {\n if (!emojiData) {\n const eTagAndData = await getETagAndData(dataSource);\n emojiData = eTagAndData[1];\n }\n await loadData(db, emojiData, dataSource, eTag);\n }\n}\nasync function loadDataForFirstTime(db, dataSource) {\n let [eTag, emojiData] = await getETagAndData(dataSource);\n if (!eTag) {\n eTag = await jsonChecksum(emojiData);\n }\n await loadData(db, emojiData, dataSource, eTag);\n}\nclass Database {\n constructor({ dataSource = DEFAULT_DATA_SOURCE$1, locale = DEFAULT_LOCALE$1, customEmoji = [] } = {}) {\n this.dataSource = dataSource;\n this.locale = locale;\n this._dbName = `emoji-picker-element-${this.locale}`;\n this._db = void 0;\n this._lazyUpdate = void 0;\n this._custom = customEmojiIndex(customEmoji);\n this._clear = this._clear.bind(this);\n this._ready = this._init();\n }\n async _init() {\n const db = this._db = await openDatabase(this._dbName);\n addOnCloseListener(this._dbName, this._clear);\n const dataSource = this.dataSource;\n const empty = await isEmpty(db);\n if (empty) {\n await loadDataForFirstTime(db, dataSource);\n } else {\n this._lazyUpdate = checkForUpdates(db, dataSource);\n }\n }\n async ready() {\n const checkReady = async () => {\n if (!this._ready) {\n this._ready = this._init();\n }\n return this._ready;\n };\n await checkReady();\n if (!this._db) {\n await checkReady();\n }\n }\n async getEmojiByGroup(group) {\n assertNumber(group);\n await this.ready();\n return uniqEmoji(await getEmojiByGroup(this._db, group)).map(cleanEmoji);\n }\n async getEmojiBySearchQuery(query) {\n assertNonEmptyString(query);\n await this.ready();\n const customs = this._custom.search(query);\n const natives = uniqEmoji(await getEmojiBySearchQuery(this._db, query)).map(cleanEmoji);\n return [\n ...customs,\n ...natives\n ];\n }\n async getEmojiByShortcode(shortcode) {\n assertNonEmptyString(shortcode);\n await this.ready();\n const custom = this._custom.byShortcode(shortcode);\n if (custom) {\n return custom;\n }\n return cleanEmoji(await getEmojiByShortcode(this._db, shortcode));\n }\n async getEmojiByUnicodeOrName(unicodeOrName) {\n assertNonEmptyString(unicodeOrName);\n await this.ready();\n const custom = this._custom.byName(unicodeOrName);\n if (custom) {\n return custom;\n }\n return cleanEmoji(await getEmojiByUnicode(this._db, unicodeOrName));\n }\n async getPreferredSkinTone() {\n await this.ready();\n return await get2(this._db, STORE_KEYVALUE, KEY_PREFERRED_SKINTONE) || 0;\n }\n async setPreferredSkinTone(skinTone) {\n assertNumber(skinTone);\n await this.ready();\n return set(this._db, STORE_KEYVALUE, KEY_PREFERRED_SKINTONE, skinTone);\n }\n async incrementFavoriteEmojiCount(unicodeOrName) {\n assertNonEmptyString(unicodeOrName);\n await this.ready();\n return incrementFavoriteEmojiCount(this._db, unicodeOrName);\n }\n async getTopFavoriteEmoji(limit) {\n assertNumber(limit);\n await this.ready();\n return (await getTopFavoriteEmoji(this._db, this._custom, limit)).map(cleanEmoji);\n }\n set customEmoji(customEmojis) {\n this._custom = customEmojiIndex(customEmojis);\n }\n get customEmoji() {\n return this._custom.all;\n }\n async _shutdown() {\n await this.ready();\n try {\n await this._lazyUpdate;\n } catch (err) {\n }\n }\n _clear() {\n this._db = this._ready = this._lazyUpdate = void 0;\n }\n async close() {\n await this._shutdown();\n await closeDatabase(this._dbName);\n }\n async delete() {\n await this._shutdown();\n await deleteDatabase(this._dbName);\n }\n}\nfunction noop() {\n}\nfunction run3(fn) {\n return fn();\n}\nfunction blank_object() {\n return /* @__PURE__ */ Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run3);\n}\nfunction is_function(thing) {\n return typeof thing === \"function\";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === \"object\" || typeof a === \"function\");\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement(\"a\");\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction listen(node, event, handler, options2) {\n node.addEventListener(event, handler, options2);\n return () => node.removeEventListener(event, handler, options2);\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_data(text2, data) {\n data = \"\" + data;\n if (text2.wholeText !== data)\n text2.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? \"\" : value;\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n } else {\n node.style.setProperty(key, value, important ? \"important\" : \"\");\n }\n}\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nconst dirty_components = [];\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nconst seen_callbacks = /* @__PURE__ */ new Set();\nlet flushidx = 0;\nfunction flush() {\n const saved_component = current_component;\n do {\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\nconst outroing = /* @__PURE__ */ new Set();\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nconst globals = typeof window !== \"undefined\" ? window : typeof globalThis !== \"undefined\" ? globalThis : global;\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block2, next2, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = /* @__PURE__ */ new Map();\n const deltas = /* @__PURE__ */ new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block2(key, child_ctx);\n block.c();\n } else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = /* @__PURE__ */ new Set();\n const did_move = /* @__PURE__ */ new Set();\n function insert2(block) {\n transition_in(block, 1);\n block.m(node, next2);\n lookup.set(block.key, block);\n next2 = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n next2 = new_block.first;\n o--;\n n--;\n } else if (!new_lookup.has(old_key)) {\n destroy(old_block, lookup);\n o--;\n } else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert2(new_block);\n } else if (did_move.has(old_key)) {\n o--;\n } else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert2(new_block);\n } else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert2(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run3).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n } else {\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[i / 31 | 0] |= 1 << i % 31;\n}\nfunction init(component, options2, instance2, create_fragment2, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : []),\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options2.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance2 ? instance2(component, options2.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n }) : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n $$.fragment = create_fragment2 ? create_fragment2($$.ctx) : false;\n if (options2.target) {\n {\n $$.fragment && $$.fragment.c();\n }\n mount_component(component, options2.target, void 0, void 0);\n flush();\n }\n set_current_component(parent_component);\n}\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\nconst allGroups = [\n [-1, \"\\u2728\", \"custom\"],\n [0, \"\\u{1F600}\", \"smileys-emotion\"],\n [1, \"\\u{1F44B}\", \"people-body\"],\n [3, \"\\u{1F431}\", \"animals-nature\"],\n [4, \"\\u{1F34E}\", \"food-drink\"],\n [5, \"\\u{1F3E0}\\uFE0F\", \"travel-places\"],\n [6, \"\\u26BD\", \"activities\"],\n [7, \"\\u{1F4DD}\", \"objects\"],\n [8, \"\\u26D4\\uFE0F\", \"symbols\"],\n [9, \"\\u{1F3C1}\", \"flags\"]\n].map(([id, emoji, name]) => ({ id, emoji, name }));\nconst groups = allGroups.slice(1);\nconst customGroup = allGroups[0];\nconst MIN_SEARCH_TEXT_LENGTH = 2;\nconst NUM_SKIN_TONES = 6;\nconst rIC = typeof requestIdleCallback === \"function\" ? requestIdleCallback : setTimeout;\nfunction hasZwj(emoji) {\n return emoji.unicode.includes(\"\\u200D\");\n}\nconst versionsAndTestEmoji = {\n \"\\u{1FAE0}\": 14,\n \"\\u{1F972}\": 13.1,\n \"\\u{1F97B}\": 12.1,\n \"\\u{1F970}\": 11,\n \"\\u{1F929}\": 5,\n \"\\u{1F471}\\u200D\\u2640\\uFE0F\": 4,\n \"\\u{1F923}\": 3,\n \"\\u{1F441}\\uFE0F\\u200D\\u{1F5E8}\\uFE0F\": 2,\n \"\\u{1F600}\": 1,\n \"\\u{1F610}\\uFE0F\": 0.7,\n \"\\u{1F603}\": 0.6\n};\nconst TIMEOUT_BEFORE_LOADING_MESSAGE = 1e3;\nconst DEFAULT_SKIN_TONE_EMOJI = \"\\u{1F590}\\uFE0F\";\nconst DEFAULT_NUM_COLUMNS = 8;\nconst MOST_COMMONLY_USED_EMOJI = [\n \"\\u{1F60A}\",\n \"\\u{1F612}\",\n \"\\u2665\\uFE0F\",\n \"\\u{1F44D}\\uFE0F\",\n \"\\u{1F60D}\",\n \"\\u{1F602}\",\n \"\\u{1F62D}\",\n \"\\u263A\\uFE0F\",\n \"\\u{1F614}\",\n \"\\u{1F629}\",\n \"\\u{1F60F}\",\n \"\\u{1F495}\",\n \"\\u{1F64C}\",\n \"\\u{1F618}\"\n];\nconst FONT_FAMILY = '\"Twemoji Mozilla\",\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\",\"EmojiOne Color\",\"Android Emoji\",sans-serif';\nconst DEFAULT_CATEGORY_SORTING = (a, b) => a < b ? -1 : a > b ? 1 : 0;\nconst getTextFeature = (text2, color) => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n ctx.textBaseline = \"top\";\n ctx.font = `100px ${FONT_FAMILY}`;\n ctx.fillStyle = color;\n ctx.scale(0.01, 0.01);\n ctx.fillText(text2, 0, 0);\n return ctx.getImageData(0, 0, 1, 1).data;\n};\nconst compareFeatures = (feature1, feature2) => {\n const feature1Str = [...feature1].join(\",\");\n const feature2Str = [...feature2].join(\",\");\n return feature1Str === feature2Str && !feature1Str.startsWith(\"0,0,0,\");\n};\nfunction testColorEmojiSupported(text2) {\n const feature1 = getTextFeature(text2, \"#000\");\n const feature2 = getTextFeature(text2, \"#fff\");\n return feature1 && feature2 && compareFeatures(feature1, feature2);\n}\nfunction determineEmojiSupportLevel() {\n const entries = Object.entries(versionsAndTestEmoji);\n try {\n for (const [emoji, version2] of entries) {\n if (testColorEmojiSupported(emoji)) {\n return version2;\n }\n }\n } catch (e) {\n } finally {\n }\n return entries[0][1];\n}\nconst emojiSupportLevelPromise = new Promise((resolve3) => rIC(() => resolve3(determineEmojiSupportLevel())));\nconst supportedZwjEmojis = /* @__PURE__ */ new Map();\nconst VARIATION_SELECTOR = \"\\uFE0F\";\nconst SKINTONE_MODIFIER = \"\\uD83C\";\nconst ZWJ = \"\\u200D\";\nconst LIGHT_SKIN_TONE = 127995;\nconst LIGHT_SKIN_TONE_MODIFIER = 57339;\nfunction applySkinTone(str, skinTone) {\n if (skinTone === 0) {\n return str;\n }\n const zwjIndex = str.indexOf(ZWJ);\n if (zwjIndex !== -1) {\n return str.substring(0, zwjIndex) + String.fromCodePoint(LIGHT_SKIN_TONE + skinTone - 1) + str.substring(zwjIndex);\n }\n if (str.endsWith(VARIATION_SELECTOR)) {\n str = str.substring(0, str.length - 1);\n }\n return str + SKINTONE_MODIFIER + String.fromCodePoint(LIGHT_SKIN_TONE_MODIFIER + skinTone - 1);\n}\nfunction halt(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction incrementOrDecrement(decrement, val, arr) {\n val += decrement ? -1 : 1;\n if (val < 0) {\n val = arr.length - 1;\n } else if (val >= arr.length) {\n val = 0;\n }\n return val;\n}\nfunction uniqBy(arr, func) {\n const set2 = /* @__PURE__ */ new Set();\n const res = [];\n for (const item of arr) {\n const key = func(item);\n if (!set2.has(key)) {\n set2.add(key);\n res.push(item);\n }\n }\n return res;\n}\nfunction summarizeEmojisForUI(emojis, emojiSupportLevel) {\n const toSimpleSkinsMap = (skins) => {\n const res = {};\n for (const skin of skins) {\n if (typeof skin.tone === \"number\" && skin.version <= emojiSupportLevel) {\n res[skin.tone] = skin.unicode;\n }\n }\n return res;\n };\n return emojis.map(({ unicode, skins, shortcodes, url, name, category }) => ({\n unicode,\n name,\n shortcodes,\n url,\n category,\n id: unicode || name,\n skins: skins && toSimpleSkinsMap(skins),\n title: (shortcodes || []).join(\", \")\n }));\n}\nconst rAF = requestAnimationFrame;\nlet resizeObserverSupported = typeof ResizeObserver === \"function\";\nfunction calculateWidth(node, onUpdate) {\n let resizeObserver;\n if (resizeObserverSupported) {\n resizeObserver = new ResizeObserver((entries) => onUpdate(entries[0].contentRect.width));\n resizeObserver.observe(node);\n } else {\n rAF(() => onUpdate(node.getBoundingClientRect().width));\n }\n return {\n destroy() {\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n }\n };\n}\nfunction calculateTextWidth(node) {\n {\n const range = document.createRange();\n range.selectNode(node.firstChild);\n return range.getBoundingClientRect().width;\n }\n}\nlet baselineEmojiWidth;\nfunction checkZwjSupport(zwjEmojisToCheck, baselineEmoji, emojiToDomNode) {\n for (const emoji of zwjEmojisToCheck) {\n const domNode = emojiToDomNode(emoji);\n const emojiWidth = calculateTextWidth(domNode);\n if (typeof baselineEmojiWidth === \"undefined\") {\n baselineEmojiWidth = calculateTextWidth(baselineEmoji);\n }\n const supported = emojiWidth / 1.8 < baselineEmojiWidth;\n supportedZwjEmojis.set(emoji.unicode, supported);\n }\n}\nfunction uniq(arr) {\n return uniqBy(arr, (_) => _);\n}\nconst { Map: Map_1 } = globals;\nfunction get_each_context(ctx, list, i) {\n const child_ctx = ctx.slice();\n child_ctx[63] = list[i];\n child_ctx[65] = i;\n return child_ctx;\n}\nfunction get_each_context_1(ctx, list, i) {\n const child_ctx = ctx.slice();\n child_ctx[66] = list[i];\n child_ctx[65] = i;\n return child_ctx;\n}\nfunction get_each_context_2(ctx, list, i) {\n const child_ctx = ctx.slice();\n child_ctx[63] = list[i];\n child_ctx[65] = i;\n return child_ctx;\n}\nfunction get_each_context_3(ctx, list, i) {\n const child_ctx = ctx.slice();\n child_ctx[69] = list[i];\n return child_ctx;\n}\nfunction get_each_context_4(ctx, list, i) {\n const child_ctx = ctx.slice();\n child_ctx[72] = list[i];\n child_ctx[65] = i;\n return child_ctx;\n}\nfunction create_each_block_4(key_1, ctx) {\n let div;\n let t_value = ctx[72] + \"\";\n let t;\n let div_id_value;\n let div_class_value;\n let div_aria_selected_value;\n let div_title_value;\n let div_aria_label_value;\n return {\n key: key_1,\n first: null,\n c() {\n div = element(\"div\");\n t = text(t_value);\n attr(div, \"id\", div_id_value = \"skintone-\" + ctx[65]);\n attr(div, \"class\", div_class_value = \"emoji hide-focus \" + (ctx[65] === ctx[20] ? \"active\" : \"\"));\n attr(div, \"aria-selected\", div_aria_selected_value = ctx[65] === ctx[20]);\n attr(div, \"role\", \"option\");\n attr(div, \"title\", div_title_value = ctx[0].skinTones[ctx[65]]);\n attr(div, \"tabindex\", \"-1\");\n attr(div, \"aria-label\", div_aria_label_value = ctx[0].skinTones[ctx[65]]);\n this.first = div;\n },\n m(target, anchor) {\n insert(target, div, anchor);\n append(div, t);\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (dirty[0] & 512 && t_value !== (t_value = ctx[72] + \"\"))\n set_data(t, t_value);\n if (dirty[0] & 512 && div_id_value !== (div_id_value = \"skintone-\" + ctx[65])) {\n attr(div, \"id\", div_id_value);\n }\n if (dirty[0] & 1049088 && div_class_value !== (div_class_value = \"emoji hide-focus \" + (ctx[65] === ctx[20] ? \"active\" : \"\"))) {\n attr(div, \"class\", div_class_value);\n }\n if (dirty[0] & 1049088 && div_aria_selected_value !== (div_aria_selected_value = ctx[65] === ctx[20])) {\n attr(div, \"aria-selected\", div_aria_selected_value);\n }\n if (dirty[0] & 513 && div_title_value !== (div_title_value = ctx[0].skinTones[ctx[65]])) {\n attr(div, \"title\", div_title_value);\n }\n if (dirty[0] & 513 && div_aria_label_value !== (div_aria_label_value = ctx[0].skinTones[ctx[65]])) {\n attr(div, \"aria-label\", div_aria_label_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(div);\n }\n };\n}\nfunction create_each_block_3(key_1, ctx) {\n let button;\n let div;\n let t_value = ctx[69].emoji + \"\";\n let t;\n let button_aria_controls_value;\n let button_aria_label_value;\n let button_aria_selected_value;\n let button_title_value;\n let mounted;\n let dispose;\n function click_handler() {\n return ctx[49](ctx[69]);\n }\n return {\n key: key_1,\n first: null,\n c() {\n button = element(\"button\");\n div = element(\"div\");\n t = text(t_value);\n attr(div, \"class\", \"nav-emoji emoji\");\n attr(button, \"role\", \"tab\");\n attr(button, \"class\", \"nav-button\");\n attr(button, \"aria-controls\", button_aria_controls_value = \"tab-\" + ctx[69].id);\n attr(button, \"aria-label\", button_aria_label_value = ctx[0].categories[ctx[69].name]);\n attr(button, \"aria-selected\", button_aria_selected_value = !ctx[4] && ctx[13].id === ctx[69].id);\n attr(button, \"title\", button_title_value = ctx[0].categories[ctx[69].name]);\n this.first = button;\n },\n m(target, anchor) {\n insert(target, button, anchor);\n append(button, div);\n append(div, t);\n if (!mounted) {\n dispose = listen(button, \"click\", click_handler);\n mounted = true;\n }\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (dirty[0] & 4096 && t_value !== (t_value = ctx[69].emoji + \"\"))\n set_data(t, t_value);\n if (dirty[0] & 4096 && button_aria_controls_value !== (button_aria_controls_value = \"tab-\" + ctx[69].id)) {\n attr(button, \"aria-controls\", button_aria_controls_value);\n }\n if (dirty[0] & 4097 && button_aria_label_value !== (button_aria_label_value = ctx[0].categories[ctx[69].name])) {\n attr(button, \"aria-label\", button_aria_label_value);\n }\n if (dirty[0] & 12304 && button_aria_selected_value !== (button_aria_selected_value = !ctx[4] && ctx[13].id === ctx[69].id)) {\n attr(button, \"aria-selected\", button_aria_selected_value);\n }\n if (dirty[0] & 4097 && button_title_value !== (button_title_value = ctx[0].categories[ctx[69].name])) {\n attr(button, \"title\", button_title_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(button);\n mounted = false;\n dispose();\n }\n };\n}\nfunction create_else_block_1(ctx) {\n let img;\n let img_src_value;\n return {\n c() {\n img = element(\"img\");\n attr(img, \"class\", \"custom-emoji\");\n if (!src_url_equal(img.src, img_src_value = ctx[63].url))\n attr(img, \"src\", img_src_value);\n attr(img, \"alt\", \"\");\n attr(img, \"loading\", \"lazy\");\n },\n m(target, anchor) {\n insert(target, img, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & 32768 && !src_url_equal(img.src, img_src_value = ctx2[63].url)) {\n attr(img, \"src\", img_src_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(img);\n }\n };\n}\nfunction create_if_block_1(ctx) {\n let t_value = ctx[27](ctx[63], ctx[8]) + \"\";\n let t;\n return {\n c() {\n t = text(t_value);\n },\n m(target, anchor) {\n insert(target, t, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & 33024 && t_value !== (t_value = ctx2[27](ctx2[63], ctx2[8]) + \"\"))\n set_data(t, t_value);\n },\n d(detaching) {\n if (detaching)\n detach(t);\n }\n };\n}\nfunction create_each_block_2(key_1, ctx) {\n let button;\n let button_role_value;\n let button_aria_selected_value;\n let button_aria_label_value;\n let button_title_value;\n let button_class_value;\n let button_id_value;\n function select_block_type(ctx2, dirty) {\n if (ctx2[63].unicode)\n return create_if_block_1;\n return create_else_block_1;\n }\n let current_block_type = select_block_type(ctx);\n let if_block = current_block_type(ctx);\n return {\n key: key_1,\n first: null,\n c() {\n button = element(\"button\");\n if_block.c();\n attr(button, \"role\", button_role_value = ctx[4] ? \"option\" : \"menuitem\");\n attr(button, \"aria-selected\", button_aria_selected_value = ctx[4] ? ctx[65] == ctx[5] : \"\");\n attr(button, \"aria-label\", button_aria_label_value = ctx[28](ctx[63], ctx[8]));\n attr(button, \"title\", button_title_value = ctx[63].title);\n attr(button, \"class\", button_class_value = \"emoji \" + (ctx[4] && ctx[65] === ctx[5] ? \"active\" : \"\"));\n attr(button, \"id\", button_id_value = \"emo-\" + ctx[63].id);\n this.first = button;\n },\n m(target, anchor) {\n insert(target, button, anchor);\n if_block.m(button, null);\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) {\n if_block.p(ctx, dirty);\n } else {\n if_block.d(1);\n if_block = current_block_type(ctx);\n if (if_block) {\n if_block.c();\n if_block.m(button, null);\n }\n }\n if (dirty[0] & 16 && button_role_value !== (button_role_value = ctx[4] ? \"option\" : \"menuitem\")) {\n attr(button, \"role\", button_role_value);\n }\n if (dirty[0] & 32816 && button_aria_selected_value !== (button_aria_selected_value = ctx[4] ? ctx[65] == ctx[5] : \"\")) {\n attr(button, \"aria-selected\", button_aria_selected_value);\n }\n if (dirty[0] & 33024 && button_aria_label_value !== (button_aria_label_value = ctx[28](ctx[63], ctx[8]))) {\n attr(button, \"aria-label\", button_aria_label_value);\n }\n if (dirty[0] & 32768 && button_title_value !== (button_title_value = ctx[63].title)) {\n attr(button, \"title\", button_title_value);\n }\n if (dirty[0] & 32816 && button_class_value !== (button_class_value = \"emoji \" + (ctx[4] && ctx[65] === ctx[5] ? \"active\" : \"\"))) {\n attr(button, \"class\", button_class_value);\n }\n if (dirty[0] & 32768 && button_id_value !== (button_id_value = \"emo-\" + ctx[63].id)) {\n attr(button, \"id\", button_id_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(button);\n if_block.d();\n }\n };\n}\nfunction create_each_block_1(key_1, ctx) {\n let div0;\n let t_value = (ctx[4] ? ctx[0].searchResultsLabel : ctx[66].category ? ctx[66].category : ctx[15].length > 1 ? ctx[0].categories.custom : ctx[0].categories[ctx[13].name]) + \"\";\n let t;\n let div0_id_value;\n let div0_class_value;\n let div1;\n let each_blocks = [];\n let each_1_lookup = new Map_1();\n let div1_role_value;\n let div1_aria_labelledby_value;\n let div1_id_value;\n let each_value_2 = ctx[66].emojis;\n const get_key = (ctx2) => ctx2[63].id;\n for (let i = 0; i < each_value_2.length; i += 1) {\n let child_ctx = get_each_context_2(ctx, each_value_2, i);\n let key = get_key(child_ctx);\n each_1_lookup.set(key, each_blocks[i] = create_each_block_2(key, child_ctx));\n }\n return {\n key: key_1,\n first: null,\n c() {\n div0 = element(\"div\");\n t = text(t_value);\n div1 = element(\"div\");\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].c();\n }\n attr(div0, \"id\", div0_id_value = \"menu-label-\" + ctx[65]);\n attr(div0, \"class\", div0_class_value = \"category \" + (ctx[15].length === 1 && ctx[15][0].category === \"\" ? \"gone\" : \"\"));\n attr(div0, \"aria-hidden\", \"true\");\n attr(div1, \"class\", \"emoji-menu\");\n attr(div1, \"role\", div1_role_value = ctx[4] ? \"listbox\" : \"menu\");\n attr(div1, \"aria-labelledby\", div1_aria_labelledby_value = \"menu-label-\" + ctx[65]);\n attr(div1, \"id\", div1_id_value = ctx[4] ? \"search-results\" : \"\");\n this.first = div0;\n },\n m(target, anchor) {\n insert(target, div0, anchor);\n append(div0, t);\n insert(target, div1, anchor);\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].m(div1, null);\n }\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (dirty[0] & 40977 && t_value !== (t_value = (ctx[4] ? ctx[0].searchResultsLabel : ctx[66].category ? ctx[66].category : ctx[15].length > 1 ? ctx[0].categories.custom : ctx[0].categories[ctx[13].name]) + \"\"))\n set_data(t, t_value);\n if (dirty[0] & 32768 && div0_id_value !== (div0_id_value = \"menu-label-\" + ctx[65])) {\n attr(div0, \"id\", div0_id_value);\n }\n if (dirty[0] & 32768 && div0_class_value !== (div0_class_value = \"category \" + (ctx[15].length === 1 && ctx[15][0].category === \"\" ? \"gone\" : \"\"))) {\n attr(div0, \"class\", div0_class_value);\n }\n if (dirty[0] & 402686256) {\n each_value_2 = ctx[66].emojis;\n each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value_2, each_1_lookup, div1, destroy_block, create_each_block_2, null, get_each_context_2);\n }\n if (dirty[0] & 16 && div1_role_value !== (div1_role_value = ctx[4] ? \"listbox\" : \"menu\")) {\n attr(div1, \"role\", div1_role_value);\n }\n if (dirty[0] & 32768 && div1_aria_labelledby_value !== (div1_aria_labelledby_value = \"menu-label-\" + ctx[65])) {\n attr(div1, \"aria-labelledby\", div1_aria_labelledby_value);\n }\n if (dirty[0] & 16 && div1_id_value !== (div1_id_value = ctx[4] ? \"search-results\" : \"\")) {\n attr(div1, \"id\", div1_id_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(div0);\n if (detaching)\n detach(div1);\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].d();\n }\n }\n };\n}\nfunction create_else_block(ctx) {\n let img;\n let img_src_value;\n return {\n c() {\n img = element(\"img\");\n attr(img, \"class\", \"custom-emoji\");\n if (!src_url_equal(img.src, img_src_value = ctx[63].url))\n attr(img, \"src\", img_src_value);\n attr(img, \"alt\", \"\");\n attr(img, \"loading\", \"lazy\");\n },\n m(target, anchor) {\n insert(target, img, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & 1024 && !src_url_equal(img.src, img_src_value = ctx2[63].url)) {\n attr(img, \"src\", img_src_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(img);\n }\n };\n}\nfunction create_if_block(ctx) {\n let t_value = ctx[27](ctx[63], ctx[8]) + \"\";\n let t;\n return {\n c() {\n t = text(t_value);\n },\n m(target, anchor) {\n insert(target, t, anchor);\n },\n p(ctx2, dirty) {\n if (dirty[0] & 1280 && t_value !== (t_value = ctx2[27](ctx2[63], ctx2[8]) + \"\"))\n set_data(t, t_value);\n },\n d(detaching) {\n if (detaching)\n detach(t);\n }\n };\n}\nfunction create_each_block(key_1, ctx) {\n let button;\n let button_aria_label_value;\n let button_title_value;\n let button_id_value;\n function select_block_type_1(ctx2, dirty) {\n if (ctx2[63].unicode)\n return create_if_block;\n return create_else_block;\n }\n let current_block_type = select_block_type_1(ctx);\n let if_block = current_block_type(ctx);\n return {\n key: key_1,\n first: null,\n c() {\n button = element(\"button\");\n if_block.c();\n attr(button, \"role\", \"menuitem\");\n attr(button, \"aria-label\", button_aria_label_value = ctx[28](ctx[63], ctx[8]));\n attr(button, \"title\", button_title_value = ctx[63].title);\n attr(button, \"class\", \"emoji\");\n attr(button, \"id\", button_id_value = \"fav-\" + ctx[63].id);\n this.first = button;\n },\n m(target, anchor) {\n insert(target, button, anchor);\n if_block.m(button, null);\n },\n p(new_ctx, dirty) {\n ctx = new_ctx;\n if (current_block_type === (current_block_type = select_block_type_1(ctx)) && if_block) {\n if_block.p(ctx, dirty);\n } else {\n if_block.d(1);\n if_block = current_block_type(ctx);\n if (if_block) {\n if_block.c();\n if_block.m(button, null);\n }\n }\n if (dirty[0] & 1280 && button_aria_label_value !== (button_aria_label_value = ctx[28](ctx[63], ctx[8]))) {\n attr(button, \"aria-label\", button_aria_label_value);\n }\n if (dirty[0] & 1024 && button_title_value !== (button_title_value = ctx[63].title)) {\n attr(button, \"title\", button_title_value);\n }\n if (dirty[0] & 1024 && button_id_value !== (button_id_value = \"fav-\" + ctx[63].id)) {\n attr(button, \"id\", button_id_value);\n }\n },\n d(detaching) {\n if (detaching)\n detach(button);\n if_block.d();\n }\n };\n}\nfunction create_fragment(ctx) {\n let section;\n let div0;\n let div4;\n let div1;\n let input;\n let input_placeholder_value;\n let input_aria_expanded_value;\n let input_aria_activedescendant_value;\n let label;\n let t0_value = ctx[0].searchLabel + \"\";\n let t0;\n let span0;\n let t1_value = ctx[0].searchDescription + \"\";\n let t1;\n let div2;\n let button0;\n let t2;\n let button0_class_value;\n let div2_class_value;\n let span1;\n let t3_value = ctx[0].skinToneDescription + \"\";\n let t3;\n let div3;\n let each_blocks_3 = [];\n let each0_lookup = new Map_1();\n let div3_class_value;\n let div3_aria_label_value;\n let div3_aria_activedescendant_value;\n let div3_aria_hidden_value;\n let div5;\n let each_blocks_2 = [];\n let each1_lookup = new Map_1();\n let div5_aria_label_value;\n let div7;\n let div6;\n let div8;\n let t4;\n let div8_class_value;\n let div10;\n let div9;\n let each_blocks_1 = [];\n let each2_lookup = new Map_1();\n let div10_class_value;\n let div10_role_value;\n let div10_aria_label_value;\n let div10_id_value;\n let div11;\n let each_blocks = [];\n let each3_lookup = new Map_1();\n let div11_class_value;\n let div11_aria_label_value;\n let button1;\n let section_aria_label_value;\n let mounted;\n let dispose;\n let each_value_4 = ctx[9];\n const get_key = (ctx2) => ctx2[72];\n for (let i = 0; i < each_value_4.length; i += 1) {\n let child_ctx = get_each_context_4(ctx, each_value_4, i);\n let key = get_key(child_ctx);\n each0_lookup.set(key, each_blocks_3[i] = create_each_block_4(key, child_ctx));\n }\n let each_value_3 = ctx[12];\n const get_key_1 = (ctx2) => ctx2[69].id;\n for (let i = 0; i < each_value_3.length; i += 1) {\n let child_ctx = get_each_context_3(ctx, each_value_3, i);\n let key = get_key_1(child_ctx);\n each1_lookup.set(key, each_blocks_2[i] = create_each_block_3(key, child_ctx));\n }\n let each_value_1 = ctx[15];\n const get_key_2 = (ctx2) => ctx2[66].category;\n for (let i = 0; i < each_value_1.length; i += 1) {\n let child_ctx = get_each_context_1(ctx, each_value_1, i);\n let key = get_key_2(child_ctx);\n each2_lookup.set(key, each_blocks_1[i] = create_each_block_1(key, child_ctx));\n }\n let each_value = ctx[10];\n const get_key_3 = (ctx2) => ctx2[63].id;\n for (let i = 0; i < each_value.length; i += 1) {\n let child_ctx = get_each_context(ctx, each_value, i);\n let key = get_key_3(child_ctx);\n each3_lookup.set(key, each_blocks[i] = create_each_block(key, child_ctx));\n }\n return {\n c() {\n section = element(\"section\");\n div0 = element(\"div\");\n div4 = element(\"div\");\n div1 = element(\"div\");\n input = element(\"input\");\n label = element(\"label\");\n t0 = text(t0_value);\n span0 = element(\"span\");\n t1 = text(t1_value);\n div2 = element(\"div\");\n button0 = element(\"button\");\n t2 = text(ctx[21]);\n span1 = element(\"span\");\n t3 = text(t3_value);\n div3 = element(\"div\");\n for (let i = 0; i < each_blocks_3.length; i += 1) {\n each_blocks_3[i].c();\n }\n div5 = element(\"div\");\n for (let i = 0; i < each_blocks_2.length; i += 1) {\n each_blocks_2[i].c();\n }\n div7 = element(\"div\");\n div6 = element(\"div\");\n div8 = element(\"div\");\n t4 = text(ctx[18]);\n div10 = element(\"div\");\n div9 = element(\"div\");\n for (let i = 0; i < each_blocks_1.length; i += 1) {\n each_blocks_1[i].c();\n }\n div11 = element(\"div\");\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].c();\n }\n button1 = element(\"button\");\n button1.textContent = \"\\u{1F600}\";\n attr(div0, \"class\", \"pad-top\");\n attr(input, \"id\", \"search\");\n attr(input, \"class\", \"search\");\n attr(input, \"type\", \"search\");\n attr(input, \"role\", \"combobox\");\n attr(input, \"enterkeyhint\", \"search\");\n attr(input, \"placeholder\", input_placeholder_value = ctx[0].searchLabel);\n attr(input, \"autocapitalize\", \"none\");\n attr(input, \"autocomplete\", \"off\");\n attr(input, \"spellcheck\", \"true\");\n attr(input, \"aria-expanded\", input_aria_expanded_value = !!(ctx[4] && ctx[1].length));\n attr(input, \"aria-controls\", \"search-results\");\n attr(input, \"aria-describedby\", \"search-description\");\n attr(input, \"aria-autocomplete\", \"list\");\n attr(input, \"aria-activedescendant\", input_aria_activedescendant_value = ctx[26] ? `emo-${ctx[26]}` : \"\");\n attr(label, \"class\", \"sr-only\");\n attr(label, \"for\", \"search\");\n attr(span0, \"id\", \"search-description\");\n attr(span0, \"class\", \"sr-only\");\n attr(div1, \"class\", \"search-wrapper\");\n attr(button0, \"id\", \"skintone-button\");\n attr(button0, \"class\", button0_class_value = \"emoji \" + (ctx[6] ? \"hide-focus\" : \"\"));\n attr(button0, \"aria-label\", ctx[23]);\n attr(button0, \"title\", ctx[23]);\n attr(button0, \"aria-describedby\", \"skintone-description\");\n attr(button0, \"aria-haspopup\", \"listbox\");\n attr(button0, \"aria-expanded\", ctx[6]);\n attr(button0, \"aria-controls\", \"skintone-list\");\n attr(div2, \"class\", div2_class_value = \"skintone-button-wrapper \" + (ctx[19] ? \"expanded\" : \"\"));\n attr(span1, \"id\", \"skintone-description\");\n attr(span1, \"class\", \"sr-only\");\n attr(div3, \"id\", \"skintone-list\");\n attr(div3, \"class\", div3_class_value = \"skintone-list \" + (ctx[6] ? \"\" : \"hidden no-animate\"));\n set_style(div3, \"transform\", \"translateY(\" + (ctx[6] ? 0 : \"calc(-1 * var(--num-skintones) * var(--total-emoji-size))\") + \")\");\n attr(div3, \"role\", \"listbox\");\n attr(div3, \"aria-label\", div3_aria_label_value = ctx[0].skinTonesLabel);\n attr(div3, \"aria-activedescendant\", div3_aria_activedescendant_value = \"skintone-\" + ctx[20]);\n attr(div3, \"aria-hidden\", div3_aria_hidden_value = !ctx[6]);\n attr(div4, \"class\", \"search-row\");\n attr(div5, \"class\", \"nav\");\n attr(div5, \"role\", \"tablist\");\n set_style(div5, \"grid-template-columns\", \"repeat(\" + ctx[12].length + \", 1fr)\");\n attr(div5, \"aria-label\", div5_aria_label_value = ctx[0].categoriesLabel);\n attr(div6, \"class\", \"indicator\");\n set_style(div6, \"transform\", \"translateX(\" + (ctx[24] ? -1 : 1) * ctx[11] * 100 + \"%)\");\n attr(div7, \"class\", \"indicator-wrapper\");\n attr(div8, \"class\", div8_class_value = \"message \" + (ctx[18] ? \"\" : \"gone\"));\n attr(div8, \"role\", \"alert\");\n attr(div8, \"aria-live\", \"polite\");\n attr(div10, \"class\", div10_class_value = \"tabpanel \" + (!ctx[14] || ctx[18] ? \"gone\" : \"\"));\n attr(div10, \"role\", div10_role_value = ctx[4] ? \"region\" : \"tabpanel\");\n attr(div10, \"aria-label\", div10_aria_label_value = ctx[4] ? ctx[0].searchResultsLabel : ctx[0].categories[ctx[13].name]);\n attr(div10, \"id\", div10_id_value = ctx[4] ? \"\" : `tab-${ctx[13].id}`);\n attr(div10, \"tabindex\", \"0\");\n attr(div11, \"class\", div11_class_value = \"favorites emoji-menu \" + (ctx[18] ? \"gone\" : \"\"));\n attr(div11, \"role\", \"menu\");\n attr(div11, \"aria-label\", div11_aria_label_value = ctx[0].favoritesLabel);\n set_style(div11, \"padding-inline-end\", ctx[25] + \"px\");\n attr(button1, \"aria-hidden\", \"true\");\n attr(button1, \"tabindex\", \"-1\");\n attr(button1, \"class\", \"abs-pos hidden emoji\");\n attr(section, \"class\", \"picker\");\n attr(section, \"aria-label\", section_aria_label_value = ctx[0].regionLabel);\n attr(section, \"style\", ctx[22]);\n },\n m(target, anchor) {\n insert(target, section, anchor);\n append(section, div0);\n append(section, div4);\n append(div4, div1);\n append(div1, input);\n set_input_value(input, ctx[2]);\n append(div1, label);\n append(label, t0);\n append(div1, span0);\n append(span0, t1);\n append(div4, div2);\n append(div2, button0);\n append(button0, t2);\n append(div4, span1);\n append(span1, t3);\n append(div4, div3);\n for (let i = 0; i < each_blocks_3.length; i += 1) {\n each_blocks_3[i].m(div3, null);\n }\n ctx[48](div3);\n append(section, div5);\n for (let i = 0; i < each_blocks_2.length; i += 1) {\n each_blocks_2[i].m(div5, null);\n }\n append(section, div7);\n append(div7, div6);\n append(section, div8);\n append(div8, t4);\n append(section, div10);\n append(div10, div9);\n for (let i = 0; i < each_blocks_1.length; i += 1) {\n each_blocks_1[i].m(div9, null);\n }\n ctx[50](div10);\n append(section, div11);\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].m(div11, null);\n }\n append(section, button1);\n ctx[51](button1);\n ctx[52](section);\n if (!mounted) {\n dispose = [\n listen(input, \"input\", ctx[47]),\n listen(input, \"keydown\", ctx[30]),\n listen(button0, \"click\", ctx[35]),\n listen(div3, \"focusout\", ctx[38]),\n listen(div3, \"click\", ctx[34]),\n listen(div3, \"keydown\", ctx[36]),\n listen(div3, \"keyup\", ctx[37]),\n listen(div5, \"keydown\", ctx[32]),\n action_destroyer(ctx[29].call(null, div9)),\n listen(div10, \"click\", ctx[33]),\n listen(div11, \"click\", ctx[33])\n ];\n mounted = true;\n }\n },\n p(ctx2, dirty) {\n if (dirty[0] & 1 && input_placeholder_value !== (input_placeholder_value = ctx2[0].searchLabel)) {\n attr(input, \"placeholder\", input_placeholder_value);\n }\n if (dirty[0] & 18 && input_aria_expanded_value !== (input_aria_expanded_value = !!(ctx2[4] && ctx2[1].length))) {\n attr(input, \"aria-expanded\", input_aria_expanded_value);\n }\n if (dirty[0] & 67108864 && input_aria_activedescendant_value !== (input_aria_activedescendant_value = ctx2[26] ? `emo-${ctx2[26]}` : \"\")) {\n attr(input, \"aria-activedescendant\", input_aria_activedescendant_value);\n }\n if (dirty[0] & 4) {\n set_input_value(input, ctx2[2]);\n }\n if (dirty[0] & 1 && t0_value !== (t0_value = ctx2[0].searchLabel + \"\"))\n set_data(t0, t0_value);\n if (dirty[0] & 1 && t1_value !== (t1_value = ctx2[0].searchDescription + \"\"))\n set_data(t1, t1_value);\n if (dirty[0] & 2097152)\n set_data(t2, ctx2[21]);\n if (dirty[0] & 64 && button0_class_value !== (button0_class_value = \"emoji \" + (ctx2[6] ? \"hide-focus\" : \"\"))) {\n attr(button0, \"class\", button0_class_value);\n }\n if (dirty[0] & 8388608) {\n attr(button0, \"aria-label\", ctx2[23]);\n }\n if (dirty[0] & 8388608) {\n attr(button0, \"title\", ctx2[23]);\n }\n if (dirty[0] & 64) {\n attr(button0, \"aria-expanded\", ctx2[6]);\n }\n if (dirty[0] & 524288 && div2_class_value !== (div2_class_value = \"skintone-button-wrapper \" + (ctx2[19] ? \"expanded\" : \"\"))) {\n attr(div2, \"class\", div2_class_value);\n }\n if (dirty[0] & 1 && t3_value !== (t3_value = ctx2[0].skinToneDescription + \"\"))\n set_data(t3, t3_value);\n if (dirty[0] & 1049089) {\n each_value_4 = ctx2[9];\n each_blocks_3 = update_keyed_each(each_blocks_3, dirty, get_key, 1, ctx2, each_value_4, each0_lookup, div3, destroy_block, create_each_block_4, null, get_each_context_4);\n }\n if (dirty[0] & 64 && div3_class_value !== (div3_class_value = \"skintone-list \" + (ctx2[6] ? \"\" : \"hidden no-animate\"))) {\n attr(div3, \"class\", div3_class_value);\n }\n if (dirty[0] & 64) {\n set_style(div3, \"transform\", \"translateY(\" + (ctx2[6] ? 0 : \"calc(-1 * var(--num-skintones) * var(--total-emoji-size))\") + \")\");\n }\n if (dirty[0] & 1 && div3_aria_label_value !== (div3_aria_label_value = ctx2[0].skinTonesLabel)) {\n attr(div3, \"aria-label\", div3_aria_label_value);\n }\n if (dirty[0] & 1048576 && div3_aria_activedescendant_value !== (div3_aria_activedescendant_value = \"skintone-\" + ctx2[20])) {\n attr(div3, \"aria-activedescendant\", div3_aria_activedescendant_value);\n }\n if (dirty[0] & 64 && div3_aria_hidden_value !== (div3_aria_hidden_value = !ctx2[6])) {\n attr(div3, \"aria-hidden\", div3_aria_hidden_value);\n }\n if (dirty[0] & 12305 | dirty[1] & 1) {\n each_value_3 = ctx2[12];\n each_blocks_2 = update_keyed_each(each_blocks_2, dirty, get_key_1, 1, ctx2, each_value_3, each1_lookup, div5, destroy_block, create_each_block_3, null, get_each_context_3);\n }\n if (dirty[0] & 4096) {\n set_style(div5, \"grid-template-columns\", \"repeat(\" + ctx2[12].length + \", 1fr)\");\n }\n if (dirty[0] & 1 && div5_aria_label_value !== (div5_aria_label_value = ctx2[0].categoriesLabel)) {\n attr(div5, \"aria-label\", div5_aria_label_value);\n }\n if (dirty[0] & 16779264) {\n set_style(div6, \"transform\", \"translateX(\" + (ctx2[24] ? -1 : 1) * ctx2[11] * 100 + \"%)\");\n }\n if (dirty[0] & 262144)\n set_data(t4, ctx2[18]);\n if (dirty[0] & 262144 && div8_class_value !== (div8_class_value = \"message \" + (ctx2[18] ? \"\" : \"gone\"))) {\n attr(div8, \"class\", div8_class_value);\n }\n if (dirty[0] & 402694449) {\n each_value_1 = ctx2[15];\n each_blocks_1 = update_keyed_each(each_blocks_1, dirty, get_key_2, 1, ctx2, each_value_1, each2_lookup, div9, destroy_block, create_each_block_1, null, get_each_context_1);\n }\n if (dirty[0] & 278528 && div10_class_value !== (div10_class_value = \"tabpanel \" + (!ctx2[14] || ctx2[18] ? \"gone\" : \"\"))) {\n attr(div10, \"class\", div10_class_value);\n }\n if (dirty[0] & 16 && div10_role_value !== (div10_role_value = ctx2[4] ? \"region\" : \"tabpanel\")) {\n attr(div10, \"role\", div10_role_value);\n }\n if (dirty[0] & 8209 && div10_aria_label_value !== (div10_aria_label_value = ctx2[4] ? ctx2[0].searchResultsLabel : ctx2[0].categories[ctx2[13].name])) {\n attr(div10, \"aria-label\", div10_aria_label_value);\n }\n if (dirty[0] & 8208 && div10_id_value !== (div10_id_value = ctx2[4] ? \"\" : `tab-${ctx2[13].id}`)) {\n attr(div10, \"id\", div10_id_value);\n }\n if (dirty[0] & 402654464) {\n each_value = ctx2[10];\n each_blocks = update_keyed_each(each_blocks, dirty, get_key_3, 1, ctx2, each_value, each3_lookup, div11, destroy_block, create_each_block, null, get_each_context);\n }\n if (dirty[0] & 262144 && div11_class_value !== (div11_class_value = \"favorites emoji-menu \" + (ctx2[18] ? \"gone\" : \"\"))) {\n attr(div11, \"class\", div11_class_value);\n }\n if (dirty[0] & 1 && div11_aria_label_value !== (div11_aria_label_value = ctx2[0].favoritesLabel)) {\n attr(div11, \"aria-label\", div11_aria_label_value);\n }\n if (dirty[0] & 33554432) {\n set_style(div11, \"padding-inline-end\", ctx2[25] + \"px\");\n }\n if (dirty[0] & 1 && section_aria_label_value !== (section_aria_label_value = ctx2[0].regionLabel)) {\n attr(section, \"aria-label\", section_aria_label_value);\n }\n if (dirty[0] & 4194304) {\n attr(section, \"style\", ctx2[22]);\n }\n },\n i: noop,\n o: noop,\n d(detaching) {\n if (detaching)\n detach(section);\n for (let i = 0; i < each_blocks_3.length; i += 1) {\n each_blocks_3[i].d();\n }\n ctx[48](null);\n for (let i = 0; i < each_blocks_2.length; i += 1) {\n each_blocks_2[i].d();\n }\n for (let i = 0; i < each_blocks_1.length; i += 1) {\n each_blocks_1[i].d();\n }\n ctx[50](null);\n for (let i = 0; i < each_blocks.length; i += 1) {\n each_blocks[i].d();\n }\n ctx[51](null);\n ctx[52](null);\n mounted = false;\n run_all(dispose);\n }\n };\n}\nfunction instance($$self, $$props, $$invalidate) {\n let { skinToneEmoji } = $$props;\n let { i18n } = $$props;\n let { database } = $$props;\n let { customEmoji } = $$props;\n let { customCategorySorting } = $$props;\n let initialLoad = true;\n let currentEmojis = [];\n let currentEmojisWithCategories = [];\n let rawSearchText = \"\";\n let searchText = \"\";\n let rootElement;\n let baselineEmoji;\n let tabpanelElement;\n let searchMode = false;\n let activeSearchItem = -1;\n let message;\n let skinTonePickerExpanded = false;\n let skinTonePickerExpandedAfterAnimation = false;\n let skinToneDropdown;\n let currentSkinTone = 0;\n let activeSkinTone = 0;\n let skinToneButtonText;\n let pickerStyle;\n let skinToneButtonLabel = \"\";\n let skinTones = [];\n let currentFavorites = [];\n let defaultFavoriteEmojis;\n let numColumns = DEFAULT_NUM_COLUMNS;\n let isRtl = false;\n let scrollbarWidth = 0;\n let currentGroupIndex = 0;\n let groups$1 = groups;\n let currentGroup;\n let databaseLoaded = false;\n let activeSearchItemId;\n const focus = (id) => {\n rootElement.getRootNode().getElementById(id).focus();\n };\n const fireEvent = (name, detail) => {\n rootElement.dispatchEvent(new CustomEvent(name, { detail, bubbles: true, composed: true }));\n };\n const unicodeWithSkin = (emoji, currentSkinTone2) => currentSkinTone2 && emoji.skins && emoji.skins[currentSkinTone2] || emoji.unicode;\n const labelWithSkin = (emoji, currentSkinTone2) => uniq([\n emoji.name || unicodeWithSkin(emoji, currentSkinTone2),\n ...emoji.shortcodes || []\n ]).join(\", \");\n const isSkinToneOption = (element2) => /^skintone-/.test(element2.id);\n emojiSupportLevelPromise.then((level) => {\n if (!level) {\n $$invalidate(18, message = i18n.emojiUnsupportedMessage);\n }\n });\n function calculateEmojiGridStyle(node) {\n return calculateWidth(node, (width) => {\n {\n const style = getComputedStyle(rootElement);\n const newNumColumns = parseInt(style.getPropertyValue(\"--num-columns\"), 10);\n const newIsRtl = style.getPropertyValue(\"direction\") === \"rtl\";\n const parentWidth = node.parentElement.getBoundingClientRect().width;\n const newScrollbarWidth = parentWidth - width;\n $$invalidate(46, numColumns = newNumColumns);\n $$invalidate(25, scrollbarWidth = newScrollbarWidth);\n $$invalidate(24, isRtl = newIsRtl);\n }\n });\n }\n function checkZwjSupportAndUpdate(zwjEmojisToCheck) {\n const rootNode = rootElement.getRootNode();\n const emojiToDomNode = (emoji) => rootNode.getElementById(`emo-${emoji.id}`);\n checkZwjSupport(zwjEmojisToCheck, baselineEmoji, emojiToDomNode);\n $$invalidate(1, currentEmojis = currentEmojis);\n }\n function isZwjSupported(emoji) {\n return !emoji.unicode || !hasZwj(emoji) || supportedZwjEmojis.get(emoji.unicode);\n }\n async function filterEmojisByVersion(emojis) {\n const emojiSupportLevel = await emojiSupportLevelPromise;\n return emojis.filter(({ version: version2 }) => !version2 || version2 <= emojiSupportLevel);\n }\n async function summarizeEmojis(emojis) {\n return summarizeEmojisForUI(emojis, await emojiSupportLevelPromise);\n }\n async function getEmojisByGroup(group) {\n if (typeof group === \"undefined\") {\n return [];\n }\n const emoji = group === -1 ? customEmoji : await database.getEmojiByGroup(group);\n return summarizeEmojis(await filterEmojisByVersion(emoji));\n }\n async function getEmojisBySearchQuery(query) {\n return summarizeEmojis(await filterEmojisByVersion(await database.getEmojiBySearchQuery(query)));\n }\n function onSearchKeydown(event) {\n if (!searchMode || !currentEmojis.length) {\n return;\n }\n const goToNextOrPrevious = (previous) => {\n halt(event);\n $$invalidate(5, activeSearchItem = incrementOrDecrement(previous, activeSearchItem, currentEmojis));\n };\n switch (event.key) {\n case \"ArrowDown\":\n return goToNextOrPrevious(false);\n case \"ArrowUp\":\n return goToNextOrPrevious(true);\n case \"Enter\":\n if (activeSearchItem !== -1) {\n halt(event);\n return clickEmoji(currentEmojis[activeSearchItem].id);\n } else if (currentEmojis.length) {\n $$invalidate(5, activeSearchItem = 0);\n }\n }\n }\n function onNavClick(group) {\n $$invalidate(2, rawSearchText = \"\");\n $$invalidate(44, searchText = \"\");\n $$invalidate(5, activeSearchItem = -1);\n $$invalidate(11, currentGroupIndex = groups$1.findIndex((_) => _.id === group.id));\n }\n function onNavKeydown(event) {\n const { target, key } = event;\n const doFocus = (el) => {\n if (el) {\n halt(event);\n el.focus();\n }\n };\n switch (key) {\n case \"ArrowLeft\":\n return doFocus(target.previousSibling);\n case \"ArrowRight\":\n return doFocus(target.nextSibling);\n case \"Home\":\n return doFocus(target.parentElement.firstChild);\n case \"End\":\n return doFocus(target.parentElement.lastChild);\n }\n }\n async function clickEmoji(unicodeOrName) {\n const emoji = await database.getEmojiByUnicodeOrName(unicodeOrName);\n const emojiSummary = [...currentEmojis, ...currentFavorites].find((_) => _.id === unicodeOrName);\n const skinTonedUnicode = emojiSummary.unicode && unicodeWithSkin(emojiSummary, currentSkinTone);\n await database.incrementFavoriteEmojiCount(unicodeOrName);\n fireEvent(\"emoji-click\", {\n emoji,\n skinTone: currentSkinTone,\n ...skinTonedUnicode && { unicode: skinTonedUnicode },\n ...emojiSummary.name && { name: emojiSummary.name }\n });\n }\n async function onEmojiClick(event) {\n const { target } = event;\n if (!target.classList.contains(\"emoji\")) {\n return;\n }\n halt(event);\n const id = target.id.substring(4);\n clickEmoji(id);\n }\n async function onSkinToneOptionsClick(event) {\n const { target } = event;\n if (!isSkinToneOption(target)) {\n return;\n }\n halt(event);\n const skinTone = parseInt(target.id.slice(9), 10);\n $$invalidate(8, currentSkinTone = skinTone);\n $$invalidate(6, skinTonePickerExpanded = false);\n focus(\"skintone-button\");\n fireEvent(\"skin-tone-change\", { skinTone });\n database.setPreferredSkinTone(skinTone);\n }\n async function onClickSkinToneButton(event) {\n $$invalidate(6, skinTonePickerExpanded = !skinTonePickerExpanded);\n $$invalidate(20, activeSkinTone = currentSkinTone);\n if (skinTonePickerExpanded) {\n halt(event);\n rAF(() => focus(`skintone-${activeSkinTone}`));\n }\n }\n function onSkinToneOptionsKeydown(event) {\n if (!skinTonePickerExpanded) {\n return;\n }\n const changeActiveSkinTone = async (nextSkinTone) => {\n halt(event);\n $$invalidate(20, activeSkinTone = nextSkinTone);\n await tick();\n focus(`skintone-${activeSkinTone}`);\n };\n switch (event.key) {\n case \"ArrowUp\":\n return changeActiveSkinTone(incrementOrDecrement(true, activeSkinTone, skinTones));\n case \"ArrowDown\":\n return changeActiveSkinTone(incrementOrDecrement(false, activeSkinTone, skinTones));\n case \"Home\":\n return changeActiveSkinTone(0);\n case \"End\":\n return changeActiveSkinTone(skinTones.length - 1);\n case \"Enter\":\n return onSkinToneOptionsClick(event);\n case \"Escape\":\n halt(event);\n $$invalidate(6, skinTonePickerExpanded = false);\n return focus(\"skintone-button\");\n }\n }\n function onSkinToneOptionsKeyup(event) {\n if (!skinTonePickerExpanded) {\n return;\n }\n switch (event.key) {\n case \" \":\n return onSkinToneOptionsClick(event);\n }\n }\n async function onSkinToneOptionsFocusOut(event) {\n const { relatedTarget } = event;\n if (!relatedTarget || !isSkinToneOption(relatedTarget)) {\n $$invalidate(6, skinTonePickerExpanded = false);\n }\n }\n function input_input_handler() {\n rawSearchText = this.value;\n $$invalidate(2, rawSearchText);\n }\n function div3_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n skinToneDropdown = $$value;\n $$invalidate(7, skinToneDropdown);\n });\n }\n const click_handler = (group) => onNavClick(group);\n function div10_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n tabpanelElement = $$value;\n $$invalidate(3, tabpanelElement);\n });\n }\n function button1_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n baselineEmoji = $$value;\n $$invalidate(17, baselineEmoji);\n });\n }\n function section_binding($$value) {\n binding_callbacks[$$value ? \"unshift\" : \"push\"](() => {\n rootElement = $$value;\n $$invalidate(16, rootElement);\n });\n }\n $$self.$$set = ($$props2) => {\n if (\"skinToneEmoji\" in $$props2)\n $$invalidate(40, skinToneEmoji = $$props2.skinToneEmoji);\n if (\"i18n\" in $$props2)\n $$invalidate(0, i18n = $$props2.i18n);\n if (\"database\" in $$props2)\n $$invalidate(39, database = $$props2.database);\n if (\"customEmoji\" in $$props2)\n $$invalidate(41, customEmoji = $$props2.customEmoji);\n if (\"customCategorySorting\" in $$props2)\n $$invalidate(42, customCategorySorting = $$props2.customCategorySorting);\n };\n $$self.$$.update = () => {\n if ($$self.$$.dirty[1] & 1280) {\n {\n if (customEmoji && database) {\n $$invalidate(39, database.customEmoji = customEmoji, database);\n }\n }\n }\n if ($$self.$$.dirty[0] & 1 | $$self.$$.dirty[1] & 256) {\n {\n async function handleDatabaseLoading() {\n let showingLoadingMessage = false;\n const timeoutHandle = setTimeout(\n () => {\n showingLoadingMessage = true;\n $$invalidate(18, message = i18n.loadingMessage);\n },\n TIMEOUT_BEFORE_LOADING_MESSAGE\n );\n try {\n await database.ready();\n $$invalidate(14, databaseLoaded = true);\n } catch (err) {\n console.error(err);\n $$invalidate(18, message = i18n.networkErrorMessage);\n } finally {\n clearTimeout(timeoutHandle);\n if (showingLoadingMessage) {\n showingLoadingMessage = false;\n $$invalidate(18, message = \"\");\n }\n }\n }\n if (database) {\n handleDatabaseLoading();\n }\n }\n }\n if ($$self.$$.dirty[0] & 6144 | $$self.$$.dirty[1] & 1024) {\n {\n if (customEmoji && customEmoji.length) {\n $$invalidate(12, groups$1 = [customGroup, ...groups]);\n } else if (groups$1 !== groups) {\n if (currentGroupIndex) {\n $$invalidate(11, currentGroupIndex--, currentGroupIndex);\n }\n $$invalidate(12, groups$1 = groups);\n }\n }\n }\n if ($$self.$$.dirty[0] & 4) {\n {\n rIC(() => {\n $$invalidate(44, searchText = (rawSearchText || \"\").trim());\n $$invalidate(5, activeSearchItem = -1);\n });\n }\n }\n if ($$self.$$.dirty[0] & 6144) {\n $$invalidate(13, currentGroup = groups$1[currentGroupIndex]);\n }\n if ($$self.$$.dirty[0] & 24576 | $$self.$$.dirty[1] & 8192) {\n {\n async function updateEmojis() {\n if (!databaseLoaded) {\n $$invalidate(1, currentEmojis = []);\n $$invalidate(4, searchMode = false);\n } else if (searchText.length >= MIN_SEARCH_TEXT_LENGTH) {\n const currentSearchText = searchText;\n const newEmojis = await getEmojisBySearchQuery(currentSearchText);\n if (currentSearchText === searchText) {\n $$invalidate(1, currentEmojis = newEmojis);\n $$invalidate(4, searchMode = true);\n }\n } else if (currentGroup) {\n const currentGroupId = currentGroup.id;\n const newEmojis = await getEmojisByGroup(currentGroupId);\n if (currentGroupId === currentGroup.id) {\n $$invalidate(1, currentEmojis = newEmojis);\n $$invalidate(4, searchMode = false);\n }\n }\n }\n updateEmojis();\n }\n }\n if ($$self.$$.dirty[0] & 4112) {\n $$invalidate(22, pickerStyle = `\n --font-family: ${FONT_FAMILY};\n --num-groups: ${groups$1.length}; \n --indicator-opacity: ${searchMode ? 0 : 1}; \n --num-skintones: ${NUM_SKIN_TONES};`);\n }\n if ($$self.$$.dirty[0] & 16384 | $$self.$$.dirty[1] & 256) {\n {\n async function updatePreferredSkinTone() {\n if (databaseLoaded) {\n $$invalidate(8, currentSkinTone = await database.getPreferredSkinTone());\n }\n }\n updatePreferredSkinTone();\n }\n }\n if ($$self.$$.dirty[1] & 512) {\n $$invalidate(9, skinTones = Array(NUM_SKIN_TONES).fill().map((_, i) => applySkinTone(skinToneEmoji, i)));\n }\n if ($$self.$$.dirty[0] & 768) {\n $$invalidate(21, skinToneButtonText = skinTones[currentSkinTone]);\n }\n if ($$self.$$.dirty[0] & 257) {\n $$invalidate(23, skinToneButtonLabel = i18n.skinToneLabel.replace(\"{skinTone}\", i18n.skinTones[currentSkinTone]));\n }\n if ($$self.$$.dirty[0] & 16384 | $$self.$$.dirty[1] & 256) {\n {\n async function updateDefaultFavoriteEmojis() {\n $$invalidate(45, defaultFavoriteEmojis = (await Promise.all(MOST_COMMONLY_USED_EMOJI.map((unicode) => database.getEmojiByUnicodeOrName(unicode)))).filter(Boolean));\n }\n if (databaseLoaded) {\n updateDefaultFavoriteEmojis();\n }\n }\n }\n if ($$self.$$.dirty[0] & 16384 | $$self.$$.dirty[1] & 49408) {\n {\n async function updateFavorites() {\n const dbFavorites = await database.getTopFavoriteEmoji(numColumns);\n const favorites = await summarizeEmojis(uniqBy([...dbFavorites, ...defaultFavoriteEmojis], (_) => _.unicode || _.name).slice(0, numColumns));\n $$invalidate(10, currentFavorites = favorites);\n }\n if (databaseLoaded && defaultFavoriteEmojis) {\n updateFavorites();\n }\n }\n }\n if ($$self.$$.dirty[0] & 10) {\n {\n const zwjEmojisToCheck = currentEmojis.filter((emoji) => emoji.unicode).filter((emoji) => hasZwj(emoji) && !supportedZwjEmojis.has(emoji.unicode));\n if (zwjEmojisToCheck.length) {\n rAF(() => checkZwjSupportAndUpdate(zwjEmojisToCheck));\n } else {\n $$invalidate(1, currentEmojis = currentEmojis.filter(isZwjSupported));\n rAF(() => {\n (tabpanelElement || {}).scrollTop = 0;\n });\n }\n }\n }\n if ($$self.$$.dirty[0] & 1026 | $$self.$$.dirty[1] & 4096)\n ;\n if ($$self.$$.dirty[0] & 18 | $$self.$$.dirty[1] & 2048) {\n {\n let calculateCurrentEmojisWithCategories = function() {\n if (searchMode) {\n return [{ category: \"\", emojis: currentEmojis }];\n }\n const categoriesToEmoji = /* @__PURE__ */ new Map();\n for (const emoji of currentEmojis) {\n const category = emoji.category || \"\";\n let emojis = categoriesToEmoji.get(category);\n if (!emojis) {\n emojis = [];\n categoriesToEmoji.set(category, emojis);\n }\n emojis.push(emoji);\n }\n return [...categoriesToEmoji.entries()].map(([category, emojis]) => ({ category, emojis })).sort((a, b) => customCategorySorting(a.category, b.category));\n };\n $$invalidate(15, currentEmojisWithCategories = calculateCurrentEmojisWithCategories());\n }\n }\n if ($$self.$$.dirty[0] & 34) {\n $$invalidate(26, activeSearchItemId = activeSearchItem !== -1 && currentEmojis[activeSearchItem].id);\n }\n if ($$self.$$.dirty[0] & 192) {\n {\n if (skinTonePickerExpanded) {\n skinToneDropdown.addEventListener(\n \"transitionend\",\n () => {\n $$invalidate(19, skinTonePickerExpandedAfterAnimation = true);\n },\n { once: true }\n );\n } else {\n $$invalidate(19, skinTonePickerExpandedAfterAnimation = false);\n }\n }\n }\n };\n return [\n i18n,\n currentEmojis,\n rawSearchText,\n tabpanelElement,\n searchMode,\n activeSearchItem,\n skinTonePickerExpanded,\n skinToneDropdown,\n currentSkinTone,\n skinTones,\n currentFavorites,\n currentGroupIndex,\n groups$1,\n currentGroup,\n databaseLoaded,\n currentEmojisWithCategories,\n rootElement,\n baselineEmoji,\n message,\n skinTonePickerExpandedAfterAnimation,\n activeSkinTone,\n skinToneButtonText,\n pickerStyle,\n skinToneButtonLabel,\n isRtl,\n scrollbarWidth,\n activeSearchItemId,\n unicodeWithSkin,\n labelWithSkin,\n calculateEmojiGridStyle,\n onSearchKeydown,\n onNavClick,\n onNavKeydown,\n onEmojiClick,\n onSkinToneOptionsClick,\n onClickSkinToneButton,\n onSkinToneOptionsKeydown,\n onSkinToneOptionsKeyup,\n onSkinToneOptionsFocusOut,\n database,\n skinToneEmoji,\n customEmoji,\n customCategorySorting,\n initialLoad,\n searchText,\n defaultFavoriteEmojis,\n numColumns,\n input_input_handler,\n div3_binding,\n click_handler,\n div10_binding,\n button1_binding,\n section_binding\n ];\n}\nclass Picker extends SvelteComponent {\n constructor(options2) {\n super();\n init(\n this,\n options2,\n instance,\n create_fragment,\n safe_not_equal,\n {\n skinToneEmoji: 40,\n i18n: 0,\n database: 39,\n customEmoji: 41,\n customCategorySorting: 42\n },\n null,\n [-1, -1, -1]\n );\n }\n}\nconst DEFAULT_DATA_SOURCE = \"https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json\";\nconst DEFAULT_LOCALE = \"en\";\nvar enI18n = {\n categoriesLabel: \"Categories\",\n emojiUnsupportedMessage: \"Your browser does not support color emoji.\",\n favoritesLabel: \"Favorites\",\n loadingMessage: \"Loading\\u2026\",\n networkErrorMessage: \"Could not load emoji.\",\n regionLabel: \"Emoji picker\",\n searchDescription: \"When search results are available, press up or down to select and enter to choose.\",\n searchLabel: \"Search\",\n searchResultsLabel: \"Search results\",\n skinToneDescription: \"When expanded, press up or down to select and enter to choose.\",\n skinToneLabel: \"Choose a skin tone (currently {skinTone})\",\n skinTonesLabel: \"Skin tones\",\n skinTones: [\n \"Default\",\n \"Light\",\n \"Medium-Light\",\n \"Medium\",\n \"Medium-Dark\",\n \"Dark\"\n ],\n categories: {\n custom: \"Custom\",\n \"smileys-emotion\": \"Smileys and emoticons\",\n \"people-body\": \"People and body\",\n \"animals-nature\": \"Animals and nature\",\n \"food-drink\": \"Food and drink\",\n \"travel-places\": \"Travel and places\",\n activities: \"Activities\",\n objects: \"Objects\",\n symbols: \"Symbols\",\n flags: \"Flags\"\n }\n};\nconst PROPS = [\n \"customEmoji\",\n \"customCategorySorting\",\n \"database\",\n \"dataSource\",\n \"i18n\",\n \"locale\",\n \"skinToneEmoji\"\n];\nclass PickerElement extends HTMLElement {\n constructor(props) {\n super();\n this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = \":host{--emoji-size:1.375rem;--emoji-padding:0.5rem;--category-emoji-size:var(--emoji-size);--category-emoji-padding:var(--emoji-padding);--indicator-height:3px;--input-border-radius:0.5rem;--input-border-size:1px;--input-font-size:1rem;--input-line-height:1.5;--input-padding:0.25rem;--num-columns:8;--outline-size:2px;--border-size:1px;--skintone-border-radius:1rem;--category-font-size:1rem;display:flex;width:min-content;height:400px}:host,:host(.light){--background:#fff;--border-color:#e0e0e0;--indicator-color:#385ac1;--input-border-color:#999;--input-font-color:#111;--input-placeholder-color:#999;--outline-color:#999;--category-font-color:#111;--button-active-background:#e6e6e6;--button-hover-background:#d9d9d9}:host(.dark){--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}@media (prefers-color-scheme:dark){:host{--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}}:host([hidden]){display:none}button{margin:0;padding:0;border:0;background:0 0;box-shadow:none;-webkit-tap-highlight-color:transparent}button::-moz-focus-inner{border:0}input{padding:0;margin:0;line-height:1.15;font-family:inherit}input[type=search]{-webkit-appearance:none}:focus{outline:var(--outline-color) solid var(--outline-size);outline-offset:calc(-1*var(--outline-size))}:host([data-js-focus-visible]) :focus:not([data-focus-visible-added]){outline:0}:focus:not(:focus-visible){outline:0}.hide-focus{outline:0}*{box-sizing:border-box}.picker{contain:content;display:flex;flex-direction:column;background:var(--background);border:var(--border-size) solid var(--border-color);width:100%;height:100%;overflow:hidden;--total-emoji-size:calc(var(--emoji-size) + (2 * var(--emoji-padding)));--total-category-emoji-size:calc(var(--category-emoji-size) + (2 * var(--category-emoji-padding)))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.hidden{opacity:0;pointer-events:none}.abs-pos{position:absolute;left:0;top:0}.gone{display:none!important}.skintone-button-wrapper,.skintone-list{background:var(--background);z-index:3}.skintone-button-wrapper.expanded{z-index:1}.skintone-list{position:absolute;inset-inline-end:0;top:0;z-index:2;overflow:visible;border-bottom:var(--border-size) solid var(--border-color);border-radius:0 0 var(--skintone-border-radius) var(--skintone-border-radius);will-change:transform;transition:transform .2s ease-in-out;transform-origin:center 0}@media (prefers-reduced-motion:reduce){.skintone-list{transition-duration:.001s}}@supports not (inset-inline-end:0){.skintone-list{right:0}}.skintone-list.no-animate{transition:none}.tabpanel{overflow-y:auto;-webkit-overflow-scrolling:touch;will-change:transform;min-height:0;flex:1;contain:content}.emoji-menu{display:grid;grid-template-columns:repeat(var(--num-columns),var(--total-emoji-size));justify-content:space-around;align-items:flex-start;width:100%}.category{padding:var(--emoji-padding);font-size:var(--category-font-size);color:var(--category-font-color)}.custom-emoji,.emoji,button.emoji{height:var(--total-emoji-size);width:var(--total-emoji-size)}.emoji,button.emoji{font-size:var(--emoji-size);display:flex;align-items:center;justify-content:center;border-radius:100%;line-height:1;overflow:hidden;font-family:var(--font-family);cursor:pointer}@media (hover:hover) and (pointer:fine){.emoji:hover,button.emoji:hover{background:var(--button-hover-background)}}.emoji.active,.emoji:active,button.emoji.active,button.emoji:active{background:var(--button-active-background)}.custom-emoji{padding:var(--emoji-padding);object-fit:contain;pointer-events:none;background-repeat:no-repeat;background-position:center center;background-size:var(--emoji-size) var(--emoji-size)}.nav,.nav-button{align-items:center}.nav{display:grid;justify-content:space-between;contain:content}.nav-button{display:flex;justify-content:center}.nav-emoji{font-size:var(--category-emoji-size);width:var(--total-category-emoji-size);height:var(--total-category-emoji-size)}.indicator-wrapper{display:flex;border-bottom:1px solid var(--border-color)}.indicator{width:calc(100%/var(--num-groups));height:var(--indicator-height);opacity:var(--indicator-opacity);background-color:var(--indicator-color);will-change:transform,opacity;transition:opacity .1s linear,transform .25s ease-in-out}@media (prefers-reduced-motion:reduce){.indicator{will-change:opacity;transition:opacity .1s linear}}.pad-top,input.search{background:var(--background);width:100%}.pad-top{height:var(--emoji-padding);z-index:3}.search-row{display:flex;align-items:center;position:relative;padding-inline-start:var(--emoji-padding);padding-bottom:var(--emoji-padding)}.search-wrapper{flex:1;min-width:0}input.search{padding:var(--input-padding);border-radius:var(--input-border-radius);border:var(--input-border-size) solid var(--input-border-color);color:var(--input-font-color);font-size:var(--input-font-size);line-height:var(--input-line-height)}input.search::placeholder{color:var(--input-placeholder-color)}.favorites{display:flex;flex-direction:row;border-top:var(--border-size) solid var(--border-color);contain:content}.message{padding:var(--emoji-padding)}\";\n this.shadowRoot.appendChild(style);\n this._ctx = {\n locale: DEFAULT_LOCALE,\n dataSource: DEFAULT_DATA_SOURCE,\n skinToneEmoji: DEFAULT_SKIN_TONE_EMOJI,\n customCategorySorting: DEFAULT_CATEGORY_SORTING,\n customEmoji: null,\n i18n: enI18n,\n ...props\n };\n for (const prop of PROPS) {\n if (prop !== \"database\" && Object.prototype.hasOwnProperty.call(this, prop)) {\n this._ctx[prop] = this[prop];\n delete this[prop];\n }\n }\n this._dbFlush();\n }\n connectedCallback() {\n this._cmp = new Picker({\n target: this.shadowRoot,\n props: this._ctx\n });\n }\n disconnectedCallback() {\n this._cmp.$destroy();\n this._cmp = void 0;\n const { database } = this._ctx;\n if (database) {\n database.close().catch((err) => console.error(err));\n }\n }\n static get observedAttributes() {\n return [\"locale\", \"data-source\", \"skin-tone-emoji\"];\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n this._set(\n attrName.replace(/-([a-z])/g, (_, up) => up.toUpperCase()),\n newValue\n );\n }\n _set(prop, newValue) {\n this._ctx[prop] = newValue;\n if (this._cmp) {\n this._cmp.$set({ [prop]: newValue });\n }\n if ([\"locale\", \"dataSource\"].includes(prop)) {\n this._dbFlush();\n }\n }\n _dbCreate() {\n const { locale, dataSource, database } = this._ctx;\n if (!database || database.locale !== locale || database.dataSource !== dataSource) {\n this._set(\"database\", new Database({ locale, dataSource }));\n }\n }\n _dbFlush() {\n Promise.resolve().then(() => this._dbCreate());\n }\n}\nconst definitions = {};\nfor (const prop of PROPS) {\n definitions[prop] = {\n get() {\n if (prop === \"database\") {\n this._dbCreate();\n }\n return this._ctx[prop];\n },\n set(val) {\n if (prop === \"database\") {\n throw new Error(\"database is read-only\");\n }\n this._set(prop, val);\n }\n };\n}\nObject.defineProperties(PickerElement.prototype, definitions);\nif (!customElements.get(\"emoji-picker\")) {\n customElements.define(\"emoji-picker\", PickerElement);\n}\nfunction findParentBySelector(node, selector) {\n while (node && !node.querySelector(selector)) {\n node = node.parentNode;\n const element2 = node.querySelector(selector);\n if (element2)\n return element2;\n }\n return null;\n}\nconst _sfc_main$j = {\n name: \"EmojiPickerContainer\",\n components: {\n SvgIcon\n },\n props: {\n emojiOpened: { type: Boolean, default: false },\n emojiReaction: { type: Boolean, default: false },\n positionTop: { type: Boolean, default: false },\n positionRight: { type: Boolean, default: false },\n messageId: { type: String, default: \"\" },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\"add-emoji\", \"open-emoji\"],\n data() {\n return {\n emojiPickerHeight: 320,\n emojiPickerTop: 0,\n emojiPickerRight: \"\"\n };\n },\n watch: {\n emojiOpened(val) {\n if (val) {\n setTimeout(() => {\n this.addCustomStyling();\n this.$refs.emojiPicker.shadowRoot.addEventListener(\n \"emoji-click\",\n ({ detail }) => {\n this.$emit(\"add-emoji\", {\n unicode: detail.unicode\n });\n }\n );\n }, 0);\n }\n }\n },\n methods: {\n addCustomStyling() {\n const picker = `.picker {\n\t\t\t\tborder: none;\n\t\t\t}`;\n const nav = `.nav {\n\t\t\t\toverflow-x: auto;\n\t\t\t}`;\n const searchBox = `.search-wrapper {\n\t\t\t\tpadding-right: 2px;\n\t\t\t\tpadding-left: 2px;\n\t\t\t}`;\n const search = `input.search {\n\t\t\t\theight: 32px;\n\t\t\t\tfont-size: 14px;\n\t\t\t\tborder-radius: 10rem;\n\t\t\t\tborder: var(--chat-border-style);\n\t\t\t\tpadding: 5px 10px;\n\t\t\t\toutline: none;\n\t\t\t\tbackground: var(--chat-bg-color-input);\n\t\t\t\tcolor: var(--chat-color);\n\t\t\t}`;\n const style = document.createElement(\"style\");\n style.textContent = picker + nav + searchBox + search;\n this.$refs.emojiPicker.shadowRoot.appendChild(style);\n },\n openEmoji(ev) {\n this.$emit(\"open-emoji\", !this.emojiOpened);\n this.setEmojiPickerPosition(\n ev.clientY,\n ev.view.innerWidth,\n ev.view.innerHeight\n );\n },\n setEmojiPickerPosition(clientY, innerWidth, innerHeight) {\n const mobileSize = innerWidth < 500 || innerHeight < 700;\n const roomFooterRef = findParentBySelector(this.$el, \"#room-footer\");\n if (!roomFooterRef) {\n if (mobileSize)\n this.emojiPickerRight = \"-50px\";\n return;\n }\n if (mobileSize) {\n this.emojiPickerRight = innerWidth / 2 - (this.positionTop ? 200 : 150) + \"px\";\n this.emojiPickerTop = 100;\n this.emojiPickerHeight = innerHeight - 200;\n } else {\n const roomFooterTop = roomFooterRef.getBoundingClientRect().top;\n const pickerTopPosition = roomFooterTop - clientY > this.emojiPickerHeight - 50;\n if (pickerTopPosition)\n this.emojiPickerTop = clientY + 10;\n else\n this.emojiPickerTop = clientY - this.emojiPickerHeight - 10;\n this.emojiPickerRight = this.positionTop ? \"0px\" : this.positionRight ? \"60px\" : \"\";\n }\n }\n }\n};\nconst _hoisted_1$j = { class: \"vac-emoji-wrapper\" };\nfunction _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_emoji_picker = resolveComponent(\"emoji-picker\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$j, [\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-svg-button\", { \"vac-emoji-reaction\": $props.emojiReaction }]),\n onClick: _cache[0] || (_cache[0] = (...args) => $options.openEmoji && $options.openEmoji(...args))\n }, [\n renderSlot(\n _ctx.$slots,\n $props.messageId ? \"emoji-picker-reaction-icon_\" + $props.messageId : \"emoji-picker-icon\",\n {},\n () => [\n createVNode(_component_svg_icon, {\n name: \"emoji\",\n param: $props.emojiReaction ? \"reaction\" : \"\"\n }, null, 8, [\"param\"])\n ]\n )\n ], 2),\n $props.emojiOpened ? (openBlock(), createBlock(Transition, {\n key: 0,\n name: \"vac-slide-up\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-emoji-picker\", { \"vac-picker-reaction\": $props.emojiReaction }]),\n style: normalizeStyle({\n height: `${$data.emojiPickerHeight}px`,\n top: $props.positionTop ? $data.emojiPickerHeight : `${$data.emojiPickerTop}px`,\n right: $data.emojiPickerRight,\n display: $data.emojiPickerTop || !$props.emojiReaction ? \"initial\" : \"none\"\n })\n }, [\n $props.emojiOpened ? (openBlock(), createBlock(_component_emoji_picker, {\n key: 0,\n ref: \"emojiPicker\",\n \"data-source\": $props.emojiDataSource\n }, null, 8, [\"data-source\"])) : createCommentVNode(\"\", true)\n ], 6)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ]);\n}\nvar EmojiPickerContainer = /* @__PURE__ */ _export_sfc(_sfc_main$j, [[\"render\", _sfc_render$j]]);\nconst _sfc_main$i = {\n name: \"RoomFiles\",\n components: {\n Loader,\n SvgIcon\n },\n props: {\n file: { type: Object, required: true },\n index: { type: Number, required: true }\n },\n emits: [\"remove-file\"],\n computed: {\n isImage() {\n return isImageFile(this.file);\n },\n isVideo() {\n return isVideoFile(this.file);\n }\n }\n};\nconst _hoisted_1$i = { class: \"vac-room-file-container\" };\nconst _hoisted_2$g = [\"src\"];\nconst _hoisted_3$d = { class: \"vac-text-ellipsis\" };\nconst _hoisted_4$c = {\n key: 0,\n class: \"vac-text-ellipsis vac-text-extension\"\n};\nfunction _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_loader = resolveComponent(\"loader\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$i, [\n createVNode(_component_loader, {\n show: $props.file.loading,\n type: \"room-file\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\"]),\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-icon-remove\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"remove-file\", $props.index))\n }, [\n renderSlot(_ctx.$slots, \"image-close-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"close\",\n param: \"image\"\n })\n ])\n ]),\n $options.isImage ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-message-image\", { \"vac-blur-loading\": $props.file.loading }]),\n style: normalizeStyle({\n \"background-image\": `url('${$props.file.localUrl || $props.file.url}')`\n })\n }, null, 6)) : $options.isVideo ? (openBlock(), createElementBlock(\"video\", {\n key: 1,\n controls: \"\",\n class: normalizeClass({ \"vac-blur-loading\": $props.file.loading })\n }, [\n createBaseVNode(\"source\", {\n src: $props.file.localUrl || $props.file.url\n }, null, 8, _hoisted_2$g)\n ], 2)) : (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: normalizeClass([\"vac-file-container\", { \"vac-blur-loading\": $props.file.loading }])\n }, [\n createBaseVNode(\"div\", null, [\n renderSlot(_ctx.$slots, \"file-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"file\" })\n ])\n ]),\n createBaseVNode(\"div\", _hoisted_3$d, toDisplayString($props.file.name), 1),\n $props.file.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_4$c, toDisplayString($props.file.extension), 1)) : createCommentVNode(\"\", true)\n ], 2))\n ]);\n}\nvar RoomFile = /* @__PURE__ */ _export_sfc(_sfc_main$i, [[\"render\", _sfc_render$i]]);\nconst _sfc_main$h = {\n name: \"RoomFiles\",\n components: {\n SvgIcon,\n RoomFile\n },\n props: {\n files: { type: Array, required: true }\n },\n emits: [\"remove-file\", \"reset-message\"],\n computed: {}\n};\nconst _hoisted_1$h = {\n key: 0,\n class: \"vac-room-files-container\"\n};\nconst _hoisted_2$f = { class: \"vac-files-box\" };\nconst _hoisted_3$c = { class: \"vac-icon-close\" };\nfunction _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_room_file = resolveComponent(\"room-file\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.files.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$h, [\n createBaseVNode(\"div\", _hoisted_2$f, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.files, (file, i) => {\n return openBlock(), createElementBlock(\"div\", { key: i }, [\n createVNode(_component_room_file, {\n file,\n index: i,\n onRemoveFile: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"remove-file\", $event))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"file\", \"index\"])\n ]);\n }), 128))\n ]),\n createBaseVNode(\"div\", _hoisted_3$c, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button\",\n onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"reset-message\"))\n }, [\n renderSlot(_ctx.$slots, \"files-close-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"close-outline\" })\n ])\n ])\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n });\n}\nvar RoomFiles = /* @__PURE__ */ _export_sfc(_sfc_main$h, [[\"render\", _sfc_render$h]]);\nconst _sfc_main$g = {\n props: {\n percentage: { type: Number, default: 0 },\n messageSelectionEnabled: { type: Boolean, required: true }\n },\n emits: [\"hover-audio-progress\", \"change-linehead\"],\n data() {\n return {\n isMouseDown: false\n };\n },\n methods: {\n onMouseDown(ev) {\n if (this.messageSelectionEnabled)\n return;\n this.isMouseDown = true;\n const seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n this.$emit(\"change-linehead\", seekPos);\n document.addEventListener(\"mousemove\", this.onMouseMove);\n document.addEventListener(\"mouseup\", this.onMouseUp);\n },\n onMouseUp(ev) {\n if (this.messageSelectionEnabled)\n return;\n this.isMouseDown = false;\n document.removeEventListener(\"mouseup\", this.onMouseUp);\n document.removeEventListener(\"mousemove\", this.onMouseMove);\n const seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n this.$emit(\"change-linehead\", seekPos);\n },\n onMouseMove(ev) {\n if (this.messageSelectionEnabled)\n return;\n const seekPos = this.calculateLineHeadPosition(ev, this.$refs.progress);\n this.$emit(\"change-linehead\", seekPos);\n },\n calculateLineHeadPosition(ev, element2) {\n const progressWidth = element2.getBoundingClientRect().width;\n const leftPosition = element2.getBoundingClientRect().left;\n let pos = (ev.clientX - leftPosition) / progressWidth;\n pos = pos < 0 ? 0 : pos;\n pos = pos > 1 ? 1 : pos;\n return pos;\n }\n }\n};\nconst _hoisted_1$g = { class: \"vac-player-progress\" };\nconst _hoisted_2$e = { class: \"vac-line-container\" };\nfunction _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"progress\",\n class: \"vac-player-bar\",\n onMousedown: _cache[0] || (_cache[0] = (...args) => $options.onMouseDown && $options.onMouseDown(...args)),\n onMouseover: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"hover-audio-progress\", true)),\n onMouseout: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"hover-audio-progress\", false))\n }, [\n createBaseVNode(\"div\", _hoisted_1$g, [\n createBaseVNode(\"div\", _hoisted_2$e, [\n createBaseVNode(\"div\", {\n class: \"vac-line-progress\",\n style: normalizeStyle({ width: `${$props.percentage}%` })\n }, null, 4),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-line-dot\", { \"vac-line-dot__active\": $data.isMouseDown }]),\n style: normalizeStyle({ left: `${$props.percentage}%` })\n }, null, 6)\n ])\n ])\n ], 544);\n}\nvar AudioControl = /* @__PURE__ */ _export_sfc(_sfc_main$g, [[\"render\", _sfc_render$g]]);\nconst _sfc_main$f = {\n name: \"AudioPlayer\",\n components: {\n SvgIcon,\n AudioControl\n },\n props: {\n messageId: { type: [String, Number], default: null },\n src: { type: String, default: null },\n messageSelectionEnabled: { type: Boolean, required: true }\n },\n emits: [\"hover-audio-progress\", \"update-progress-time\"],\n data() {\n return {\n isPlaying: false,\n duration: this.convertTimeMMSS(0),\n playedTime: this.convertTimeMMSS(0),\n progress: 0\n };\n },\n computed: {\n playerUniqId() {\n return `audio-player${this.messageId}`;\n },\n audioSource() {\n if (this.src)\n return this.src;\n this.resetProgress();\n return null;\n }\n },\n mounted() {\n this.player = this.$el.querySelector(\"#\" + this.playerUniqId);\n this.player.addEventListener(\"ended\", () => {\n this.isPlaying = false;\n });\n this.player.addEventListener(\"loadeddata\", () => {\n this.resetProgress();\n this.duration = this.convertTimeMMSS(this.player.duration);\n this.updateProgressTime();\n });\n this.player.addEventListener(\"timeupdate\", this.onTimeUpdate);\n },\n methods: {\n convertTimeMMSS(seconds) {\n return new Date(seconds * 1e3).toISOString().substr(14, 5);\n },\n playback() {\n if (this.messageSelectionEnabled || !this.audioSource)\n return;\n if (this.isPlaying)\n this.player.pause();\n else\n setTimeout(() => this.player.play());\n this.isPlaying = !this.isPlaying;\n },\n resetProgress() {\n if (this.isPlaying)\n this.player.pause();\n this.duration = this.convertTimeMMSS(0);\n this.playedTime = this.convertTimeMMSS(0);\n this.progress = 0;\n this.isPlaying = false;\n this.updateProgressTime();\n },\n onTimeUpdate() {\n this.playedTime = this.convertTimeMMSS(this.player.currentTime);\n this.progress = this.player.currentTime / this.player.duration * 100;\n this.updateProgressTime();\n },\n onUpdateProgress(pos) {\n if (pos)\n this.player.currentTime = pos * this.player.duration;\n },\n updateProgressTime() {\n this.$emit(\n \"update-progress-time\",\n this.progress > 1 ? this.playedTime : this.duration\n );\n }\n }\n};\nconst _hoisted_1$f = { class: \"vac-audio-player\" };\nconst _hoisted_2$d = [\"id\", \"src\"];\nfunction _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_audio_control = resolveComponent(\"audio-control\");\n return openBlock(), createElementBlock(\"div\", null, [\n createBaseVNode(\"div\", _hoisted_1$f, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.playback && $options.playback(...args))\n }, [\n $data.isPlaying ? renderSlot(_ctx.$slots, \"audio-pause-icon_\" + $props.messageId, { key: 0 }, () => [\n createVNode(_component_svg_icon, { name: \"audio-pause\" })\n ]) : renderSlot(_ctx.$slots, \"audio-play-icon_\" + $props.messageId, { key: 1 }, () => [\n createVNode(_component_svg_icon, { name: \"audio-play\" })\n ])\n ]),\n createVNode(_component_audio_control, {\n percentage: $data.progress,\n \"message-selection-enabled\": $props.messageSelectionEnabled,\n onChangeLinehead: $options.onUpdateProgress,\n onHoverAudioProgress: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"hover-audio-progress\", $event))\n }, null, 8, [\"percentage\", \"message-selection-enabled\", \"onChangeLinehead\"]),\n createBaseVNode(\"audio\", {\n id: $options.playerUniqId,\n src: $options.audioSource\n }, null, 8, _hoisted_2$d)\n ])\n ]);\n}\nvar AudioPlayer = /* @__PURE__ */ _export_sfc(_sfc_main$f, [[\"render\", _sfc_render$f]]);\nconst _sfc_main$e = {\n name: \"RoomMessageReply\",\n components: {\n SvgIcon,\n FormatMessage,\n AudioPlayer\n },\n props: {\n room: { type: Object, required: true },\n messageReply: { type: Object, default: null },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true }\n },\n emits: [\"reset-message\"],\n computed: {\n firstFile() {\n var _a, _b;\n return ((_b = (_a = this.messageReply) == null ? void 0 : _a.files) == null ? void 0 : _b.length) ? this.messageReply.files[0] : {};\n },\n isImage() {\n return isImageFile(this.firstFile);\n },\n isVideo() {\n return isVideoFile(this.firstFile);\n },\n isAudio() {\n return isAudioFile(this.firstFile);\n },\n isOtherFile() {\n var _a, _b;\n return ((_b = (_a = this.messageReply) == null ? void 0 : _a.files) == null ? void 0 : _b.length) && !this.isAudio && !this.isVideo && !this.isImage;\n }\n }\n};\nconst _hoisted_1$e = {\n key: 0,\n class: \"vac-reply-container\"\n};\nconst _hoisted_2$c = { class: \"vac-reply-box\" };\nconst _hoisted_3$b = { class: \"vac-reply-info\" };\nconst _hoisted_4$b = { class: \"vac-reply-username\" };\nconst _hoisted_5$8 = { class: \"vac-reply-content\" };\nconst _hoisted_6$4 = [\"src\"];\nconst _hoisted_7$4 = {\n key: 1,\n controls: \"\",\n class: \"vac-image-reply\"\n};\nconst _hoisted_8$2 = [\"src\"];\nconst _hoisted_9$2 = {\n key: 3,\n class: \"vac-image-reply vac-file-container\"\n};\nconst _hoisted_10$2 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_11$1 = {\n key: 0,\n class: \"vac-text-ellipsis vac-text-extension\"\n};\nconst _hoisted_12$1 = { class: \"vac-icon-reply\" };\nfunction _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_format_message = resolveComponent(\"format-message\");\n const _component_audio_player = resolveComponent(\"audio-player\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.messageReply ? (openBlock(), createElementBlock(\"div\", _hoisted_1$e, [\n createBaseVNode(\"div\", _hoisted_2$c, [\n createBaseVNode(\"div\", _hoisted_3$b, [\n createBaseVNode(\"div\", _hoisted_4$b, toDisplayString($props.messageReply.username), 1),\n createBaseVNode(\"div\", _hoisted_5$8, [\n createVNode(_component_format_message, {\n \"message-id\": $props.messageReply._id,\n content: $props.messageReply.content,\n users: $props.room.users,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n reply: true\n }, null, 8, [\"message-id\", \"content\", \"users\", \"text-formatting\", \"link-options\"])\n ])\n ]),\n $options.isImage ? (openBlock(), createElementBlock(\"img\", {\n key: 0,\n src: $options.firstFile.url,\n class: \"vac-image-reply\"\n }, null, 8, _hoisted_6$4)) : $options.isVideo ? (openBlock(), createElementBlock(\"video\", _hoisted_7$4, [\n createBaseVNode(\"source\", {\n src: $options.firstFile.url\n }, null, 8, _hoisted_8$2)\n ])) : $options.isAudio ? (openBlock(), createBlock(_component_audio_player, {\n key: 2,\n src: $options.firstFile.url,\n \"message-selection-enabled\": false,\n class: \"vac-audio-reply\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"src\"])) : $options.isOtherFile ? (openBlock(), createElementBlock(\"div\", _hoisted_9$2, [\n createBaseVNode(\"div\", null, [\n renderSlot(_ctx.$slots, \"file-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"file\" })\n ])\n ]),\n createBaseVNode(\"div\", _hoisted_10$2, toDisplayString($options.firstFile.name), 1),\n $options.firstFile.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_11$1, toDisplayString($options.firstFile.extension), 1)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true)\n ]),\n createBaseVNode(\"div\", _hoisted_12$1, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"reset-message\"))\n }, [\n renderSlot(_ctx.$slots, \"reply-close-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"close-outline\" })\n ])\n ])\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n });\n}\nvar RoomMessageReply = /* @__PURE__ */ _export_sfc(_sfc_main$e, [[\"render\", _sfc_render$e]]);\nconst _sfc_main$d = {\n name: \"RoomUsersTag\",\n props: {\n filteredUsersTag: { type: Array, required: true },\n selectItem: { type: Boolean, default: null },\n activeUpOrDown: { type: Number, default: null }\n },\n emits: [\"select-user-tag\", \"activate-item\"],\n data() {\n return {\n activeItem: null\n };\n },\n watch: {\n filteredUsersTag(val, oldVal) {\n if (!oldVal.length || val.length !== oldVal.length) {\n this.activeItem = 0;\n }\n },\n selectItem(val) {\n if (val) {\n this.$emit(\"select-user-tag\", this.filteredUsersTag[this.activeItem]);\n }\n },\n activeUpOrDown() {\n if (this.activeUpOrDown > 0 && this.activeItem < this.filteredUsersTag.length - 1) {\n this.activeItem++;\n } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n this.activeItem--;\n }\n this.$emit(\"activate-item\");\n }\n }\n};\nconst _hoisted_1$d = {\n key: 0,\n class: \"vac-tags-container\"\n};\nconst _hoisted_2$b = [\"onMouseover\", \"onClick\"];\nconst _hoisted_3$a = { class: \"vac-tags-info\" };\nconst _hoisted_4$a = { class: \"vac-tags-username\" };\nfunction _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.filteredUsersTag.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$d, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.filteredUsersTag, (user, index) => {\n return openBlock(), createElementBlock(\"div\", {\n key: user._id,\n class: normalizeClass([\"vac-tags-box\", { \"vac-tags-box-active\": index === $data.activeItem }]),\n onMouseover: ($event) => $data.activeItem = index,\n onClick: ($event) => _ctx.$emit(\"select-user-tag\", user)\n }, [\n createBaseVNode(\"div\", _hoisted_3$a, [\n user.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar vac-tags-avatar\",\n style: normalizeStyle({ \"background-image\": `url('${user.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", _hoisted_4$a, toDisplayString(user.username), 1)\n ])\n ], 42, _hoisted_2$b);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n });\n}\nvar RoomUsersTag = /* @__PURE__ */ _export_sfc(_sfc_main$d, [[\"render\", _sfc_render$d]]);\nconst _sfc_main$c = {\n name: \"RoomEmojis\",\n props: {\n filteredEmojis: { type: Array, required: true },\n selectItem: { type: Boolean, default: null },\n activeUpOrDown: { type: Number, default: null }\n },\n emits: [\"select-emoji\", \"activate-item\"],\n data() {\n return {\n activeItem: null\n };\n },\n watch: {\n filteredEmojis(val, oldVal) {\n if (!oldVal.length || val.length !== oldVal.length) {\n this.activeItem = 0;\n }\n },\n selectItem(val) {\n if (val) {\n this.$emit(\"select-emoji\", this.filteredEmojis[this.activeItem]);\n }\n },\n activeUpOrDown() {\n if (this.activeUpOrDown > 0 && this.activeItem < this.filteredEmojis.length - 1) {\n this.activeItem++;\n } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n this.activeItem--;\n }\n this.$emit(\"activate-item\");\n }\n }\n};\nconst _hoisted_1$c = {\n key: 0,\n class: \"vac-emojis-container\"\n};\nconst _hoisted_2$a = [\"onMouseover\", \"onClick\"];\nfunction _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.filteredEmojis.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$c, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.filteredEmojis, (emoji, index) => {\n return openBlock(), createElementBlock(\"div\", {\n key: emoji,\n class: normalizeClass([\"vac-emoji-element\", { \"vac-emoji-element-active\": index === $data.activeItem }]),\n onMouseover: ($event) => $data.activeItem = index,\n onClick: ($event) => _ctx.$emit(\"select-emoji\", emoji)\n }, toDisplayString(emoji), 43, _hoisted_2$a);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n });\n}\nvar RoomEmojis = /* @__PURE__ */ _export_sfc(_sfc_main$c, [[\"render\", _sfc_render$c]]);\nconst _sfc_main$b = {\n name: \"RoomTemplatesText\",\n props: {\n filteredTemplatesText: { type: Array, required: true },\n selectItem: { type: Boolean, default: null },\n activeUpOrDown: { type: Number, default: null }\n },\n emits: [\"select-template-text\", \"activate-item\"],\n data() {\n return {\n activeItem: null\n };\n },\n watch: {\n filteredTemplatesText(val, oldVal) {\n if (!oldVal.length || val.length !== oldVal.length) {\n this.activeItem = 0;\n }\n },\n selectItem(val) {\n if (val) {\n this.$emit(\n \"select-template-text\",\n this.filteredTemplatesText[this.activeItem]\n );\n }\n },\n activeUpOrDown() {\n if (this.activeUpOrDown > 0 && this.activeItem < this.filteredTemplatesText.length - 1) {\n this.activeItem++;\n } else if (this.activeUpOrDown < 0 && this.activeItem > 0) {\n this.activeItem--;\n }\n this.$emit(\"activate-item\");\n }\n }\n};\nconst _hoisted_1$b = {\n key: 0,\n class: \"vac-template-container vac-app-box-shadow\"\n};\nconst _hoisted_2$9 = [\"onMouseover\", \"onClick\"];\nconst _hoisted_3$9 = { class: \"vac-template-info\" };\nconst _hoisted_4$9 = { class: \"vac-template-tag\" };\nconst _hoisted_5$7 = { class: \"vac-template-text\" };\nfunction _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, { name: \"vac-slide-up\" }, {\n default: withCtx(() => [\n $props.filteredTemplatesText.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$b, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.filteredTemplatesText, (template, index) => {\n return openBlock(), createElementBlock(\"div\", {\n key: index,\n class: normalizeClass([\"vac-template-box\", { \"vac-template-active\": index === $data.activeItem }]),\n onMouseover: ($event) => $data.activeItem = index,\n onClick: ($event) => _ctx.$emit(\"select-template-text\", template)\n }, [\n createBaseVNode(\"div\", _hoisted_3$9, [\n createBaseVNode(\"div\", _hoisted_4$9, \" /\" + toDisplayString(template.tag), 1),\n createBaseVNode(\"div\", _hoisted_5$7, toDisplayString(template.text), 1)\n ])\n ], 42, _hoisted_2$9);\n }), 128))\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n });\n}\nvar RoomTemplatesText = /* @__PURE__ */ _export_sfc(_sfc_main$b, [[\"render\", _sfc_render$b]]);\nfunction new_byte$4(count) {\n return new Int8Array(count);\n}\nfunction new_short(count) {\n return new Int16Array(count);\n}\nfunction new_int$d(count) {\n return new Int32Array(count);\n}\nfunction new_float$f(count) {\n return new Float32Array(count);\n}\nfunction new_double$1(count) {\n return new Float64Array(count);\n}\nfunction new_float_n$6(args) {\n if (args.length == 1) {\n return new_float$f(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_float_n$6(args));\n }\n return A;\n}\nfunction new_int_n$2(args) {\n if (args.length == 1) {\n return new_int$d(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_int_n$2(args));\n }\n return A;\n}\nfunction new_short_n$1(args) {\n if (args.length == 1) {\n return new_short(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_short_n$1(args));\n }\n return A;\n}\nfunction new_array_n$1(args) {\n if (args.length == 1) {\n return new Array(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_array_n$1(args));\n }\n return A;\n}\nvar Arrays$7 = {};\nArrays$7.fill = function(a, fromIndex, toIndex, val) {\n if (arguments.length == 2) {\n for (var i = 0; i < a.length; i++) {\n a[i] = arguments[1];\n }\n } else {\n for (var i = fromIndex; i < toIndex; i++) {\n a[i] = val;\n }\n }\n};\nvar System$a = {};\nSystem$a.arraycopy = function(src, srcPos, dest, destPos, length) {\n var srcEnd = srcPos + length;\n while (srcPos < srcEnd)\n dest[destPos++] = src[srcPos++];\n};\nSystem$a.out = {};\nSystem$a.out.println = function(message) {\n console.log(message);\n};\nSystem$a.out.printf = function() {\n console.log.apply(console, arguments);\n};\nvar Util$5 = {};\nUtil$5.SQRT2 = 1.4142135623730951;\nUtil$5.FAST_LOG10 = function(x) {\n return Math.log10(x);\n};\nUtil$5.FAST_LOG10_X = function(x, y) {\n return Math.log10(x) * y;\n};\nfunction ShortBlock$3(ordinal) {\n this.ordinal = ordinal;\n}\nShortBlock$3.short_block_allowed = new ShortBlock$3(0);\nShortBlock$3.short_block_coupled = new ShortBlock$3(1);\nShortBlock$3.short_block_dispensed = new ShortBlock$3(2);\nShortBlock$3.short_block_forced = new ShortBlock$3(3);\nvar Float$2 = {};\nFloat$2.MAX_VALUE = 34028235e31;\nfunction VbrMode$7(ordinal) {\n this.ordinal = ordinal;\n}\nVbrMode$7.vbr_off = new VbrMode$7(0);\nVbrMode$7.vbr_mt = new VbrMode$7(1);\nVbrMode$7.vbr_rh = new VbrMode$7(2);\nVbrMode$7.vbr_abr = new VbrMode$7(3);\nVbrMode$7.vbr_mtrh = new VbrMode$7(4);\nVbrMode$7.vbr_default = VbrMode$7.vbr_mtrh;\nvar assert$b = function(x) {\n};\nvar common = {\n System: System$a,\n VbrMode: VbrMode$7,\n Float: Float$2,\n ShortBlock: ShortBlock$3,\n Util: Util$5,\n Arrays: Arrays$7,\n new_array_n: new_array_n$1,\n new_byte: new_byte$4,\n new_double: new_double$1,\n new_float: new_float$f,\n new_float_n: new_float_n$6,\n new_int: new_int$d,\n new_int_n: new_int_n$2,\n new_short,\n new_short_n: new_short_n$1,\n assert: assert$b\n};\nvar System$9 = common.System;\nvar Util$4 = common.Util;\nvar Arrays$6 = common.Arrays;\nvar new_float$e = common.new_float;\nfunction NewMDCT() {\n var enwindow = [\n -477e-9 * 0.740951125354959 / 2384e-9,\n 103951e-9 * 0.740951125354959 / 2384e-9,\n 953674e-9 * 0.740951125354959 / 2384e-9,\n 2841473e-9 * 0.740951125354959 / 2384e-9,\n 0.035758972 * 0.740951125354959 / 2384e-9,\n 3401756e-9 * 0.740951125354959 / 2384e-9,\n 983715e-9 * 0.740951125354959 / 2384e-9,\n 99182e-9 * 0.740951125354959 / 2384e-9,\n 12398e-9 * 0.740951125354959 / 2384e-9,\n 191212e-9 * 0.740951125354959 / 2384e-9,\n 2283096e-9 * 0.740951125354959 / 2384e-9,\n 0.016994476 * 0.740951125354959 / 2384e-9,\n -0.018756866 * 0.740951125354959 / 2384e-9,\n -2630711e-9 * 0.740951125354959 / 2384e-9,\n -247478e-9 * 0.740951125354959 / 2384e-9,\n -14782e-9 * 0.740951125354959 / 2384e-9,\n 0.9063471690191471,\n 0.1960342806591213,\n -477e-9 * 0.773010453362737 / 2384e-9,\n 105858e-9 * 0.773010453362737 / 2384e-9,\n 930786e-9 * 0.773010453362737 / 2384e-9,\n 2521515e-9 * 0.773010453362737 / 2384e-9,\n 0.035694122 * 0.773010453362737 / 2384e-9,\n 3643036e-9 * 0.773010453362737 / 2384e-9,\n 991821e-9 * 0.773010453362737 / 2384e-9,\n 96321e-9 * 0.773010453362737 / 2384e-9,\n 11444e-9 * 0.773010453362737 / 2384e-9,\n 165462e-9 * 0.773010453362737 / 2384e-9,\n 2110004e-9 * 0.773010453362737 / 2384e-9,\n 0.016112804 * 0.773010453362737 / 2384e-9,\n -0.019634247 * 0.773010453362737 / 2384e-9,\n -2803326e-9 * 0.773010453362737 / 2384e-9,\n -277042e-9 * 0.773010453362737 / 2384e-9,\n -16689e-9 * 0.773010453362737 / 2384e-9,\n 0.8206787908286602,\n 0.3901806440322567,\n -477e-9 * 0.803207531480645 / 2384e-9,\n 107288e-9 * 0.803207531480645 / 2384e-9,\n 902653e-9 * 0.803207531480645 / 2384e-9,\n 2174854e-9 * 0.803207531480645 / 2384e-9,\n 0.035586357 * 0.803207531480645 / 2384e-9,\n 3858566e-9 * 0.803207531480645 / 2384e-9,\n 995159e-9 * 0.803207531480645 / 2384e-9,\n 9346e-8 * 0.803207531480645 / 2384e-9,\n 10014e-9 * 0.803207531480645 / 2384e-9,\n 14019e-8 * 0.803207531480645 / 2384e-9,\n 1937389e-9 * 0.803207531480645 / 2384e-9,\n 0.015233517 * 0.803207531480645 / 2384e-9,\n -0.020506859 * 0.803207531480645 / 2384e-9,\n -2974033e-9 * 0.803207531480645 / 2384e-9,\n -30756e-8 * 0.803207531480645 / 2384e-9,\n -1812e-8 * 0.803207531480645 / 2384e-9,\n 0.7416505462720353,\n 0.5805693545089249,\n -477e-9 * 0.831469612302545 / 2384e-9,\n 108242e-9 * 0.831469612302545 / 2384e-9,\n 868797e-9 * 0.831469612302545 / 2384e-9,\n 1800537e-9 * 0.831469612302545 / 2384e-9,\n 0.0354352 * 0.831469612302545 / 2384e-9,\n 4049301e-9 * 0.831469612302545 / 2384e-9,\n 994205e-9 * 0.831469612302545 / 2384e-9,\n 90599e-9 * 0.831469612302545 / 2384e-9,\n 906e-8 * 0.831469612302545 / 2384e-9,\n 116348e-9 * 0.831469612302545 / 2384e-9,\n 1766682e-9 * 0.831469612302545 / 2384e-9,\n 0.014358521 * 0.831469612302545 / 2384e-9,\n -0.021372318 * 0.831469612302545 / 2384e-9,\n -314188e-8 * 0.831469612302545 / 2384e-9,\n -339031e-9 * 0.831469612302545 / 2384e-9,\n -1955e-8 * 0.831469612302545 / 2384e-9,\n 0.6681786379192989,\n 0.7653668647301797,\n -477e-9 * 0.857728610000272 / 2384e-9,\n 108719e-9 * 0.857728610000272 / 2384e-9,\n 82922e-8 * 0.857728610000272 / 2384e-9,\n 1399517e-9 * 0.857728610000272 / 2384e-9,\n 0.035242081 * 0.857728610000272 / 2384e-9,\n 421524e-8 * 0.857728610000272 / 2384e-9,\n 989437e-9 * 0.857728610000272 / 2384e-9,\n 87261e-9 * 0.857728610000272 / 2384e-9,\n 8106e-9 * 0.857728610000272 / 2384e-9,\n 93937e-9 * 0.857728610000272 / 2384e-9,\n 1597881e-9 * 0.857728610000272 / 2384e-9,\n 0.013489246 * 0.857728610000272 / 2384e-9,\n -0.022228718 * 0.857728610000272 / 2384e-9,\n -3306866e-9 * 0.857728610000272 / 2384e-9,\n -371456e-9 * 0.857728610000272 / 2384e-9,\n -21458e-9 * 0.857728610000272 / 2384e-9,\n 0.5993769336819237,\n 0.9427934736519954,\n -477e-9 * 0.881921264348355 / 2384e-9,\n 108719e-9 * 0.881921264348355 / 2384e-9,\n 78392e-8 * 0.881921264348355 / 2384e-9,\n 971317e-9 * 0.881921264348355 / 2384e-9,\n 0.035007 * 0.881921264348355 / 2384e-9,\n 4357815e-9 * 0.881921264348355 / 2384e-9,\n 980854e-9 * 0.881921264348355 / 2384e-9,\n 83923e-9 * 0.881921264348355 / 2384e-9,\n 7629e-9 * 0.881921264348355 / 2384e-9,\n 72956e-9 * 0.881921264348355 / 2384e-9,\n 1432419e-9 * 0.881921264348355 / 2384e-9,\n 0.012627602 * 0.881921264348355 / 2384e-9,\n -0.02307415 * 0.881921264348355 / 2384e-9,\n -3467083e-9 * 0.881921264348355 / 2384e-9,\n -404358e-9 * 0.881921264348355 / 2384e-9,\n -23365e-9 * 0.881921264348355 / 2384e-9,\n 0.5345111359507916,\n 1.111140466039205,\n -954e-9 * 0.903989293123443 / 2384e-9,\n 108242e-9 * 0.903989293123443 / 2384e-9,\n 731945e-9 * 0.903989293123443 / 2384e-9,\n 515938e-9 * 0.903989293123443 / 2384e-9,\n 0.034730434 * 0.903989293123443 / 2384e-9,\n 4477024e-9 * 0.903989293123443 / 2384e-9,\n 968933e-9 * 0.903989293123443 / 2384e-9,\n 80585e-9 * 0.903989293123443 / 2384e-9,\n 6676e-9 * 0.903989293123443 / 2384e-9,\n 52929e-9 * 0.903989293123443 / 2384e-9,\n 1269817e-9 * 0.903989293123443 / 2384e-9,\n 0.011775017 * 0.903989293123443 / 2384e-9,\n -0.023907185 * 0.903989293123443 / 2384e-9,\n -3622532e-9 * 0.903989293123443 / 2384e-9,\n -438213e-9 * 0.903989293123443 / 2384e-9,\n -25272e-9 * 0.903989293123443 / 2384e-9,\n 0.4729647758913199,\n 1.268786568327291,\n -954e-9 * 0.9238795325112867 / 2384e-9,\n 106812e-9 * 0.9238795325112867 / 2384e-9,\n 674248e-9 * 0.9238795325112867 / 2384e-9,\n 33379e-9 * 0.9238795325112867 / 2384e-9,\n 0.034412861 * 0.9238795325112867 / 2384e-9,\n 4573822e-9 * 0.9238795325112867 / 2384e-9,\n 954151e-9 * 0.9238795325112867 / 2384e-9,\n 76771e-9 * 0.9238795325112867 / 2384e-9,\n 6199e-9 * 0.9238795325112867 / 2384e-9,\n 34332e-9 * 0.9238795325112867 / 2384e-9,\n 1111031e-9 * 0.9238795325112867 / 2384e-9,\n 0.010933399 * 0.9238795325112867 / 2384e-9,\n -0.024725437 * 0.9238795325112867 / 2384e-9,\n -3771782e-9 * 0.9238795325112867 / 2384e-9,\n -472546e-9 * 0.9238795325112867 / 2384e-9,\n -27657e-9 * 0.9238795325112867 / 2384e-9,\n 0.41421356237309503,\n 1.414213562373095,\n -954e-9 * 0.941544065183021 / 2384e-9,\n 105381e-9 * 0.941544065183021 / 2384e-9,\n 610352e-9 * 0.941544065183021 / 2384e-9,\n -475883e-9 * 0.941544065183021 / 2384e-9,\n 0.03405571 * 0.941544065183021 / 2384e-9,\n 4649162e-9 * 0.941544065183021 / 2384e-9,\n 935555e-9 * 0.941544065183021 / 2384e-9,\n 73433e-9 * 0.941544065183021 / 2384e-9,\n 5245e-9 * 0.941544065183021 / 2384e-9,\n 17166e-9 * 0.941544065183021 / 2384e-9,\n 956535e-9 * 0.941544065183021 / 2384e-9,\n 0.010103703 * 0.941544065183021 / 2384e-9,\n -0.025527 * 0.941544065183021 / 2384e-9,\n -3914356e-9 * 0.941544065183021 / 2384e-9,\n -507355e-9 * 0.941544065183021 / 2384e-9,\n -30041e-9 * 0.941544065183021 / 2384e-9,\n 0.3578057213145241,\n 1.546020906725474,\n -954e-9 * 0.956940335732209 / 2384e-9,\n 10252e-8 * 0.956940335732209 / 2384e-9,\n 539303e-9 * 0.956940335732209 / 2384e-9,\n -1011848e-9 * 0.956940335732209 / 2384e-9,\n 0.033659935 * 0.956940335732209 / 2384e-9,\n 4703045e-9 * 0.956940335732209 / 2384e-9,\n 915051e-9 * 0.956940335732209 / 2384e-9,\n 70095e-9 * 0.956940335732209 / 2384e-9,\n 4768e-9 * 0.956940335732209 / 2384e-9,\n 954e-9 * 0.956940335732209 / 2384e-9,\n 806808e-9 * 0.956940335732209 / 2384e-9,\n 9287834e-9 * 0.956940335732209 / 2384e-9,\n -0.026310921 * 0.956940335732209 / 2384e-9,\n -4048824e-9 * 0.956940335732209 / 2384e-9,\n -542164e-9 * 0.956940335732209 / 2384e-9,\n -32425e-9 * 0.956940335732209 / 2384e-9,\n 0.3033466836073424,\n 1.66293922460509,\n -1431e-9 * 0.970031253194544 / 2384e-9,\n 99182e-9 * 0.970031253194544 / 2384e-9,\n 462532e-9 * 0.970031253194544 / 2384e-9,\n -1573563e-9 * 0.970031253194544 / 2384e-9,\n 0.033225536 * 0.970031253194544 / 2384e-9,\n 4737377e-9 * 0.970031253194544 / 2384e-9,\n 891685e-9 * 0.970031253194544 / 2384e-9,\n 6628e-8 * 0.970031253194544 / 2384e-9,\n 4292e-9 * 0.970031253194544 / 2384e-9,\n -13828e-9 * 0.970031253194544 / 2384e-9,\n 66185e-8 * 0.970031253194544 / 2384e-9,\n 8487225e-9 * 0.970031253194544 / 2384e-9,\n -0.02707386 * 0.970031253194544 / 2384e-9,\n -4174709e-9 * 0.970031253194544 / 2384e-9,\n -576973e-9 * 0.970031253194544 / 2384e-9,\n -34809e-9 * 0.970031253194544 / 2384e-9,\n 0.2504869601913055,\n 1.76384252869671,\n -1431e-9 * 0.98078528040323 / 2384e-9,\n 95367e-9 * 0.98078528040323 / 2384e-9,\n 378609e-9 * 0.98078528040323 / 2384e-9,\n -2161503e-9 * 0.98078528040323 / 2384e-9,\n 0.032754898 * 0.98078528040323 / 2384e-9,\n 4752159e-9 * 0.98078528040323 / 2384e-9,\n 866413e-9 * 0.98078528040323 / 2384e-9,\n 62943e-9 * 0.98078528040323 / 2384e-9,\n 3815e-9 * 0.98078528040323 / 2384e-9,\n -2718e-8 * 0.98078528040323 / 2384e-9,\n 522137e-9 * 0.98078528040323 / 2384e-9,\n 7703304e-9 * 0.98078528040323 / 2384e-9,\n -0.027815342 * 0.98078528040323 / 2384e-9,\n -4290581e-9 * 0.98078528040323 / 2384e-9,\n -611782e-9 * 0.98078528040323 / 2384e-9,\n -3767e-8 * 0.98078528040323 / 2384e-9,\n 0.198912367379658,\n 1.847759065022573,\n -1907e-9 * 0.989176509964781 / 2384e-9,\n 90122e-9 * 0.989176509964781 / 2384e-9,\n 288486e-9 * 0.989176509964781 / 2384e-9,\n -2774239e-9 * 0.989176509964781 / 2384e-9,\n 0.03224802 * 0.989176509964781 / 2384e-9,\n 4748821e-9 * 0.989176509964781 / 2384e-9,\n 838757e-9 * 0.989176509964781 / 2384e-9,\n 59605e-9 * 0.989176509964781 / 2384e-9,\n 3338e-9 * 0.989176509964781 / 2384e-9,\n -39577e-9 * 0.989176509964781 / 2384e-9,\n 388145e-9 * 0.989176509964781 / 2384e-9,\n 6937027e-9 * 0.989176509964781 / 2384e-9,\n -0.028532982 * 0.989176509964781 / 2384e-9,\n -4395962e-9 * 0.989176509964781 / 2384e-9,\n -646591e-9 * 0.989176509964781 / 2384e-9,\n -40531e-9 * 0.989176509964781 / 2384e-9,\n 0.1483359875383474,\n 1.913880671464418,\n -1907e-9 * 0.995184726672197 / 2384e-9,\n 844e-7 * 0.995184726672197 / 2384e-9,\n 191689e-9 * 0.995184726672197 / 2384e-9,\n -3411293e-9 * 0.995184726672197 / 2384e-9,\n 0.03170681 * 0.995184726672197 / 2384e-9,\n 4728317e-9 * 0.995184726672197 / 2384e-9,\n 809669e-9 * 0.995184726672197 / 2384e-9,\n 5579e-8 * 0.995184726672197 / 2384e-9,\n 3338e-9 * 0.995184726672197 / 2384e-9,\n -50545e-9 * 0.995184726672197 / 2384e-9,\n 259876e-9 * 0.995184726672197 / 2384e-9,\n 6189346e-9 * 0.995184726672197 / 2384e-9,\n -0.029224873 * 0.995184726672197 / 2384e-9,\n -4489899e-9 * 0.995184726672197 / 2384e-9,\n -680923e-9 * 0.995184726672197 / 2384e-9,\n -43392e-9 * 0.995184726672197 / 2384e-9,\n 0.09849140335716425,\n 1.961570560806461,\n -2384e-9 * 0.998795456205172 / 2384e-9,\n 77724e-9 * 0.998795456205172 / 2384e-9,\n 88215e-9 * 0.998795456205172 / 2384e-9,\n -4072189e-9 * 0.998795456205172 / 2384e-9,\n 0.031132698 * 0.998795456205172 / 2384e-9,\n 4691124e-9 * 0.998795456205172 / 2384e-9,\n 779152e-9 * 0.998795456205172 / 2384e-9,\n 52929e-9 * 0.998795456205172 / 2384e-9,\n 2861e-9 * 0.998795456205172 / 2384e-9,\n -60558e-9 * 0.998795456205172 / 2384e-9,\n 137329e-9 * 0.998795456205172 / 2384e-9,\n 546217e-8 * 0.998795456205172 / 2384e-9,\n -0.02989006 * 0.998795456205172 / 2384e-9,\n -4570484e-9 * 0.998795456205172 / 2384e-9,\n -714302e-9 * 0.998795456205172 / 2384e-9,\n -46253e-9 * 0.998795456205172 / 2384e-9,\n 0.04912684976946725,\n 1.990369453344394,\n 0.035780907 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 0.017876148 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 3134727e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 2457142e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 971317e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 218868e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 101566e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 13828e-9 * Util$4.SQRT2 * 0.5 / 2384e-9,\n 0.030526638 / 2384e-9,\n 4638195e-9 / 2384e-9,\n 747204e-9 / 2384e-9,\n 49591e-9 / 2384e-9,\n 4756451e-9 / 2384e-9,\n 21458e-9 / 2384e-9,\n -69618e-9 / 2384e-9\n ];\n var NS = 12;\n var NL2 = 36;\n var win = [\n [\n 2382191739347913e-28,\n 6423305872147834e-28,\n 9400849094049688e-28,\n 1122435026096556e-27,\n 1183840321267481e-27,\n 1122435026096556e-27,\n 940084909404969e-27,\n 6423305872147839e-28,\n 2382191739347918e-28,\n 5456116108943412e-27,\n 4878985199565852e-27,\n 4240448995017367e-27,\n 3559909094758252e-27,\n 2858043359288075e-27,\n 2156177623817898e-27,\n 1475637723558783e-27,\n 8371015190102974e-28,\n 2599706096327376e-28,\n -5456116108943412e-27,\n -4878985199565852e-27,\n -4240448995017367e-27,\n -3559909094758252e-27,\n -2858043359288076e-27,\n -2156177623817898e-27,\n -1475637723558783e-27,\n -8371015190102975e-28,\n -2599706096327376e-28,\n -2382191739347923e-28,\n -6423305872147843e-28,\n -9400849094049696e-28,\n -1122435026096556e-27,\n -1183840321267481e-27,\n -1122435026096556e-27,\n -9400849094049694e-28,\n -642330587214784e-27,\n -2382191739347918e-28\n ],\n [\n 2382191739347913e-28,\n 6423305872147834e-28,\n 9400849094049688e-28,\n 1122435026096556e-27,\n 1183840321267481e-27,\n 1122435026096556e-27,\n 9400849094049688e-28,\n 6423305872147841e-28,\n 2382191739347918e-28,\n 5456116108943413e-27,\n 4878985199565852e-27,\n 4240448995017367e-27,\n 3559909094758253e-27,\n 2858043359288075e-27,\n 2156177623817898e-27,\n 1475637723558782e-27,\n 8371015190102975e-28,\n 2599706096327376e-28,\n -5461314069809755e-27,\n -4921085770524055e-27,\n -4343405037091838e-27,\n -3732668368707687e-27,\n -3093523840190885e-27,\n -2430835727329465e-27,\n -1734679010007751e-27,\n -974825365660928e-27,\n -2797435120168326e-28,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n -2283748241799531e-28,\n -4037858874020686e-28,\n -2146547464825323e-28\n ],\n [\n 0.1316524975873958,\n 0.414213562373095,\n 0.7673269879789602,\n 1.091308501069271,\n 1.303225372841206,\n 1.56968557711749,\n 1.920982126971166,\n 2.414213562373094,\n 3.171594802363212,\n 4.510708503662055,\n 7.595754112725146,\n 22.90376554843115,\n 0.984807753012208,\n 0.6427876096865394,\n 0.3420201433256688,\n 0.9396926207859084,\n -0.1736481776669303,\n -0.7660444431189779,\n 0.8660254037844387,\n 0.5,\n -0.5144957554275265,\n -0.4717319685649723,\n -0.3133774542039019,\n -0.1819131996109812,\n -0.09457419252642064,\n -0.04096558288530405,\n -0.01419856857247115,\n -0.003699974673760037,\n 0.8574929257125442,\n 0.8817419973177052,\n 0.9496286491027329,\n 0.9833145924917901,\n 0.9955178160675857,\n 0.9991605581781475,\n 0.999899195244447,\n 0.9999931550702802\n ],\n [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 2283748241799531e-28,\n 4037858874020686e-28,\n 2146547464825323e-28,\n 5461314069809755e-27,\n 4921085770524055e-27,\n 4343405037091838e-27,\n 3732668368707687e-27,\n 3093523840190885e-27,\n 2430835727329466e-27,\n 1734679010007751e-27,\n 974825365660928e-27,\n 2797435120168326e-28,\n -5456116108943413e-27,\n -4878985199565852e-27,\n -4240448995017367e-27,\n -3559909094758253e-27,\n -2858043359288075e-27,\n -2156177623817898e-27,\n -1475637723558782e-27,\n -8371015190102975e-28,\n -2599706096327376e-28,\n -2382191739347913e-28,\n -6423305872147834e-28,\n -9400849094049688e-28,\n -1122435026096556e-27,\n -1183840321267481e-27,\n -1122435026096556e-27,\n -9400849094049688e-28,\n -6423305872147841e-28,\n -2382191739347918e-28\n ]\n ];\n var tantab_l = win[Encoder.SHORT_TYPE];\n var cx = win[Encoder.SHORT_TYPE];\n var ca = win[Encoder.SHORT_TYPE];\n var cs = win[Encoder.SHORT_TYPE];\n var order = [\n 0,\n 1,\n 16,\n 17,\n 8,\n 9,\n 24,\n 25,\n 4,\n 5,\n 20,\n 21,\n 12,\n 13,\n 28,\n 29,\n 2,\n 3,\n 18,\n 19,\n 10,\n 11,\n 26,\n 27,\n 6,\n 7,\n 22,\n 23,\n 14,\n 15,\n 30,\n 31\n ];\n function window_subband(x1, x1Pos, a) {\n var wp = 10;\n var x2 = x1Pos + 238 - 14 - 286;\n for (var i = -15; i < 0; i++) {\n var w, s, t;\n w = enwindow[wp + -10];\n s = x1[x2 + -224] * w;\n t = x1[x1Pos + 224] * w;\n w = enwindow[wp + -9];\n s += x1[x2 + -160] * w;\n t += x1[x1Pos + 160] * w;\n w = enwindow[wp + -8];\n s += x1[x2 + -96] * w;\n t += x1[x1Pos + 96] * w;\n w = enwindow[wp + -7];\n s += x1[x2 + -32] * w;\n t += x1[x1Pos + 32] * w;\n w = enwindow[wp + -6];\n s += x1[x2 + 32] * w;\n t += x1[x1Pos + -32] * w;\n w = enwindow[wp + -5];\n s += x1[x2 + 96] * w;\n t += x1[x1Pos + -96] * w;\n w = enwindow[wp + -4];\n s += x1[x2 + 160] * w;\n t += x1[x1Pos + -160] * w;\n w = enwindow[wp + -3];\n s += x1[x2 + 224] * w;\n t += x1[x1Pos + -224] * w;\n w = enwindow[wp + -2];\n s += x1[x1Pos + -256] * w;\n t -= x1[x2 + 256] * w;\n w = enwindow[wp + -1];\n s += x1[x1Pos + -192] * w;\n t -= x1[x2 + 192] * w;\n w = enwindow[wp + 0];\n s += x1[x1Pos + -128] * w;\n t -= x1[x2 + 128] * w;\n w = enwindow[wp + 1];\n s += x1[x1Pos + -64] * w;\n t -= x1[x2 + 64] * w;\n w = enwindow[wp + 2];\n s += x1[x1Pos + 0] * w;\n t -= x1[x2 + 0] * w;\n w = enwindow[wp + 3];\n s += x1[x1Pos + 64] * w;\n t -= x1[x2 + -64] * w;\n w = enwindow[wp + 4];\n s += x1[x1Pos + 128] * w;\n t -= x1[x2 + -128] * w;\n w = enwindow[wp + 5];\n s += x1[x1Pos + 192] * w;\n t -= x1[x2 + -192] * w;\n s *= enwindow[wp + 6];\n w = t - s;\n a[30 + i * 2] = t + s;\n a[31 + i * 2] = enwindow[wp + 7] * w;\n wp += 18;\n x1Pos--;\n x2++;\n }\n {\n var s, t, u, v;\n t = x1[x1Pos + -16] * enwindow[wp + -10];\n s = x1[x1Pos + -32] * enwindow[wp + -2];\n t += (x1[x1Pos + -48] - x1[x1Pos + 16]) * enwindow[wp + -9];\n s += x1[x1Pos + -96] * enwindow[wp + -1];\n t += (x1[x1Pos + -80] + x1[x1Pos + 48]) * enwindow[wp + -8];\n s += x1[x1Pos + -160] * enwindow[wp + 0];\n t += (x1[x1Pos + -112] - x1[x1Pos + 80]) * enwindow[wp + -7];\n s += x1[x1Pos + -224] * enwindow[wp + 1];\n t += (x1[x1Pos + -144] + x1[x1Pos + 112]) * enwindow[wp + -6];\n s -= x1[x1Pos + 32] * enwindow[wp + 2];\n t += (x1[x1Pos + -176] - x1[x1Pos + 144]) * enwindow[wp + -5];\n s -= x1[x1Pos + 96] * enwindow[wp + 3];\n t += (x1[x1Pos + -208] + x1[x1Pos + 176]) * enwindow[wp + -4];\n s -= x1[x1Pos + 160] * enwindow[wp + 4];\n t += (x1[x1Pos + -240] - x1[x1Pos + 208]) * enwindow[wp + -3];\n s -= x1[x1Pos + 224];\n u = s - t;\n v = s + t;\n t = a[14];\n s = a[15] - t;\n a[31] = v + t;\n a[30] = u + s;\n a[15] = u - s;\n a[14] = v - t;\n }\n {\n var xr;\n xr = a[28] - a[0];\n a[0] += a[28];\n a[28] = xr * enwindow[wp + -2 * 18 + 7];\n xr = a[29] - a[1];\n a[1] += a[29];\n a[29] = xr * enwindow[wp + -2 * 18 + 7];\n xr = a[26] - a[2];\n a[2] += a[26];\n a[26] = xr * enwindow[wp + -4 * 18 + 7];\n xr = a[27] - a[3];\n a[3] += a[27];\n a[27] = xr * enwindow[wp + -4 * 18 + 7];\n xr = a[24] - a[4];\n a[4] += a[24];\n a[24] = xr * enwindow[wp + -6 * 18 + 7];\n xr = a[25] - a[5];\n a[5] += a[25];\n a[25] = xr * enwindow[wp + -6 * 18 + 7];\n xr = a[22] - a[6];\n a[6] += a[22];\n a[22] = xr * Util$4.SQRT2;\n xr = a[23] - a[7];\n a[7] += a[23];\n a[23] = xr * Util$4.SQRT2 - a[7];\n a[7] -= a[6];\n a[22] -= a[7];\n a[23] -= a[22];\n xr = a[6];\n a[6] = a[31] - xr;\n a[31] = a[31] + xr;\n xr = a[7];\n a[7] = a[30] - xr;\n a[30] = a[30] + xr;\n xr = a[22];\n a[22] = a[15] - xr;\n a[15] = a[15] + xr;\n xr = a[23];\n a[23] = a[14] - xr;\n a[14] = a[14] + xr;\n xr = a[20] - a[8];\n a[8] += a[20];\n a[20] = xr * enwindow[wp + -10 * 18 + 7];\n xr = a[21] - a[9];\n a[9] += a[21];\n a[21] = xr * enwindow[wp + -10 * 18 + 7];\n xr = a[18] - a[10];\n a[10] += a[18];\n a[18] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[19] - a[11];\n a[11] += a[19];\n a[19] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[16] - a[12];\n a[12] += a[16];\n a[16] = xr * enwindow[wp + -14 * 18 + 7];\n xr = a[17] - a[13];\n a[13] += a[17];\n a[17] = xr * enwindow[wp + -14 * 18 + 7];\n xr = -a[20] + a[24];\n a[20] += a[24];\n a[24] = xr * enwindow[wp + -12 * 18 + 7];\n xr = -a[21] + a[25];\n a[21] += a[25];\n a[25] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[4] - a[8];\n a[4] += a[8];\n a[8] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[5] - a[9];\n a[5] += a[9];\n a[9] = xr * enwindow[wp + -12 * 18 + 7];\n xr = a[0] - a[12];\n a[0] += a[12];\n a[12] = xr * enwindow[wp + -4 * 18 + 7];\n xr = a[1] - a[13];\n a[1] += a[13];\n a[13] = xr * enwindow[wp + -4 * 18 + 7];\n xr = a[16] - a[28];\n a[16] += a[28];\n a[28] = xr * enwindow[wp + -4 * 18 + 7];\n xr = -a[17] + a[29];\n a[17] += a[29];\n a[29] = xr * enwindow[wp + -4 * 18 + 7];\n xr = Util$4.SQRT2 * (a[2] - a[10]);\n a[2] += a[10];\n a[10] = xr;\n xr = Util$4.SQRT2 * (a[3] - a[11]);\n a[3] += a[11];\n a[11] = xr;\n xr = Util$4.SQRT2 * (-a[18] + a[26]);\n a[18] += a[26];\n a[26] = xr - a[18];\n xr = Util$4.SQRT2 * (-a[19] + a[27]);\n a[19] += a[27];\n a[27] = xr - a[19];\n xr = a[2];\n a[19] -= a[3];\n a[3] -= xr;\n a[2] = a[31] - xr;\n a[31] += xr;\n xr = a[3];\n a[11] -= a[19];\n a[18] -= xr;\n a[3] = a[30] - xr;\n a[30] += xr;\n xr = a[18];\n a[27] -= a[11];\n a[19] -= xr;\n a[18] = a[15] - xr;\n a[15] += xr;\n xr = a[19];\n a[10] -= xr;\n a[19] = a[14] - xr;\n a[14] += xr;\n xr = a[10];\n a[11] -= xr;\n a[10] = a[23] - xr;\n a[23] += xr;\n xr = a[11];\n a[26] -= xr;\n a[11] = a[22] - xr;\n a[22] += xr;\n xr = a[26];\n a[27] -= xr;\n a[26] = a[7] - xr;\n a[7] += xr;\n xr = a[27];\n a[27] = a[6] - xr;\n a[6] += xr;\n xr = Util$4.SQRT2 * (a[0] - a[4]);\n a[0] += a[4];\n a[4] = xr;\n xr = Util$4.SQRT2 * (a[1] - a[5]);\n a[1] += a[5];\n a[5] = xr;\n xr = Util$4.SQRT2 * (a[16] - a[20]);\n a[16] += a[20];\n a[20] = xr;\n xr = Util$4.SQRT2 * (a[17] - a[21]);\n a[17] += a[21];\n a[21] = xr;\n xr = -Util$4.SQRT2 * (a[8] - a[12]);\n a[8] += a[12];\n a[12] = xr - a[8];\n xr = -Util$4.SQRT2 * (a[9] - a[13]);\n a[9] += a[13];\n a[13] = xr - a[9];\n xr = -Util$4.SQRT2 * (a[25] - a[29]);\n a[25] += a[29];\n a[29] = xr - a[25];\n xr = -Util$4.SQRT2 * (a[24] + a[28]);\n a[24] -= a[28];\n a[28] = xr - a[24];\n xr = a[24] - a[16];\n a[24] = xr;\n xr = a[20] - xr;\n a[20] = xr;\n xr = a[28] - xr;\n a[28] = xr;\n xr = a[25] - a[17];\n a[25] = xr;\n xr = a[21] - xr;\n a[21] = xr;\n xr = a[29] - xr;\n a[29] = xr;\n xr = a[17] - a[1];\n a[17] = xr;\n xr = a[9] - xr;\n a[9] = xr;\n xr = a[25] - xr;\n a[25] = xr;\n xr = a[5] - xr;\n a[5] = xr;\n xr = a[21] - xr;\n a[21] = xr;\n xr = a[13] - xr;\n a[13] = xr;\n xr = a[29] - xr;\n a[29] = xr;\n xr = a[1] - a[0];\n a[1] = xr;\n xr = a[16] - xr;\n a[16] = xr;\n xr = a[17] - xr;\n a[17] = xr;\n xr = a[8] - xr;\n a[8] = xr;\n xr = a[9] - xr;\n a[9] = xr;\n xr = a[24] - xr;\n a[24] = xr;\n xr = a[25] - xr;\n a[25] = xr;\n xr = a[4] - xr;\n a[4] = xr;\n xr = a[5] - xr;\n a[5] = xr;\n xr = a[20] - xr;\n a[20] = xr;\n xr = a[21] - xr;\n a[21] = xr;\n xr = a[12] - xr;\n a[12] = xr;\n xr = a[13] - xr;\n a[13] = xr;\n xr = a[28] - xr;\n a[28] = xr;\n xr = a[29] - xr;\n a[29] = xr;\n xr = a[0];\n a[0] += a[31];\n a[31] -= xr;\n xr = a[1];\n a[1] += a[30];\n a[30] -= xr;\n xr = a[16];\n a[16] += a[15];\n a[15] -= xr;\n xr = a[17];\n a[17] += a[14];\n a[14] -= xr;\n xr = a[8];\n a[8] += a[23];\n a[23] -= xr;\n xr = a[9];\n a[9] += a[22];\n a[22] -= xr;\n xr = a[24];\n a[24] += a[7];\n a[7] -= xr;\n xr = a[25];\n a[25] += a[6];\n a[6] -= xr;\n xr = a[4];\n a[4] += a[27];\n a[27] -= xr;\n xr = a[5];\n a[5] += a[26];\n a[26] -= xr;\n xr = a[20];\n a[20] += a[11];\n a[11] -= xr;\n xr = a[21];\n a[21] += a[10];\n a[10] -= xr;\n xr = a[12];\n a[12] += a[19];\n a[19] -= xr;\n xr = a[13];\n a[13] += a[18];\n a[18] -= xr;\n xr = a[28];\n a[28] += a[3];\n a[3] -= xr;\n xr = a[29];\n a[29] += a[2];\n a[2] -= xr;\n }\n }\n function mdct_short(inout, inoutPos) {\n for (var l = 0; l < 3; l++) {\n var tc0, tc1, tc2, ts0, ts1, ts2;\n ts0 = inout[inoutPos + 2 * 3] * win[Encoder.SHORT_TYPE][0] - inout[inoutPos + 5 * 3];\n tc0 = inout[inoutPos + 0 * 3] * win[Encoder.SHORT_TYPE][2] - inout[inoutPos + 3 * 3];\n tc1 = ts0 + tc0;\n tc2 = ts0 - tc0;\n ts0 = inout[inoutPos + 5 * 3] * win[Encoder.SHORT_TYPE][0] + inout[inoutPos + 2 * 3];\n tc0 = inout[inoutPos + 3 * 3] * win[Encoder.SHORT_TYPE][2] + inout[inoutPos + 0 * 3];\n ts1 = ts0 + tc0;\n ts2 = -ts0 + tc0;\n tc0 = (inout[inoutPos + 1 * 3] * win[Encoder.SHORT_TYPE][1] - inout[inoutPos + 4 * 3]) * 2069978111953089e-26;\n ts0 = (inout[inoutPos + 4 * 3] * win[Encoder.SHORT_TYPE][1] + inout[inoutPos + 1 * 3]) * 2069978111953089e-26;\n inout[inoutPos + 3 * 0] = tc1 * 190752519173728e-25 + tc0;\n inout[inoutPos + 3 * 5] = -ts1 * 190752519173728e-25 + ts0;\n tc2 = tc2 * 0.8660254037844387 * 1907525191737281e-26;\n ts1 = ts1 * 0.5 * 1907525191737281e-26 + ts0;\n inout[inoutPos + 3 * 1] = tc2 - ts1;\n inout[inoutPos + 3 * 2] = tc2 + ts1;\n tc1 = tc1 * 0.5 * 1907525191737281e-26 - tc0;\n ts2 = ts2 * 0.8660254037844387 * 1907525191737281e-26;\n inout[inoutPos + 3 * 3] = tc1 + ts2;\n inout[inoutPos + 3 * 4] = tc1 - ts2;\n inoutPos++;\n }\n }\n function mdct_long(out, outPos, _in) {\n var ct, st;\n {\n var tc1, tc2, tc3, tc4, ts5, ts6, ts7, ts8;\n tc1 = _in[17] - _in[9];\n tc3 = _in[15] - _in[11];\n tc4 = _in[14] - _in[12];\n ts5 = _in[0] + _in[8];\n ts6 = _in[1] + _in[7];\n ts7 = _in[2] + _in[6];\n ts8 = _in[3] + _in[5];\n out[outPos + 17] = ts5 + ts7 - ts8 - (ts6 - _in[4]);\n st = (ts5 + ts7 - ts8) * cx[12 + 7] + (ts6 - _in[4]);\n ct = (tc1 - tc3 - tc4) * cx[12 + 6];\n out[outPos + 5] = ct + st;\n out[outPos + 6] = ct - st;\n tc2 = (_in[16] - _in[10]) * cx[12 + 6];\n ts6 = ts6 * cx[12 + 7] + _in[4];\n ct = tc1 * cx[12 + 0] + tc2 + tc3 * cx[12 + 1] + tc4 * cx[12 + 2];\n st = -ts5 * cx[12 + 4] + ts6 - ts7 * cx[12 + 5] + ts8 * cx[12 + 3];\n out[outPos + 1] = ct + st;\n out[outPos + 2] = ct - st;\n ct = tc1 * cx[12 + 1] - tc2 - tc3 * cx[12 + 2] + tc4 * cx[12 + 0];\n st = -ts5 * cx[12 + 5] + ts6 - ts7 * cx[12 + 3] + ts8 * cx[12 + 4];\n out[outPos + 9] = ct + st;\n out[outPos + 10] = ct - st;\n ct = tc1 * cx[12 + 2] - tc2 + tc3 * cx[12 + 0] - tc4 * cx[12 + 1];\n st = ts5 * cx[12 + 3] - ts6 + ts7 * cx[12 + 4] - ts8 * cx[12 + 5];\n out[outPos + 13] = ct + st;\n out[outPos + 14] = ct - st;\n }\n {\n var ts1, ts2, ts3, ts4, tc5, tc6, tc7, tc8;\n ts1 = _in[8] - _in[0];\n ts3 = _in[6] - _in[2];\n ts4 = _in[5] - _in[3];\n tc5 = _in[17] + _in[9];\n tc6 = _in[16] + _in[10];\n tc7 = _in[15] + _in[11];\n tc8 = _in[14] + _in[12];\n out[outPos + 0] = tc5 + tc7 + tc8 + (tc6 + _in[13]);\n ct = (tc5 + tc7 + tc8) * cx[12 + 7] - (tc6 + _in[13]);\n st = (ts1 - ts3 + ts4) * cx[12 + 6];\n out[outPos + 11] = ct + st;\n out[outPos + 12] = ct - st;\n ts2 = (_in[7] - _in[1]) * cx[12 + 6];\n tc6 = _in[13] - tc6 * cx[12 + 7];\n ct = tc5 * cx[12 + 3] - tc6 + tc7 * cx[12 + 4] + tc8 * cx[12 + 5];\n st = ts1 * cx[12 + 2] + ts2 + ts3 * cx[12 + 0] + ts4 * cx[12 + 1];\n out[outPos + 3] = ct + st;\n out[outPos + 4] = ct - st;\n ct = -tc5 * cx[12 + 5] + tc6 - tc7 * cx[12 + 3] - tc8 * cx[12 + 4];\n st = ts1 * cx[12 + 1] + ts2 - ts3 * cx[12 + 2] - ts4 * cx[12 + 0];\n out[outPos + 7] = ct + st;\n out[outPos + 8] = ct - st;\n ct = -tc5 * cx[12 + 4] + tc6 - tc7 * cx[12 + 5] - tc8 * cx[12 + 3];\n st = ts1 * cx[12 + 0] - ts2 + ts3 * cx[12 + 1] - ts4 * cx[12 + 2];\n out[outPos + 15] = ct + st;\n out[outPos + 16] = ct - st;\n }\n }\n this.mdct_sub48 = function(gfc, w0, w1) {\n var wk = w0;\n var wkPos = 286;\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n var band;\n var gi = gfc.l3_side.tt[gr][ch];\n var mdct_enc = gi.xr;\n var mdct_encPos = 0;\n var samp = gfc.sb_sample[ch][1 - gr];\n var sampPos = 0;\n for (var k = 0; k < 18 / 2; k++) {\n window_subband(wk, wkPos, samp[sampPos]);\n window_subband(wk, wkPos + 32, samp[sampPos + 1]);\n sampPos += 2;\n wkPos += 64;\n for (band = 1; band < 32; band += 2) {\n samp[sampPos - 1][band] *= -1;\n }\n }\n for (band = 0; band < 32; band++, mdct_encPos += 18) {\n var type = gi.block_type;\n var band0 = gfc.sb_sample[ch][gr];\n var band1 = gfc.sb_sample[ch][1 - gr];\n if (gi.mixed_block_flag != 0 && band < 2)\n type = 0;\n if (gfc.amp_filter[band] < 1e-12) {\n Arrays$6.fill(mdct_enc, mdct_encPos + 0, mdct_encPos + 18, 0);\n } else {\n if (gfc.amp_filter[band] < 1) {\n for (var k = 0; k < 18; k++) {\n band1[k][order[band]] *= gfc.amp_filter[band];\n }\n }\n if (type == Encoder.SHORT_TYPE) {\n for (var k = -NS / 4; k < 0; k++) {\n var w = win[Encoder.SHORT_TYPE][k + 3];\n mdct_enc[mdct_encPos + k * 3 + 9] = band0[9 + k][order[band]] * w - band0[8 - k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 18] = band0[14 - k][order[band]] * w + band0[15 + k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 10] = band0[15 + k][order[band]] * w - band0[14 - k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 19] = band1[2 - k][order[band]] * w + band1[3 + k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 11] = band1[3 + k][order[band]] * w - band1[2 - k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 20] = band1[8 - k][order[band]] * w + band1[9 + k][order[band]];\n }\n mdct_short(mdct_enc, mdct_encPos);\n } else {\n var work = new_float$e(18);\n for (var k = -NL2 / 4; k < 0; k++) {\n var a, b;\n a = win[type][k + 27] * band1[k + 9][order[band]] + win[type][k + 36] * band1[8 - k][order[band]];\n b = win[type][k + 9] * band0[k + 9][order[band]] - win[type][k + 18] * band0[8 - k][order[band]];\n work[k + 9] = a - b * tantab_l[3 + k + 9];\n work[k + 18] = a * tantab_l[3 + k + 9] + b;\n }\n mdct_long(mdct_enc, mdct_encPos, work);\n }\n }\n if (type != Encoder.SHORT_TYPE && band != 0) {\n for (var k = 7; k >= 0; --k) {\n var bu, bd;\n bu = mdct_enc[mdct_encPos + k] * ca[20 + k] + mdct_enc[mdct_encPos + -1 - k] * cs[28 + k];\n bd = mdct_enc[mdct_encPos + k] * cs[28 + k] - mdct_enc[mdct_encPos + -1 - k] * ca[20 + k];\n mdct_enc[mdct_encPos + -1 - k] = bu;\n mdct_enc[mdct_encPos + k] = bd;\n }\n }\n }\n }\n wk = w1;\n wkPos = 286;\n if (gfc.mode_gr == 1) {\n for (var i = 0; i < 18; i++) {\n System$9.arraycopy(\n gfc.sb_sample[ch][1][i],\n 0,\n gfc.sb_sample[ch][0][i],\n 0,\n 32\n );\n }\n }\n }\n };\n}\nvar System$8 = common.System;\nvar new_float$d = common.new_float;\nvar new_float_n$5 = common.new_float_n;\nfunction III_psy_xmin() {\n this.l = new_float$d(Encoder.SBMAX_l);\n this.s = new_float_n$5([Encoder.SBMAX_s, 3]);\n var self2 = this;\n this.assign = function(iii_psy_xmin) {\n System$8.arraycopy(iii_psy_xmin.l, 0, self2.l, 0, Encoder.SBMAX_l);\n for (var i = 0; i < Encoder.SBMAX_s; i++) {\n for (var j = 0; j < 3; j++) {\n self2.s[i][j] = iii_psy_xmin.s[i][j];\n }\n }\n };\n}\nfunction III_psy_ratio() {\n this.thm = new III_psy_xmin();\n this.en = new III_psy_xmin();\n}\nfunction MPEGMode(ordinal) {\n var _ordinal = ordinal;\n this.ordinal = function() {\n return _ordinal;\n };\n}\nMPEGMode.STEREO = new MPEGMode(0);\nMPEGMode.JOINT_STEREO = new MPEGMode(1);\nMPEGMode.DUAL_CHANNEL = new MPEGMode(2);\nMPEGMode.MONO = new MPEGMode(3);\nMPEGMode.NOT_SET = new MPEGMode(4);\nvar System$7 = common.System;\nvar VbrMode$6 = common.VbrMode;\nvar new_array_n = common.new_array_n;\nvar new_float$c = common.new_float;\nvar new_float_n$4 = common.new_float_n;\nvar new_int$c = common.new_int;\nvar assert$a = common.assert;\nEncoder.ENCDELAY = 576;\nEncoder.POSTDELAY = 1152;\nEncoder.MDCTDELAY = 48;\nEncoder.FFTOFFSET = 224 + Encoder.MDCTDELAY;\nEncoder.DECDELAY = 528;\nEncoder.SBLIMIT = 32;\nEncoder.CBANDS = 64;\nEncoder.SBPSY_l = 21;\nEncoder.SBPSY_s = 12;\nEncoder.SBMAX_l = 22;\nEncoder.SBMAX_s = 13;\nEncoder.PSFB21 = 6;\nEncoder.PSFB12 = 6;\nEncoder.BLKSIZE = 1024;\nEncoder.HBLKSIZE = Encoder.BLKSIZE / 2 + 1;\nEncoder.BLKSIZE_s = 256;\nEncoder.HBLKSIZE_s = Encoder.BLKSIZE_s / 2 + 1;\nEncoder.NORM_TYPE = 0;\nEncoder.START_TYPE = 1;\nEncoder.SHORT_TYPE = 2;\nEncoder.STOP_TYPE = 3;\nEncoder.MPG_MD_LR_LR = 0;\nEncoder.MPG_MD_LR_I = 1;\nEncoder.MPG_MD_MS_LR = 2;\nEncoder.MPG_MD_MS_I = 3;\nEncoder.fircoef = [\n -0.0207887 * 5,\n -0.0378413 * 5,\n -0.0432472 * 5,\n -0.031183 * 5,\n 779609e-23 * 5,\n 0.0467745 * 5,\n 0.10091 * 5,\n 0.151365 * 5,\n 0.187098 * 5\n];\nfunction Encoder() {\n var FFTOFFSET = Encoder.FFTOFFSET;\n var MPG_MD_MS_LR = Encoder.MPG_MD_MS_LR;\n var bs = null;\n this.psy = null;\n var psy = null;\n var vbr = null;\n var qupvt = null;\n this.setModules = function(_bs, _psy, _qupvt, _vbr) {\n bs = _bs;\n this.psy = _psy;\n psy = _psy;\n vbr = _vbr;\n qupvt = _qupvt;\n };\n var newMDCT = new NewMDCT();\n function adjust_ATH(gfc) {\n var gr2_max, max_pow;\n if (gfc.ATH.useAdjust == 0) {\n gfc.ATH.adjust = 1;\n return;\n }\n max_pow = gfc.loudness_sq[0][0];\n gr2_max = gfc.loudness_sq[1][0];\n if (gfc.channels_out == 2) {\n max_pow += gfc.loudness_sq[0][1];\n gr2_max += gfc.loudness_sq[1][1];\n } else {\n max_pow += max_pow;\n gr2_max += gr2_max;\n }\n if (gfc.mode_gr == 2) {\n max_pow = Math.max(max_pow, gr2_max);\n }\n max_pow *= 0.5;\n max_pow *= gfc.ATH.aaSensitivityP;\n if (max_pow > 0.03125) {\n if (gfc.ATH.adjust >= 1) {\n gfc.ATH.adjust = 1;\n } else {\n if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n gfc.ATH.adjust = gfc.ATH.adjustLimit;\n }\n }\n gfc.ATH.adjustLimit = 1;\n } else {\n var adj_lim_new = 31.98 * max_pow + 625e-6;\n if (gfc.ATH.adjust >= adj_lim_new) {\n gfc.ATH.adjust *= adj_lim_new * 0.075 + 0.925;\n if (gfc.ATH.adjust < adj_lim_new) {\n gfc.ATH.adjust = adj_lim_new;\n }\n } else {\n if (gfc.ATH.adjustLimit >= adj_lim_new) {\n gfc.ATH.adjust = adj_lim_new;\n } else {\n if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n gfc.ATH.adjust = gfc.ATH.adjustLimit;\n }\n }\n }\n gfc.ATH.adjustLimit = adj_lim_new;\n }\n }\n function updateStats(gfc) {\n var gr, ch;\n assert$a(gfc.bitrate_index >= 0 && gfc.bitrate_index < 16);\n assert$a(gfc.mode_ext >= 0 && gfc.mode_ext < 4);\n gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][4]++;\n gfc.bitrate_stereoMode_Hist[15][4]++;\n if (gfc.channels_out == 2) {\n gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][gfc.mode_ext]++;\n gfc.bitrate_stereoMode_Hist[15][gfc.mode_ext]++;\n }\n for (gr = 0; gr < gfc.mode_gr; ++gr) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n var bt = gfc.l3_side.tt[gr][ch].block_type | 0;\n if (gfc.l3_side.tt[gr][ch].mixed_block_flag != 0)\n bt = 4;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][bt]++;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][5]++;\n gfc.bitrate_blockType_Hist[15][bt]++;\n gfc.bitrate_blockType_Hist[15][5]++;\n }\n }\n }\n function lame_encode_frame_init(gfp, inbuf) {\n var gfc = gfp.internal_flags;\n var ch, gr;\n if (gfc.lame_encode_frame_init == 0) {\n var i, j;\n var primebuff0 = new_float$c(286 + 1152 + 576);\n var primebuff1 = new_float$c(286 + 1152 + 576);\n gfc.lame_encode_frame_init = 1;\n for (i = 0, j = 0; i < 286 + 576 * (1 + gfc.mode_gr); ++i) {\n if (i < 576 * gfc.mode_gr) {\n primebuff0[i] = 0;\n if (gfc.channels_out == 2)\n primebuff1[i] = 0;\n } else {\n primebuff0[i] = inbuf[0][j];\n if (gfc.channels_out == 2)\n primebuff1[i] = inbuf[1][j];\n ++j;\n }\n }\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.l3_side.tt[gr][ch].block_type = Encoder.SHORT_TYPE;\n }\n }\n newMDCT.mdct_sub48(gfc, primebuff0, primebuff1);\n assert$a(gfc.mf_size >= Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET);\n assert$a(gfc.mf_size >= 512 + gfp.framesize - 32);\n }\n }\n this.lame_encode_mp3_frame = function(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n var mp3count;\n var masking_LR = new_array_n([2, 2]);\n masking_LR[0][0] = new III_psy_ratio();\n masking_LR[0][1] = new III_psy_ratio();\n masking_LR[1][0] = new III_psy_ratio();\n masking_LR[1][1] = new III_psy_ratio();\n var masking_MS = new_array_n([2, 2]);\n masking_MS[0][0] = new III_psy_ratio();\n masking_MS[0][1] = new III_psy_ratio();\n masking_MS[1][0] = new III_psy_ratio();\n masking_MS[1][1] = new III_psy_ratio();\n var masking;\n var inbuf = [null, null];\n var gfc = gfp.internal_flags;\n var tot_ener = new_float_n$4([2, 4]);\n var ms_ener_ratio = [0.5, 0.5];\n var pe = [\n [0, 0],\n [0, 0]\n ];\n var pe_MS = [\n [0, 0],\n [0, 0]\n ];\n var pe_use;\n var ch, gr;\n inbuf[0] = inbuf_l;\n inbuf[1] = inbuf_r;\n if (gfc.lame_encode_frame_init == 0) {\n lame_encode_frame_init(gfp, inbuf);\n }\n gfc.padding = 0;\n if ((gfc.slot_lag -= gfc.frac_SpF) < 0) {\n gfc.slot_lag += gfp.out_samplerate;\n gfc.padding = 1;\n }\n if (gfc.psymodel != 0) {\n var ret;\n var bufp = [null, null];\n var bufpPos = 0;\n var blocktype = new_int$c(2);\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n bufp[ch] = inbuf[ch];\n bufpPos = 576 + gr * 576 - Encoder.FFTOFFSET;\n }\n if (gfp.VBR == VbrMode$6.vbr_mtrh || gfp.VBR == VbrMode$6.vbr_mt) {\n ret = psy.L3psycho_anal_vbr(\n gfp,\n bufp,\n bufpPos,\n gr,\n masking_LR,\n masking_MS,\n pe[gr],\n pe_MS[gr],\n tot_ener[gr],\n blocktype\n );\n } else {\n ret = psy.L3psycho_anal_ns(\n gfp,\n bufp,\n bufpPos,\n gr,\n masking_LR,\n masking_MS,\n pe[gr],\n pe_MS[gr],\n tot_ener[gr],\n blocktype\n );\n }\n if (ret != 0)\n return -4;\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n ms_ener_ratio[gr] = tot_ener[gr][2] + tot_ener[gr][3];\n if (ms_ener_ratio[gr] > 0) {\n ms_ener_ratio[gr] = tot_ener[gr][3] / ms_ener_ratio[gr];\n }\n }\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n cod_info.block_type = blocktype[ch];\n cod_info.mixed_block_flag = 0;\n }\n }\n } else {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.l3_side.tt[gr][ch].block_type = Encoder.NORM_TYPE;\n gfc.l3_side.tt[gr][ch].mixed_block_flag = 0;\n pe_MS[gr][ch] = pe[gr][ch] = 700;\n }\n }\n }\n adjust_ATH(gfc);\n newMDCT.mdct_sub48(gfc, inbuf[0], inbuf[1]);\n gfc.mode_ext = Encoder.MPG_MD_LR_LR;\n if (gfp.force_ms) {\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n } else if (gfp.mode == MPEGMode.JOINT_STEREO) {\n var sum_pe_MS = 0;\n var sum_pe_LR = 0;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n sum_pe_MS += pe_MS[gr][ch];\n sum_pe_LR += pe[gr][ch];\n }\n }\n if (sum_pe_MS <= 1 * sum_pe_LR) {\n var gi0 = gfc.l3_side.tt[0];\n var gi1 = gfc.l3_side.tt[gfc.mode_gr - 1];\n if (gi0[0].block_type == gi0[1].block_type && gi1[0].block_type == gi1[1].block_type) {\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n }\n }\n }\n if (gfc.mode_ext == MPG_MD_MS_LR) {\n masking = masking_MS;\n pe_use = pe_MS;\n } else {\n masking = masking_LR;\n pe_use = pe;\n }\n if (gfp.analysis && gfc.pinfo != null) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.pinfo.ms_ratio[gr] = gfc.ms_ratio[gr];\n gfc.pinfo.ms_ener_ratio[gr] = ms_ener_ratio[gr];\n gfc.pinfo.blocktype[gr][ch] = gfc.l3_side.tt[gr][ch].block_type;\n gfc.pinfo.pe[gr][ch] = pe_use[gr][ch];\n System$7.arraycopy(\n gfc.l3_side.tt[gr][ch].xr,\n 0,\n gfc.pinfo.xr[gr][ch],\n 0,\n 576\n );\n if (gfc.mode_ext == MPG_MD_MS_LR) {\n gfc.pinfo.ers[gr][ch] = gfc.pinfo.ers[gr][ch + 2];\n System$7.arraycopy(\n gfc.pinfo.energy[gr][ch + 2],\n 0,\n gfc.pinfo.energy[gr][ch],\n 0,\n gfc.pinfo.energy[gr][ch].length\n );\n }\n }\n }\n }\n if (gfp.VBR == VbrMode$6.vbr_off || gfp.VBR == VbrMode$6.vbr_abr) {\n var i;\n var f;\n for (i = 0; i < 18; i++)\n gfc.nsPsy.pefirbuf[i] = gfc.nsPsy.pefirbuf[i + 1];\n f = 0;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++)\n f += pe_use[gr][ch];\n }\n gfc.nsPsy.pefirbuf[18] = f;\n f = gfc.nsPsy.pefirbuf[9];\n for (i = 0; i < 9; i++) {\n f += (gfc.nsPsy.pefirbuf[i] + gfc.nsPsy.pefirbuf[18 - i]) * Encoder.fircoef[i];\n }\n f = 670 * 5 * gfc.mode_gr * gfc.channels_out / f;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n pe_use[gr][ch] *= f;\n }\n }\n }\n gfc.iteration_loop.iteration_loop(gfp, pe_use, ms_ener_ratio, masking);\n bs.format_bitstream(gfp);\n mp3count = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 1);\n if (gfp.bWriteVbrTag)\n vbr.addVbrFrame(gfp);\n if (gfp.analysis && gfc.pinfo != null) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var j;\n for (j = 0; j < FFTOFFSET; j++) {\n gfc.pinfo.pcmdata[ch][j] = gfc.pinfo.pcmdata[ch][j + gfp.framesize];\n }\n for (j = FFTOFFSET; j < 1600; j++) {\n gfc.pinfo.pcmdata[ch][j] = inbuf[ch][j - FFTOFFSET];\n }\n }\n qupvt.set_frame_pinfo(gfp, masking);\n }\n updateStats(gfc);\n return mp3count;\n };\n}\nvar Util$3 = common.Util;\nvar new_float$b = common.new_float;\nfunction FFT() {\n var window2 = new_float$b(Encoder.BLKSIZE);\n var window_s = new_float$b(Encoder.BLKSIZE_s / 2);\n var costab = [\n 0.9238795325112867,\n 0.3826834323650898,\n 0.9951847266721969,\n 0.0980171403295606,\n 0.9996988186962042,\n 0.02454122852291229,\n 0.9999811752826011,\n 0.006135884649154475\n ];\n function fht(fz, fzPos, n) {\n var tri = 0;\n var k4;\n var fi;\n var gi;\n n <<= 1;\n var fn = fzPos + n;\n k4 = 4;\n do {\n var s1, c1;\n var i, k1, k2, k3, kx;\n kx = k4 >> 1;\n k1 = k4;\n k2 = k4 << 1;\n k3 = k2 + k1;\n k4 = k2 << 1;\n fi = fzPos;\n gi = fi + kx;\n do {\n var f0, f1, f2, f3;\n f1 = fz[fi + 0] - fz[fi + k1];\n f0 = fz[fi + 0] + fz[fi + k1];\n f3 = fz[fi + k2] - fz[fi + k3];\n f2 = fz[fi + k2] + fz[fi + k3];\n fz[fi + k2] = f0 - f2;\n fz[fi + 0] = f0 + f2;\n fz[fi + k3] = f1 - f3;\n fz[fi + k1] = f1 + f3;\n f1 = fz[gi + 0] - fz[gi + k1];\n f0 = fz[gi + 0] + fz[gi + k1];\n f3 = Util$3.SQRT2 * fz[gi + k3];\n f2 = Util$3.SQRT2 * fz[gi + k2];\n fz[gi + k2] = f0 - f2;\n fz[gi + 0] = f0 + f2;\n fz[gi + k3] = f1 - f3;\n fz[gi + k1] = f1 + f3;\n gi += k4;\n fi += k4;\n } while (fi < fn);\n c1 = costab[tri + 0];\n s1 = costab[tri + 1];\n for (i = 1; i < kx; i++) {\n var c2, s2;\n c2 = 1 - 2 * s1 * s1;\n s2 = 2 * s1 * c1;\n fi = fzPos + i;\n gi = fzPos + k1 - i;\n do {\n var a, b, g0, f0, f1, g1, f2, g2, f3, g3;\n b = s2 * fz[fi + k1] - c2 * fz[gi + k1];\n a = c2 * fz[fi + k1] + s2 * fz[gi + k1];\n f1 = fz[fi + 0] - a;\n f0 = fz[fi + 0] + a;\n g1 = fz[gi + 0] - b;\n g0 = fz[gi + 0] + b;\n b = s2 * fz[fi + k3] - c2 * fz[gi + k3];\n a = c2 * fz[fi + k3] + s2 * fz[gi + k3];\n f3 = fz[fi + k2] - a;\n f2 = fz[fi + k2] + a;\n g3 = fz[gi + k2] - b;\n g2 = fz[gi + k2] + b;\n b = s1 * f2 - c1 * g3;\n a = c1 * f2 + s1 * g3;\n fz[fi + k2] = f0 - a;\n fz[fi + 0] = f0 + a;\n fz[gi + k3] = g1 - b;\n fz[gi + k1] = g1 + b;\n b = c1 * g2 - s1 * f3;\n a = s1 * g2 + c1 * f3;\n fz[gi + k2] = g0 - a;\n fz[gi + 0] = g0 + a;\n fz[fi + k3] = f1 - b;\n fz[fi + k1] = f1 + b;\n gi += k4;\n fi += k4;\n } while (fi < fn);\n c2 = c1;\n c1 = c2 * costab[tri + 0] - s1 * costab[tri + 1];\n s1 = c2 * costab[tri + 1] + s1 * costab[tri + 0];\n }\n tri += 2;\n } while (k4 < n);\n }\n var rv_tbl = [\n 0,\n 128,\n 64,\n 192,\n 32,\n 160,\n 96,\n 224,\n 16,\n 144,\n 80,\n 208,\n 48,\n 176,\n 112,\n 240,\n 8,\n 136,\n 72,\n 200,\n 40,\n 168,\n 104,\n 232,\n 24,\n 152,\n 88,\n 216,\n 56,\n 184,\n 120,\n 248,\n 4,\n 132,\n 68,\n 196,\n 36,\n 164,\n 100,\n 228,\n 20,\n 148,\n 84,\n 212,\n 52,\n 180,\n 116,\n 244,\n 12,\n 140,\n 76,\n 204,\n 44,\n 172,\n 108,\n 236,\n 28,\n 156,\n 92,\n 220,\n 60,\n 188,\n 124,\n 252,\n 2,\n 130,\n 66,\n 194,\n 34,\n 162,\n 98,\n 226,\n 18,\n 146,\n 82,\n 210,\n 50,\n 178,\n 114,\n 242,\n 10,\n 138,\n 74,\n 202,\n 42,\n 170,\n 106,\n 234,\n 26,\n 154,\n 90,\n 218,\n 58,\n 186,\n 122,\n 250,\n 6,\n 134,\n 70,\n 198,\n 38,\n 166,\n 102,\n 230,\n 22,\n 150,\n 86,\n 214,\n 54,\n 182,\n 118,\n 246,\n 14,\n 142,\n 78,\n 206,\n 46,\n 174,\n 110,\n 238,\n 30,\n 158,\n 94,\n 222,\n 62,\n 190,\n 126,\n 254\n ];\n this.fft_short = function(gfc, x_real, chn, buffer, bufPos) {\n for (var b = 0; b < 3; b++) {\n var x = Encoder.BLKSIZE_s / 2;\n var k = 65535 & 576 / 3 * (b + 1);\n var j = Encoder.BLKSIZE_s / 8 - 1;\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[j << 2] & 255;\n f0 = window_s[i] * buffer[chn][bufPos + i + k];\n w = window_s[127 - i] * buffer[chn][bufPos + i + k + 128];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 64] * buffer[chn][bufPos + i + k + 64];\n w = window_s[63 - i] * buffer[chn][bufPos + i + k + 192];\n f3 = f2 - w;\n f2 = f2 + w;\n x -= 4;\n x_real[b][x + 0] = f0 + f2;\n x_real[b][x + 2] = f0 - f2;\n x_real[b][x + 1] = f1 + f3;\n x_real[b][x + 3] = f1 - f3;\n f0 = window_s[i + 1] * buffer[chn][bufPos + i + k + 1];\n w = window_s[126 - i] * buffer[chn][bufPos + i + k + 129];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 65] * buffer[chn][bufPos + i + k + 65];\n w = window_s[62 - i] * buffer[chn][bufPos + i + k + 193];\n f3 = f2 - w;\n f2 = f2 + w;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 0] = f0 + f2;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 2] = f0 - f2;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 1] = f1 + f3;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 3] = f1 - f3;\n } while (--j >= 0);\n fht(x_real[b], x, Encoder.BLKSIZE_s / 2);\n }\n };\n this.fft_long = function(gfc, y, chn, buffer, bufPos) {\n var jj = Encoder.BLKSIZE / 8 - 1;\n var x = Encoder.BLKSIZE / 2;\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[jj] & 255;\n f0 = window2[i] * buffer[chn][bufPos + i];\n w = window2[i + 512] * buffer[chn][bufPos + i + 512];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window2[i + 256] * buffer[chn][bufPos + i + 256];\n w = window2[i + 768] * buffer[chn][bufPos + i + 768];\n f3 = f2 - w;\n f2 = f2 + w;\n x -= 4;\n y[x + 0] = f0 + f2;\n y[x + 2] = f0 - f2;\n y[x + 1] = f1 + f3;\n y[x + 3] = f1 - f3;\n f0 = window2[i + 1] * buffer[chn][bufPos + i + 1];\n w = window2[i + 513] * buffer[chn][bufPos + i + 513];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window2[i + 257] * buffer[chn][bufPos + i + 257];\n w = window2[i + 769] * buffer[chn][bufPos + i + 769];\n f3 = f2 - w;\n f2 = f2 + w;\n y[x + Encoder.BLKSIZE / 2 + 0] = f0 + f2;\n y[x + Encoder.BLKSIZE / 2 + 2] = f0 - f2;\n y[x + Encoder.BLKSIZE / 2 + 1] = f1 + f3;\n y[x + Encoder.BLKSIZE / 2 + 3] = f1 - f3;\n } while (--jj >= 0);\n fht(y, x, Encoder.BLKSIZE / 2);\n };\n this.init_fft = function(gfc) {\n for (var i = 0; i < Encoder.BLKSIZE; i++) {\n window2[i] = 0.42 - 0.5 * Math.cos(2 * Math.PI * (i + 0.5) / Encoder.BLKSIZE) + 0.08 * Math.cos(4 * Math.PI * (i + 0.5) / Encoder.BLKSIZE);\n }\n for (var i = 0; i < Encoder.BLKSIZE_s / 2; i++) {\n window_s[i] = 0.5 * (1 - Math.cos(2 * Math.PI * (i + 0.5) / Encoder.BLKSIZE_s));\n }\n };\n}\nvar VbrMode$5 = common.VbrMode;\nvar Float$1 = common.Float;\nvar ShortBlock$2 = common.ShortBlock;\nvar Util$2 = common.Util;\nvar Arrays$5 = common.Arrays;\nvar new_float$a = common.new_float;\nvar new_float_n$3 = common.new_float_n;\nvar new_int$b = common.new_int;\nvar assert$9 = common.assert;\nfunction PsyModel() {\n var fft = new FFT();\n var LOG10 = 2.302585092994046;\n var rpelev = 2;\n var rpelev2 = 16;\n var rpelev_s = 2;\n var rpelev2_s = 16;\n var DELBARK = 0.34;\n var VO_SCALE = 1 / (14752 * 14752) / (Encoder.BLKSIZE / 2);\n var temporalmask_sustain_sec = 0.01;\n var NS_PREECHO_ATT0 = 0.8;\n var NS_PREECHO_ATT1 = 0.6;\n var NS_PREECHO_ATT2 = 0.3;\n var NS_MSFIX = 3.5;\n var NSFIRLEN = 21;\n var LN_TO_LOG10 = 0.2302585093;\n function NON_LINEAR_SCALE_ENERGY(x) {\n return x;\n }\n function psycho_loudness_approx(energy, gfc) {\n var loudness_power = 0;\n for (var i = 0; i < Encoder.BLKSIZE / 2; ++i) {\n loudness_power += energy[i] * gfc.ATH.eql_w[i];\n }\n loudness_power *= VO_SCALE;\n return loudness_power;\n }\n function compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, wsamp_lPos, wsamp_s, wsamp_sPos, gr_out, chn, buffer, bufPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) {\n fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n } else if (chn == 2) {\n for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util$2.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util$2.SQRT2 * 0.5;\n }\n for (var b = 2; b >= 0; --b) {\n for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n var l = wsamp_s[wsamp_sPos + 0][b][j];\n var r = wsamp_s[wsamp_sPos + 1][b][j];\n wsamp_s[wsamp_sPos + 0][b][j] = (l + r) * Util$2.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][b][j] = (l - r) * Util$2.SQRT2 * 0.5;\n }\n }\n }\n fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n var re = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 - j];\n var im = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 + j];\n fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n (re * re + im * im) * 0.5\n );\n }\n for (var b = 2; b >= 0; --b) {\n fftenergy_s[b][0] = wsamp_s[wsamp_sPos + 0][b][0];\n fftenergy_s[b][0] *= fftenergy_s[b][0];\n for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n var re = wsamp_s[wsamp_sPos + 0][b][Encoder.BLKSIZE_s / 2 - j];\n var im = wsamp_s[wsamp_sPos + 0][b][Encoder.BLKSIZE_s / 2 + j];\n fftenergy_s[b][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n (re * re + im * im) * 0.5\n );\n }\n }\n {\n var totalenergy = 0;\n for (var j = 11; j < Encoder.HBLKSIZE; j++)\n totalenergy += fftenergy[j];\n gfc.tot_ener[chn] = totalenergy;\n }\n if (gfp.analysis) {\n for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n if (gfp.athaa_loudapprox == 2 && chn < 2) {\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n var I1LIMIT = 8;\n var I2LIMIT = 23;\n var MLIMIT = 15;\n var ma_max_i1;\n var ma_max_i2;\n var ma_max_m;\n var tab = [\n 1,\n 0.79433,\n 0.63096,\n 0.63096,\n 0.63096,\n 0.63096,\n 0.63096,\n 0.25119,\n 0.11749\n ];\n function init_mask_add_max_values() {\n ma_max_i1 = Math.pow(10, (I1LIMIT + 1) / 16);\n ma_max_i2 = Math.pow(10, (I2LIMIT + 1) / 16);\n ma_max_m = Math.pow(10, MLIMIT / 10);\n }\n var table1 = [\n 3.3246 * 3.3246,\n 3.23837 * 3.23837,\n 3.15437 * 3.15437,\n 3.00412 * 3.00412,\n 2.86103 * 2.86103,\n 2.65407 * 2.65407,\n 2.46209 * 2.46209,\n 2.284 * 2.284,\n 2.11879 * 2.11879,\n 1.96552 * 1.96552,\n 1.82335 * 1.82335,\n 1.69146 * 1.69146,\n 1.56911 * 1.56911,\n 1.46658 * 1.46658,\n 1.37074 * 1.37074,\n 1.31036 * 1.31036,\n 1.25264 * 1.25264,\n 1.20648 * 1.20648,\n 1.16203 * 1.16203,\n 1.12765 * 1.12765,\n 1.09428 * 1.09428,\n 1.0659 * 1.0659,\n 1.03826 * 1.03826,\n 1.01895 * 1.01895,\n 1\n ];\n var table2 = [\n 1.33352 * 1.33352,\n 1.35879 * 1.35879,\n 1.38454 * 1.38454,\n 1.39497 * 1.39497,\n 1.40548 * 1.40548,\n 1.3537 * 1.3537,\n 1.30382 * 1.30382,\n 1.22321 * 1.22321,\n 1.14758 * 1.14758,\n 1\n ];\n var table3 = [\n 2.35364 * 2.35364,\n 2.29259 * 2.29259,\n 2.23313 * 2.23313,\n 2.12675 * 2.12675,\n 2.02545 * 2.02545,\n 1.87894 * 1.87894,\n 1.74303 * 1.74303,\n 1.61695 * 1.61695,\n 1.49999 * 1.49999,\n 1.39148 * 1.39148,\n 1.29083 * 1.29083,\n 1.19746 * 1.19746,\n 1.11084 * 1.11084,\n 1.03826 * 1.03826\n ];\n function mask_add(m1, m2, kk, b, gfc, shortblock) {\n var ratio;\n if (m2 > m1) {\n if (m2 < m1 * ma_max_i2)\n ratio = m2 / m1;\n else\n return m1 + m2;\n } else {\n if (m1 >= m2 * ma_max_i2)\n return m1 + m2;\n ratio = m1 / m2;\n }\n m1 += m2;\n if (b + 3 <= 3 + 3) {\n if (ratio >= ma_max_i1) {\n return m1;\n }\n var i = 0 | Util$2.FAST_LOG10_X(ratio, 16);\n return m1 * table2[i];\n }\n var i = 0 | Util$2.FAST_LOG10_X(ratio, 16);\n if (shortblock != 0) {\n m2 = gfc.ATH.cb_s[kk] * gfc.ATH.adjust;\n } else {\n m2 = gfc.ATH.cb_l[kk] * gfc.ATH.adjust;\n }\n if (m1 < ma_max_m * m2) {\n if (m1 > m2) {\n var f, r;\n f = 1;\n if (i <= 13)\n f = table3[i];\n r = Util$2.FAST_LOG10_X(m1 / m2, 10 / 15);\n return m1 * ((table1[i] - f) * r + f);\n }\n if (i > 13)\n return m1;\n return m1 * table3[i];\n }\n return m1 * table1[i];\n }\n var table2_ = [\n 1.33352 * 1.33352,\n 1.35879 * 1.35879,\n 1.38454 * 1.38454,\n 1.39497 * 1.39497,\n 1.40548 * 1.40548,\n 1.3537 * 1.3537,\n 1.30382 * 1.30382,\n 1.22321 * 1.22321,\n 1.14758 * 1.14758,\n 1\n ];\n function vbrpsy_mask_add(m1, m2, b) {\n var ratio;\n if (m1 < 0) {\n m1 = 0;\n }\n if (m2 < 0) {\n m2 = 0;\n }\n if (m1 <= 0) {\n return m2;\n }\n if (m2 <= 0) {\n return m1;\n }\n if (m2 > m1) {\n ratio = m2 / m1;\n } else {\n ratio = m1 / m2;\n }\n if (b >= -2 && b <= 2) {\n if (ratio >= ma_max_i1) {\n return m1 + m2;\n } else {\n var i = 0 | Util$2.FAST_LOG10_X(ratio, 16);\n return (m1 + m2) * table2_[i];\n }\n }\n if (ratio < ma_max_i2) {\n return m1 + m2;\n }\n if (m1 < m2) {\n m1 = m2;\n }\n return m1;\n }\n function calc_interchannel_masking(gfp, ratio) {\n var gfc = gfp.internal_flags;\n if (gfc.channels_out > 1) {\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n var l = gfc.thm[0].l[sb];\n var r = gfc.thm[1].l[sb];\n gfc.thm[0].l[sb] += r * ratio;\n gfc.thm[1].l[sb] += l * ratio;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var l = gfc.thm[0].s[sb][sblock];\n var r = gfc.thm[1].s[sb][sblock];\n gfc.thm[0].s[sb][sblock] += r * ratio;\n gfc.thm[1].s[sb][sblock] += l * ratio;\n }\n }\n }\n }\n function msfix1(gfc) {\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n if (gfc.thm[0].l[sb] > 1.58 * gfc.thm[1].l[sb] || gfc.thm[1].l[sb] > 1.58 * gfc.thm[0].l[sb]) {\n continue;\n }\n var mld = gfc.mld_l[sb] * gfc.en[3].l[sb];\n var rmid = Math.max(gfc.thm[2].l[sb], Math.min(gfc.thm[3].l[sb], mld));\n mld = gfc.mld_l[sb] * gfc.en[2].l[sb];\n var rside = Math.max(gfc.thm[3].l[sb], Math.min(gfc.thm[2].l[sb], mld));\n gfc.thm[2].l[sb] = rmid;\n gfc.thm[3].l[sb] = rside;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n if (gfc.thm[0].s[sb][sblock] > 1.58 * gfc.thm[1].s[sb][sblock] || gfc.thm[1].s[sb][sblock] > 1.58 * gfc.thm[0].s[sb][sblock]) {\n continue;\n }\n var mld = gfc.mld_s[sb] * gfc.en[3].s[sb][sblock];\n var rmid = Math.max(\n gfc.thm[2].s[sb][sblock],\n Math.min(gfc.thm[3].s[sb][sblock], mld)\n );\n mld = gfc.mld_s[sb] * gfc.en[2].s[sb][sblock];\n var rside = Math.max(\n gfc.thm[3].s[sb][sblock],\n Math.min(gfc.thm[2].s[sb][sblock], mld)\n );\n gfc.thm[2].s[sb][sblock] = rmid;\n gfc.thm[3].s[sb][sblock] = rside;\n }\n }\n }\n function ns_msfix(gfc, msfix, athadjust) {\n var msfix2 = msfix;\n var athlower = Math.pow(10, athadjust);\n msfix *= 2;\n msfix2 *= 2;\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n var thmLR, thmM, thmS, ath;\n ath = gfc.ATH.cb_l[gfc.bm_l[sb]] * athlower;\n thmLR = Math.min(\n Math.max(gfc.thm[0].l[sb], ath),\n Math.max(gfc.thm[1].l[sb], ath)\n );\n thmM = Math.max(gfc.thm[2].l[sb], ath);\n thmS = Math.max(gfc.thm[3].l[sb], ath);\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix2 / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n }\n gfc.thm[2].l[sb] = Math.min(thmM, gfc.thm[2].l[sb]);\n gfc.thm[3].l[sb] = Math.min(thmS, gfc.thm[3].l[sb]);\n }\n athlower *= Encoder.BLKSIZE_s / Encoder.BLKSIZE;\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var thmLR, thmM, thmS, ath;\n ath = gfc.ATH.cb_s[gfc.bm_s[sb]] * athlower;\n thmLR = Math.min(\n Math.max(gfc.thm[0].s[sb][sblock], ath),\n Math.max(gfc.thm[1].s[sb][sblock], ath)\n );\n thmM = Math.max(gfc.thm[2].s[sb][sblock], ath);\n thmS = Math.max(gfc.thm[3].s[sb][sblock], ath);\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n }\n gfc.thm[2].s[sb][sblock] = Math.min(gfc.thm[2].s[sb][sblock], thmM);\n gfc.thm[3].s[sb][sblock] = Math.min(gfc.thm[3].s[sb][sblock], thmS);\n }\n }\n }\n function convert_partition2scalefac_s(gfc, eb, thr, chn, sblock) {\n var sb, b;\n var enn = 0;\n var thmm = 0;\n for (sb = b = 0; sb < Encoder.SBMAX_s; ++b, ++sb) {\n var bo_s_sb = gfc.bo_s[sb];\n var npart_s = gfc.npart_s;\n var b_lim = bo_s_sb < npart_s ? bo_s_sb : npart_s;\n while (b < b_lim) {\n assert$9(eb[b] >= 0);\n assert$9(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].s[sb][sblock] = enn;\n gfc.thm[chn].s[sb][sblock] = thmm;\n if (b >= npart_s) {\n ++sb;\n break;\n }\n assert$9(eb[b] >= 0);\n assert$9(thr[b] >= 0);\n {\n var w_curr = gfc.PSY.bo_s_weight[sb];\n var w_next = 1 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].s[sb][sblock] += enn;\n gfc.thm[chn].s[sb][sblock] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n }\n for (; sb < Encoder.SBMAX_s; ++sb) {\n gfc.en[chn].s[sb][sblock] = 0;\n gfc.thm[chn].s[sb][sblock] = 0;\n }\n }\n function convert_partition2scalefac_l(gfc, eb, thr, chn) {\n var sb, b;\n var enn = 0;\n var thmm = 0;\n for (sb = b = 0; sb < Encoder.SBMAX_l; ++b, ++sb) {\n var bo_l_sb = gfc.bo_l[sb];\n var npart_l = gfc.npart_l;\n var b_lim = bo_l_sb < npart_l ? bo_l_sb : npart_l;\n while (b < b_lim) {\n assert$9(eb[b] >= 0);\n assert$9(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].l[sb] = enn;\n gfc.thm[chn].l[sb] = thmm;\n if (b >= npart_l) {\n ++sb;\n break;\n }\n assert$9(eb[b] >= 0);\n assert$9(thr[b] >= 0);\n {\n var w_curr = gfc.PSY.bo_l_weight[sb];\n var w_next = 1 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].l[sb] += enn;\n gfc.thm[chn].l[sb] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n }\n for (; sb < Encoder.SBMAX_l; ++sb) {\n gfc.en[chn].l[sb] = 0;\n gfc.thm[chn].l[sb] = 0;\n }\n }\n function compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var j, b;\n for (b = j = 0; b < gfc.npart_s; ++b) {\n var ebb = 0;\n var n = gfc.numlines_s[b];\n for (var i = 0; i < n; ++i, ++j) {\n var el = fftenergy_s[sblock][j];\n ebb += el;\n }\n eb[b] = ebb;\n }\n assert$9(b == gfc.npart_s);\n for (j = b = 0; b < gfc.npart_s; b++) {\n var kk = gfc.s3ind_s[b][0];\n var ecb = gfc.s3_ss[j++] * eb[kk];\n ++kk;\n while (kk <= gfc.s3ind_s[b][1]) {\n ecb += gfc.s3_ss[j] * eb[kk];\n ++j;\n ++kk;\n }\n {\n var x = rpelev_s * gfc.nb_s1[chn][b];\n thr[b] = Math.min(ecb, x);\n }\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE) {\n var x = rpelev2_s * gfc.nb_s2[chn][b];\n var y = thr[b];\n thr[b] = Math.min(x, y);\n }\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n assert$9(thr[b] >= 0);\n }\n for (; b <= Encoder.CBANDS; ++b) {\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n function block_type_set(gfp, uselongblock, blocktype_d, blocktype) {\n var gfc = gfp.internal_flags;\n if (gfp.short_blocks == ShortBlock$2.short_block_coupled && !(uselongblock[0] != 0 && uselongblock[1] != 0)) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n blocktype[chn] = Encoder.NORM_TYPE;\n if (gfp.short_blocks == ShortBlock$2.short_block_dispensed) {\n uselongblock[chn] = 1;\n }\n if (gfp.short_blocks == ShortBlock$2.short_block_forced) {\n uselongblock[chn] = 0;\n }\n if (uselongblock[chn] != 0) {\n assert$9(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE) {\n blocktype[chn] = Encoder.STOP_TYPE;\n }\n } else {\n blocktype[chn] = Encoder.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n gfc.blocktype_old[chn] = Encoder.START_TYPE;\n }\n if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE) {\n gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n }\n }\n blocktype_d[chn] = gfc.blocktype_old[chn];\n gfc.blocktype_old[chn] = blocktype[chn];\n }\n }\n function NS_INTERP(x, y, r) {\n if (r >= 1) {\n return x;\n }\n if (r <= 0)\n return y;\n if (y > 0) {\n return Math.pow(x / y, r) * y;\n }\n return 0;\n }\n var regcoef_s = [\n 11.8,\n 13.6,\n 17.2,\n 32,\n 46.5,\n 51.3,\n 57.5,\n 67.1,\n 71.5,\n 84.6,\n 97.6,\n 130\n ];\n function pecalc_s(mr, masking_lower) {\n var pe_s = 1236.28 / 4;\n for (var sb = 0; sb < Encoder.SBMAX_s - 1; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var thm = mr.thm.s[sb][sblock];\n if (thm > 0) {\n var x = thm * masking_lower;\n var en = mr.en.s[sb][sblock];\n if (en > x) {\n if (en > x * 1e10) {\n pe_s += regcoef_s[sb] * (10 * LOG10);\n } else {\n pe_s += regcoef_s[sb] * Util$2.FAST_LOG10(en / x);\n }\n }\n }\n }\n }\n return pe_s;\n }\n var regcoef_l = [\n 6.8,\n 5.8,\n 5.8,\n 6.4,\n 6.5,\n 9.9,\n 12.1,\n 14.4,\n 15,\n 18.9,\n 21.6,\n 26.9,\n 34.2,\n 40.2,\n 46.8,\n 56.5,\n 60.7,\n 73.9,\n 85.7,\n 93.4,\n 126.1\n ];\n function pecalc_l(mr, masking_lower) {\n var pe_l = 1124.23 / 4;\n for (var sb = 0; sb < Encoder.SBMAX_l - 1; sb++) {\n var thm = mr.thm.l[sb];\n if (thm > 0) {\n var x = thm * masking_lower;\n var en = mr.en.l[sb];\n if (en > x) {\n if (en > x * 1e10) {\n pe_l += regcoef_l[sb] * (10 * LOG10);\n } else {\n pe_l += regcoef_l[sb] * Util$2.FAST_LOG10(en / x);\n }\n }\n }\n }\n return pe_l;\n }\n function calc_energy(gfc, fftenergy, eb, max, avg) {\n var b, j;\n for (b = j = 0; b < gfc.npart_l; ++b) {\n var ebb = 0;\n var m = 0;\n var i;\n for (i = 0; i < gfc.numlines_l[b]; ++i, ++j) {\n var el = fftenergy[j];\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n max[b] = m;\n avg[b] = ebb * gfc.rnumlines_l[b];\n assert$9(gfc.rnumlines_l[b] >= 0);\n assert$9(eb[b] >= 0);\n assert$9(max[b] >= 0);\n assert$9(avg[b] >= 0);\n }\n }\n function calc_mask_index_l(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n if (a > 0) {\n var m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert$9(gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1 > 0);\n a = 20 * (m * 2 - a) / (a * (gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n for (b = 1; b < gfc.npart_l - 1; b++) {\n a = avg[b - 1] + avg[b] + avg[b + 1];\n if (a > 0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert$9(\n gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1 > 0\n );\n a = 20 * (m * 3 - a) / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n }\n assert$9(b == gfc.npart_l - 1);\n a = avg[b - 1] + avg[b];\n if (a > 0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n assert$9(gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1 > 0);\n a = 20 * (m * 2 - a) / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n assert$9(b == gfc.npart_l - 1);\n }\n var fircoef = [\n -865163e-23 * 2,\n -851586e-8 * 2,\n -674764e-23 * 2,\n 0.0209036 * 2,\n -336639e-22 * 2,\n -0.0438162 * 2,\n -154175e-22 * 2,\n 0.0931738 * 2,\n -552212e-22 * 2,\n -0.313819 * 2\n ];\n this.L3psycho_anal_ns = function(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n var gfc = gfp.internal_flags;\n var wsamp_L = new_float_n$3([2, Encoder.BLKSIZE]);\n var wsamp_S = new_float_n$3([2, 3, Encoder.BLKSIZE_s]);\n var eb_l = new_float$a(Encoder.CBANDS + 1);\n var eb_s = new_float$a(Encoder.CBANDS + 1);\n var thr = new_float$a(Encoder.CBANDS + 2);\n var blocktype = new_int$b(2);\n var uselongblock = new_int$b(2);\n var numchn, chn;\n var b, i, j, k;\n var sb, sblock;\n var ns_hpfsmpl = new_float_n$3([2, 576]);\n var pcfact;\n var mask_idx_l = new_int$b(Encoder.CBANDS + 2);\n var mask_idx_s = new_int$b(Encoder.CBANDS + 2);\n Arrays$5.fill(mask_idx_s, 0);\n numchn = gfc.channels_out;\n if (gfp.mode == MPEGMode.JOINT_STEREO)\n numchn = 4;\n if (gfp.VBR == VbrMode$5.vbr_off) {\n pcfact = gfc.ResvMax == 0 ? 0 : gfc.ResvSize / gfc.ResvMax * 0.5;\n } else if (gfp.VBR == VbrMode$5.vbr_rh || gfp.VBR == VbrMode$5.vbr_mtrh || gfp.VBR == VbrMode$5.vbr_mt) {\n pcfact = 0.6;\n } else\n pcfact = 1;\n for (chn = 0; chn < gfc.channels_out; chn++) {\n var firbuf2 = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n for (i = 0; i < 576; i++) {\n var sum1, sum2;\n sum1 = firbuf2[firbufPos + i + 10];\n sum2 = 0;\n for (j = 0; j < (NSFIRLEN - 1) / 2 - 1; j += 2) {\n sum1 += fircoef[j] * (firbuf2[firbufPos + i + j] + firbuf2[firbufPos + i + NSFIRLEN - j]);\n sum2 += fircoef[j + 1] * (firbuf2[firbufPos + i + j + 1] + firbuf2[firbufPos + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (numchn > 2) {\n masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n for (chn = 0; chn < numchn; chn++) {\n var wsamp_l;\n var wsamp_s;\n var en_subshort = new_float$a(12);\n var en_short = [0, 0, 0, 0];\n var attack_intensity = new_float$a(12);\n var ns_uselongblock = 1;\n var attackThreshold;\n var max = new_float$a(Encoder.CBANDS);\n var avg = new_float$a(Encoder.CBANDS);\n var ns_attacks = [0, 0, 0, 0];\n var fftenergy = new_float$a(Encoder.HBLKSIZE);\n var fftenergy_s = new_float_n$3([3, Encoder.HBLKSIZE_s]);\n assert$9(gfc.npart_s <= Encoder.CBANDS);\n assert$9(gfc.npart_l <= Encoder.CBANDS);\n for (i = 0; i < 3; i++) {\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n assert$9(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i] / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n if (chn == 2) {\n for (i = 0; i < 576; i++) {\n var l, r;\n l = ns_hpfsmpl[0][i];\n r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n }\n {\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n for (i = 0; i < 9; i++) {\n var pfe = pfPos + 576 / 9;\n var p2 = 1;\n for (; pfPos < pfe; pfPos++) {\n if (p2 < Math.abs(pf[pfPos]))\n p2 = Math.abs(pf[pfPos]);\n }\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p2;\n en_short[1 + i / 3] += p2;\n if (p2 > en_subshort[i + 3 - 2]) {\n assert$9(en_subshort[i + 3 - 2] > 0);\n p2 = p2 / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p2 * 10) {\n p2 = en_subshort[i + 3 - 2] / (p2 * 10);\n } else\n p2 = 0;\n attack_intensity[i + 3] = p2;\n }\n }\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for (i = 1; i < 12; i++) {\n if (x < attack_intensity[i])\n x = attack_intensity[i];\n }\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n attackThreshold = chn == 3 ? gfc.nsPsy.attackthre_s : gfc.nsPsy.attackthre;\n for (i = 0; i < 12; i++) {\n if (ns_attacks[i / 3] == 0 && attack_intensity[i] > attackThreshold) {\n ns_attacks[i / 3] = i % 3 + 1;\n }\n }\n for (i = 1; i < 4; i++) {\n var ratio;\n if (en_short[i - 1] > en_short[i]) {\n assert$9(en_short[i] > 0);\n ratio = en_short[i - 1] / en_short[i];\n } else {\n assert$9(en_short[i - 1] > 0);\n ratio = en_short[i] / en_short[i - 1];\n }\n if (ratio < 1.7) {\n ns_attacks[i] = 0;\n if (i == 1)\n ns_attacks[0] = 0;\n }\n }\n if (ns_attacks[0] != 0 && gfc.nsPsy.lastAttacks[chn] != 0) {\n ns_attacks[0] = 0;\n }\n if (gfc.nsPsy.lastAttacks[chn] == 3 || ns_attacks[0] + ns_attacks[1] + ns_attacks[2] + ns_attacks[3] != 0) {\n ns_uselongblock = 0;\n if (ns_attacks[1] != 0 && ns_attacks[0] != 0)\n ns_attacks[1] = 0;\n if (ns_attacks[2] != 0 && ns_attacks[1] != 0)\n ns_attacks[2] = 0;\n if (ns_attacks[3] != 0 && ns_attacks[2] != 0)\n ns_attacks[3] = 0;\n }\n if (chn < 2) {\n uselongblock[chn] = ns_uselongblock;\n } else {\n if (ns_uselongblock == 0) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n }\n energy[chn] = gfc.tot_ener[chn];\n wsamp_s = wsamp_S;\n wsamp_l = wsamp_L;\n compute_ffts(\n gfp,\n fftenergy,\n fftenergy_s,\n wsamp_l,\n chn & 1,\n wsamp_s,\n chn & 1,\n gr_out,\n chn,\n buffer,\n bufPos\n );\n calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n for (sblock = 0; sblock < 3; sblock++) {\n var enn, thmm;\n compute_masking_s(gfp, fftenergy_s, eb_s, thr, chn, sblock);\n convert_partition2scalefac_s(gfc, eb_s, thr, chn, sblock);\n for (sb = 0; sb < Encoder.SBMAX_s; sb++) {\n thmm = gfc.thm[chn].s[sb][sblock];\n thmm *= NS_PREECHO_ATT0;\n if (ns_attacks[sblock] >= 2 || ns_attacks[sblock + 1] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT1 * pcfact\n );\n thmm = Math.min(thmm, p2);\n }\n if (ns_attacks[sblock] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT2 * pcfact\n );\n thmm = Math.min(thmm, p2);\n } else if (sblock != 0 && ns_attacks[sblock - 1] == 3 || sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3) {\n var idx = sblock != 2 ? sblock + 1 : 0;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT2 * pcfact\n );\n thmm = Math.min(thmm, p2);\n }\n enn = en_subshort[sblock * 3 + 3] + en_subshort[sblock * 3 + 4] + en_subshort[sblock * 3 + 5];\n if (en_subshort[sblock * 3 + 5] * 6 < enn) {\n thmm *= 0.5;\n if (en_subshort[sblock * 3 + 4] * 6 < enn)\n thmm *= 0.5;\n }\n gfc.thm[chn].s[sb][sblock] = thmm;\n }\n }\n gfc.nsPsy.lastAttacks[chn] = ns_attacks[2];\n k = 0;\n {\n for (b = 0; b < gfc.npart_l; b++) {\n var kk = gfc.s3ind[b][0];\n var eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n var ecb = gfc.s3_ll[k++] * eb2;\n while (++kk <= gfc.s3ind[b][1]) {\n eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n ecb = mask_add(ecb, gfc.s3_ll[k++] * eb2, kk, kk - b, gfc, 0);\n }\n ecb *= 0.158489319246111;\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE)\n thr[b] = ecb;\n else {\n thr[b] = NS_INTERP(\n Math.min(\n ecb,\n Math.min(rpelev * gfc.nb_1[chn][b], rpelev2 * gfc.nb_2[chn][b])\n ),\n ecb,\n pcfact\n );\n }\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n }\n }\n for (; b <= Encoder.CBANDS; ++b) {\n eb_l[b] = 0;\n thr[b] = 0;\n }\n convert_partition2scalefac_l(gfc, eb_l, thr, chn);\n }\n if (gfp.mode == MPEGMode.STEREO || gfp.mode == MPEGMode.JOINT_STEREO) {\n if (gfp.interChRatio > 0) {\n calc_interchannel_masking(gfp, gfp.interChRatio);\n }\n }\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n var msfix;\n msfix1(gfc);\n msfix = gfp.msfix;\n if (Math.abs(msfix) > 0) {\n ns_msfix(gfc, msfix, gfp.ATHlower * gfc.ATH.adjust);\n }\n }\n block_type_set(gfp, uselongblock, blocktype_d, blocktype);\n for (chn = 0; chn < numchn; chn++) {\n var ppe;\n var ppePos = 0;\n var type;\n var mr;\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = Encoder.NORM_TYPE;\n if (blocktype_d[0] == Encoder.SHORT_TYPE || blocktype_d[1] == Encoder.SHORT_TYPE) {\n type = Encoder.SHORT_TYPE;\n }\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n if (type == Encoder.SHORT_TYPE) {\n ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n } else\n ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n if (gfp.analysis)\n gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n }\n return 0;\n };\n function vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out, fftenergy, wsamp_l, wsamp_lPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) {\n fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n } else if (chn == 2) {\n for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util$2.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util$2.SQRT2 * 0.5;\n }\n }\n fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n var re = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 - j];\n var im = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 + j];\n fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n (re * re + im * im) * 0.5\n );\n }\n {\n var totalenergy = 0;\n for (var j = 11; j < Encoder.HBLKSIZE; j++)\n totalenergy += fftenergy[j];\n gfc.tot_ener[chn] = totalenergy;\n }\n if (gfp.analysis) {\n for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n }\n function vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock, fftenergy_s, wsamp_s, wsamp_sPos) {\n var gfc = gfp.internal_flags;\n if (sblock == 0 && chn < 2) {\n fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n }\n if (chn == 2) {\n for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n var l = wsamp_s[wsamp_sPos + 0][sblock][j];\n var r = wsamp_s[wsamp_sPos + 1][sblock][j];\n wsamp_s[wsamp_sPos + 0][sblock][j] = (l + r) * Util$2.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][sblock][j] = (l - r) * Util$2.SQRT2 * 0.5;\n }\n }\n fftenergy_s[sblock][0] = wsamp_s[wsamp_sPos + 0][sblock][0];\n fftenergy_s[sblock][0] *= fftenergy_s[sblock][0];\n for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n var re = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 - j];\n var im = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 + j];\n fftenergy_s[sblock][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY(\n (re * re + im * im) * 0.5\n );\n }\n }\n function vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy) {\n var gfc = gfp.internal_flags;\n if (gfp.athaa_loudapprox == 2 && chn < 2) {\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n var fircoef_ = [\n -865163e-23 * 2,\n -851586e-8 * 2,\n -674764e-23 * 2,\n 0.0209036 * 2,\n -336639e-22 * 2,\n -0.0438162 * 2,\n -154175e-22 * 2,\n 0.0931738 * 2,\n -552212e-22 * 2,\n -0.313819 * 2\n ];\n function vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, energy, sub_short_factor, ns_attacks, uselongblock) {\n var ns_hpfsmpl = new_float_n$3([2, 576]);\n var gfc = gfp.internal_flags;\n var n_chn_out = gfc.channels_out;\n var n_chn_psy = gfp.mode == MPEGMode.JOINT_STEREO ? 4 : n_chn_out;\n for (var chn = 0; chn < n_chn_out; chn++) {\n firbuf = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n for (var i = 0; i < 576; i++) {\n var sum1, sum2;\n sum1 = firbuf[firbufPos + i + 10];\n sum2 = 0;\n for (var j = 0; j < (NSFIRLEN - 1) / 2 - 1; j += 2) {\n sum1 += fircoef_[j] * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i + NSFIRLEN - j]);\n sum2 += fircoef_[j + 1] * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (n_chn_psy > 2) {\n masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var attack_intensity = new_float$a(12);\n var en_subshort = new_float$a(12);\n var en_short = [0, 0, 0, 0];\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n var attackThreshold = chn == 3 ? gfc.nsPsy.attackthre_s : gfc.nsPsy.attackthre;\n var ns_uselongblock = 1;\n if (chn == 2) {\n for (var i = 0, j = 576; j > 0; ++i, --j) {\n var l = ns_hpfsmpl[0][i];\n var r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n }\n for (var i = 0; i < 3; i++) {\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n assert$9(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i] / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n for (var i = 0; i < 9; i++) {\n var pfe = pfPos + 576 / 9;\n var p2 = 1;\n for (; pfPos < pfe; pfPos++) {\n if (p2 < Math.abs(pf[pfPos]))\n p2 = Math.abs(pf[pfPos]);\n }\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p2;\n en_short[1 + i / 3] += p2;\n if (p2 > en_subshort[i + 3 - 2]) {\n assert$9(en_subshort[i + 3 - 2] > 0);\n p2 = p2 / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p2 * 10) {\n p2 = en_subshort[i + 3 - 2] / (p2 * 10);\n } else {\n p2 = 0;\n }\n attack_intensity[i + 3] = p2;\n }\n for (var i = 0; i < 3; ++i) {\n var enn = en_subshort[i * 3 + 3] + en_subshort[i * 3 + 4] + en_subshort[i * 3 + 5];\n var factor = 1;\n if (en_subshort[i * 3 + 5] * 6 < enn) {\n factor *= 0.5;\n if (en_subshort[i * 3 + 4] * 6 < enn) {\n factor *= 0.5;\n }\n }\n sub_short_factor[chn][i] = factor;\n }\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for (var i = 1; i < 12; i++) {\n if (x < attack_intensity[i]) {\n x = attack_intensity[i];\n }\n }\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n for (var i = 0; i < 12; i++) {\n if (ns_attacks[chn][i / 3] == 0 && attack_intensity[i] > attackThreshold) {\n ns_attacks[chn][i / 3] = i % 3 + 1;\n }\n }\n for (var i = 1; i < 4; i++) {\n var u = en_short[i - 1];\n var v = en_short[i];\n var m = Math.max(u, v);\n if (m < 4e4) {\n if (u < 1.7 * v && v < 1.7 * u) {\n if (i == 1 && ns_attacks[chn][0] <= ns_attacks[chn][i]) {\n ns_attacks[chn][0] = 0;\n }\n ns_attacks[chn][i] = 0;\n }\n }\n }\n if (ns_attacks[chn][0] <= gfc.nsPsy.lastAttacks[chn]) {\n ns_attacks[chn][0] = 0;\n }\n if (gfc.nsPsy.lastAttacks[chn] == 3 || ns_attacks[chn][0] + ns_attacks[chn][1] + ns_attacks[chn][2] + ns_attacks[chn][3] != 0) {\n ns_uselongblock = 0;\n if (ns_attacks[chn][1] != 0 && ns_attacks[chn][0] != 0) {\n ns_attacks[chn][1] = 0;\n }\n if (ns_attacks[chn][2] != 0 && ns_attacks[chn][1] != 0) {\n ns_attacks[chn][2] = 0;\n }\n if (ns_attacks[chn][3] != 0 && ns_attacks[chn][2] != 0) {\n ns_attacks[chn][3] = 0;\n }\n }\n if (chn < 2) {\n uselongblock[chn] = ns_uselongblock;\n } else {\n if (ns_uselongblock == 0) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n }\n energy[chn] = gfc.tot_ener[chn];\n }\n }\n function vbrpsy_skip_masking_s(gfc, chn, sblock) {\n if (sblock == 0) {\n for (var b = 0; b < gfc.npart_s; b++) {\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = 0;\n }\n }\n }\n function vbrpsy_skip_masking_l(gfc, chn) {\n for (var b = 0; b < gfc.npart_l; b++) {\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = 0;\n }\n }\n function psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n if (a > 0) {\n var m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert$9(gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1 > 0);\n a = 20 * (m * 2 - a) / (a * (gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n for (b = 1; b < gfc.npart_s - 1; b++) {\n a = avg[b - 1] + avg[b] + avg[b + 1];\n assert$9(b + 1 < gfc.npart_s);\n if (a > 0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert$9(\n gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1 > 0\n );\n a = 20 * (m * 3 - a) / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n }\n assert$9(b == gfc.npart_s - 1);\n a = avg[b - 1] + avg[b];\n if (a > 0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n assert$9(gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1 > 0);\n a = 20 * (m * 2 - a) / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n assert$9(b == gfc.npart_s - 1);\n }\n function vbrpsy_compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var max = new float[Encoder.CBANDS]();\n var avg = new_float$a(Encoder.CBANDS);\n var i, j, b;\n var mask_idx_s = new int[Encoder.CBANDS]();\n for (b = j = 0; b < gfc.npart_s; ++b) {\n var ebb = 0;\n var m = 0;\n var n = gfc.numlines_s[b];\n for (i = 0; i < n; ++i, ++j) {\n var el = fftenergy_s[sblock][j];\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n max[b] = m;\n avg[b] = ebb / n;\n assert$9(avg[b] >= 0);\n }\n assert$9(b == gfc.npart_s);\n for (; b < Encoder.CBANDS; ++b) {\n max[b] = 0;\n avg[b] = 0;\n }\n psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx_s);\n for (j = b = 0; b < gfc.npart_s; b++) {\n var kk = gfc.s3ind_s[b][0];\n var last = gfc.s3ind_s[b][1];\n var dd, dd_n;\n var x, ecb, avg_mask;\n dd = mask_idx_s[kk];\n dd_n = 1;\n ecb = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ++j;\n ++kk;\n while (kk <= last) {\n dd += mask_idx_s[kk];\n dd_n += 1;\n x = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ecb = vbrpsy_mask_add(ecb, x, kk - b);\n ++j;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n thr[b] = ecb;\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n {\n x = max[b];\n x *= gfc.minval_s[b];\n x *= avg_mask;\n if (thr[b] > x) {\n thr[b] = x;\n }\n }\n if (gfc.masking_lower > 1) {\n thr[b] *= gfc.masking_lower;\n }\n if (thr[b] > eb[b]) {\n thr[b] = eb[b];\n }\n if (gfc.masking_lower < 1) {\n thr[b] *= gfc.masking_lower;\n }\n assert$9(thr[b] >= 0);\n }\n for (; b < Encoder.CBANDS; ++b) {\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n function vbrpsy_compute_masking_l(gfc, fftenergy, eb_l, thr, chn) {\n var max = new_float$a(Encoder.CBANDS);\n var avg = new_float$a(Encoder.CBANDS);\n var mask_idx_l = new_int$b(Encoder.CBANDS + 2);\n var b;\n calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n var k = 0;\n for (b = 0; b < gfc.npart_l; b++) {\n var x, ecb, avg_mask, t;\n var kk = gfc.s3ind[b][0];\n var last = gfc.s3ind[b][1];\n var dd = 0;\n var dd_n = 0;\n dd = mask_idx_l[kk];\n dd_n += 1;\n ecb = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n ++k;\n ++kk;\n while (kk <= last) {\n dd += mask_idx_l[kk];\n dd_n += 1;\n x = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n t = vbrpsy_mask_add(ecb, x, kk - b);\n ecb = t;\n ++k;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE) {\n var ecb_limit = rpelev * gfc.nb_1[chn][b];\n if (ecb_limit > 0) {\n thr[b] = Math.min(ecb, ecb_limit);\n } else {\n thr[b] = Math.min(ecb, eb_l[b] * NS_PREECHO_ATT2);\n }\n } else {\n var ecb_limit_2 = rpelev2 * gfc.nb_2[chn][b];\n var ecb_limit_1 = rpelev * gfc.nb_1[chn][b];\n var ecb_limit;\n if (ecb_limit_2 <= 0) {\n ecb_limit_2 = ecb;\n }\n if (ecb_limit_1 <= 0) {\n ecb_limit_1 = ecb;\n }\n if (gfc.blocktype_old[chn & 1] == Encoder.NORM_TYPE) {\n ecb_limit = Math.min(ecb_limit_1, ecb_limit_2);\n } else {\n ecb_limit = ecb_limit_1;\n }\n thr[b] = Math.min(ecb, ecb_limit);\n }\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n {\n x = max[b];\n x *= gfc.minval_l[b];\n x *= avg_mask;\n if (thr[b] > x) {\n thr[b] = x;\n }\n }\n if (gfc.masking_lower > 1) {\n thr[b] *= gfc.masking_lower;\n }\n if (thr[b] > eb_l[b]) {\n thr[b] = eb_l[b];\n }\n if (gfc.masking_lower < 1) {\n thr[b] *= gfc.masking_lower;\n }\n assert$9(thr[b] >= 0);\n }\n for (; b < Encoder.CBANDS; ++b) {\n eb_l[b] = 0;\n thr[b] = 0;\n }\n }\n function vbrpsy_compute_block_type(gfp, uselongblock) {\n var gfc = gfp.internal_flags;\n if (gfp.short_blocks == ShortBlock$2.short_block_coupled && !(uselongblock[0] != 0 && uselongblock[1] != 0)) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n if (gfp.short_blocks == ShortBlock$2.short_block_dispensed) {\n uselongblock[chn] = 1;\n }\n if (gfp.short_blocks == ShortBlock$2.short_block_forced) {\n uselongblock[chn] = 0;\n }\n }\n }\n function vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d) {\n var gfc = gfp.internal_flags;\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n var blocktype = Encoder.NORM_TYPE;\n if (uselongblock[chn] != 0) {\n assert$9(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE) {\n blocktype = Encoder.STOP_TYPE;\n }\n } else {\n blocktype = Encoder.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n gfc.blocktype_old[chn] = Encoder.START_TYPE;\n }\n if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE) {\n gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n }\n }\n blocktype_d[chn] = gfc.blocktype_old[chn];\n gfc.blocktype_old[chn] = blocktype;\n }\n }\n function vbrpsy_compute_MS_thresholds(eb, thr, cb_mld, ath_cb, athadjust, msfix, n) {\n var msfix2 = msfix * 2;\n var athlower = msfix > 0 ? Math.pow(10, athadjust) : 1;\n var rside, rmid;\n for (var b = 0; b < n; ++b) {\n var ebM = eb[2][b];\n var ebS = eb[3][b];\n var thmL = thr[0][b];\n var thmR = thr[1][b];\n var thmM = thr[2][b];\n var thmS = thr[3][b];\n if (thmL <= 1.58 * thmR && thmR <= 1.58 * thmL) {\n var mld_m = cb_mld[b] * ebS;\n var mld_s = cb_mld[b] * ebM;\n rmid = Math.max(thmM, Math.min(thmS, mld_m));\n rside = Math.max(thmS, Math.min(thmM, mld_s));\n } else {\n rmid = thmM;\n rside = thmS;\n }\n if (msfix > 0) {\n var thmLR, thmMS;\n var ath = ath_cb[b] * athlower;\n thmLR = Math.min(Math.max(thmL, ath), Math.max(thmR, ath));\n thmM = Math.max(rmid, ath);\n thmS = Math.max(rside, ath);\n thmMS = thmM + thmS;\n if (thmMS > 0 && thmLR * msfix2 < thmMS) {\n var f = thmLR * msfix2 / thmMS;\n thmM *= f;\n thmS *= f;\n }\n rmid = Math.min(thmM, rmid);\n rside = Math.min(thmS, rside);\n }\n if (rmid > ebM) {\n rmid = ebM;\n }\n if (rside > ebS) {\n rside = ebS;\n }\n thr[2][b] = rmid;\n thr[3][b] = rside;\n }\n }\n this.L3psycho_anal_vbr = function(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n var gfc = gfp.internal_flags;\n var wsamp_l;\n var wsamp_s;\n var fftenergy = new_float$a(Encoder.HBLKSIZE);\n var fftenergy_s = new_float_n$3([3, Encoder.HBLKSIZE_s]);\n var wsamp_L = new_float_n$3([2, Encoder.BLKSIZE]);\n var wsamp_S = new_float_n$3([2, 3, Encoder.BLKSIZE_s]);\n var eb = new_float_n$3([4, Encoder.CBANDS]);\n var thr = new_float_n$3([4, Encoder.CBANDS]);\n var sub_short_factor = new_float_n$3([4, 3]);\n var pcfact = 0.6;\n var ns_attacks = [\n [0, 0, 0, 0],\n [0, 0, 0, 0],\n [0, 0, 0, 0],\n [0, 0, 0, 0]\n ];\n var uselongblock = new_int$b(2);\n var n_chn_psy = gfp.mode == MPEGMode.JOINT_STEREO ? 4 : gfc.channels_out;\n vbrpsy_attack_detection(\n gfp,\n buffer,\n bufPos,\n gr_out,\n masking_ratio,\n masking_MS_ratio,\n energy,\n sub_short_factor,\n ns_attacks,\n uselongblock\n );\n vbrpsy_compute_block_type(gfp, uselongblock);\n {\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 1;\n wsamp_l = wsamp_L;\n vbrpsy_compute_fft_l(\n gfp,\n buffer,\n bufPos,\n chn,\n gr_out,\n fftenergy,\n wsamp_l,\n ch01\n );\n vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy);\n if (uselongblock[ch01] != 0) {\n vbrpsy_compute_masking_l(gfc, fftenergy, eb[chn], thr[chn], chn);\n } else {\n vbrpsy_skip_masking_l(gfc, chn);\n }\n }\n if (uselongblock[0] + uselongblock[1] == 2) {\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n vbrpsy_compute_MS_thresholds(\n eb,\n thr,\n gfc.mld_cb_l,\n gfc.ATH.cb_l,\n gfp.ATHlower * gfc.ATH.adjust,\n gfp.msfix,\n gfc.npart_l\n );\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 1;\n if (uselongblock[ch01] != 0) {\n convert_partition2scalefac_l(gfc, eb[chn], thr[chn], chn);\n }\n }\n }\n {\n for (var sblock = 0; sblock < 3; sblock++) {\n for (var chn = 0; chn < n_chn_psy; ++chn) {\n var ch01 = chn & 1;\n if (uselongblock[ch01] != 0) {\n vbrpsy_skip_masking_s(gfc, chn, sblock);\n } else {\n wsamp_s = wsamp_S;\n vbrpsy_compute_fft_s(\n gfp,\n buffer,\n bufPos,\n chn,\n sblock,\n fftenergy_s,\n wsamp_s,\n ch01\n );\n vbrpsy_compute_masking_s(\n gfp,\n fftenergy_s,\n eb[chn],\n thr[chn],\n chn,\n sblock\n );\n }\n }\n if (uselongblock[0] + uselongblock[1] == 0) {\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n vbrpsy_compute_MS_thresholds(\n eb,\n thr,\n gfc.mld_cb_s,\n gfc.ATH.cb_s,\n gfp.ATHlower * gfc.ATH.adjust,\n gfp.msfix,\n gfc.npart_s\n );\n }\n }\n for (var chn = 0; chn < n_chn_psy; ++chn) {\n var ch01 = chn & 1;\n if (uselongblock[ch01] == 0) {\n convert_partition2scalefac_s(gfc, eb[chn], thr[chn], chn, sblock);\n }\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 1;\n if (uselongblock[ch01] != 0) {\n continue;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n var new_thmm = new_float$a(3);\n for (var sblock = 0; sblock < 3; sblock++) {\n var thmm = gfc.thm[chn].s[sb][sblock];\n thmm *= NS_PREECHO_ATT0;\n if (ns_attacks[chn][sblock] >= 2 || ns_attacks[chn][sblock + 1] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT1 * pcfact\n );\n thmm = Math.min(thmm, p2);\n } else if (ns_attacks[chn][sblock] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT2 * pcfact\n );\n thmm = Math.min(thmm, p2);\n } else if (sblock != 0 && ns_attacks[chn][sblock - 1] == 3 || sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3) {\n var idx = sblock != 2 ? sblock + 1 : 0;\n var p2 = NS_INTERP(\n gfc.thm[chn].s[sb][idx],\n thmm,\n NS_PREECHO_ATT2 * pcfact\n );\n thmm = Math.min(thmm, p2);\n }\n thmm *= sub_short_factor[chn][sblock];\n new_thmm[sblock] = thmm;\n }\n for (var sblock = 0; sblock < 3; sblock++) {\n gfc.thm[chn].s[sb][sblock] = new_thmm[sblock];\n }\n }\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n gfc.nsPsy.lastAttacks[chn] = ns_attacks[chn][2];\n }\n vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d);\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ppe;\n var ppePos;\n var type;\n var mr;\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = Encoder.NORM_TYPE;\n if (blocktype_d[0] == Encoder.SHORT_TYPE || blocktype_d[1] == Encoder.SHORT_TYPE) {\n type = Encoder.SHORT_TYPE;\n }\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n if (type == Encoder.SHORT_TYPE) {\n ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n } else {\n ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n }\n if (gfp.analysis) {\n gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n }\n }\n return 0;\n };\n function s3_func_x(bark, hf_slope) {\n var tempx = bark;\n var tempy;\n if (tempx >= 0) {\n tempy = -tempx * 27;\n } else {\n tempy = tempx * hf_slope;\n }\n if (tempy <= -72) {\n return 0;\n }\n return Math.exp(tempy * LN_TO_LOG10);\n }\n function norm_s3_func_x(hf_slope) {\n var lim_a = 0;\n var lim_b = 0;\n {\n var x = 0;\n var l;\n var h2;\n for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x -= 1)\n ;\n l = x;\n h2 = 0;\n while (Math.abs(h2 - l) > 1e-12) {\n x = (h2 + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) {\n h2 = x;\n } else {\n l = x;\n }\n }\n lim_a = l;\n }\n {\n var x = 0;\n var l;\n var h2;\n for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x += 1)\n ;\n l = 0;\n h2 = x;\n while (Math.abs(h2 - l) > 1e-12) {\n x = (h2 + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) {\n l = x;\n } else {\n h2 = x;\n }\n }\n lim_b = h2;\n }\n {\n var sum = 0;\n var m = 1e3;\n var i;\n for (i = 0; i <= m; ++i) {\n var x = lim_a + i * (lim_b - lim_a) / m;\n var y = s3_func_x(x, hf_slope);\n sum += y;\n }\n {\n var norm = (m + 1) / (sum * (lim_b - lim_a));\n return norm;\n }\n }\n }\n function s3_func(bark) {\n var tempx, x, tempy, temp;\n tempx = bark;\n if (tempx >= 0)\n tempx *= 3;\n else\n tempx *= 1.5;\n if (tempx >= 0.5 && tempx <= 2.5) {\n temp = tempx - 0.5;\n x = 8 * (temp * temp - 2 * temp);\n } else\n x = 0;\n tempx += 0.474;\n tempy = 15.811389 + 7.5 * tempx - 17.5 * Math.sqrt(1 + tempx * tempx);\n if (tempy <= -60)\n return 0;\n tempx = Math.exp((x + tempy) * LN_TO_LOG10);\n tempx /= 0.6609193;\n return tempx;\n }\n function freq2bark(freq) {\n if (freq < 0)\n freq = 0;\n freq = freq * 1e-3;\n return 13 * Math.atan(0.76 * freq) + 3.5 * Math.atan(freq * freq / (7.5 * 7.5));\n }\n function init_numline(numlines, bo, bm, bval, bval_width, mld, bo_w, sfreq, blksize, scalepos, deltafreq, sbmax) {\n var b_frq = new_float$a(Encoder.CBANDS + 1);\n var sample_freq_frac = sfreq / (sbmax > 15 ? 2 * 576 : 2 * 192);\n var partition = new_int$b(Encoder.HBLKSIZE);\n var i;\n sfreq /= blksize;\n var j = 0;\n var ni = 0;\n for (i = 0; i < Encoder.CBANDS; i++) {\n var bark1;\n var j2;\n bark1 = freq2bark(sfreq * j);\n b_frq[i] = sfreq * j;\n for (j2 = j; freq2bark(sfreq * j2) - bark1 < DELBARK && j2 <= blksize / 2; j2++)\n ;\n numlines[i] = j2 - j;\n ni = i + 1;\n while (j < j2) {\n partition[j++] = i;\n }\n if (j > blksize / 2) {\n j = blksize / 2;\n ++i;\n break;\n }\n }\n b_frq[i] = sfreq * j;\n for (var sfb = 0; sfb < sbmax; sfb++) {\n var i1, i2, start2, end;\n var arg;\n start2 = scalepos[sfb];\n end = scalepos[sfb + 1];\n i1 = 0 | Math.floor(0.5 + deltafreq * (start2 - 0.5));\n if (i1 < 0)\n i1 = 0;\n i2 = 0 | Math.floor(0.5 + deltafreq * (end - 0.5));\n if (i2 > blksize / 2)\n i2 = blksize / 2;\n bm[sfb] = (partition[i1] + partition[i2]) / 2;\n bo[sfb] = partition[i2];\n var f_tmp = sample_freq_frac * end;\n bo_w[sfb] = (f_tmp - b_frq[bo[sfb]]) / (b_frq[bo[sfb] + 1] - b_frq[bo[sfb]]);\n if (bo_w[sfb] < 0) {\n bo_w[sfb] = 0;\n } else {\n if (bo_w[sfb] > 1) {\n bo_w[sfb] = 1;\n }\n }\n arg = freq2bark(sfreq * scalepos[sfb] * deltafreq);\n arg = Math.min(arg, 15.5) / 15.5;\n mld[sfb] = Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n j = 0;\n for (var k = 0; k < ni; k++) {\n var w = numlines[k];\n var bark1, bark2;\n bark1 = freq2bark(sfreq * j);\n bark2 = freq2bark(sfreq * (j + w - 1));\n bval[k] = 0.5 * (bark1 + bark2);\n bark1 = freq2bark(sfreq * (j - 0.5));\n bark2 = freq2bark(sfreq * (j + w - 0.5));\n bval_width[k] = bark2 - bark1;\n j += w;\n }\n return ni;\n }\n function init_s3_values(s3ind, npart, bval, bval_width, norm, use_old_s3) {\n var s3 = new_float_n$3([Encoder.CBANDS, Encoder.CBANDS]);\n var j;\n var numberOfNoneZero = 0;\n if (use_old_s3) {\n for (var i = 0; i < npart; i++) {\n for (j = 0; j < npart; j++) {\n var v = s3_func(bval[i] - bval[j]) * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n }\n } else {\n for (j = 0; j < npart; j++) {\n var hf_slope = 15 + Math.min(21 / bval[j], 12);\n var s3_x_norm = norm_s3_func_x(hf_slope);\n for (var i = 0; i < npart; i++) {\n var v = s3_x_norm * s3_func_x(bval[i] - bval[j], hf_slope) * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n }\n }\n for (var i = 0; i < npart; i++) {\n for (j = 0; j < npart; j++) {\n if (s3[i][j] > 0)\n break;\n }\n s3ind[i][0] = j;\n for (j = npart - 1; j > 0; j--) {\n if (s3[i][j] > 0)\n break;\n }\n s3ind[i][1] = j;\n numberOfNoneZero += s3ind[i][1] - s3ind[i][0] + 1;\n }\n var p2 = new_float$a(numberOfNoneZero);\n var k = 0;\n for (var i = 0; i < npart; i++) {\n for (j = s3ind[i][0]; j <= s3ind[i][1]; j++)\n p2[k++] = s3[i][j];\n }\n return p2;\n }\n function stereo_demask(f) {\n var arg = freq2bark(f);\n arg = Math.min(arg, 15.5) / 15.5;\n return Math.pow(10, 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n this.psymodel_init = function(gfp) {\n var gfc = gfp.internal_flags;\n var i;\n var useOldS3 = true;\n var bvl_a = 13;\n var bvl_b = 24;\n var snr_l_a = 0;\n var snr_l_b = 0;\n var snr_s_a = -8.25;\n var snr_s_b = -4.5;\n var bval = new_float$a(Encoder.CBANDS);\n var bval_width = new_float$a(Encoder.CBANDS);\n var norm = new_float$a(Encoder.CBANDS);\n var sfreq = gfp.out_samplerate;\n switch (gfp.experimentalZ) {\n default:\n case 0:\n useOldS3 = true;\n break;\n case 1:\n useOldS3 = !(gfp.VBR == VbrMode$5.vbr_mtrh || gfp.VBR == VbrMode$5.vbr_mt);\n break;\n case 2:\n useOldS3 = false;\n break;\n case 3:\n bvl_a = 8;\n snr_l_a = -1.75;\n snr_l_b = -0.0125;\n snr_s_a = -8.25;\n snr_s_b = -2.25;\n break;\n }\n gfc.ms_ener_ratio_old = 0.25;\n gfc.blocktype_old[0] = gfc.blocktype_old[1] = Encoder.NORM_TYPE;\n for (i = 0; i < 4; ++i) {\n for (var j = 0; j < Encoder.CBANDS; ++j) {\n gfc.nb_1[i][j] = 1e20;\n gfc.nb_2[i][j] = 1e20;\n gfc.nb_s1[i][j] = gfc.nb_s2[i][j] = 1;\n }\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n gfc.en[i].l[sb] = 1e20;\n gfc.thm[i].l[sb] = 1e20;\n }\n for (var j = 0; j < 3; ++j) {\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n gfc.en[i].s[sb][j] = 1e20;\n gfc.thm[i].s[sb][j] = 1e20;\n }\n gfc.nsPsy.lastAttacks[i] = 0;\n }\n for (var j = 0; j < 9; j++)\n gfc.nsPsy.last_en_subshort[i][j] = 10;\n }\n gfc.loudness_sq_save[0] = gfc.loudness_sq_save[1] = 0;\n gfc.npart_l = init_numline(\n gfc.numlines_l,\n gfc.bo_l,\n gfc.bm_l,\n bval,\n bval_width,\n gfc.mld_l,\n gfc.PSY.bo_l_weight,\n sfreq,\n Encoder.BLKSIZE,\n gfc.scalefac_band.l,\n Encoder.BLKSIZE / (2 * 576),\n Encoder.SBMAX_l\n );\n assert$9(gfc.npart_l < Encoder.CBANDS);\n for (i = 0; i < gfc.npart_l; i++) {\n var snr = snr_l_a;\n if (bval[i] >= bvl_a) {\n snr = snr_l_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_l_a * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n }\n norm[i] = Math.pow(10, snr / 10);\n if (gfc.numlines_l[i] > 0) {\n gfc.rnumlines_l[i] = 1 / gfc.numlines_l[i];\n } else {\n gfc.rnumlines_l[i] = 0;\n }\n }\n gfc.s3_ll = init_s3_values(\n gfc.s3ind,\n gfc.npart_l,\n bval,\n bval_width,\n norm,\n useOldS3\n );\n var j = 0;\n for (i = 0; i < gfc.npart_l; i++) {\n var x;\n x = Float$1.MAX_VALUE;\n for (var k = 0; k < gfc.numlines_l[i]; k++, j++) {\n var freq = sfreq * j / (1e3 * Encoder.BLKSIZE);\n var level;\n level = this.ATHformula(freq * 1e3, gfp) - 20;\n level = Math.pow(10, 0.1 * level);\n level *= gfc.numlines_l[i];\n if (x > level)\n x = level;\n }\n gfc.ATH.cb_l[i] = x;\n x = -20 + bval[i] * 20 / 10;\n if (x > 6) {\n x = 100;\n }\n if (x < -15) {\n x = -15;\n }\n x -= 8;\n gfc.minval_l[i] = Math.pow(10, x / 10) * gfc.numlines_l[i];\n }\n gfc.npart_s = init_numline(\n gfc.numlines_s,\n gfc.bo_s,\n gfc.bm_s,\n bval,\n bval_width,\n gfc.mld_s,\n gfc.PSY.bo_s_weight,\n sfreq,\n Encoder.BLKSIZE_s,\n gfc.scalefac_band.s,\n Encoder.BLKSIZE_s / (2 * 192),\n Encoder.SBMAX_s\n );\n assert$9(gfc.npart_s < Encoder.CBANDS);\n j = 0;\n for (i = 0; i < gfc.npart_s; i++) {\n var x;\n var snr = snr_s_a;\n if (bval[i] >= bvl_a) {\n snr = snr_s_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_s_a * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n }\n norm[i] = Math.pow(10, snr / 10);\n x = Float$1.MAX_VALUE;\n for (var k = 0; k < gfc.numlines_s[i]; k++, j++) {\n var freq = sfreq * j / (1e3 * Encoder.BLKSIZE_s);\n var level;\n level = this.ATHformula(freq * 1e3, gfp) - 20;\n level = Math.pow(10, 0.1 * level);\n level *= gfc.numlines_s[i];\n if (x > level)\n x = level;\n }\n gfc.ATH.cb_s[i] = x;\n x = -7 + bval[i] * 7 / 12;\n if (bval[i] > 12) {\n x *= 1 + Math.log(1 + x) * 3.1;\n }\n if (bval[i] < 12) {\n x *= 1 + Math.log(1 - x) * 2.3;\n }\n if (x < -15) {\n x = -15;\n }\n x -= 8;\n gfc.minval_s[i] = Math.pow(10, x / 10) * gfc.numlines_s[i];\n }\n gfc.s3_ss = init_s3_values(\n gfc.s3ind_s,\n gfc.npart_s,\n bval,\n bval_width,\n norm,\n useOldS3\n );\n init_mask_add_max_values();\n fft.init_fft(gfc);\n gfc.decay = Math.exp(\n -1 * LOG10 / (temporalmask_sustain_sec * sfreq / 192)\n );\n {\n var msfix;\n msfix = NS_MSFIX;\n if ((gfp.exp_nspsytune & 2) != 0)\n msfix = 1;\n if (Math.abs(gfp.msfix) > 0)\n msfix = gfp.msfix;\n gfp.msfix = msfix;\n for (var b = 0; b < gfc.npart_l; b++) {\n if (gfc.s3ind[b][1] > gfc.npart_l - 1)\n gfc.s3ind[b][1] = gfc.npart_l - 1;\n }\n }\n var frame_duration = 576 * gfc.mode_gr / sfreq;\n gfc.ATH.decay = Math.pow(10, -12 / 10 * frame_duration);\n gfc.ATH.adjust = 0.01;\n gfc.ATH.adjustLimit = 1;\n assert$9(gfc.bo_l[Encoder.SBMAX_l - 1] <= gfc.npart_l);\n assert$9(gfc.bo_s[Encoder.SBMAX_s - 1] <= gfc.npart_s);\n if (gfp.ATHtype != -1) {\n var freq;\n var freq_inc = gfp.out_samplerate / Encoder.BLKSIZE;\n var eql_balance = 0;\n freq = 0;\n for (i = 0; i < Encoder.BLKSIZE / 2; ++i) {\n freq += freq_inc;\n gfc.ATH.eql_w[i] = 1 / Math.pow(10, this.ATHformula(freq, gfp) / 10);\n eql_balance += gfc.ATH.eql_w[i];\n }\n eql_balance = 1 / eql_balance;\n for (i = Encoder.BLKSIZE / 2; --i >= 0; ) {\n gfc.ATH.eql_w[i] *= eql_balance;\n }\n }\n {\n for (var b = j = 0; b < gfc.npart_s; ++b) {\n for (i = 0; i < gfc.numlines_s[b]; ++i) {\n ++j;\n }\n }\n for (var b = j = 0; b < gfc.npart_l; ++b) {\n for (i = 0; i < gfc.numlines_l[b]; ++i) {\n ++j;\n }\n }\n }\n j = 0;\n for (i = 0; i < gfc.npart_l; i++) {\n var freq = sfreq * (j + gfc.numlines_l[i] / 2) / (1 * Encoder.BLKSIZE);\n gfc.mld_cb_l[i] = stereo_demask(freq);\n j += gfc.numlines_l[i];\n }\n for (; i < Encoder.CBANDS; ++i) {\n gfc.mld_cb_l[i] = 1;\n }\n j = 0;\n for (i = 0; i < gfc.npart_s; i++) {\n var freq = sfreq * (j + gfc.numlines_s[i] / 2) / (1 * Encoder.BLKSIZE_s);\n gfc.mld_cb_s[i] = stereo_demask(freq);\n j += gfc.numlines_s[i];\n }\n for (; i < Encoder.CBANDS; ++i) {\n gfc.mld_cb_s[i] = 1;\n }\n return 0;\n };\n function ATHformula_GB(f, value) {\n if (f < -0.3)\n f = 3410;\n f /= 1e3;\n f = Math.max(0.1, f);\n var ath = 3.64 * Math.pow(f, -0.8) - 6.8 * Math.exp(-0.6 * Math.pow(f - 3.4, 2)) + 6 * Math.exp(-0.15 * Math.pow(f - 8.7, 2)) + (0.6 + 0.04 * value) * 1e-3 * Math.pow(f, 4);\n return ath;\n }\n this.ATHformula = function(f, gfp) {\n var ath;\n switch (gfp.ATHtype) {\n case 0:\n ath = ATHformula_GB(f, 9);\n break;\n case 1:\n ath = ATHformula_GB(f, -1);\n break;\n case 2:\n ath = ATHformula_GB(f, 0);\n break;\n case 3:\n ath = ATHformula_GB(f, 1) + 6;\n break;\n case 4:\n ath = ATHformula_GB(f, gfp.ATHcurve);\n break;\n default:\n ath = ATHformula_GB(f, 0);\n break;\n }\n return ath;\n };\n}\nfunction LameGlobalFlags() {\n this.class_id = 0;\n this.num_samples = 0;\n this.num_channels = 0;\n this.in_samplerate = 0;\n this.out_samplerate = 0;\n this.scale = 0;\n this.scale_left = 0;\n this.scale_right = 0;\n this.analysis = false;\n this.bWriteVbrTag = false;\n this.decode_only = false;\n this.quality = 0;\n this.mode = MPEGMode.STEREO;\n this.force_ms = false;\n this.free_format = false;\n this.findReplayGain = false;\n this.decode_on_the_fly = false;\n this.write_id3tag_automatic = false;\n this.brate = 0;\n this.compression_ratio = 0;\n this.copyright = 0;\n this.original = 0;\n this.extension = 0;\n this.emphasis = 0;\n this.error_protection = 0;\n this.strict_ISO = false;\n this.disable_reservoir = false;\n this.quant_comp = 0;\n this.quant_comp_short = 0;\n this.experimentalY = false;\n this.experimentalZ = 0;\n this.exp_nspsytune = 0;\n this.preset = 0;\n this.VBR = null;\n this.VBR_q_frac = 0;\n this.VBR_q = 0;\n this.VBR_mean_bitrate_kbps = 0;\n this.VBR_min_bitrate_kbps = 0;\n this.VBR_max_bitrate_kbps = 0;\n this.VBR_hard_min = 0;\n this.lowpassfreq = 0;\n this.highpassfreq = 0;\n this.lowpasswidth = 0;\n this.highpasswidth = 0;\n this.maskingadjust = 0;\n this.maskingadjust_short = 0;\n this.ATHonly = false;\n this.ATHshort = false;\n this.noATH = false;\n this.ATHtype = 0;\n this.ATHcurve = 0;\n this.ATHlower = 0;\n this.athaa_type = 0;\n this.athaa_loudapprox = 0;\n this.athaa_sensitivity = 0;\n this.short_blocks = null;\n this.useTemporal = false;\n this.interChRatio = 0;\n this.msfix = 0;\n this.tune = false;\n this.tune_value_a = 0;\n this.version = 0;\n this.encoder_delay = 0;\n this.encoder_padding = 0;\n this.framesize = 0;\n this.frameNum = 0;\n this.lame_allocated_gfp = 0;\n this.internal_flags = null;\n}\nvar L3Side$1 = {};\nL3Side$1.SFBMAX = Encoder.SBMAX_s * 3;\nvar new_float$9 = common.new_float;\nvar new_int$a = common.new_int;\nfunction GrInfo() {\n this.xr = new_float$9(576);\n this.l3_enc = new_int$a(576);\n this.scalefac = new_int$a(L3Side$1.SFBMAX);\n this.xrpow_max = 0;\n this.part2_3_length = 0;\n this.big_values = 0;\n this.count1 = 0;\n this.global_gain = 0;\n this.scalefac_compress = 0;\n this.block_type = 0;\n this.mixed_block_flag = 0;\n this.table_select = new_int$a(3);\n this.subblock_gain = new_int$a(3 + 1);\n this.region0_count = 0;\n this.region1_count = 0;\n this.preflag = 0;\n this.scalefac_scale = 0;\n this.count1table_select = 0;\n this.part2_length = 0;\n this.sfb_lmax = 0;\n this.sfb_smin = 0;\n this.psy_lmax = 0;\n this.sfbmax = 0;\n this.psymax = 0;\n this.sfbdivide = 0;\n this.width = new_int$a(L3Side$1.SFBMAX);\n this.window = new_int$a(L3Side$1.SFBMAX);\n this.count1bits = 0;\n this.sfb_partition_table = null;\n this.slen = new_int$a(4);\n this.max_nonzero_coeff = 0;\n var self2 = this;\n function clone_int(array) {\n return new Int32Array(array);\n }\n function clone_float(array) {\n return new Float32Array(array);\n }\n this.assign = function(other) {\n self2.xr = clone_float(other.xr);\n self2.l3_enc = clone_int(other.l3_enc);\n self2.scalefac = clone_int(other.scalefac);\n self2.xrpow_max = other.xrpow_max;\n self2.part2_3_length = other.part2_3_length;\n self2.big_values = other.big_values;\n self2.count1 = other.count1;\n self2.global_gain = other.global_gain;\n self2.scalefac_compress = other.scalefac_compress;\n self2.block_type = other.block_type;\n self2.mixed_block_flag = other.mixed_block_flag;\n self2.table_select = clone_int(other.table_select);\n self2.subblock_gain = clone_int(other.subblock_gain);\n self2.region0_count = other.region0_count;\n self2.region1_count = other.region1_count;\n self2.preflag = other.preflag;\n self2.scalefac_scale = other.scalefac_scale;\n self2.count1table_select = other.count1table_select;\n self2.part2_length = other.part2_length;\n self2.sfb_lmax = other.sfb_lmax;\n self2.sfb_smin = other.sfb_smin;\n self2.psy_lmax = other.psy_lmax;\n self2.sfbmax = other.sfbmax;\n self2.psymax = other.psymax;\n self2.sfbdivide = other.sfbdivide;\n self2.width = clone_int(other.width);\n self2.window = clone_int(other.window);\n self2.count1bits = other.count1bits;\n self2.sfb_partition_table = other.sfb_partition_table.slice(0);\n self2.slen = clone_int(other.slen);\n self2.max_nonzero_coeff = other.max_nonzero_coeff;\n };\n}\nvar new_int$9 = common.new_int;\nfunction IIISideInfo() {\n this.tt = [\n [null, null],\n [null, null]\n ];\n this.main_data_begin = 0;\n this.private_bits = 0;\n this.resvDrain_pre = 0;\n this.resvDrain_post = 0;\n this.scfsi = [new_int$9(4), new_int$9(4)];\n for (var gr = 0; gr < 2; gr++) {\n for (var ch = 0; ch < 2; ch++) {\n this.tt[gr][ch] = new GrInfo();\n }\n }\n}\nvar System$6 = common.System;\nvar new_int$8 = common.new_int;\nfunction ScaleFac(arrL, arrS, arr21, arr12) {\n this.l = new_int$8(1 + Encoder.SBMAX_l);\n this.s = new_int$8(1 + Encoder.SBMAX_s);\n this.psfb21 = new_int$8(1 + Encoder.PSFB21);\n this.psfb12 = new_int$8(1 + Encoder.PSFB12);\n var l = this.l;\n var s = this.s;\n if (arguments.length == 4) {\n this.arrL = arguments[0];\n this.arrS = arguments[1];\n this.arr21 = arguments[2];\n this.arr12 = arguments[3];\n System$6.arraycopy(\n this.arrL,\n 0,\n l,\n 0,\n Math.min(this.arrL.length, this.l.length)\n );\n System$6.arraycopy(\n this.arrS,\n 0,\n s,\n 0,\n Math.min(this.arrS.length, this.s.length)\n );\n System$6.arraycopy(\n this.arr21,\n 0,\n this.psfb21,\n 0,\n Math.min(this.arr21.length, this.psfb21.length)\n );\n System$6.arraycopy(\n this.arr12,\n 0,\n this.psfb12,\n 0,\n Math.min(this.arr12.length, this.psfb12.length)\n );\n }\n}\nvar new_float$8 = common.new_float;\nvar new_float_n$2 = common.new_float_n;\nvar new_int$7 = common.new_int;\nfunction NsPsy() {\n this.last_en_subshort = new_float_n$2([4, 9]);\n this.lastAttacks = new_int$7(4);\n this.pefirbuf = new_float$8(19);\n this.longfact = new_float$8(Encoder.SBMAX_l);\n this.shortfact = new_float$8(Encoder.SBMAX_s);\n this.attackthre = 0;\n this.attackthre_s = 0;\n}\nfunction VBRSeekInfo() {\n this.sum = 0;\n this.seen = 0;\n this.want = 0;\n this.pos = 0;\n this.size = 0;\n this.bag = null;\n this.nVbrNumFrames = 0;\n this.nBytesWritten = 0;\n this.TotalFrameSize = 0;\n}\nvar new_byte$3 = common.new_byte;\nvar new_double = common.new_double;\nvar new_float$7 = common.new_float;\nvar new_float_n$1 = common.new_float_n;\nvar new_int$6 = common.new_int;\nvar new_int_n$1 = common.new_int_n;\nLameInternalFlags$1.MFSIZE = 3 * 1152 + Encoder.ENCDELAY - Encoder.MDCTDELAY;\nLameInternalFlags$1.MAX_HEADER_BUF = 256;\nLameInternalFlags$1.MAX_BITS_PER_CHANNEL = 4095;\nLameInternalFlags$1.MAX_BITS_PER_GRANULE = 7680;\nLameInternalFlags$1.BPC = 320;\nfunction LameInternalFlags$1() {\n var MAX_HEADER_LEN = 40;\n this.Class_ID = 0;\n this.lame_encode_frame_init = 0;\n this.iteration_init_init = 0;\n this.fill_buffer_resample_init = 0;\n this.mfbuf = new_float_n$1([2, LameInternalFlags$1.MFSIZE]);\n this.mode_gr = 0;\n this.channels_in = 0;\n this.channels_out = 0;\n this.resample_ratio = 0;\n this.mf_samples_to_encode = 0;\n this.mf_size = 0;\n this.VBR_min_bitrate = 0;\n this.VBR_max_bitrate = 0;\n this.bitrate_index = 0;\n this.samplerate_index = 0;\n this.mode_ext = 0;\n this.lowpass1 = 0;\n this.lowpass2 = 0;\n this.highpass1 = 0;\n this.highpass2 = 0;\n this.noise_shaping = 0;\n this.noise_shaping_amp = 0;\n this.substep_shaping = 0;\n this.psymodel = 0;\n this.noise_shaping_stop = 0;\n this.subblock_gain = 0;\n this.use_best_huffman = 0;\n this.full_outer_loop = 0;\n this.l3_side = new IIISideInfo();\n this.ms_ratio = new_float$7(2);\n this.padding = 0;\n this.frac_SpF = 0;\n this.slot_lag = 0;\n this.tag_spec = null;\n this.nMusicCRC = 0;\n this.OldValue = new_int$6(2);\n this.CurrentStep = new_int$6(2);\n this.masking_lower = 0;\n this.bv_scf = new_int$6(576);\n this.pseudohalf = new_int$6(L3Side$1.SFBMAX);\n this.sfb21_extra = false;\n this.inbuf_old = new Array(2);\n this.blackfilt = new Array(2 * LameInternalFlags$1.BPC + 1);\n this.itime = new_double(2);\n this.sideinfo_len = 0;\n this.sb_sample = new_float_n$1([2, 2, 18, Encoder.SBLIMIT]);\n this.amp_filter = new_float$7(32);\n function Header() {\n this.write_timing = 0;\n this.ptr = 0;\n this.buf = new_byte$3(MAX_HEADER_LEN);\n }\n this.header = new Array(LameInternalFlags$1.MAX_HEADER_BUF);\n this.h_ptr = 0;\n this.w_ptr = 0;\n this.ancillary_flag = 0;\n this.ResvSize = 0;\n this.ResvMax = 0;\n this.scalefac_band = new ScaleFac();\n this.minval_l = new_float$7(Encoder.CBANDS);\n this.minval_s = new_float$7(Encoder.CBANDS);\n this.nb_1 = new_float_n$1([4, Encoder.CBANDS]);\n this.nb_2 = new_float_n$1([4, Encoder.CBANDS]);\n this.nb_s1 = new_float_n$1([4, Encoder.CBANDS]);\n this.nb_s2 = new_float_n$1([4, Encoder.CBANDS]);\n this.s3_ss = null;\n this.s3_ll = null;\n this.decay = 0;\n this.thm = new Array(4);\n this.en = new Array(4);\n this.tot_ener = new_float$7(4);\n this.loudness_sq = new_float_n$1([2, 2]);\n this.loudness_sq_save = new_float$7(2);\n this.mld_l = new_float$7(Encoder.SBMAX_l);\n this.mld_s = new_float$7(Encoder.SBMAX_s);\n this.bm_l = new_int$6(Encoder.SBMAX_l);\n this.bo_l = new_int$6(Encoder.SBMAX_l);\n this.bm_s = new_int$6(Encoder.SBMAX_s);\n this.bo_s = new_int$6(Encoder.SBMAX_s);\n this.npart_l = 0;\n this.npart_s = 0;\n this.s3ind = new_int_n$1([Encoder.CBANDS, 2]);\n this.s3ind_s = new_int_n$1([Encoder.CBANDS, 2]);\n this.numlines_s = new_int$6(Encoder.CBANDS);\n this.numlines_l = new_int$6(Encoder.CBANDS);\n this.rnumlines_l = new_float$7(Encoder.CBANDS);\n this.mld_cb_l = new_float$7(Encoder.CBANDS);\n this.mld_cb_s = new_float$7(Encoder.CBANDS);\n this.numlines_s_num1 = 0;\n this.numlines_l_num1 = 0;\n this.pe = new_float$7(4);\n this.ms_ratio_s_old = 0;\n this.ms_ratio_l_old = 0;\n this.ms_ener_ratio_old = 0;\n this.blocktype_old = new_int$6(2);\n this.nsPsy = new NsPsy();\n this.VBR_seek_table = new VBRSeekInfo();\n this.ATH = null;\n this.PSY = null;\n this.nogap_total = 0;\n this.nogap_current = 0;\n this.decode_on_the_fly = true;\n this.findReplayGain = true;\n this.findPeakSample = true;\n this.PeakSample = 0;\n this.RadioGain = 0;\n this.AudiophileGain = 0;\n this.rgdata = null;\n this.noclipGainChange = 0;\n this.noclipScale = 0;\n this.bitrate_stereoMode_Hist = new_int_n$1([16, 4 + 1]);\n this.bitrate_blockType_Hist = new_int_n$1([16, 4 + 1 + 1]);\n this.pinfo = null;\n this.hip = null;\n this.in_buffer_nsamples = 0;\n this.in_buffer_0 = null;\n this.in_buffer_1 = null;\n this.iteration_loop = null;\n for (var i = 0; i < this.en.length; i++) {\n this.en[i] = new III_psy_xmin();\n }\n for (var i = 0; i < this.thm.length; i++) {\n this.thm[i] = new III_psy_xmin();\n }\n for (var i = 0; i < this.header.length; i++) {\n this.header[i] = new Header();\n }\n}\nvar new_float$6 = common.new_float;\nfunction ATH() {\n this.useAdjust = 0;\n this.aaSensitivityP = 0;\n this.adjust = 0;\n this.adjustLimit = 0;\n this.decay = 0;\n this.floor = 0;\n this.l = new_float$6(Encoder.SBMAX_l);\n this.s = new_float$6(Encoder.SBMAX_s);\n this.psfb21 = new_float$6(Encoder.PSFB21);\n this.psfb12 = new_float$6(Encoder.PSFB12);\n this.cb_l = new_float$6(Encoder.CBANDS);\n this.cb_s = new_float$6(Encoder.CBANDS);\n this.eql_w = new_float$6(Encoder.BLKSIZE / 2);\n}\nvar System$5 = common.System;\nvar Arrays$4 = common.Arrays;\nGainAnalysis$1.STEPS_per_dB = 100;\nGainAnalysis$1.MAX_dB = 120;\nGainAnalysis$1.GAIN_NOT_ENOUGH_SAMPLES = -24601;\nGainAnalysis$1.GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis$1.GAIN_ANALYSIS_OK = 1;\nGainAnalysis$1.INIT_GAIN_ANALYSIS_ERROR = 0;\nGainAnalysis$1.INIT_GAIN_ANALYSIS_OK = 1;\nGainAnalysis$1.YULE_ORDER = 10;\nGainAnalysis$1.MAX_ORDER = GainAnalysis$1.YULE_ORDER;\nGainAnalysis$1.MAX_SAMP_FREQ = 48e3;\nGainAnalysis$1.RMS_WINDOW_TIME_NUMERATOR = 1;\nGainAnalysis$1.RMS_WINDOW_TIME_DENOMINATOR = 20;\nGainAnalysis$1.MAX_SAMPLES_PER_WINDOW = GainAnalysis$1.MAX_SAMP_FREQ * GainAnalysis$1.RMS_WINDOW_TIME_NUMERATOR / GainAnalysis$1.RMS_WINDOW_TIME_DENOMINATOR + 1;\nfunction GainAnalysis$1() {\n var PINK_REF = 64.82;\n var RMS_PERCENTILE = 0.95;\n var RMS_WINDOW_TIME_NUMERATOR = GainAnalysis$1.RMS_WINDOW_TIME_NUMERATOR;\n var RMS_WINDOW_TIME_DENOMINATOR = GainAnalysis$1.RMS_WINDOW_TIME_DENOMINATOR;\n var ABYule = [\n [\n 0.038575994352,\n -3.84664617118067,\n -0.02160367184185,\n 7.81501653005538,\n -0.00123395316851,\n -11.34170355132042,\n -9291677959e-14,\n 13.05504219327545,\n -0.01655260341619,\n -12.28759895145294,\n 0.02161526843274,\n 9.4829380631979,\n -0.02074045215285,\n -5.87257861775999,\n 0.00594298065125,\n 2.75465861874613,\n 0.00306428023191,\n -0.86984376593551,\n 12025322027e-14,\n 0.13919314567432,\n 0.00288463683916\n ],\n [\n 0.0541865640643,\n -3.47845948550071,\n -0.02911007808948,\n 6.36317777566148,\n -0.00848709379851,\n -8.54751527471874,\n -0.00851165645469,\n 9.4769360780128,\n -0.00834990904936,\n -8.81498681370155,\n 0.02245293253339,\n 6.85401540936998,\n -0.02596338512915,\n -4.39470996079559,\n 0.01624864962975,\n 2.19611684890774,\n -0.00240879051584,\n -0.75104302451432,\n 0.00674613682247,\n 0.13149317958808,\n -0.00187763777362\n ],\n [\n 0.15457299681924,\n -2.37898834973084,\n -0.09331049056315,\n 2.84868151156327,\n -0.06247880153653,\n -2.64577170229825,\n 0.02163541888798,\n 2.23697657451713,\n -0.05588393329856,\n -1.67148153367602,\n 0.04781476674921,\n 1.00595954808547,\n 0.00222312597743,\n -0.45953458054983,\n 0.03174092540049,\n 0.16378164858596,\n -0.01390589421898,\n -0.05032077717131,\n 0.00651420667831,\n 0.0234789740702,\n -0.00881362733839\n ],\n [\n 0.30296907319327,\n -1.61273165137247,\n -0.22613988682123,\n 1.0797749225997,\n -0.08587323730772,\n -0.2565625775407,\n 0.03282930172664,\n -0.1627671912044,\n -0.00915702933434,\n -0.22638893773906,\n -0.02364141202522,\n 0.39120800788284,\n -0.00584456039913,\n -0.22138138954925,\n 0.06276101321749,\n 0.04500235387352,\n -828086748e-14,\n 0.02005851806501,\n 0.00205861885564,\n 0.00302439095741,\n -0.02950134983287\n ],\n [\n 0.33642304856132,\n -1.49858979367799,\n -0.2557224142557,\n 0.87350271418188,\n -0.11828570177555,\n 0.12205022308084,\n 0.11921148675203,\n -0.80774944671438,\n -0.07834489609479,\n 0.47854794562326,\n -0.0046997791438,\n -0.12453458140019,\n -0.0058950022444,\n -0.04067510197014,\n 0.05724228140351,\n 0.08333755284107,\n 0.00832043980773,\n -0.04237348025746,\n -0.0163538138454,\n 0.02977207319925,\n -0.0176017656815\n ],\n [\n 0.4491525660845,\n -0.62820619233671,\n -0.14351757464547,\n 0.29661783706366,\n -0.22784394429749,\n -0.372563729424,\n -0.01419140100551,\n 0.00213767857124,\n 0.04078262797139,\n -0.42029820170918,\n -0.12398163381748,\n 0.22199650564824,\n 0.04097565135648,\n 0.00613424350682,\n 0.10478503600251,\n 0.06747620744683,\n -0.01863887810927,\n 0.05784820375801,\n -0.03193428438915,\n 0.03222754072173,\n 0.00541907748707\n ],\n [\n 0.56619470757641,\n -1.04800335126349,\n -0.75464456939302,\n 0.29156311971249,\n 0.1624213774223,\n -0.26806001042947,\n 0.16744243493672,\n 0.00819999645858,\n -0.18901604199609,\n 0.45054734505008,\n 0.3093178284183,\n -0.33032403314006,\n -0.27562961986224,\n 0.0673936833311,\n 0.00647310677246,\n -0.04784254229033,\n 0.08647503780351,\n 0.01639907836189,\n -0.0378898455484,\n 0.01807364323573,\n -0.00588215443421\n ],\n [\n 0.58100494960553,\n -0.51035327095184,\n -0.53174909058578,\n -0.31863563325245,\n -0.14289799034253,\n -0.20256413484477,\n 0.17520704835522,\n 0.1472815413433,\n 0.02377945217615,\n 0.38952639978999,\n 0.15558449135573,\n -0.23313271880868,\n -0.25344790059353,\n -0.05246019024463,\n 0.01628462406333,\n -0.02505961724053,\n 0.06920467763959,\n 0.02442357316099,\n -0.03721611395801,\n 0.01818801111503,\n -0.00749618797172\n ],\n [\n 0.53648789255105,\n -0.2504987195602,\n -0.42163034350696,\n -0.43193942311114,\n -0.00275953611929,\n -0.03424681017675,\n 0.04267842219415,\n -0.04678328784242,\n -0.10214864179676,\n 0.26408300200955,\n 0.14590772289388,\n 0.15113130533216,\n -0.02459864859345,\n -0.17556493366449,\n -0.11202315195388,\n -0.18823009262115,\n -0.04060034127,\n 0.05477720428674,\n 0.0478866554818,\n 0.0470440968812,\n -0.02217936801134\n ]\n ];\n var ABButter = [\n [\n 0.98621192462708,\n -1.97223372919527,\n -1.97242384925416,\n 0.97261396931306,\n 0.98621192462708\n ],\n [\n 0.98500175787242,\n -1.96977855582618,\n -1.97000351574484,\n 0.9702284756635,\n 0.98500175787242\n ],\n [\n 0.97938932735214,\n -1.95835380975398,\n -1.95877865470428,\n 0.95920349965459,\n 0.97938932735214\n ],\n [\n 0.97531843204928,\n -1.95002759149878,\n -1.95063686409857,\n 0.95124613669835,\n 0.97531843204928\n ],\n [\n 0.97316523498161,\n -1.94561023566527,\n -1.94633046996323,\n 0.94705070426118,\n 0.97316523498161\n ],\n [\n 0.96454515552826,\n -1.92783286977036,\n -1.92909031105652,\n 0.93034775234268,\n 0.96454515552826\n ],\n [\n 0.96009142950541,\n -1.91858953033784,\n -1.92018285901082,\n 0.92177618768381,\n 0.96009142950541\n ],\n [\n 0.95856916599601,\n -1.9154210807478,\n -1.91713833199203,\n 0.91885558323625,\n 0.95856916599601\n ],\n [\n 0.94597685600279,\n -1.88903307939452,\n -1.89195371200558,\n 0.89487434461664,\n 0.94597685600279\n ]\n ];\n function filterYule(input, inputPos, output, outputPos, nSamples, kernel) {\n while (nSamples-- != 0) {\n output[outputPos] = 1e-10 + input[inputPos + 0] * kernel[0] - output[outputPos - 1] * kernel[1] + input[inputPos - 1] * kernel[2] - output[outputPos - 2] * kernel[3] + input[inputPos - 2] * kernel[4] - output[outputPos - 3] * kernel[5] + input[inputPos - 3] * kernel[6] - output[outputPos - 4] * kernel[7] + input[inputPos - 4] * kernel[8] - output[outputPos - 5] * kernel[9] + input[inputPos - 5] * kernel[10] - output[outputPos - 6] * kernel[11] + input[inputPos - 6] * kernel[12] - output[outputPos - 7] * kernel[13] + input[inputPos - 7] * kernel[14] - output[outputPos - 8] * kernel[15] + input[inputPos - 8] * kernel[16] - output[outputPos - 9] * kernel[17] + input[inputPos - 9] * kernel[18] - output[outputPos - 10] * kernel[19] + input[inputPos - 10] * kernel[20];\n ++outputPos;\n ++inputPos;\n }\n }\n function filterButter(input, inputPos, output, outputPos, nSamples, kernel) {\n while (nSamples-- != 0) {\n output[outputPos] = input[inputPos + 0] * kernel[0] - output[outputPos - 1] * kernel[1] + input[inputPos - 1] * kernel[2] - output[outputPos - 2] * kernel[3] + input[inputPos - 2] * kernel[4];\n ++outputPos;\n ++inputPos;\n }\n }\n function ResetSampleFrequency(rgData, samplefreq) {\n for (var i = 0; i < MAX_ORDER; i++) {\n rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0;\n }\n switch (0 | samplefreq) {\n case 48e3:\n rgData.reqindex = 0;\n break;\n case 44100:\n rgData.reqindex = 1;\n break;\n case 32e3:\n rgData.reqindex = 2;\n break;\n case 24e3:\n rgData.reqindex = 3;\n break;\n case 22050:\n rgData.reqindex = 4;\n break;\n case 16e3:\n rgData.reqindex = 5;\n break;\n case 12e3:\n rgData.reqindex = 6;\n break;\n case 11025:\n rgData.reqindex = 7;\n break;\n case 8e3:\n rgData.reqindex = 8;\n break;\n default:\n return INIT_GAIN_ANALYSIS_ERROR;\n }\n rgData.sampleWindow = 0 | (samplefreq * RMS_WINDOW_TIME_NUMERATOR + RMS_WINDOW_TIME_DENOMINATOR - 1) / RMS_WINDOW_TIME_DENOMINATOR;\n rgData.lsum = 0;\n rgData.rsum = 0;\n rgData.totsamp = 0;\n Arrays$4.ill(rgData.A, 0);\n return INIT_GAIN_ANALYSIS_OK;\n }\n this.InitGainAnalysis = function(rgData, samplefreq) {\n if (ResetSampleFrequency(rgData, samplefreq) != INIT_GAIN_ANALYSIS_OK) {\n return INIT_GAIN_ANALYSIS_ERROR;\n }\n rgData.linpre = MAX_ORDER;\n rgData.rinpre = MAX_ORDER;\n rgData.lstep = MAX_ORDER;\n rgData.rstep = MAX_ORDER;\n rgData.lout = MAX_ORDER;\n rgData.rout = MAX_ORDER;\n Arrays$4.fill(rgData.B, 0);\n return INIT_GAIN_ANALYSIS_OK;\n };\n function fsqr(d) {\n return d * d;\n }\n this.AnalyzeSamples = function(rgData, left_samples, left_samplesPos, right_samples, right_samplesPos, num_samples, num_channels) {\n var curleft;\n var curleftBase;\n var curright;\n var currightBase;\n var batchsamples;\n var cursamples;\n var cursamplepos;\n if (num_samples == 0)\n return GAIN_ANALYSIS_OK;\n cursamplepos = 0;\n batchsamples = num_samples;\n switch (num_channels) {\n case 1:\n right_samples = left_samples;\n right_samplesPos = left_samplesPos;\n break;\n case 2:\n break;\n default:\n return GAIN_ANALYSIS_ERROR;\n }\n if (num_samples < MAX_ORDER) {\n System$5.arraycopy(\n left_samples,\n left_samplesPos,\n rgData.linprebuf,\n MAX_ORDER,\n num_samples\n );\n System$5.arraycopy(\n right_samples,\n right_samplesPos,\n rgData.rinprebuf,\n MAX_ORDER,\n num_samples\n );\n } else {\n System$5.arraycopy(\n left_samples,\n left_samplesPos,\n rgData.linprebuf,\n MAX_ORDER,\n MAX_ORDER\n );\n System$5.arraycopy(\n right_samples,\n right_samplesPos,\n rgData.rinprebuf,\n MAX_ORDER,\n MAX_ORDER\n );\n }\n while (batchsamples > 0) {\n cursamples = batchsamples > rgData.sampleWindow - rgData.totsamp ? rgData.sampleWindow - rgData.totsamp : batchsamples;\n if (cursamplepos < MAX_ORDER) {\n curleft = rgData.linpre + cursamplepos;\n curleftBase = rgData.linprebuf;\n curright = rgData.rinpre + cursamplepos;\n currightBase = rgData.rinprebuf;\n if (cursamples > MAX_ORDER - cursamplepos) {\n cursamples = MAX_ORDER - cursamplepos;\n }\n } else {\n curleft = left_samplesPos + cursamplepos;\n curleftBase = left_samples;\n curright = right_samplesPos + cursamplepos;\n currightBase = right_samples;\n }\n filterYule(\n curleftBase,\n curleft,\n rgData.lstepbuf,\n rgData.lstep + rgData.totsamp,\n cursamples,\n ABYule[rgData.reqindex]\n );\n filterYule(\n currightBase,\n curright,\n rgData.rstepbuf,\n rgData.rstep + rgData.totsamp,\n cursamples,\n ABYule[rgData.reqindex]\n );\n filterButter(\n rgData.lstepbuf,\n rgData.lstep + rgData.totsamp,\n rgData.loutbuf,\n rgData.lout + rgData.totsamp,\n cursamples,\n ABButter[rgData.reqindex]\n );\n filterButter(\n rgData.rstepbuf,\n rgData.rstep + rgData.totsamp,\n rgData.routbuf,\n rgData.rout + rgData.totsamp,\n cursamples,\n ABButter[rgData.reqindex]\n );\n curleft = rgData.lout + rgData.totsamp;\n curleftBase = rgData.loutbuf;\n curright = rgData.rout + rgData.totsamp;\n currightBase = rgData.routbuf;\n var i = cursamples % 8;\n while (i-- != 0) {\n rgData.lsum += fsqr(curleftBase[curleft++]);\n rgData.rsum += fsqr(currightBase[curright++]);\n }\n i = cursamples / 8;\n while (i-- != 0) {\n rgData.lsum += fsqr(curleftBase[curleft + 0]) + fsqr(curleftBase[curleft + 1]) + fsqr(curleftBase[curleft + 2]) + fsqr(curleftBase[curleft + 3]) + fsqr(curleftBase[curleft + 4]) + fsqr(curleftBase[curleft + 5]) + fsqr(curleftBase[curleft + 6]) + fsqr(curleftBase[curleft + 7]);\n curleft += 8;\n rgData.rsum += fsqr(currightBase[curright + 0]) + fsqr(currightBase[curright + 1]) + fsqr(currightBase[curright + 2]) + fsqr(currightBase[curright + 3]) + fsqr(currightBase[curright + 4]) + fsqr(currightBase[curright + 5]) + fsqr(currightBase[curright + 6]) + fsqr(currightBase[curright + 7]);\n curright += 8;\n }\n batchsamples -= cursamples;\n cursamplepos += cursamples;\n rgData.totsamp += cursamples;\n if (rgData.totsamp == rgData.sampleWindow) {\n var val = GainAnalysis$1.STEPS_per_dB * 10 * Math.log10(\n (rgData.lsum + rgData.rsum) / rgData.totsamp * 0.5 + 1e-37\n );\n var ival = val <= 0 ? 0 : 0 | val;\n if (ival >= rgData.A.length)\n ival = rgData.A.length - 1;\n rgData.A[ival]++;\n rgData.lsum = rgData.rsum = 0;\n System$5.arraycopy(\n rgData.loutbuf,\n rgData.totsamp,\n rgData.loutbuf,\n 0,\n MAX_ORDER\n );\n System$5.arraycopy(\n rgData.routbuf,\n rgData.totsamp,\n rgData.routbuf,\n 0,\n MAX_ORDER\n );\n System$5.arraycopy(\n rgData.lstepbuf,\n rgData.totsamp,\n rgData.lstepbuf,\n 0,\n MAX_ORDER\n );\n System$5.arraycopy(\n rgData.rstepbuf,\n rgData.totsamp,\n rgData.rstepbuf,\n 0,\n MAX_ORDER\n );\n rgData.totsamp = 0;\n }\n if (rgData.totsamp > rgData.sampleWindow) {\n return GAIN_ANALYSIS_ERROR;\n }\n }\n if (num_samples < MAX_ORDER) {\n System$5.arraycopy(\n rgData.linprebuf,\n num_samples,\n rgData.linprebuf,\n 0,\n MAX_ORDER - num_samples\n );\n System$5.arraycopy(\n rgData.rinprebuf,\n num_samples,\n rgData.rinprebuf,\n 0,\n MAX_ORDER - num_samples\n );\n System$5.arraycopy(\n left_samples,\n left_samplesPos,\n rgData.linprebuf,\n MAX_ORDER - num_samples,\n num_samples\n );\n System$5.arraycopy(\n right_samples,\n right_samplesPos,\n rgData.rinprebuf,\n MAX_ORDER - num_samples,\n num_samples\n );\n } else {\n System$5.arraycopy(\n left_samples,\n left_samplesPos + num_samples - MAX_ORDER,\n rgData.linprebuf,\n 0,\n MAX_ORDER\n );\n System$5.arraycopy(\n right_samples,\n right_samplesPos + num_samples - MAX_ORDER,\n rgData.rinprebuf,\n 0,\n MAX_ORDER\n );\n }\n return GAIN_ANALYSIS_OK;\n };\n function analyzeResult(Array2, len) {\n var i;\n var elems = 0;\n for (i = 0; i < len; i++)\n elems += Array2[i];\n if (elems == 0)\n return GAIN_NOT_ENOUGH_SAMPLES;\n var upper = 0 | Math.ceil(elems * (1 - RMS_PERCENTILE));\n for (i = len; i-- > 0; ) {\n if ((upper -= Array2[i]) <= 0)\n break;\n }\n return PINK_REF - i / GainAnalysis$1.STEPS_per_dB;\n }\n this.GetTitleGain = function(rgData) {\n var retval = analyzeResult(rgData.A, rgData.A.length);\n for (var i = 0; i < rgData.A.length; i++) {\n rgData.B[i] += rgData.A[i];\n rgData.A[i] = 0;\n }\n for (var i = 0; i < MAX_ORDER; i++) {\n rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0;\n }\n rgData.totsamp = 0;\n rgData.lsum = rgData.rsum = 0;\n return retval;\n };\n}\nvar new_float$5 = common.new_float;\nvar new_int$5 = common.new_int;\nfunction ReplayGain() {\n this.linprebuf = new_float$5(void 0 * 2);\n this.linpre = 0;\n this.lstepbuf = new_float$5(\n void 0 + void 0\n );\n this.lstep = 0;\n this.loutbuf = new_float$5(\n void 0 + void 0\n );\n this.lout = 0;\n this.rinprebuf = new_float$5(void 0 * 2);\n this.rinpre = 0;\n this.rstepbuf = new_float$5(\n void 0 + void 0\n );\n this.rstep = 0;\n this.routbuf = new_float$5(\n void 0 + void 0\n );\n this.rout = 0;\n this.sampleWindow = 0;\n this.totsamp = 0;\n this.lsum = 0;\n this.rsum = 0;\n this.freqindex = 0;\n this.first = 0;\n this.A = new_int$5(0 | void 0 * void 0);\n this.B = new_int$5(0 | void 0 * void 0);\n}\nfunction MeanBits$1(meanBits) {\n this.bits = meanBits;\n}\nvar new_float$4 = common.new_float;\nvar new_int$4 = common.new_int;\nvar assert$8 = common.assert;\nfunction CBRNewIterationLoop(_quantize) {\n var quantize = _quantize;\n this.quantize = quantize;\n this.iteration_loop = function(gfp, pe, ms_ener_ratio, ratio) {\n var gfc = gfp.internal_flags;\n var l3_xmin = new_float$4(L3Side$1.SFBMAX);\n var xrpow = new_float$4(576);\n var targ_bits = new_int$4(2);\n var mean_bits = 0;\n var max_bits;\n var l3_side = gfc.l3_side;\n var mb = new MeanBits$1(mean_bits);\n this.quantize.rv.ResvFrameBegin(gfp, mb);\n mean_bits = mb.bits;\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n max_bits = this.quantize.qupvt.on_pe(\n gfp,\n pe,\n targ_bits,\n mean_bits,\n gr,\n gr\n );\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n this.quantize.ms_convert(gfc.l3_side, gr);\n this.quantize.qupvt.reduce_side(\n targ_bits,\n ms_ener_ratio[gr],\n mean_bits,\n max_bits\n );\n }\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var adjust, masking_lower_db;\n var cod_info = l3_side.tt[gr][ch];\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n adjust = 0;\n masking_lower_db = gfc.PSY.mask_adjust - adjust;\n } else {\n adjust = 0;\n masking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n }\n gfc.masking_lower = Math.pow(10, masking_lower_db * 0.1);\n this.quantize.init_outer_loop(gfc, cod_info);\n if (this.quantize.init_xrpow(gfc, cod_info, xrpow)) {\n this.quantize.qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info, l3_xmin);\n this.quantize.outer_loop(\n gfp,\n cod_info,\n l3_xmin,\n xrpow,\n ch,\n targ_bits[ch]\n );\n }\n this.quantize.iteration_finish_one(gfc, gr, ch);\n assert$8(\n cod_info.part2_3_length <= LameInternalFlags$1.MAX_BITS_PER_CHANNEL\n );\n assert$8(cod_info.part2_3_length <= targ_bits[ch]);\n }\n }\n this.quantize.rv.ResvFrameEnd(gfc, mean_bits);\n };\n}\nfunction HuffCodeTab(len, max, tab, hl) {\n this.xlen = len;\n this.linmax = max;\n this.table = tab;\n this.hlen = hl;\n}\nvar Tables$1 = {};\nTables$1.t1HB = [1, 1, 1, 0];\nTables$1.t2HB = [1, 2, 1, 3, 1, 1, 3, 2, 0];\nTables$1.t3HB = [3, 2, 1, 1, 1, 1, 3, 2, 0];\nTables$1.t5HB = [1, 2, 6, 5, 3, 1, 4, 4, 7, 5, 7, 1, 6, 1, 1, 0];\nTables$1.t6HB = [7, 3, 5, 1, 6, 2, 3, 2, 5, 4, 4, 1, 3, 3, 2, 0];\nTables$1.t7HB = [\n 1,\n 2,\n 10,\n 19,\n 16,\n 10,\n 3,\n 3,\n 7,\n 10,\n 5,\n 3,\n 11,\n 4,\n 13,\n 17,\n 8,\n 4,\n 12,\n 11,\n 18,\n 15,\n 11,\n 2,\n 7,\n 6,\n 9,\n 14,\n 3,\n 1,\n 6,\n 4,\n 5,\n 3,\n 2,\n 0\n];\nTables$1.t8HB = [\n 3,\n 4,\n 6,\n 18,\n 12,\n 5,\n 5,\n 1,\n 2,\n 16,\n 9,\n 3,\n 7,\n 3,\n 5,\n 14,\n 7,\n 3,\n 19,\n 17,\n 15,\n 13,\n 10,\n 4,\n 13,\n 5,\n 8,\n 11,\n 5,\n 1,\n 12,\n 4,\n 4,\n 1,\n 1,\n 0\n];\nTables$1.t9HB = [\n 7,\n 5,\n 9,\n 14,\n 15,\n 7,\n 6,\n 4,\n 5,\n 5,\n 6,\n 7,\n 7,\n 6,\n 8,\n 8,\n 8,\n 5,\n 15,\n 6,\n 9,\n 10,\n 5,\n 1,\n 11,\n 7,\n 9,\n 6,\n 4,\n 1,\n 14,\n 4,\n 6,\n 2,\n 6,\n 0\n];\nTables$1.t10HB = [\n 1,\n 2,\n 10,\n 23,\n 35,\n 30,\n 12,\n 17,\n 3,\n 3,\n 8,\n 12,\n 18,\n 21,\n 12,\n 7,\n 11,\n 9,\n 15,\n 21,\n 32,\n 40,\n 19,\n 6,\n 14,\n 13,\n 22,\n 34,\n 46,\n 23,\n 18,\n 7,\n 20,\n 19,\n 33,\n 47,\n 27,\n 22,\n 9,\n 3,\n 31,\n 22,\n 41,\n 26,\n 21,\n 20,\n 5,\n 3,\n 14,\n 13,\n 10,\n 11,\n 16,\n 6,\n 5,\n 1,\n 9,\n 8,\n 7,\n 8,\n 4,\n 4,\n 2,\n 0\n];\nTables$1.t11HB = [\n 3,\n 4,\n 10,\n 24,\n 34,\n 33,\n 21,\n 15,\n 5,\n 3,\n 4,\n 10,\n 32,\n 17,\n 11,\n 10,\n 11,\n 7,\n 13,\n 18,\n 30,\n 31,\n 20,\n 5,\n 25,\n 11,\n 19,\n 59,\n 27,\n 18,\n 12,\n 5,\n 35,\n 33,\n 31,\n 58,\n 30,\n 16,\n 7,\n 5,\n 28,\n 26,\n 32,\n 19,\n 17,\n 15,\n 8,\n 14,\n 14,\n 12,\n 9,\n 13,\n 14,\n 9,\n 4,\n 1,\n 11,\n 4,\n 6,\n 6,\n 6,\n 3,\n 2,\n 0\n];\nTables$1.t12HB = [\n 9,\n 6,\n 16,\n 33,\n 41,\n 39,\n 38,\n 26,\n 7,\n 5,\n 6,\n 9,\n 23,\n 16,\n 26,\n 11,\n 17,\n 7,\n 11,\n 14,\n 21,\n 30,\n 10,\n 7,\n 17,\n 10,\n 15,\n 12,\n 18,\n 28,\n 14,\n 5,\n 32,\n 13,\n 22,\n 19,\n 18,\n 16,\n 9,\n 5,\n 40,\n 17,\n 31,\n 29,\n 17,\n 13,\n 4,\n 2,\n 27,\n 12,\n 11,\n 15,\n 10,\n 7,\n 4,\n 1,\n 27,\n 12,\n 8,\n 12,\n 6,\n 3,\n 1,\n 0\n];\nTables$1.t13HB = [\n 1,\n 5,\n 14,\n 21,\n 34,\n 51,\n 46,\n 71,\n 42,\n 52,\n 68,\n 52,\n 67,\n 44,\n 43,\n 19,\n 3,\n 4,\n 12,\n 19,\n 31,\n 26,\n 44,\n 33,\n 31,\n 24,\n 32,\n 24,\n 31,\n 35,\n 22,\n 14,\n 15,\n 13,\n 23,\n 36,\n 59,\n 49,\n 77,\n 65,\n 29,\n 40,\n 30,\n 40,\n 27,\n 33,\n 42,\n 16,\n 22,\n 20,\n 37,\n 61,\n 56,\n 79,\n 73,\n 64,\n 43,\n 76,\n 56,\n 37,\n 26,\n 31,\n 25,\n 14,\n 35,\n 16,\n 60,\n 57,\n 97,\n 75,\n 114,\n 91,\n 54,\n 73,\n 55,\n 41,\n 48,\n 53,\n 23,\n 24,\n 58,\n 27,\n 50,\n 96,\n 76,\n 70,\n 93,\n 84,\n 77,\n 58,\n 79,\n 29,\n 74,\n 49,\n 41,\n 17,\n 47,\n 45,\n 78,\n 74,\n 115,\n 94,\n 90,\n 79,\n 69,\n 83,\n 71,\n 50,\n 59,\n 38,\n 36,\n 15,\n 72,\n 34,\n 56,\n 95,\n 92,\n 85,\n 91,\n 90,\n 86,\n 73,\n 77,\n 65,\n 51,\n 44,\n 43,\n 42,\n 43,\n 20,\n 30,\n 44,\n 55,\n 78,\n 72,\n 87,\n 78,\n 61,\n 46,\n 54,\n 37,\n 30,\n 20,\n 16,\n 53,\n 25,\n 41,\n 37,\n 44,\n 59,\n 54,\n 81,\n 66,\n 76,\n 57,\n 54,\n 37,\n 18,\n 39,\n 11,\n 35,\n 33,\n 31,\n 57,\n 42,\n 82,\n 72,\n 80,\n 47,\n 58,\n 55,\n 21,\n 22,\n 26,\n 38,\n 22,\n 53,\n 25,\n 23,\n 38,\n 70,\n 60,\n 51,\n 36,\n 55,\n 26,\n 34,\n 23,\n 27,\n 14,\n 9,\n 7,\n 34,\n 32,\n 28,\n 39,\n 49,\n 75,\n 30,\n 52,\n 48,\n 40,\n 52,\n 28,\n 18,\n 17,\n 9,\n 5,\n 45,\n 21,\n 34,\n 64,\n 56,\n 50,\n 49,\n 45,\n 31,\n 19,\n 12,\n 15,\n 10,\n 7,\n 6,\n 3,\n 48,\n 23,\n 20,\n 39,\n 36,\n 35,\n 53,\n 21,\n 16,\n 23,\n 13,\n 10,\n 6,\n 1,\n 4,\n 2,\n 16,\n 15,\n 17,\n 27,\n 25,\n 20,\n 29,\n 11,\n 17,\n 12,\n 16,\n 8,\n 1,\n 1,\n 0,\n 1\n];\nTables$1.t15HB = [\n 7,\n 12,\n 18,\n 53,\n 47,\n 76,\n 124,\n 108,\n 89,\n 123,\n 108,\n 119,\n 107,\n 81,\n 122,\n 63,\n 13,\n 5,\n 16,\n 27,\n 46,\n 36,\n 61,\n 51,\n 42,\n 70,\n 52,\n 83,\n 65,\n 41,\n 59,\n 36,\n 19,\n 17,\n 15,\n 24,\n 41,\n 34,\n 59,\n 48,\n 40,\n 64,\n 50,\n 78,\n 62,\n 80,\n 56,\n 33,\n 29,\n 28,\n 25,\n 43,\n 39,\n 63,\n 55,\n 93,\n 76,\n 59,\n 93,\n 72,\n 54,\n 75,\n 50,\n 29,\n 52,\n 22,\n 42,\n 40,\n 67,\n 57,\n 95,\n 79,\n 72,\n 57,\n 89,\n 69,\n 49,\n 66,\n 46,\n 27,\n 77,\n 37,\n 35,\n 66,\n 58,\n 52,\n 91,\n 74,\n 62,\n 48,\n 79,\n 63,\n 90,\n 62,\n 40,\n 38,\n 125,\n 32,\n 60,\n 56,\n 50,\n 92,\n 78,\n 65,\n 55,\n 87,\n 71,\n 51,\n 73,\n 51,\n 70,\n 30,\n 109,\n 53,\n 49,\n 94,\n 88,\n 75,\n 66,\n 122,\n 91,\n 73,\n 56,\n 42,\n 64,\n 44,\n 21,\n 25,\n 90,\n 43,\n 41,\n 77,\n 73,\n 63,\n 56,\n 92,\n 77,\n 66,\n 47,\n 67,\n 48,\n 53,\n 36,\n 20,\n 71,\n 34,\n 67,\n 60,\n 58,\n 49,\n 88,\n 76,\n 67,\n 106,\n 71,\n 54,\n 38,\n 39,\n 23,\n 15,\n 109,\n 53,\n 51,\n 47,\n 90,\n 82,\n 58,\n 57,\n 48,\n 72,\n 57,\n 41,\n 23,\n 27,\n 62,\n 9,\n 86,\n 42,\n 40,\n 37,\n 70,\n 64,\n 52,\n 43,\n 70,\n 55,\n 42,\n 25,\n 29,\n 18,\n 11,\n 11,\n 118,\n 68,\n 30,\n 55,\n 50,\n 46,\n 74,\n 65,\n 49,\n 39,\n 24,\n 16,\n 22,\n 13,\n 14,\n 7,\n 91,\n 44,\n 39,\n 38,\n 34,\n 63,\n 52,\n 45,\n 31,\n 52,\n 28,\n 19,\n 14,\n 8,\n 9,\n 3,\n 123,\n 60,\n 58,\n 53,\n 47,\n 43,\n 32,\n 22,\n 37,\n 24,\n 17,\n 12,\n 15,\n 10,\n 2,\n 1,\n 71,\n 37,\n 34,\n 30,\n 28,\n 20,\n 17,\n 26,\n 21,\n 16,\n 10,\n 6,\n 8,\n 6,\n 2,\n 0\n];\nTables$1.t16HB = [\n 1,\n 5,\n 14,\n 44,\n 74,\n 63,\n 110,\n 93,\n 172,\n 149,\n 138,\n 242,\n 225,\n 195,\n 376,\n 17,\n 3,\n 4,\n 12,\n 20,\n 35,\n 62,\n 53,\n 47,\n 83,\n 75,\n 68,\n 119,\n 201,\n 107,\n 207,\n 9,\n 15,\n 13,\n 23,\n 38,\n 67,\n 58,\n 103,\n 90,\n 161,\n 72,\n 127,\n 117,\n 110,\n 209,\n 206,\n 16,\n 45,\n 21,\n 39,\n 69,\n 64,\n 114,\n 99,\n 87,\n 158,\n 140,\n 252,\n 212,\n 199,\n 387,\n 365,\n 26,\n 75,\n 36,\n 68,\n 65,\n 115,\n 101,\n 179,\n 164,\n 155,\n 264,\n 246,\n 226,\n 395,\n 382,\n 362,\n 9,\n 66,\n 30,\n 59,\n 56,\n 102,\n 185,\n 173,\n 265,\n 142,\n 253,\n 232,\n 400,\n 388,\n 378,\n 445,\n 16,\n 111,\n 54,\n 52,\n 100,\n 184,\n 178,\n 160,\n 133,\n 257,\n 244,\n 228,\n 217,\n 385,\n 366,\n 715,\n 10,\n 98,\n 48,\n 91,\n 88,\n 165,\n 157,\n 148,\n 261,\n 248,\n 407,\n 397,\n 372,\n 380,\n 889,\n 884,\n 8,\n 85,\n 84,\n 81,\n 159,\n 156,\n 143,\n 260,\n 249,\n 427,\n 401,\n 392,\n 383,\n 727,\n 713,\n 708,\n 7,\n 154,\n 76,\n 73,\n 141,\n 131,\n 256,\n 245,\n 426,\n 406,\n 394,\n 384,\n 735,\n 359,\n 710,\n 352,\n 11,\n 139,\n 129,\n 67,\n 125,\n 247,\n 233,\n 229,\n 219,\n 393,\n 743,\n 737,\n 720,\n 885,\n 882,\n 439,\n 4,\n 243,\n 120,\n 118,\n 115,\n 227,\n 223,\n 396,\n 746,\n 742,\n 736,\n 721,\n 712,\n 706,\n 223,\n 436,\n 6,\n 202,\n 224,\n 222,\n 218,\n 216,\n 389,\n 386,\n 381,\n 364,\n 888,\n 443,\n 707,\n 440,\n 437,\n 1728,\n 4,\n 747,\n 211,\n 210,\n 208,\n 370,\n 379,\n 734,\n 723,\n 714,\n 1735,\n 883,\n 877,\n 876,\n 3459,\n 865,\n 2,\n 377,\n 369,\n 102,\n 187,\n 726,\n 722,\n 358,\n 711,\n 709,\n 866,\n 1734,\n 871,\n 3458,\n 870,\n 434,\n 0,\n 12,\n 10,\n 7,\n 11,\n 10,\n 17,\n 11,\n 9,\n 13,\n 12,\n 10,\n 7,\n 5,\n 3,\n 1,\n 3\n];\nTables$1.t24HB = [\n 15,\n 13,\n 46,\n 80,\n 146,\n 262,\n 248,\n 434,\n 426,\n 669,\n 653,\n 649,\n 621,\n 517,\n 1032,\n 88,\n 14,\n 12,\n 21,\n 38,\n 71,\n 130,\n 122,\n 216,\n 209,\n 198,\n 327,\n 345,\n 319,\n 297,\n 279,\n 42,\n 47,\n 22,\n 41,\n 74,\n 68,\n 128,\n 120,\n 221,\n 207,\n 194,\n 182,\n 340,\n 315,\n 295,\n 541,\n 18,\n 81,\n 39,\n 75,\n 70,\n 134,\n 125,\n 116,\n 220,\n 204,\n 190,\n 178,\n 325,\n 311,\n 293,\n 271,\n 16,\n 147,\n 72,\n 69,\n 135,\n 127,\n 118,\n 112,\n 210,\n 200,\n 188,\n 352,\n 323,\n 306,\n 285,\n 540,\n 14,\n 263,\n 66,\n 129,\n 126,\n 119,\n 114,\n 214,\n 202,\n 192,\n 180,\n 341,\n 317,\n 301,\n 281,\n 262,\n 12,\n 249,\n 123,\n 121,\n 117,\n 113,\n 215,\n 206,\n 195,\n 185,\n 347,\n 330,\n 308,\n 291,\n 272,\n 520,\n 10,\n 435,\n 115,\n 111,\n 109,\n 211,\n 203,\n 196,\n 187,\n 353,\n 332,\n 313,\n 298,\n 283,\n 531,\n 381,\n 17,\n 427,\n 212,\n 208,\n 205,\n 201,\n 193,\n 186,\n 177,\n 169,\n 320,\n 303,\n 286,\n 268,\n 514,\n 377,\n 16,\n 335,\n 199,\n 197,\n 191,\n 189,\n 181,\n 174,\n 333,\n 321,\n 305,\n 289,\n 275,\n 521,\n 379,\n 371,\n 11,\n 668,\n 184,\n 183,\n 179,\n 175,\n 344,\n 331,\n 314,\n 304,\n 290,\n 277,\n 530,\n 383,\n 373,\n 366,\n 10,\n 652,\n 346,\n 171,\n 168,\n 164,\n 318,\n 309,\n 299,\n 287,\n 276,\n 263,\n 513,\n 375,\n 368,\n 362,\n 6,\n 648,\n 322,\n 316,\n 312,\n 307,\n 302,\n 292,\n 284,\n 269,\n 261,\n 512,\n 376,\n 370,\n 364,\n 359,\n 4,\n 620,\n 300,\n 296,\n 294,\n 288,\n 282,\n 273,\n 266,\n 515,\n 380,\n 374,\n 369,\n 365,\n 361,\n 357,\n 2,\n 1033,\n 280,\n 278,\n 274,\n 267,\n 264,\n 259,\n 382,\n 378,\n 372,\n 367,\n 363,\n 360,\n 358,\n 356,\n 0,\n 43,\n 20,\n 19,\n 17,\n 15,\n 13,\n 11,\n 9,\n 7,\n 6,\n 4,\n 7,\n 5,\n 3,\n 1,\n 3\n];\nTables$1.t32HB = [\n 1 << 0,\n 5 << 1,\n 4 << 1,\n 5 << 2,\n 6 << 1,\n 5 << 2,\n 4 << 2,\n 4 << 3,\n 7 << 1,\n 3 << 2,\n 6 << 2,\n 0 << 3,\n 7 << 2,\n 2 << 3,\n 3 << 3,\n 1 << 4\n];\nTables$1.t33HB = [\n 15 << 0,\n 14 << 1,\n 13 << 1,\n 12 << 2,\n 11 << 1,\n 10 << 2,\n 9 << 2,\n 8 << 3,\n 7 << 1,\n 6 << 2,\n 5 << 2,\n 4 << 3,\n 3 << 2,\n 2 << 3,\n 1 << 3,\n 0 << 4\n];\nTables$1.t1l = [1, 4, 3, 5];\nTables$1.t2l = [1, 4, 7, 4, 5, 7, 6, 7, 8];\nTables$1.t3l = [2, 3, 7, 4, 4, 7, 6, 7, 8];\nTables$1.t5l = [1, 4, 7, 8, 4, 5, 8, 9, 7, 8, 9, 10, 8, 8, 9, 10];\nTables$1.t6l = [3, 4, 6, 8, 4, 4, 6, 7, 5, 6, 7, 8, 7, 7, 8, 9];\nTables$1.t7l = [\n 1,\n 4,\n 7,\n 9,\n 9,\n 10,\n 4,\n 6,\n 8,\n 9,\n 9,\n 10,\n 7,\n 7,\n 9,\n 10,\n 10,\n 11,\n 8,\n 9,\n 10,\n 11,\n 11,\n 11,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12\n];\nTables$1.t8l = [\n 2,\n 4,\n 7,\n 9,\n 9,\n 10,\n 4,\n 4,\n 6,\n 10,\n 10,\n 10,\n 7,\n 6,\n 8,\n 10,\n 10,\n 11,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 9,\n 9,\n 10,\n 11,\n 12,\n 12,\n 10,\n 10,\n 11,\n 11,\n 13,\n 13\n];\nTables$1.t9l = [\n 3,\n 4,\n 6,\n 7,\n 9,\n 10,\n 4,\n 5,\n 6,\n 7,\n 8,\n 10,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 7,\n 7,\n 8,\n 9,\n 9,\n 10,\n 8,\n 8,\n 9,\n 9,\n 10,\n 11,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11\n];\nTables$1.t10l = [\n 1,\n 4,\n 7,\n 9,\n 10,\n 10,\n 10,\n 11,\n 4,\n 6,\n 8,\n 9,\n 10,\n 11,\n 10,\n 10,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 11,\n 11,\n 8,\n 9,\n 10,\n 11,\n 12,\n 12,\n 11,\n 12,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 12,\n 13,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 10,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13\n];\nTables$1.t11l = [\n 2,\n 4,\n 6,\n 8,\n 9,\n 10,\n 9,\n 10,\n 4,\n 5,\n 6,\n 8,\n 10,\n 10,\n 9,\n 10,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 10,\n 10,\n 8,\n 8,\n 9,\n 11,\n 10,\n 12,\n 10,\n 11,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 11,\n 12,\n 9,\n 10,\n 11,\n 12,\n 12,\n 13,\n 12,\n 13,\n 9,\n 9,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 9,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 12\n];\nTables$1.t12l = [\n 4,\n 4,\n 6,\n 8,\n 9,\n 10,\n 10,\n 10,\n 4,\n 5,\n 6,\n 7,\n 9,\n 9,\n 10,\n 10,\n 6,\n 6,\n 7,\n 8,\n 9,\n 10,\n 9,\n 10,\n 7,\n 7,\n 8,\n 8,\n 9,\n 10,\n 10,\n 10,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 10,\n 11,\n 9,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12\n];\nTables$1.t13l = [\n 1,\n 5,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 4,\n 6,\n 8,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 13,\n 14,\n 14,\n 14,\n 7,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 15,\n 15,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 15,\n 15,\n 9,\n 9,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 16,\n 10,\n 10,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 13,\n 15,\n 15,\n 16,\n 16,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 16,\n 11,\n 11,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 18,\n 18,\n 10,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 17,\n 17,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 15,\n 14,\n 15,\n 15,\n 16,\n 16,\n 16,\n 18,\n 17,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 14,\n 15,\n 16,\n 15,\n 16,\n 17,\n 18,\n 19,\n 12,\n 12,\n 12,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 17,\n 17,\n 17,\n 18,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 14,\n 15,\n 16,\n 16,\n 17,\n 17,\n 17,\n 18,\n 18,\n 18,\n 13,\n 13,\n 14,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 16,\n 16,\n 17,\n 18,\n 17,\n 18,\n 18,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 17,\n 16,\n 16,\n 19,\n 17,\n 17,\n 17,\n 19,\n 18,\n 18,\n 13,\n 14,\n 15,\n 16,\n 16,\n 16,\n 17,\n 16,\n 17,\n 17,\n 18,\n 18,\n 21,\n 20,\n 21,\n 18\n];\nTables$1.t15l = [\n 3,\n 5,\n 6,\n 8,\n 8,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 14,\n 5,\n 5,\n 7,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 6,\n 7,\n 7,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 7,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 9,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 10,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 15,\n 14,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 12,\n 12,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 14,\n 15,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15\n];\nTables$1.t16_5l = [\n 1,\n 5,\n 7,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 11,\n 4,\n 6,\n 8,\n 9,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 14,\n 13,\n 14,\n 11,\n 7,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 12,\n 9,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 13,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 12,\n 10,\n 10,\n 11,\n 11,\n 12,\n 13,\n 13,\n 14,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 13,\n 11,\n 11,\n 11,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 13,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 17,\n 13,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 13,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 15,\n 16,\n 15,\n 14,\n 12,\n 13,\n 12,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 17,\n 17,\n 16,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 16,\n 16,\n 16,\n 15,\n 16,\n 14,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 16,\n 16,\n 16,\n 16,\n 18,\n 14,\n 15,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 16,\n 16,\n 18,\n 17,\n 17,\n 17,\n 19,\n 17,\n 14,\n 14,\n 15,\n 13,\n 14,\n 16,\n 16,\n 15,\n 16,\n 16,\n 17,\n 18,\n 17,\n 19,\n 17,\n 16,\n 14,\n 11,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 14,\n 14,\n 14,\n 12\n];\nTables$1.t16l = [\n 1,\n 5,\n 7,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 10,\n 4,\n 6,\n 8,\n 9,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 14,\n 13,\n 14,\n 10,\n 7,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 11,\n 9,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 12,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 11,\n 10,\n 10,\n 11,\n 11,\n 12,\n 13,\n 13,\n 14,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 12,\n 11,\n 11,\n 11,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 12,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 17,\n 12,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 15,\n 16,\n 15,\n 13,\n 12,\n 13,\n 12,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 17,\n 17,\n 16,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 16,\n 16,\n 16,\n 15,\n 16,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 16,\n 16,\n 16,\n 16,\n 18,\n 13,\n 15,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 16,\n 16,\n 18,\n 17,\n 17,\n 17,\n 19,\n 17,\n 13,\n 14,\n 15,\n 13,\n 14,\n 16,\n 16,\n 15,\n 16,\n 16,\n 17,\n 18,\n 17,\n 19,\n 17,\n 16,\n 13,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10\n];\nTables$1.t24l = [\n 4,\n 5,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 10,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 10,\n 7,\n 7,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 9,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 9,\n 9,\n 9,\n 9,\n 10,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 9,\n 10,\n 9,\n 10,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 9,\n 10,\n 10,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 9,\n 11,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 10,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 10,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 10,\n 12,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 10,\n 12,\n 12,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 10,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10,\n 13,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 10,\n 10,\n 10,\n 10,\n 6\n];\nTables$1.t32l = [\n 1 + 0,\n 4 + 1,\n 4 + 1,\n 5 + 2,\n 4 + 1,\n 6 + 2,\n 5 + 2,\n 6 + 3,\n 4 + 1,\n 5 + 2,\n 5 + 2,\n 6 + 3,\n 5 + 2,\n 6 + 3,\n 6 + 3,\n 6 + 4\n];\nTables$1.t33l = [\n 4 + 0,\n 4 + 1,\n 4 + 1,\n 4 + 2,\n 4 + 1,\n 4 + 2,\n 4 + 2,\n 4 + 3,\n 4 + 1,\n 4 + 2,\n 4 + 2,\n 4 + 3,\n 4 + 2,\n 4 + 3,\n 4 + 3,\n 4 + 4\n];\nTables$1.ht = [\n new HuffCodeTab(0, 0, null, null),\n new HuffCodeTab(2, 0, Tables$1.t1HB, Tables$1.t1l),\n new HuffCodeTab(3, 0, Tables$1.t2HB, Tables$1.t2l),\n new HuffCodeTab(3, 0, Tables$1.t3HB, Tables$1.t3l),\n new HuffCodeTab(0, 0, null, null),\n new HuffCodeTab(4, 0, Tables$1.t5HB, Tables$1.t5l),\n new HuffCodeTab(4, 0, Tables$1.t6HB, Tables$1.t6l),\n new HuffCodeTab(6, 0, Tables$1.t7HB, Tables$1.t7l),\n new HuffCodeTab(6, 0, Tables$1.t8HB, Tables$1.t8l),\n new HuffCodeTab(6, 0, Tables$1.t9HB, Tables$1.t9l),\n new HuffCodeTab(8, 0, Tables$1.t10HB, Tables$1.t10l),\n new HuffCodeTab(8, 0, Tables$1.t11HB, Tables$1.t11l),\n new HuffCodeTab(8, 0, Tables$1.t12HB, Tables$1.t12l),\n new HuffCodeTab(16, 0, Tables$1.t13HB, Tables$1.t13l),\n new HuffCodeTab(0, 0, null, Tables$1.t16_5l),\n new HuffCodeTab(16, 0, Tables$1.t15HB, Tables$1.t15l),\n new HuffCodeTab(1, 1, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(2, 3, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(3, 7, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(4, 15, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(6, 63, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(8, 255, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(10, 1023, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(13, 8191, Tables$1.t16HB, Tables$1.t16l),\n new HuffCodeTab(4, 15, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(5, 31, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(6, 63, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(7, 127, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(8, 255, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(9, 511, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(11, 2047, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(13, 8191, Tables$1.t24HB, Tables$1.t24l),\n new HuffCodeTab(0, 0, Tables$1.t32HB, Tables$1.t32l),\n new HuffCodeTab(0, 0, Tables$1.t33HB, Tables$1.t33l)\n];\nTables$1.largetbl = [\n 65540,\n 327685,\n 458759,\n 589832,\n 655369,\n 655370,\n 720906,\n 720907,\n 786443,\n 786444,\n 786444,\n 851980,\n 851980,\n 851980,\n 917517,\n 655370,\n 262149,\n 393222,\n 524295,\n 589832,\n 655369,\n 720906,\n 720906,\n 720907,\n 786443,\n 786443,\n 786444,\n 851980,\n 917516,\n 851980,\n 917516,\n 655370,\n 458759,\n 524295,\n 589832,\n 655369,\n 720905,\n 720906,\n 786442,\n 786443,\n 851979,\n 786443,\n 851979,\n 851980,\n 851980,\n 917516,\n 917517,\n 720905,\n 589832,\n 589832,\n 655369,\n 720905,\n 720906,\n 786442,\n 786442,\n 786443,\n 851979,\n 851979,\n 917515,\n 917516,\n 917516,\n 983052,\n 983052,\n 786441,\n 655369,\n 655369,\n 720905,\n 720906,\n 786442,\n 786442,\n 851978,\n 851979,\n 851979,\n 917515,\n 917516,\n 917516,\n 983052,\n 983052,\n 983053,\n 720905,\n 655370,\n 655369,\n 720906,\n 720906,\n 786442,\n 851978,\n 851979,\n 917515,\n 851979,\n 917515,\n 917516,\n 983052,\n 983052,\n 983052,\n 1048588,\n 786441,\n 720906,\n 720906,\n 720906,\n 786442,\n 851978,\n 851979,\n 851979,\n 851979,\n 917515,\n 917516,\n 917516,\n 917516,\n 983052,\n 983052,\n 1048589,\n 786441,\n 720907,\n 720906,\n 786442,\n 786442,\n 851979,\n 851979,\n 851979,\n 917515,\n 917516,\n 983052,\n 983052,\n 983052,\n 983052,\n 1114125,\n 1114125,\n 786442,\n 720907,\n 786443,\n 786443,\n 851979,\n 851979,\n 851979,\n 917515,\n 917515,\n 983051,\n 983052,\n 983052,\n 983052,\n 1048588,\n 1048589,\n 1048589,\n 786442,\n 786443,\n 786443,\n 786443,\n 851979,\n 851979,\n 917515,\n 917515,\n 983052,\n 983052,\n 983052,\n 983052,\n 1048588,\n 983053,\n 1048589,\n 983053,\n 851978,\n 786444,\n 851979,\n 786443,\n 851979,\n 917515,\n 917516,\n 917516,\n 917516,\n 983052,\n 1048588,\n 1048588,\n 1048589,\n 1114125,\n 1114125,\n 1048589,\n 786442,\n 851980,\n 851980,\n 851979,\n 851979,\n 917515,\n 917516,\n 983052,\n 1048588,\n 1048588,\n 1048588,\n 1048588,\n 1048589,\n 1048589,\n 983053,\n 1048589,\n 851978,\n 851980,\n 917516,\n 917516,\n 917516,\n 917516,\n 983052,\n 983052,\n 983052,\n 983052,\n 1114124,\n 1048589,\n 1048589,\n 1048589,\n 1048589,\n 1179661,\n 851978,\n 983052,\n 917516,\n 917516,\n 917516,\n 983052,\n 983052,\n 1048588,\n 1048588,\n 1048589,\n 1179661,\n 1114125,\n 1114125,\n 1114125,\n 1245197,\n 1114125,\n 851978,\n 917517,\n 983052,\n 851980,\n 917516,\n 1048588,\n 1048588,\n 983052,\n 1048589,\n 1048589,\n 1114125,\n 1179661,\n 1114125,\n 1245197,\n 1114125,\n 1048589,\n 851978,\n 655369,\n 655369,\n 655369,\n 720905,\n 720905,\n 786441,\n 786441,\n 786441,\n 851977,\n 851977,\n 851977,\n 851978,\n 851978,\n 851978,\n 851978,\n 655366\n];\nTables$1.table23 = [\n 65538,\n 262147,\n 458759,\n 262148,\n 327684,\n 458759,\n 393222,\n 458759,\n 524296\n];\nTables$1.table56 = [\n 65539,\n 262148,\n 458758,\n 524296,\n 262148,\n 327684,\n 524294,\n 589831,\n 458757,\n 524294,\n 589831,\n 655368,\n 524295,\n 524295,\n 589832,\n 655369\n];\nTables$1.bitrate_table = [\n [\n 0,\n 8,\n 16,\n 24,\n 32,\n 40,\n 48,\n 56,\n 64,\n 80,\n 96,\n 112,\n 128,\n 144,\n 160,\n -1\n ],\n [\n 0,\n 32,\n 40,\n 48,\n 56,\n 64,\n 80,\n 96,\n 112,\n 128,\n 160,\n 192,\n 224,\n 256,\n 320,\n -1\n ],\n [0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1]\n];\nTables$1.samplerate_table = [\n [22050, 24e3, 16e3, -1],\n [44100, 48e3, 32e3, -1],\n [11025, 12e3, 8e3, -1]\n];\nTables$1.scfsi_band = [0, 6, 11, 16, 21];\nvar VbrMode$4 = common.VbrMode;\nvar Float = common.Float;\nvar Util$1 = common.Util;\nvar new_float$3 = common.new_float;\nvar new_int$3 = common.new_int;\nvar assert$7 = common.assert;\nQuantizePVT.Q_MAX = 256 + 1;\nQuantizePVT.Q_MAX2 = 116;\nQuantizePVT.LARGE_BITS = 1e5;\nQuantizePVT.IXMAX_VAL = 8206;\nfunction QuantizePVT() {\n var tak = null;\n var rv = null;\n var psy = null;\n this.setModules = function(_tk, _rv, _psy) {\n tak = _tk;\n rv = _rv;\n psy = _psy;\n };\n function POW20(x) {\n return pow20[x + QuantizePVT.Q_MAX2];\n }\n this.IPOW20 = function(x) {\n return ipow20[x];\n };\n var DBL_EPSILON = 2220446049250313e-31;\n var IXMAX_VAL = QuantizePVT.IXMAX_VAL;\n var PRECALC_SIZE = IXMAX_VAL + 2;\n var Q_MAX = QuantizePVT.Q_MAX;\n var Q_MAX2 = QuantizePVT.Q_MAX2;\n var NSATHSCALE = 100;\n this.nr_of_sfb_block = [\n [\n [6, 5, 5, 5],\n [9, 9, 9, 9],\n [6, 9, 9, 9]\n ],\n [\n [6, 5, 7, 3],\n [9, 9, 12, 6],\n [6, 9, 12, 6]\n ],\n [\n [11, 10, 0, 0],\n [18, 18, 0, 0],\n [15, 18, 0, 0]\n ],\n [\n [7, 7, 7, 0],\n [12, 12, 12, 0],\n [6, 15, 12, 0]\n ],\n [\n [6, 6, 6, 3],\n [12, 9, 9, 6],\n [6, 12, 9, 6]\n ],\n [\n [8, 8, 5, 0],\n [15, 12, 9, 0],\n [6, 18, 9, 0]\n ]\n ];\n var pretab = [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 2,\n 2,\n 3,\n 3,\n 3,\n 2,\n 0\n ];\n this.pretab = pretab;\n this.sfBandIndex = [\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ],\n [0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 114,\n 136,\n 162,\n 194,\n 232,\n 278,\n 332,\n 394,\n 464,\n 540,\n 576\n ],\n [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ],\n [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 4,\n 8,\n 12,\n 16,\n 20,\n 24,\n 30,\n 36,\n 44,\n 52,\n 62,\n 74,\n 90,\n 110,\n 134,\n 162,\n 196,\n 238,\n 288,\n 342,\n 418,\n 576\n ],\n [0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 4,\n 8,\n 12,\n 16,\n 20,\n 24,\n 30,\n 36,\n 42,\n 50,\n 60,\n 72,\n 88,\n 106,\n 128,\n 156,\n 190,\n 230,\n 276,\n 330,\n 384,\n 576\n ],\n [0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 4,\n 8,\n 12,\n 16,\n 20,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 82,\n 102,\n 126,\n 156,\n 194,\n 240,\n 296,\n 364,\n 448,\n 550,\n 576\n ],\n [0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ],\n [\n 0 / 3,\n 12 / 3,\n 24 / 3,\n 36 / 3,\n 54 / 3,\n 78 / 3,\n 108 / 3,\n 144 / 3,\n 186 / 3,\n 240 / 3,\n 312 / 3,\n 402 / 3,\n 522 / 3,\n 576 / 3\n ],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ],\n [\n 0 / 3,\n 12 / 3,\n 24 / 3,\n 36 / 3,\n 54 / 3,\n 78 / 3,\n 108 / 3,\n 144 / 3,\n 186 / 3,\n 240 / 3,\n 312 / 3,\n 402 / 3,\n 522 / 3,\n 576 / 3\n ],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n ),\n new ScaleFac(\n [\n 0,\n 12,\n 24,\n 36,\n 48,\n 60,\n 72,\n 88,\n 108,\n 132,\n 160,\n 192,\n 232,\n 280,\n 336,\n 400,\n 476,\n 566,\n 568,\n 570,\n 572,\n 574,\n 576\n ],\n [\n 0 / 3,\n 24 / 3,\n 48 / 3,\n 72 / 3,\n 108 / 3,\n 156 / 3,\n 216 / 3,\n 288 / 3,\n 372 / 3,\n 480 / 3,\n 486 / 3,\n 492 / 3,\n 498 / 3,\n 576 / 3\n ],\n [0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0]\n )\n ];\n var pow20 = new_float$3(Q_MAX + Q_MAX2 + 1);\n var ipow20 = new_float$3(Q_MAX);\n var pow43 = new_float$3(PRECALC_SIZE);\n var adj43 = new_float$3(PRECALC_SIZE);\n this.adj43 = adj43;\n function ATHmdct(gfp, f) {\n var ath = psy.ATHformula(f, gfp);\n ath -= NSATHSCALE;\n ath = Math.pow(10, ath / 10 + gfp.ATHlower);\n return ath;\n }\n function compute_ath(gfp) {\n var ATH_l = gfp.internal_flags.ATH.l;\n var ATH_psfb21 = gfp.internal_flags.ATH.psfb21;\n var ATH_s = gfp.internal_flags.ATH.s;\n var ATH_psfb12 = gfp.internal_flags.ATH.psfb12;\n var gfc = gfp.internal_flags;\n var samp_freq = gfp.out_samplerate;\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n var start2 = gfc.scalefac_band.l[sfb];\n var end = gfc.scalefac_band.l[sfb + 1];\n ATH_l[sfb] = Float.MAX_VALUE;\n for (var i = start2; i < end; i++) {\n var freq = i * samp_freq / (2 * 576);\n var ATH_f = ATHmdct(gfp, freq);\n ATH_l[sfb] = Math.min(ATH_l[sfb], ATH_f);\n }\n }\n for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n var start2 = gfc.scalefac_band.psfb21[sfb];\n var end = gfc.scalefac_band.psfb21[sfb + 1];\n ATH_psfb21[sfb] = Float.MAX_VALUE;\n for (var i = start2; i < end; i++) {\n var freq = i * samp_freq / (2 * 576);\n var ATH_f = ATHmdct(gfp, freq);\n ATH_psfb21[sfb] = Math.min(ATH_psfb21[sfb], ATH_f);\n }\n }\n for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n var start2 = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n ATH_s[sfb] = Float.MAX_VALUE;\n for (var i = start2; i < end; i++) {\n var freq = i * samp_freq / (2 * 192);\n var ATH_f = ATHmdct(gfp, freq);\n ATH_s[sfb] = Math.min(ATH_s[sfb], ATH_f);\n }\n ATH_s[sfb] *= gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb];\n }\n for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n var start2 = gfc.scalefac_band.psfb12[sfb];\n var end = gfc.scalefac_band.psfb12[sfb + 1];\n ATH_psfb12[sfb] = Float.MAX_VALUE;\n for (var i = start2; i < end; i++) {\n var freq = i * samp_freq / (2 * 192);\n var ATH_f = ATHmdct(gfp, freq);\n ATH_psfb12[sfb] = Math.min(ATH_psfb12[sfb], ATH_f);\n }\n ATH_psfb12[sfb] *= gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12];\n }\n if (gfp.noATH) {\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n ATH_l[sfb] = 1e-20;\n }\n for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n ATH_psfb21[sfb] = 1e-20;\n }\n for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n ATH_s[sfb] = 1e-20;\n }\n for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n ATH_psfb12[sfb] = 1e-20;\n }\n }\n gfc.ATH.floor = 10 * Math.log10(ATHmdct(gfp, -1));\n }\n this.iteration_init = function(gfp) {\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n var i;\n if (gfc.iteration_init_init == 0) {\n gfc.iteration_init_init = 1;\n l3_side.main_data_begin = 0;\n compute_ath(gfp);\n pow43[0] = 0;\n for (i = 1; i < PRECALC_SIZE; i++)\n pow43[i] = Math.pow(i, 4 / 3);\n for (i = 0; i < PRECALC_SIZE - 1; i++) {\n adj43[i] = i + 1 - Math.pow(0.5 * (pow43[i] + pow43[i + 1]), 0.75);\n }\n adj43[i] = 0.5;\n for (i = 0; i < Q_MAX; i++)\n ipow20[i] = Math.pow(2, (i - 210) * -0.1875);\n for (i = 0; i <= Q_MAX + Q_MAX2; i++) {\n pow20[i] = Math.pow(2, (i - 210 - Q_MAX2) * 0.25);\n }\n tak.huffman_init(gfc);\n {\n var bass, alto, treble, sfb21;\n i = gfp.exp_nspsytune >> 2 & 63;\n if (i >= 32)\n i -= 64;\n bass = Math.pow(10, i / 4 / 10);\n i = gfp.exp_nspsytune >> 8 & 63;\n if (i >= 32)\n i -= 64;\n alto = Math.pow(10, i / 4 / 10);\n i = gfp.exp_nspsytune >> 14 & 63;\n if (i >= 32)\n i -= 64;\n treble = Math.pow(10, i / 4 / 10);\n i = gfp.exp_nspsytune >> 20 & 63;\n if (i >= 32)\n i -= 64;\n sfb21 = treble * Math.pow(10, i / 4 / 10);\n for (i = 0; i < Encoder.SBMAX_l; i++) {\n var f;\n if (i <= 6)\n f = bass;\n else if (i <= 13)\n f = alto;\n else if (i <= 20)\n f = treble;\n else\n f = sfb21;\n gfc.nsPsy.longfact[i] = f;\n }\n for (i = 0; i < Encoder.SBMAX_s; i++) {\n var f;\n if (i <= 5)\n f = bass;\n else if (i <= 10)\n f = alto;\n else if (i <= 11)\n f = treble;\n else\n f = sfb21;\n gfc.nsPsy.shortfact[i] = f;\n }\n }\n }\n };\n this.on_pe = function(gfp, pe, targ_bits, mean_bits, gr, cbr) {\n var gfc = gfp.internal_flags;\n var tbits = 0;\n var bits;\n var add_bits = new_int$3(2);\n var ch;\n var mb = new MeanBits$1(tbits);\n var extra_bits = rv.ResvMaxBits(gfp, mean_bits, mb, cbr);\n tbits = mb.bits;\n var max_bits = tbits + extra_bits;\n if (max_bits > LameInternalFlags$1.MAX_BITS_PER_GRANULE) {\n max_bits = LameInternalFlags$1.MAX_BITS_PER_GRANULE;\n }\n for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[ch] = Math.min(\n LameInternalFlags$1.MAX_BITS_PER_CHANNEL,\n tbits / gfc.channels_out\n );\n add_bits[ch] = 0 | targ_bits[ch] * pe[gr][ch] / 700 - targ_bits[ch];\n if (add_bits[ch] > mean_bits * 3 / 4)\n add_bits[ch] = mean_bits * 3 / 4;\n if (add_bits[ch] < 0)\n add_bits[ch] = 0;\n if (add_bits[ch] + targ_bits[ch] > LameInternalFlags$1.MAX_BITS_PER_CHANNEL) {\n add_bits[ch] = Math.max(\n 0,\n LameInternalFlags$1.MAX_BITS_PER_CHANNEL - targ_bits[ch]\n );\n }\n bits += add_bits[ch];\n }\n if (bits > extra_bits) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n add_bits[ch] = extra_bits * add_bits[ch] / bits;\n }\n }\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[ch] += add_bits[ch];\n extra_bits -= add_bits[ch];\n }\n for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n bits += targ_bits[ch];\n }\n if (bits > LameInternalFlags$1.MAX_BITS_PER_GRANULE) {\n var sum = 0;\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[ch] *= LameInternalFlags$1.MAX_BITS_PER_GRANULE;\n targ_bits[ch] /= bits;\n sum += targ_bits[ch];\n }\n }\n return max_bits;\n };\n this.reduce_side = function(targ_bits, ms_ener_ratio, mean_bits, max_bits) {\n assert$7(\n targ_bits[0] + targ_bits[1] <= LameInternalFlags$1.MAX_BITS_PER_GRANULE\n );\n var fac = 0.33 * (0.5 - ms_ener_ratio) / 0.5;\n if (fac < 0)\n fac = 0;\n if (fac > 0.5)\n fac = 0.5;\n var move_bits = 0 | fac * 0.5 * (targ_bits[0] + targ_bits[1]);\n if (move_bits > LameInternalFlags$1.MAX_BITS_PER_CHANNEL - targ_bits[0]) {\n move_bits = LameInternalFlags$1.MAX_BITS_PER_CHANNEL - targ_bits[0];\n }\n if (move_bits < 0)\n move_bits = 0;\n if (targ_bits[1] >= 125) {\n if (targ_bits[1] - move_bits > 125) {\n if (targ_bits[0] < mean_bits)\n targ_bits[0] += move_bits;\n targ_bits[1] -= move_bits;\n } else {\n targ_bits[0] += targ_bits[1] - 125;\n targ_bits[1] = 125;\n }\n }\n move_bits = targ_bits[0] + targ_bits[1];\n if (move_bits > max_bits) {\n targ_bits[0] = max_bits * targ_bits[0] / move_bits;\n targ_bits[1] = max_bits * targ_bits[1] / move_bits;\n }\n assert$7(targ_bits[0] <= LameInternalFlags$1.MAX_BITS_PER_CHANNEL);\n assert$7(targ_bits[1] <= LameInternalFlags$1.MAX_BITS_PER_CHANNEL);\n assert$7(\n targ_bits[0] + targ_bits[1] <= LameInternalFlags$1.MAX_BITS_PER_GRANULE\n );\n };\n this.athAdjust = function(a, x, athFloor) {\n var o = 90.30873362;\n var p2 = 94.82444863;\n var u = Util$1.FAST_LOG10_X(x, 10);\n var v = a * a;\n var w = 0;\n u -= athFloor;\n if (v > 1e-20)\n w = 1 + Util$1.FAST_LOG10_X(v, 10 / o);\n if (w < 0)\n w = 0;\n u *= w;\n u += athFloor + o - p2;\n return Math.pow(10, 0.1 * u);\n };\n this.calc_xmin = function(gfp, ratio, cod_info, pxmin) {\n var pxminPos = 0;\n var gfc = gfp.internal_flags;\n var gsfb;\n var j = 0;\n var ath_over = 0;\n var ATH2 = gfc.ATH;\n var xr = cod_info.xr;\n var enable_athaa_fix = gfp.VBR == VbrMode$4.vbr_mtrh ? 1 : 0;\n var masking_lower = gfc.masking_lower;\n if (gfp.VBR == VbrMode$4.vbr_mtrh || gfp.VBR == VbrMode$4.vbr_mt) {\n masking_lower = 1;\n }\n for (gsfb = 0; gsfb < cod_info.psy_lmax; gsfb++) {\n var en0, xmin;\n var rh1, rh2;\n var width, l;\n if (gfp.VBR == VbrMode$4.vbr_rh || gfp.VBR == VbrMode$4.vbr_mtrh) {\n xmin = athAdjust(ATH2.adjust, ATH2.l[gsfb], ATH2.floor);\n } else\n xmin = ATH2.adjust * ATH2.l[gsfb];\n width = cod_info.width[gsfb];\n rh1 = xmin / width;\n rh2 = DBL_EPSILON;\n l = width >> 1;\n en0 = 0;\n do {\n var xa, xb;\n xa = xr[j] * xr[j];\n en0 += xa;\n rh2 += xa < rh1 ? xa : rh1;\n j++;\n xb = xr[j] * xr[j];\n en0 += xb;\n rh2 += xb < rh1 ? xb : rh1;\n j++;\n } while (--l > 0);\n if (en0 > xmin)\n ath_over++;\n if (gsfb == Encoder.SBPSY_l) {\n var x = xmin * gfc.nsPsy.longfact[gsfb];\n if (rh2 < x) {\n rh2 = x;\n }\n }\n if (enable_athaa_fix != 0) {\n xmin = rh2;\n }\n if (!gfp.ATHonly) {\n var e = ratio.en.l[gsfb];\n if (e > 0) {\n var x;\n x = en0 * ratio.thm.l[gsfb] * masking_lower / e;\n if (enable_athaa_fix != 0)\n x *= gfc.nsPsy.longfact[gsfb];\n if (xmin < x)\n xmin = x;\n }\n }\n if (enable_athaa_fix != 0)\n pxmin[pxminPos++] = xmin;\n else\n pxmin[pxminPos++] = xmin * gfc.nsPsy.longfact[gsfb];\n }\n var max_nonzero = 575;\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n var k = 576;\n while (k-- != 0 && BitStream$1.EQ(xr[k], 0)) {\n max_nonzero = k;\n }\n }\n cod_info.max_nonzero_coeff = max_nonzero;\n for (var sfb = cod_info.sfb_smin; gsfb < cod_info.psymax; sfb++, gsfb += 3) {\n var width, b;\n var tmpATH;\n if (gfp.VBR == VbrMode$4.vbr_rh || gfp.VBR == VbrMode$4.vbr_mtrh) {\n tmpATH = athAdjust(ATH2.adjust, ATH2.s[sfb], ATH2.floor);\n } else\n tmpATH = ATH2.adjust * ATH2.s[sfb];\n width = cod_info.width[gsfb];\n for (b = 0; b < 3; b++) {\n var en0 = 0;\n var xmin;\n var rh1, rh2;\n var l = width >> 1;\n rh1 = tmpATH / width;\n rh2 = DBL_EPSILON;\n do {\n var xa, xb;\n xa = xr[j] * xr[j];\n en0 += xa;\n rh2 += xa < rh1 ? xa : rh1;\n j++;\n xb = xr[j] * xr[j];\n en0 += xb;\n rh2 += xb < rh1 ? xb : rh1;\n j++;\n } while (--l > 0);\n if (en0 > tmpATH)\n ath_over++;\n if (sfb == Encoder.SBPSY_s) {\n var x = tmpATH * gfc.nsPsy.shortfact[sfb];\n if (rh2 < x) {\n rh2 = x;\n }\n }\n if (enable_athaa_fix != 0)\n xmin = rh2;\n else\n xmin = tmpATH;\n if (!gfp.ATHonly && !gfp.ATHshort) {\n var e = ratio.en.s[sfb][b];\n if (e > 0) {\n var x;\n x = en0 * ratio.thm.s[sfb][b] * masking_lower / e;\n if (enable_athaa_fix != 0)\n x *= gfc.nsPsy.shortfact[sfb];\n if (xmin < x)\n xmin = x;\n }\n }\n if (enable_athaa_fix != 0)\n pxmin[pxminPos++] = xmin;\n else\n pxmin[pxminPos++] = xmin * gfc.nsPsy.shortfact[sfb];\n }\n if (gfp.useTemporal) {\n if (pxmin[pxminPos - 3] > pxmin[pxminPos - 3 + 1]) {\n pxmin[pxminPos - 3 + 1] += (pxmin[pxminPos - 3] - pxmin[pxminPos - 3 + 1]) * gfc.decay;\n }\n if (pxmin[pxminPos - 3 + 1] > pxmin[pxminPos - 3 + 2]) {\n pxmin[pxminPos - 3 + 2] += (pxmin[pxminPos - 3 + 1] - pxmin[pxminPos - 3 + 2]) * gfc.decay;\n }\n }\n }\n return ath_over;\n };\n function StartLine(j) {\n this.s = j;\n }\n this.calc_noise_core = function(cod_info, startline, l, step) {\n var noise = 0;\n var j = startline.s;\n var ix = cod_info.l3_enc;\n if (j > cod_info.count1) {\n while (l-- != 0) {\n var temp;\n temp = cod_info.xr[j];\n j++;\n noise += temp * temp;\n temp = cod_info.xr[j];\n j++;\n noise += temp * temp;\n }\n } else if (j > cod_info.big_values) {\n var ix01 = new_float$3(2);\n ix01[0] = 0;\n ix01[1] = step;\n while (l-- != 0) {\n var temp;\n temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n j++;\n noise += temp * temp;\n temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n j++;\n noise += temp * temp;\n }\n } else {\n while (l-- != 0) {\n var temp;\n temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n j++;\n noise += temp * temp;\n temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n j++;\n noise += temp * temp;\n }\n }\n startline.s = j;\n return noise;\n };\n this.calc_noise = function(cod_info, l3_xmin, distort, res, prev_noise) {\n var distortPos = 0;\n var l3_xminPos = 0;\n var sfb;\n var l;\n var over = 0;\n var over_noise_db = 0;\n var tot_noise_db = 0;\n var max_noise = -20;\n var j = 0;\n var scalefac = cod_info.scalefac;\n var scalefacPos = 0;\n res.over_SSD = 0;\n for (sfb = 0; sfb < cod_info.psymax; sfb++) {\n var s = cod_info.global_gain - (scalefac[scalefacPos++] + (cod_info.preflag != 0 ? pretab[sfb] : 0) << cod_info.scalefac_scale + 1) - cod_info.subblock_gain[cod_info.window[sfb]] * 8;\n var noise = 0;\n if (prev_noise != null && prev_noise.step[sfb] == s) {\n noise = prev_noise.noise[sfb];\n j += cod_info.width[sfb];\n distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n noise = prev_noise.noise_log[sfb];\n } else {\n var step = POW20(s);\n l = cod_info.width[sfb] >> 1;\n if (j + cod_info.width[sfb] > cod_info.max_nonzero_coeff) {\n var usefullsize;\n usefullsize = cod_info.max_nonzero_coeff - j + 1;\n if (usefullsize > 0)\n l = usefullsize >> 1;\n else\n l = 0;\n }\n var sl = new StartLine(j);\n noise = this.calc_noise_core(cod_info, sl, l, step);\n j = sl.s;\n if (prev_noise != null) {\n prev_noise.step[sfb] = s;\n prev_noise.noise[sfb] = noise;\n }\n noise = distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n noise = Util$1.FAST_LOG10(Math.max(noise, 1e-20));\n if (prev_noise != null) {\n prev_noise.noise_log[sfb] = noise;\n }\n }\n if (prev_noise != null) {\n prev_noise.global_gain = cod_info.global_gain;\n }\n tot_noise_db += noise;\n if (noise > 0) {\n var tmp;\n tmp = Math.max(0 | noise * 10 + 0.5, 1);\n res.over_SSD += tmp * tmp;\n over++;\n over_noise_db += noise;\n }\n max_noise = Math.max(max_noise, noise);\n }\n res.over_count = over;\n res.tot_noise = tot_noise_db;\n res.over_noise = over_noise_db;\n res.max_noise = max_noise;\n return over;\n };\n this.set_pinfo = function(gfp, cod_info, ratio, gr, ch) {\n var gfc = gfp.internal_flags;\n var sfb, sfb2;\n var l;\n var en0, en1;\n var ifqstep = cod_info.scalefac_scale == 0 ? 0.5 : 1;\n var scalefac = cod_info.scalefac;\n var l3_xmin = new_float$3(L3Side.SFBMAX);\n var xfsf = new_float$3(L3Side.SFBMAX);\n var noise = new CalcNoiseResult();\n calc_xmin(gfp, ratio, cod_info, l3_xmin);\n calc_noise(cod_info, l3_xmin, xfsf, noise, null);\n var j = 0;\n sfb2 = cod_info.sfb_lmax;\n if (cod_info.block_type != Encoder.SHORT_TYPE && cod_info.mixed_block_flag == 0) {\n sfb2 = 22;\n }\n for (sfb = 0; sfb < sfb2; sfb++) {\n var start2 = gfc.scalefac_band.l[sfb];\n var end = gfc.scalefac_band.l[sfb + 1];\n var bw = end - start2;\n for (en0 = 0; j < end; j++)\n en0 += cod_info.xr[j] * cod_info.xr[j];\n en0 /= bw;\n en1 = 1e15;\n gfc.pinfo.en[gr][ch][sfb] = en1 * en0;\n gfc.pinfo.xfsf[gr][ch][sfb] = en1 * l3_xmin[sfb] * xfsf[sfb] / bw;\n if (ratio.en.l[sfb] > 0 && !gfp.ATHonly)\n en0 = en0 / ratio.en.l[sfb];\n else\n en0 = 0;\n gfc.pinfo.thr[gr][ch][sfb] = en1 * Math.max(en0 * ratio.thm.l[sfb], gfc.ATH.l[sfb]);\n gfc.pinfo.LAMEsfb[gr][ch][sfb] = 0;\n if (cod_info.preflag != 0 && sfb >= 11) {\n gfc.pinfo.LAMEsfb[gr][ch][sfb] = -ifqstep * pretab[sfb];\n }\n if (sfb < Encoder.SBPSY_l) {\n assert$7(scalefac[sfb] >= 0);\n gfc.pinfo.LAMEsfb[gr][ch][sfb] -= ifqstep * scalefac[sfb];\n }\n }\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n sfb2 = sfb;\n for (sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n var start2 = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n var bw = end - start2;\n for (var i = 0; i < 3; i++) {\n for (en0 = 0, l = start2; l < end; l++) {\n en0 += cod_info.xr[j] * cod_info.xr[j];\n j++;\n }\n en0 = Math.max(en0 / bw, 1e-20);\n en1 = 1e15;\n gfc.pinfo.en_s[gr][ch][3 * sfb + i] = en1 * en0;\n gfc.pinfo.xfsf_s[gr][ch][3 * sfb + i] = en1 * l3_xmin[sfb2] * xfsf[sfb2] / bw;\n if (ratio.en.s[sfb][i] > 0)\n en0 = en0 / ratio.en.s[sfb][i];\n else\n en0 = 0;\n if (gfp.ATHonly || gfp.ATHshort)\n en0 = 0;\n gfc.pinfo.thr_s[gr][ch][3 * sfb + i] = en1 * Math.max(en0 * ratio.thm.s[sfb][i], gfc.ATH.s[sfb]);\n gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] = -2 * cod_info.subblock_gain[i];\n if (sfb < Encoder.SBPSY_s) {\n gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] -= ifqstep * scalefac[sfb2];\n }\n sfb2++;\n }\n }\n }\n gfc.pinfo.LAMEqss[gr][ch] = cod_info.global_gain;\n gfc.pinfo.LAMEmainbits[gr][ch] = cod_info.part2_3_length + cod_info.part2_length;\n gfc.pinfo.LAMEsfbits[gr][ch] = cod_info.part2_length;\n gfc.pinfo.over[gr][ch] = noise.over_count;\n gfc.pinfo.max_noise[gr][ch] = noise.max_noise * 10;\n gfc.pinfo.over_noise[gr][ch] = noise.over_noise * 10;\n gfc.pinfo.tot_noise[gr][ch] = noise.tot_noise * 10;\n gfc.pinfo.over_SSD[gr][ch] = noise.over_SSD;\n };\n}\nvar System$4 = common.System;\nvar Arrays$3 = common.Arrays;\nvar new_int$2 = common.new_int;\nvar assert$6 = common.assert;\nfunction Takehiro() {\n var qupvt = null;\n this.qupvt = null;\n this.setModules = function(_qupvt) {\n this.qupvt = _qupvt;\n qupvt = _qupvt;\n };\n function Bits(b) {\n this.bits = 0 | b;\n }\n var subdv_table = [\n [0, 0],\n [0, 0],\n [0, 0],\n [0, 0],\n [0, 0],\n [0, 1],\n [1, 1],\n [1, 1],\n [1, 2],\n [2, 2],\n [2, 3],\n [2, 3],\n [3, 4],\n [3, 4],\n [3, 4],\n [4, 5],\n [4, 5],\n [4, 6],\n [5, 6],\n [5, 6],\n [5, 7],\n [6, 7],\n [6, 7]\n ];\n function quantize_lines_xrpow_01(l, istep, xr, xrPos, ix, ixPos) {\n var compareval0 = (1 - 0.4054) / istep;\n l = l >> 1;\n while (l-- != 0) {\n ix[ixPos++] = compareval0 > xr[xrPos++] ? 0 : 1;\n ix[ixPos++] = compareval0 > xr[xrPos++] ? 0 : 1;\n }\n }\n function quantize_lines_xrpow(l, istep, xr, xrPos, ix, ixPos) {\n l = l >> 1;\n var remaining = l % 2;\n l = l >> 1;\n while (l-- != 0) {\n var x0, x1, x2, x3;\n var rx0, rx1, rx2, rx3;\n x0 = xr[xrPos++] * istep;\n x1 = xr[xrPos++] * istep;\n rx0 = 0 | x0;\n x2 = xr[xrPos++] * istep;\n rx1 = 0 | x1;\n x3 = xr[xrPos++] * istep;\n rx2 = 0 | x2;\n x0 += qupvt.adj43[rx0];\n rx3 = 0 | x3;\n x1 += qupvt.adj43[rx1];\n ix[ixPos++] = 0 | x0;\n x2 += qupvt.adj43[rx2];\n ix[ixPos++] = 0 | x1;\n x3 += qupvt.adj43[rx3];\n ix[ixPos++] = 0 | x2;\n ix[ixPos++] = 0 | x3;\n }\n if (remaining != 0) {\n var x0, x1;\n var rx0, rx1;\n x0 = xr[xrPos++] * istep;\n x1 = xr[xrPos++] * istep;\n rx0 = 0 | x0;\n rx1 = 0 | x1;\n x0 += qupvt.adj43[rx0];\n x1 += qupvt.adj43[rx1];\n ix[ixPos++] = 0 | x0;\n ix[ixPos++] = 0 | x1;\n }\n }\n function quantize_xrpow(xp, pi, istep, codInfo, prevNoise) {\n var sfb;\n var sfbmax;\n var j = 0;\n var prev_data_use;\n var accumulate = 0;\n var accumulate01 = 0;\n var xpPos = 0;\n var iData = pi;\n var iDataPos = 0;\n var acc_iData = iData;\n var acc_iDataPos = 0;\n var acc_xp = xp;\n var acc_xpPos = 0;\n prev_data_use = prevNoise != null && codInfo.global_gain == prevNoise.global_gain;\n if (codInfo.block_type == Encoder.SHORT_TYPE)\n sfbmax = 38;\n else\n sfbmax = 21;\n for (sfb = 0; sfb <= sfbmax; sfb++) {\n var step = -1;\n if (prev_data_use || codInfo.block_type == Encoder.NORM_TYPE) {\n step = codInfo.global_gain - (codInfo.scalefac[sfb] + (codInfo.preflag != 0 ? qupvt.pretab[sfb] : 0) << codInfo.scalefac_scale + 1) - codInfo.subblock_gain[codInfo.window[sfb]] * 8;\n }\n assert$6(codInfo.width[sfb] >= 0);\n if (prev_data_use && prevNoise.step[sfb] == step) {\n if (accumulate != 0) {\n quantize_lines_xrpow(\n accumulate,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate = 0;\n }\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(\n accumulate01,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate01 = 0;\n }\n } else {\n var l = codInfo.width[sfb];\n if (j + codInfo.width[sfb] > codInfo.max_nonzero_coeff) {\n var usefullsize;\n usefullsize = codInfo.max_nonzero_coeff - j + 1;\n Arrays$3.fill(pi, codInfo.max_nonzero_coeff, 576, 0);\n l = usefullsize;\n if (l < 0) {\n l = 0;\n }\n sfb = sfbmax + 1;\n }\n if (accumulate == 0 && accumulate01 == 0) {\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n if (prevNoise != null && prevNoise.sfb_count1 > 0 && sfb >= prevNoise.sfb_count1 && prevNoise.step[sfb] > 0 && step >= prevNoise.step[sfb]) {\n if (accumulate != 0) {\n quantize_lines_xrpow(\n accumulate,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate = 0;\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n accumulate01 += l;\n } else {\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(\n accumulate01,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate01 = 0;\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n accumulate += l;\n }\n if (l <= 0) {\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(\n accumulate01,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate01 = 0;\n }\n if (accumulate != 0) {\n quantize_lines_xrpow(\n accumulate,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate = 0;\n }\n break;\n }\n }\n if (sfb <= sfbmax) {\n iDataPos += codInfo.width[sfb];\n xpPos += codInfo.width[sfb];\n j += codInfo.width[sfb];\n }\n }\n if (accumulate != 0) {\n quantize_lines_xrpow(\n accumulate,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate = 0;\n }\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(\n accumulate01,\n istep,\n acc_xp,\n acc_xpPos,\n acc_iData,\n acc_iDataPos\n );\n accumulate01 = 0;\n }\n }\n function ix_max(ix, ixPos, endPos) {\n var max1 = 0;\n var max2 = 0;\n do {\n var x1 = ix[ixPos++];\n var x2 = ix[ixPos++];\n if (max1 < x1)\n max1 = x1;\n if (max2 < x2)\n max2 = x2;\n } while (ixPos < endPos);\n if (max1 < max2)\n max1 = max2;\n return max1;\n }\n function count_bit_ESC(ix, ixPos, end, t1, t2, s) {\n var linbits = Tables$1.ht[t1].xlen * 65536 + Tables$1.ht[t2].xlen;\n var sum = 0;\n var sum2;\n do {\n var x = ix[ixPos++];\n var y = ix[ixPos++];\n if (x != 0) {\n if (x > 14) {\n x = 15;\n sum += linbits;\n }\n x *= 16;\n }\n if (y != 0) {\n if (y > 14) {\n y = 15;\n sum += linbits;\n }\n x += y;\n }\n sum += Tables$1.largetbl[x];\n } while (ixPos < end);\n sum2 = sum & 65535;\n sum >>= 16;\n if (sum > sum2) {\n sum = sum2;\n t1 = t2;\n }\n s.bits += sum;\n return t1;\n }\n function count_bit_noESC(ix, ixPos, end, s) {\n var sum1 = 0;\n var hlen1 = Tables$1.ht[1].hlen;\n do {\n var x = ix[ixPos + 0] * 2 + ix[ixPos + 1];\n ixPos += 2;\n sum1 += hlen1[x];\n } while (ixPos < end);\n s.bits += sum1;\n return 1;\n }\n function count_bit_noESC_from2(ix, ixPos, end, t1, s) {\n var sum = 0;\n var sum2;\n var xlen = Tables$1.ht[t1].xlen;\n var hlen;\n if (t1 == 2)\n hlen = Tables$1.table23;\n else\n hlen = Tables$1.table56;\n do {\n var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n ixPos += 2;\n sum += hlen[x];\n } while (ixPos < end);\n sum2 = sum & 65535;\n sum >>= 16;\n if (sum > sum2) {\n sum = sum2;\n t1++;\n }\n s.bits += sum;\n return t1;\n }\n function count_bit_noESC_from3(ix, ixPos, end, t1, s) {\n var sum1 = 0;\n var sum2 = 0;\n var sum3 = 0;\n var xlen = Tables$1.ht[t1].xlen;\n var hlen1 = Tables$1.ht[t1].hlen;\n var hlen2 = Tables$1.ht[t1 + 1].hlen;\n var hlen3 = Tables$1.ht[t1 + 2].hlen;\n do {\n var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n ixPos += 2;\n sum1 += hlen1[x];\n sum2 += hlen2[x];\n sum3 += hlen3[x];\n } while (ixPos < end);\n var t = t1;\n if (sum1 > sum2) {\n sum1 = sum2;\n t++;\n }\n if (sum1 > sum3) {\n sum1 = sum3;\n t = t1 + 2;\n }\n s.bits += sum1;\n return t;\n }\n var huf_tbl_noESC = [1, 2, 5, 7, 7, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13];\n function choose_table(ix, ixPos, endPos, s) {\n var max = ix_max(ix, ixPos, endPos);\n switch (max) {\n case 0:\n return max;\n case 1:\n return count_bit_noESC(ix, ixPos, endPos, s);\n case 2:\n case 3:\n return count_bit_noESC_from2(\n ix,\n ixPos,\n endPos,\n huf_tbl_noESC[max - 1],\n s\n );\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n return count_bit_noESC_from3(\n ix,\n ixPos,\n endPos,\n huf_tbl_noESC[max - 1],\n s\n );\n default:\n if (max > QuantizePVT.IXMAX_VAL) {\n s.bits = QuantizePVT.LARGE_BITS;\n return -1;\n }\n max -= 15;\n var choice2;\n for (choice2 = 24; choice2 < 32; choice2++) {\n if (Tables$1.ht[choice2].linmax >= max) {\n break;\n }\n }\n var choice;\n for (choice = choice2 - 8; choice < 24; choice++) {\n if (Tables$1.ht[choice].linmax >= max) {\n break;\n }\n }\n return count_bit_ESC(ix, ixPos, endPos, choice, choice2, s);\n }\n }\n this.noquant_count_bits = function(gfc, gi, prev_noise) {\n var ix = gi.l3_enc;\n var i = Math.min(576, gi.max_nonzero_coeff + 2 >> 1 << 1);\n if (prev_noise != null)\n prev_noise.sfb_count1 = 0;\n for (; i > 1; i -= 2)\n if ((ix[i - 1] | ix[i - 2]) != 0)\n break;\n gi.count1 = i;\n var a1 = 0;\n var a2 = 0;\n for (; i > 3; i -= 4) {\n var p2;\n if (((ix[i - 1] | ix[i - 2] | ix[i - 3] | ix[i - 4]) & 2147483647) > 1) {\n break;\n }\n p2 = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];\n a1 += Tables$1.t32l[p2];\n a2 += Tables$1.t33l[p2];\n }\n var bits = a1;\n gi.count1table_select = 0;\n if (a1 > a2) {\n bits = a2;\n gi.count1table_select = 1;\n }\n gi.count1bits = bits;\n gi.big_values = i;\n if (i == 0)\n return bits;\n if (gi.block_type == Encoder.SHORT_TYPE) {\n a1 = 3 * gfc.scalefac_band.s[3];\n if (a1 > gi.big_values)\n a1 = gi.big_values;\n a2 = gi.big_values;\n } else if (gi.block_type == Encoder.NORM_TYPE) {\n a1 = gi.region0_count = gfc.bv_scf[i - 2];\n a2 = gi.region1_count = gfc.bv_scf[i - 1];\n a2 = gfc.scalefac_band.l[a1 + a2 + 2];\n a1 = gfc.scalefac_band.l[a1 + 1];\n if (a2 < i) {\n var bi = new Bits(bits);\n gi.table_select[2] = choose_table(ix, a2, i, bi);\n bits = bi.bits;\n }\n } else {\n gi.region0_count = 7;\n gi.region1_count = Encoder.SBMAX_l - 1 - 7 - 1;\n a1 = gfc.scalefac_band.l[7 + 1];\n a2 = i;\n if (a1 > a2) {\n a1 = a2;\n }\n }\n a1 = Math.min(a1, i);\n a2 = Math.min(a2, i);\n if (a1 > 0) {\n var bi = new Bits(bits);\n gi.table_select[0] = choose_table(ix, 0, a1, bi);\n bits = bi.bits;\n }\n if (a1 < a2) {\n var bi = new Bits(bits);\n gi.table_select[1] = choose_table(ix, a1, a2, bi);\n bits = bi.bits;\n }\n if (gfc.use_best_huffman == 2) {\n gi.part2_3_length = bits;\n best_huffman_divide(gfc, gi);\n bits = gi.part2_3_length;\n }\n if (prev_noise != null) {\n if (gi.block_type == Encoder.NORM_TYPE) {\n var sfb = 0;\n while (gfc.scalefac_band.l[sfb] < gi.big_values) {\n sfb++;\n }\n prev_noise.sfb_count1 = sfb;\n }\n }\n return bits;\n };\n this.count_bits = function(gfc, xr, gi, prev_noise) {\n var ix = gi.l3_enc;\n var w = QuantizePVT.IXMAX_VAL / qupvt.IPOW20(gi.global_gain);\n if (gi.xrpow_max > w)\n return QuantizePVT.LARGE_BITS;\n quantize_xrpow(xr, ix, qupvt.IPOW20(gi.global_gain), gi, prev_noise);\n if ((gfc.substep_shaping & 2) != 0) {\n var j = 0;\n var gain = gi.global_gain + gi.scalefac_scale;\n var roundfac = 0.634521682242439 / qupvt.IPOW20(gain);\n for (var sfb = 0; sfb < gi.sfbmax; sfb++) {\n var width = gi.width[sfb];\n if (gfc.pseudohalf[sfb] == 0) {\n j += width;\n } else {\n var k;\n for (k = j, j += width; k < j; ++k) {\n ix[k] = xr[k] >= roundfac ? ix[k] : 0;\n }\n }\n }\n }\n return this.noquant_count_bits(gfc, gi, prev_noise);\n };\n function recalc_divide_init(gfc, cod_info, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n var bigv = cod_info.big_values;\n for (var r0 = 0; r0 <= 7 + 15; r0++) {\n r01_bits[r0] = QuantizePVT.LARGE_BITS;\n }\n for (var r0 = 0; r0 < 16; r0++) {\n var a1 = gfc.scalefac_band.l[r0 + 1];\n if (a1 >= bigv)\n break;\n var r0bits = 0;\n var bi = new Bits(r0bits);\n var r0t = choose_table(ix, 0, a1, bi);\n r0bits = bi.bits;\n for (var r1 = 0; r1 < 8; r1++) {\n var a2 = gfc.scalefac_band.l[r0 + r1 + 2];\n if (a2 >= bigv)\n break;\n var bits = r0bits;\n bi = new Bits(bits);\n var r1t = choose_table(ix, a1, a2, bi);\n bits = bi.bits;\n if (r01_bits[r0 + r1] > bits) {\n r01_bits[r0 + r1] = bits;\n r01_div[r0 + r1] = r0;\n r0_tbl[r0 + r1] = r0t;\n r1_tbl[r0 + r1] = r1t;\n }\n }\n }\n }\n function recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n var bigv = cod_info2.big_values;\n for (var r2 = 2; r2 < Encoder.SBMAX_l + 1; r2++) {\n var a2 = gfc.scalefac_band.l[r2];\n if (a2 >= bigv)\n break;\n var bits = r01_bits[r2 - 2] + cod_info2.count1bits;\n if (gi.part2_3_length <= bits)\n break;\n var bi = new Bits(bits);\n var r2t = choose_table(ix, a2, bigv, bi);\n bits = bi.bits;\n if (gi.part2_3_length <= bits)\n continue;\n gi.assign(cod_info2);\n gi.part2_3_length = bits;\n gi.region0_count = r01_div[r2 - 2];\n gi.region1_count = r2 - 2 - r01_div[r2 - 2];\n gi.table_select[0] = r0_tbl[r2 - 2];\n gi.table_select[1] = r1_tbl[r2 - 2];\n gi.table_select[2] = r2t;\n }\n }\n this.best_huffman_divide = function(gfc, gi) {\n var cod_info2 = new GrInfo();\n var ix = gi.l3_enc;\n var r01_bits = new_int$2(7 + 15 + 1);\n var r01_div = new_int$2(7 + 15 + 1);\n var r0_tbl = new_int$2(7 + 15 + 1);\n var r1_tbl = new_int$2(7 + 15 + 1);\n if (gi.block_type == Encoder.SHORT_TYPE && gfc.mode_gr == 1)\n return;\n cod_info2.assign(gi);\n if (gi.block_type == Encoder.NORM_TYPE) {\n recalc_divide_init(gfc, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl);\n recalc_divide_sub(\n gfc,\n cod_info2,\n gi,\n ix,\n r01_bits,\n r01_div,\n r0_tbl,\n r1_tbl\n );\n }\n var i = cod_info2.big_values;\n if (i == 0 || (ix[i - 2] | ix[i - 1]) > 1)\n return;\n i = gi.count1 + 2;\n if (i > 576)\n return;\n cod_info2.assign(gi);\n cod_info2.count1 = i;\n var a1 = 0;\n var a2 = 0;\n for (; i > cod_info2.big_values; i -= 4) {\n var p2 = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];\n a1 += Tables$1.t32l[p2];\n a2 += Tables$1.t33l[p2];\n }\n cod_info2.big_values = i;\n cod_info2.count1table_select = 0;\n if (a1 > a2) {\n a1 = a2;\n cod_info2.count1table_select = 1;\n }\n cod_info2.count1bits = a1;\n if (cod_info2.block_type == Encoder.NORM_TYPE) {\n recalc_divide_sub(\n gfc,\n cod_info2,\n gi,\n ix,\n r01_bits,\n r01_div,\n r0_tbl,\n r1_tbl\n );\n } else {\n cod_info2.part2_3_length = a1;\n a1 = gfc.scalefac_band.l[7 + 1];\n if (a1 > i) {\n a1 = i;\n }\n if (a1 > 0) {\n var bi = new Bits(cod_info2.part2_3_length);\n cod_info2.table_select[0] = choose_table(ix, 0, a1, bi);\n cod_info2.part2_3_length = bi.bits;\n }\n if (i > a1) {\n var bi = new Bits(cod_info2.part2_3_length);\n cod_info2.table_select[1] = choose_table(ix, a1, i, bi);\n cod_info2.part2_3_length = bi.bits;\n }\n if (gi.part2_3_length > cod_info2.part2_3_length)\n gi.assign(cod_info2);\n }\n };\n var slen1_n = [1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 4, 8, 8, 8, 16, 16];\n var slen2_n = [1, 2, 4, 8, 1, 2, 4, 8, 2, 4, 8, 2, 4, 8, 4, 8];\n var slen1_tab = [0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4];\n var slen2_tab = [0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3];\n Takehiro.slen1_tab = slen1_tab;\n Takehiro.slen2_tab = slen2_tab;\n function scfsi_calc(ch, l3_side) {\n var sfb;\n var gi = l3_side.tt[1][ch];\n var g0 = l3_side.tt[0][ch];\n for (var i = 0; i < Tables$1.scfsi_band.length - 1; i++) {\n for (sfb = Tables$1.scfsi_band[i]; sfb < Tables$1.scfsi_band[i + 1]; sfb++) {\n if (g0.scalefac[sfb] != gi.scalefac[sfb] && gi.scalefac[sfb] >= 0)\n break;\n }\n if (sfb == Tables$1.scfsi_band[i + 1]) {\n for (sfb = Tables$1.scfsi_band[i]; sfb < Tables$1.scfsi_band[i + 1]; sfb++) {\n gi.scalefac[sfb] = -1;\n }\n l3_side.scfsi[ch][i] = 1;\n }\n }\n var s1 = 0;\n var c1 = 0;\n for (sfb = 0; sfb < 11; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n c1++;\n if (s1 < gi.scalefac[sfb])\n s1 = gi.scalefac[sfb];\n }\n var s2 = 0;\n var c2 = 0;\n for (; sfb < Encoder.SBPSY_l; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n c2++;\n if (s2 < gi.scalefac[sfb])\n s2 = gi.scalefac[sfb];\n }\n for (var i = 0; i < 16; i++) {\n if (s1 < slen1_n[i] && s2 < slen2_n[i]) {\n var c = slen1_tab[i] * c1 + slen2_tab[i] * c2;\n if (gi.part2_length > c) {\n gi.part2_length = c;\n gi.scalefac_compress = i;\n }\n }\n }\n }\n this.best_scalefac_store = function(gfc, gr, ch, l3_side) {\n var gi = l3_side.tt[gr][ch];\n var sfb, i, j, l;\n var recalc = 0;\n j = 0;\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n var width = gi.width[sfb];\n j += width;\n for (l = -width; l < 0; l++) {\n if (gi.l3_enc[l + j] != 0)\n break;\n }\n if (l == 0)\n gi.scalefac[sfb] = recalc = -2;\n }\n if (gi.scalefac_scale == 0 && gi.preflag == 0) {\n var s = 0;\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] > 0)\n s |= gi.scalefac[sfb];\n }\n if ((s & 1) == 0 && s != 0) {\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] > 0)\n gi.scalefac[sfb] >>= 1;\n }\n gi.scalefac_scale = recalc = 1;\n }\n }\n if (gi.preflag == 0 && gi.block_type != Encoder.SHORT_TYPE && gfc.mode_gr == 2) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n if (gi.scalefac[sfb] < qupvt.pretab[sfb] && gi.scalefac[sfb] != -2) {\n break;\n }\n }\n if (sfb == Encoder.SBPSY_l) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n if (gi.scalefac[sfb] > 0)\n gi.scalefac[sfb] -= qupvt.pretab[sfb];\n }\n gi.preflag = recalc = 1;\n }\n }\n for (i = 0; i < 4; i++)\n l3_side.scfsi[ch][i] = 0;\n if (gfc.mode_gr == 2 && gr == 1 && l3_side.tt[0][ch].block_type != Encoder.SHORT_TYPE && l3_side.tt[1][ch].block_type != Encoder.SHORT_TYPE) {\n scfsi_calc(ch, l3_side);\n recalc = 0;\n }\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] == -2) {\n gi.scalefac[sfb] = 0;\n }\n }\n if (recalc != 0) {\n if (gfc.mode_gr == 2) {\n this.scale_bitcount(gi);\n } else {\n this.scale_bitcount_lsf(gfc, gi);\n }\n }\n };\n function all_scalefactors_not_negative(scalefac, n) {\n for (var i = 0; i < n; ++i) {\n if (scalefac[i] < 0)\n return false;\n }\n return true;\n }\n var scale_short = [\n 0,\n 18,\n 36,\n 54,\n 54,\n 36,\n 54,\n 72,\n 54,\n 72,\n 90,\n 72,\n 90,\n 108,\n 108,\n 126\n ];\n var scale_mixed = [\n 0,\n 18,\n 36,\n 54,\n 51,\n 35,\n 53,\n 71,\n 52,\n 70,\n 88,\n 69,\n 87,\n 105,\n 104,\n 122\n ];\n var scale_long = [\n 0,\n 10,\n 20,\n 30,\n 33,\n 21,\n 31,\n 41,\n 32,\n 42,\n 52,\n 43,\n 53,\n 63,\n 64,\n 74\n ];\n this.scale_bitcount = function(cod_info) {\n var k;\n var sfb;\n var max_slen1 = 0;\n var max_slen2 = 0;\n var tab;\n var scalefac = cod_info.scalefac;\n assert$6(all_scalefactors_not_negative(scalefac, cod_info.sfbmax));\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n tab = scale_short;\n if (cod_info.mixed_block_flag != 0)\n tab = scale_mixed;\n } else {\n tab = scale_long;\n if (cod_info.preflag == 0) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n if (scalefac[sfb] < qupvt.pretab[sfb])\n break;\n }\n if (sfb == Encoder.SBPSY_l) {\n cod_info.preflag = 1;\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++) {\n scalefac[sfb] -= qupvt.pretab[sfb];\n }\n }\n }\n }\n for (sfb = 0; sfb < cod_info.sfbdivide; sfb++) {\n if (max_slen1 < scalefac[sfb])\n max_slen1 = scalefac[sfb];\n }\n for (; sfb < cod_info.sfbmax; sfb++) {\n if (max_slen2 < scalefac[sfb])\n max_slen2 = scalefac[sfb];\n }\n cod_info.part2_length = QuantizePVT.LARGE_BITS;\n for (k = 0; k < 16; k++) {\n if (max_slen1 < slen1_n[k] && max_slen2 < slen2_n[k] && cod_info.part2_length > tab[k]) {\n cod_info.part2_length = tab[k];\n cod_info.scalefac_compress = k;\n }\n }\n return cod_info.part2_length == QuantizePVT.LARGE_BITS;\n };\n var max_range_sfac_tab = [\n [15, 15, 7, 7],\n [15, 15, 7, 0],\n [7, 3, 0, 0],\n [15, 31, 31, 0],\n [7, 7, 7, 0],\n [3, 3, 0, 0]\n ];\n this.scale_bitcount_lsf = function(gfc, cod_info) {\n var table_number, row_in_table, partition, nr_sfb, window2;\n var over;\n var i, sfb;\n var max_sfac = new_int$2(4);\n var scalefac = cod_info.scalefac;\n if (cod_info.preflag != 0)\n table_number = 2;\n else\n table_number = 0;\n for (i = 0; i < 4; i++)\n max_sfac[i] = 0;\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n row_in_table = 1;\n var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for (sfb = 0, partition = 0; partition < 4; partition++) {\n nr_sfb = partition_table[partition] / 3;\n for (i = 0; i < nr_sfb; i++, sfb++) {\n for (window2 = 0; window2 < 3; window2++) {\n if (scalefac[sfb * 3 + window2] > max_sfac[partition]) {\n max_sfac[partition] = scalefac[sfb * 3 + window2];\n }\n }\n }\n }\n } else {\n row_in_table = 0;\n var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for (sfb = 0, partition = 0; partition < 4; partition++) {\n nr_sfb = partition_table[partition];\n for (i = 0; i < nr_sfb; i++, sfb++) {\n if (scalefac[sfb] > max_sfac[partition]) {\n max_sfac[partition] = scalefac[sfb];\n }\n }\n }\n }\n for (over = false, partition = 0; partition < 4; partition++) {\n if (max_sfac[partition] > max_range_sfac_tab[table_number][partition]) {\n over = true;\n }\n }\n if (!over) {\n var slen1, slen2, slen3, slen4;\n cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for (partition = 0; partition < 4; partition++) {\n cod_info.slen[partition] = log2tab[max_sfac[partition]];\n }\n slen1 = cod_info.slen[0];\n slen2 = cod_info.slen[1];\n slen3 = cod_info.slen[2];\n slen4 = cod_info.slen[3];\n switch (table_number) {\n case 0:\n cod_info.scalefac_compress = (slen1 * 5 + slen2 << 4) + (slen3 << 2) + slen4;\n break;\n case 1:\n cod_info.scalefac_compress = 400 + (slen1 * 5 + slen2 << 2) + slen3;\n break;\n case 2:\n cod_info.scalefac_compress = 500 + slen1 * 3 + slen2;\n break;\n default:\n System$4.err.printf(\"intensity stereo not implemented yet\\n\");\n break;\n }\n }\n if (!over) {\n assert$6(cod_info.sfb_partition_table != null);\n cod_info.part2_length = 0;\n for (partition = 0; partition < 4; partition++) {\n cod_info.part2_length += cod_info.slen[partition] * cod_info.sfb_partition_table[partition];\n }\n }\n return over;\n };\n var log2tab = [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4];\n this.huffman_init = function(gfc) {\n for (var i = 2; i <= 576; i += 2) {\n var scfb_anz = 0;\n var bv_index;\n while (gfc.scalefac_band.l[++scfb_anz] < i)\n ;\n bv_index = subdv_table[scfb_anz][0];\n while (gfc.scalefac_band.l[bv_index + 1] > i)\n bv_index--;\n if (bv_index < 0) {\n bv_index = subdv_table[scfb_anz][0];\n }\n gfc.bv_scf[i - 2] = bv_index;\n bv_index = subdv_table[scfb_anz][1];\n while (gfc.scalefac_band.l[bv_index + gfc.bv_scf[i - 2] + 2] > i) {\n bv_index--;\n }\n if (bv_index < 0) {\n bv_index = subdv_table[scfb_anz][1];\n }\n gfc.bv_scf[i - 1] = bv_index;\n }\n };\n}\nvar System$3 = common.System;\nvar Arrays$2 = common.Arrays;\nvar new_byte$2 = common.new_byte;\nvar new_float_n = common.new_float_n;\nvar new_int$1 = common.new_int;\nvar assert$5 = common.assert;\nBitStream$1.EQ = function(a, b) {\n return Math.abs(a) > Math.abs(b) ? Math.abs(a - b) <= Math.abs(a) * 1e-6 : Math.abs(a - b) <= Math.abs(b) * 1e-6;\n};\nBitStream$1.NEQ = function(a, b) {\n return !BitStream$1.EQ(a, b);\n};\nfunction BitStream$1() {\n var self2 = this;\n var CRC16_POLYNOMIAL = 32773;\n var ga = null;\n var mpg = null;\n var ver = null;\n var vbr = null;\n this.setModules = function(_ga, _mpg, _ver, _vbr) {\n ga = _ga;\n mpg = _mpg;\n ver = _ver;\n vbr = _vbr;\n };\n var buf = null;\n var totbit = 0;\n var bufByteIdx = 0;\n var bufBitIdx = 0;\n this.getframebits = function(gfp) {\n var gfc = gfp.internal_flags;\n var bit_rate;\n if (gfc.bitrate_index != 0) {\n bit_rate = Tables$1.bitrate_table[gfp.version][gfc.bitrate_index];\n } else\n bit_rate = gfp.brate;\n var bytes = 0 | (gfp.version + 1) * 72e3 * bit_rate / gfp.out_samplerate + gfc.padding;\n return 8 * bytes;\n };\n function putheader_bits(gfc) {\n System$3.arraycopy(\n gfc.header[gfc.w_ptr].buf,\n 0,\n buf,\n bufByteIdx,\n gfc.sideinfo_len\n );\n bufByteIdx += gfc.sideinfo_len;\n totbit += gfc.sideinfo_len * 8;\n gfc.w_ptr = gfc.w_ptr + 1 & LameInternalFlags$1.MAX_HEADER_BUF - 1;\n }\n function putbits2(gfc, val, j) {\n while (j > 0) {\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n assert$5(gfc.header[gfc.w_ptr].write_timing >= totbit);\n if (gfc.header[gfc.w_ptr].write_timing == totbit) {\n putheader_bits(gfc);\n }\n buf[bufByteIdx] = 0;\n }\n k = Math.min(j, bufBitIdx);\n j -= k;\n bufBitIdx -= k;\n buf[bufByteIdx] |= val >> j << bufBitIdx;\n totbit += k;\n }\n }\n function putbits_noheaders(gfc, val, j) {\n while (j > 0) {\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n buf[bufByteIdx] = 0;\n }\n k = Math.min(j, bufBitIdx);\n j -= k;\n bufBitIdx -= k;\n buf[bufByteIdx] |= val >> j << bufBitIdx;\n totbit += k;\n }\n }\n function drain_into_ancillary(gfp, remainingBits) {\n var gfc = gfp.internal_flags;\n var i;\n if (remainingBits >= 8) {\n putbits2(gfc, 76, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 65, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 77, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 69, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 32) {\n var version2 = ver.getLameShortVersion();\n if (remainingBits >= 32) {\n for (i = 0; i < version2.length && remainingBits >= 8; ++i) {\n remainingBits -= 8;\n putbits2(gfc, version2.charAt(i), 8);\n }\n }\n }\n for (; remainingBits >= 1; remainingBits -= 1) {\n putbits2(gfc, gfc.ancillary_flag, 1);\n gfc.ancillary_flag ^= !gfp.disable_reservoir ? 1 : 0;\n }\n }\n function writeheader(gfc, val, j) {\n var ptr = gfc.header[gfc.h_ptr].ptr;\n while (j > 0) {\n var k = Math.min(j, 8 - (ptr & 7));\n j -= k;\n gfc.header[gfc.h_ptr].buf[ptr >> 3] |= val >> j << 8 - (ptr & 7) - k;\n ptr += k;\n }\n gfc.header[gfc.h_ptr].ptr = ptr;\n }\n function CRC_update(value, crc) {\n value <<= 8;\n for (var i = 0; i < 8; i++) {\n value <<= 1;\n crc <<= 1;\n if (((crc ^ value) & 65536) != 0)\n crc ^= CRC16_POLYNOMIAL;\n }\n return crc;\n }\n this.CRC_writeheader = function(gfc, header) {\n var crc = 65535;\n crc = CRC_update(header[2] & 255, crc);\n crc = CRC_update(header[3] & 255, crc);\n for (var i = 6; i < gfc.sideinfo_len; i++) {\n crc = CRC_update(header[i] & 255, crc);\n }\n header[4] = byte(crc >> 8);\n header[5] = byte(crc & 255);\n };\n function encodeSideInfo2(gfp, bitsPerFrame) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var gr, ch;\n l3_side = gfc.l3_side;\n gfc.header[gfc.h_ptr].ptr = 0;\n Arrays$2.fill(gfc.header[gfc.h_ptr].buf, 0, gfc.sideinfo_len, 0);\n if (gfp.out_samplerate < 16e3)\n writeheader(gfc, 4094, 12);\n else\n writeheader(gfc, 4095, 12);\n writeheader(gfc, gfp.version, 1);\n writeheader(gfc, 4 - 3, 2);\n writeheader(gfc, !gfp.error_protection ? 1 : 0, 1);\n writeheader(gfc, gfc.bitrate_index, 4);\n writeheader(gfc, gfc.samplerate_index, 2);\n writeheader(gfc, gfc.padding, 1);\n writeheader(gfc, gfp.extension, 1);\n writeheader(gfc, gfp.mode.ordinal(), 2);\n writeheader(gfc, gfc.mode_ext, 2);\n writeheader(gfc, gfp.copyright, 1);\n writeheader(gfc, gfp.original, 1);\n writeheader(gfc, gfp.emphasis, 2);\n if (gfp.error_protection) {\n writeheader(gfc, 0, 16);\n }\n if (gfp.version == 1) {\n assert$5(l3_side.main_data_begin >= 0);\n writeheader(gfc, l3_side.main_data_begin, 9);\n if (gfc.channels_out == 2)\n writeheader(gfc, l3_side.private_bits, 3);\n else\n writeheader(gfc, l3_side.private_bits, 5);\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var band;\n for (band = 0; band < 4; band++) {\n writeheader(gfc, l3_side.scfsi[ch][band], 1);\n }\n }\n for (gr = 0; gr < 2; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 4);\n if (gi.block_type != Encoder.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14)\n gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n assert$5(gi.region0_count >= 0 && gi.region0_count < 16);\n assert$5(gi.region1_count >= 0 && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n writeheader(gfc, gi.preflag, 1);\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n }\n } else {\n assert$5(l3_side.main_data_begin >= 0);\n writeheader(gfc, l3_side.main_data_begin, 8);\n writeheader(gfc, l3_side.private_bits, gfc.channels_out);\n gr = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 9);\n if (gi.block_type != Encoder.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14)\n gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n assert$5(gi.region0_count >= 0 && gi.region0_count < 16);\n assert$5(gi.region1_count >= 0 && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n }\n if (gfp.error_protection) {\n CRC_writeheader(gfc, gfc.header[gfc.h_ptr].buf);\n }\n {\n var old = gfc.h_ptr;\n assert$5(gfc.header[old].ptr == gfc.sideinfo_len * 8);\n gfc.h_ptr = old + 1 & LameInternalFlags$1.MAX_HEADER_BUF - 1;\n gfc.header[gfc.h_ptr].write_timing = gfc.header[old].write_timing + bitsPerFrame;\n if (gfc.h_ptr == gfc.w_ptr) {\n System$3.err.println(\"Error: MAX_HEADER_BUF too small in bitstream.c \\n\");\n }\n }\n }\n function huffman_coder_count1(gfc, gi) {\n var h2 = Tables$1.ht[gi.count1table_select + 32];\n var i;\n var bits = 0;\n var ix = gi.big_values;\n var xr = gi.big_values;\n assert$5(gi.count1table_select < 2);\n for (i = (gi.count1 - gi.big_values) / 4; i > 0; --i) {\n var huffbits = 0;\n var p2 = 0;\n var v;\n v = gi.l3_enc[ix + 0];\n if (v != 0) {\n p2 += 8;\n if (gi.xr[xr + 0] < 0)\n huffbits++;\n }\n v = gi.l3_enc[ix + 1];\n if (v != 0) {\n p2 += 4;\n huffbits *= 2;\n if (gi.xr[xr + 1] < 0)\n huffbits++;\n }\n v = gi.l3_enc[ix + 2];\n if (v != 0) {\n p2 += 2;\n huffbits *= 2;\n if (gi.xr[xr + 2] < 0)\n huffbits++;\n }\n v = gi.l3_enc[ix + 3];\n if (v != 0) {\n p2++;\n huffbits *= 2;\n if (gi.xr[xr + 3] < 0)\n huffbits++;\n }\n ix += 4;\n xr += 4;\n putbits2(gfc, huffbits + h2.table[p2], h2.hlen[p2]);\n bits += h2.hlen[p2];\n }\n return bits;\n }\n function Huffmancode(gfc, tableindex, start2, end, gi) {\n var h2 = Tables$1.ht[tableindex];\n var bits = 0;\n if (tableindex == 0)\n return bits;\n for (var i = start2; i < end; i += 2) {\n var cbits = 0;\n var xbits = 0;\n var linbits = h2.xlen;\n var xlen = h2.xlen;\n var ext = 0;\n var x1 = gi.l3_enc[i];\n var x2 = gi.l3_enc[i + 1];\n if (x1 != 0) {\n if (gi.xr[i] < 0)\n ext++;\n cbits--;\n }\n if (tableindex > 15) {\n if (x1 > 14) {\n var linbits_x1 = x1 - 15;\n assert$5(linbits_x1 <= h2.linmax);\n ext |= linbits_x1 << 1;\n xbits = linbits;\n x1 = 15;\n }\n if (x2 > 14) {\n var linbits_x2 = x2 - 15;\n assert$5(linbits_x2 <= h2.linmax);\n ext <<= linbits;\n ext |= linbits_x2;\n xbits += linbits;\n x2 = 15;\n }\n xlen = 16;\n }\n if (x2 != 0) {\n ext <<= 1;\n if (gi.xr[i + 1] < 0)\n ext++;\n cbits--;\n }\n x1 = x1 * xlen + x2;\n xbits -= cbits;\n cbits += h2.hlen[x1];\n putbits2(gfc, h2.table[x1], cbits);\n putbits2(gfc, ext, xbits);\n bits += cbits + xbits;\n }\n return bits;\n }\n function ShortHuffmancodebits(gfc, gi) {\n var region1Start = 3 * gfc.scalefac_band.s[3];\n if (region1Start > gi.big_values)\n region1Start = gi.big_values;\n var bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(\n gfc,\n gi.table_select[1],\n region1Start,\n gi.big_values,\n gi\n );\n return bits;\n }\n function LongHuffmancodebits(gfc, gi) {\n var bigvalues, bits;\n var region1Start, region2Start;\n bigvalues = gi.big_values;\n var i = gi.region0_count + 1;\n assert$5(i < gfc.scalefac_band.l.length);\n region1Start = gfc.scalefac_band.l[i];\n i += gi.region1_count + 1;\n assert$5(i < gfc.scalefac_band.l.length);\n region2Start = gfc.scalefac_band.l[i];\n if (region1Start > bigvalues)\n region1Start = bigvalues;\n if (region2Start > bigvalues)\n region2Start = bigvalues;\n bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(gfc, gi.table_select[1], region1Start, region2Start, gi);\n bits += Huffmancode(gfc, gi.table_select[2], region2Start, bigvalues, gi);\n return bits;\n }\n function writeMainData(gfp) {\n var gr;\n var ch;\n var sfb;\n var data_bits;\n var tot_bits = 0;\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n if (gfp.version == 1) {\n for (gr = 0; gr < 2; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n var slen1 = Takehiro.slen1_tab[gi.scalefac_compress];\n var slen2 = Takehiro.slen2_tab[gi.scalefac_compress];\n data_bits = 0;\n for (sfb = 0; sfb < gi.sfbdivide; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n putbits2(gfc, gi.scalefac[sfb], slen1);\n data_bits += slen1;\n }\n for (; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n putbits2(gfc, gi.scalefac[sfb], slen2);\n data_bits += slen2;\n }\n assert$5(data_bits == gi.part2_length);\n if (gi.block_type == Encoder.SHORT_TYPE) {\n data_bits += ShortHuffmancodebits(gfc, gi);\n } else {\n data_bits += LongHuffmancodebits(gfc, gi);\n }\n data_bits += huffman_coder_count1(gfc, gi);\n assert$5(data_bits == gi.part2_3_length + gi.part2_length);\n tot_bits += data_bits;\n }\n }\n } else {\n gr = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n var i;\n var sfb_partition;\n var scale_bits = 0;\n assert$5(gi.sfb_partition_table != null);\n data_bits = 0;\n sfb = 0;\n sfb_partition = 0;\n if (gi.block_type == Encoder.SHORT_TYPE) {\n for (; sfb_partition < 4; sfb_partition++) {\n var sfbs = gi.sfb_partition_table[sfb_partition] / 3;\n var slen = gi.slen[sfb_partition];\n for (i = 0; i < sfbs; i++, sfb++) {\n putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 0], 0), slen);\n putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 1], 0), slen);\n putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 2], 0), slen);\n scale_bits += 3 * slen;\n }\n }\n data_bits += ShortHuffmancodebits(gfc, gi);\n } else {\n for (; sfb_partition < 4; sfb_partition++) {\n var sfbs = gi.sfb_partition_table[sfb_partition];\n var slen = gi.slen[sfb_partition];\n for (i = 0; i < sfbs; i++, sfb++) {\n putbits2(gfc, Math.max(gi.scalefac[sfb], 0), slen);\n scale_bits += slen;\n }\n }\n data_bits += LongHuffmancodebits(gfc, gi);\n }\n data_bits += huffman_coder_count1(gfc, gi);\n assert$5(data_bits == gi.part2_3_length);\n assert$5(scale_bits == gi.part2_length);\n tot_bits += scale_bits + data_bits;\n }\n }\n return tot_bits;\n }\n function TotalBytes() {\n this.total = 0;\n }\n function compute_flushbits(gfp, total_bytes_output) {\n var gfc = gfp.internal_flags;\n var flushbits, remaining_headers;\n var bitsPerFrame;\n var last_ptr, first_ptr;\n first_ptr = gfc.w_ptr;\n last_ptr = gfc.h_ptr - 1;\n if (last_ptr == -1)\n last_ptr = LameInternalFlags$1.MAX_HEADER_BUF - 1;\n flushbits = gfc.header[last_ptr].write_timing - totbit;\n total_bytes_output.total = flushbits;\n if (flushbits >= 0) {\n remaining_headers = 1 + last_ptr - first_ptr;\n if (last_ptr < first_ptr) {\n remaining_headers = 1 + last_ptr - first_ptr + LameInternalFlags$1.MAX_HEADER_BUF;\n }\n flushbits -= remaining_headers * 8 * gfc.sideinfo_len;\n }\n bitsPerFrame = self2.getframebits(gfp);\n flushbits += bitsPerFrame;\n total_bytes_output.total += bitsPerFrame;\n if (total_bytes_output.total % 8 != 0) {\n total_bytes_output.total = 1 + total_bytes_output.total / 8;\n } else\n total_bytes_output.total = total_bytes_output.total / 8;\n total_bytes_output.total += bufByteIdx + 1;\n if (flushbits < 0) {\n System$3.err.println(\"strange error flushing buffer ... \\n\");\n }\n return flushbits;\n }\n this.flush_bitstream = function(gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var flushbits;\n var last_ptr = gfc.h_ptr - 1;\n if (last_ptr == -1)\n last_ptr = LameInternalFlags$1.MAX_HEADER_BUF - 1;\n l3_side = gfc.l3_side;\n if ((flushbits = compute_flushbits(gfp, new TotalBytes())) < 0)\n return;\n drain_into_ancillary(gfp, flushbits);\n assert$5(gfc.header[last_ptr].write_timing + this.getframebits(gfp) == totbit);\n gfc.ResvSize = 0;\n l3_side.main_data_begin = 0;\n if (gfc.findReplayGain) {\n var RadioGain = ga.GetTitleGain(gfc.rgdata);\n assert$5(NEQ(RadioGain, GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES));\n gfc.RadioGain = Math.floor(RadioGain * 10 + 0.5) | 0;\n }\n if (gfc.findPeakSample) {\n gfc.noclipGainChange = Math.ceil(Math.log10(gfc.PeakSample / 32767) * 20 * 10) | 0;\n if (gfc.noclipGainChange > 0) {\n if (EQ(gfp.scale, 1) || EQ(gfp.scale, 0)) {\n gfc.noclipScale = Math.floor(32767 / gfc.PeakSample * 100) / 100;\n } else {\n gfc.noclipScale = -1;\n }\n } else {\n gfc.noclipScale = -1;\n }\n }\n };\n this.add_dummy_byte = function(gfp, val, n) {\n var gfc = gfp.internal_flags;\n var i;\n while (n-- > 0) {\n putbits_noheaders(gfc, val, 8);\n for (i = 0; i < LameInternalFlags$1.MAX_HEADER_BUF; ++i) {\n gfc.header[i].write_timing += 8;\n }\n }\n };\n this.format_bitstream = function(gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n l3_side = gfc.l3_side;\n var bitsPerFrame = this.getframebits(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_pre);\n encodeSideInfo2(gfp, bitsPerFrame);\n var bits = 8 * gfc.sideinfo_len;\n bits += writeMainData(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_post);\n bits += l3_side.resvDrain_post;\n l3_side.main_data_begin += (bitsPerFrame - bits) / 8;\n if (compute_flushbits(gfp, new TotalBytes()) != gfc.ResvSize) {\n System$3.err.println(\"Internal buffer inconsistency. flushbits <> ResvSize\");\n }\n if (l3_side.main_data_begin * 8 != gfc.ResvSize) {\n System$3.err.printf(\n \"bit reservoir error: \\nl3_side.main_data_begin: %d \\nResvoir size: %d \\nresv drain (post) %d \\nresv drain (pre) %d \\nheader and sideinfo: %d \\ndata bits: %d \\ntotal bits: %d (remainder: %d) \\nbitsperframe: %d \\n\",\n 8 * l3_side.main_data_begin,\n gfc.ResvSize,\n l3_side.resvDrain_post,\n l3_side.resvDrain_pre,\n 8 * gfc.sideinfo_len,\n bits - l3_side.resvDrain_post - 8 * gfc.sideinfo_len,\n bits,\n bits % 8,\n bitsPerFrame\n );\n System$3.err.println(\n \"This is a fatal error. It has several possible causes:\"\n );\n System$3.err.println(\n \"90%% LAME compiled with buggy version of gcc using advanced optimizations\"\n );\n System$3.err.println(\" 9%% Your system is overclocked\");\n System$3.err.println(\" 1%% bug in LAME encoding library\");\n gfc.ResvSize = l3_side.main_data_begin * 8;\n }\n if (totbit > 1e9) {\n var i;\n for (i = 0; i < LameInternalFlags$1.MAX_HEADER_BUF; ++i) {\n gfc.header[i].write_timing -= totbit;\n }\n totbit = 0;\n }\n return 0;\n };\n this.copy_buffer = function(gfc, buffer, bufferPos, size2, mp3data) {\n var minimum = bufByteIdx + 1;\n if (minimum <= 0)\n return 0;\n if (size2 != 0 && minimum > size2) {\n return -1;\n }\n System$3.arraycopy(buf, 0, buffer, bufferPos, minimum);\n bufByteIdx = -1;\n bufBitIdx = 0;\n if (mp3data != 0) {\n var crc = new_int$1(1);\n crc[0] = gfc.nMusicCRC;\n vbr.updateMusicCRC(crc, buffer, bufferPos, minimum);\n gfc.nMusicCRC = crc[0];\n if (minimum > 0) {\n gfc.VBR_seek_table.nBytesWritten += minimum;\n }\n if (gfc.decode_on_the_fly) {\n var pcm_buf = new_float_n([2, 1152]);\n var mp3_in = minimum;\n var samples_out = -1;\n var i;\n while (samples_out != 0) {\n samples_out = mpg.hip_decode1_unclipped(\n gfc.hip,\n buffer,\n bufferPos,\n mp3_in,\n pcm_buf[0],\n pcm_buf[1]\n );\n mp3_in = 0;\n if (samples_out == -1) {\n samples_out = 0;\n }\n if (samples_out > 0) {\n if (gfc.findPeakSample) {\n for (i = 0; i < samples_out; i++) {\n if (pcm_buf[0][i] > gfc.PeakSample) {\n gfc.PeakSample = pcm_buf[0][i];\n } else if (-pcm_buf[0][i] > gfc.PeakSample) {\n gfc.PeakSample = -pcm_buf[0][i];\n }\n }\n if (gfc.channels_out > 1) {\n for (i = 0; i < samples_out; i++) {\n if (pcm_buf[1][i] > gfc.PeakSample) {\n gfc.PeakSample = pcm_buf[1][i];\n } else if (-pcm_buf[1][i] > gfc.PeakSample) {\n gfc.PeakSample = -pcm_buf[1][i];\n }\n }\n }\n }\n if (gfc.findReplayGain) {\n if (ga.AnalyzeSamples(\n gfc.rgdata,\n pcm_buf[0],\n 0,\n pcm_buf[1],\n 0,\n samples_out,\n gfc.channels_out\n ) == GainAnalysis.GAIN_ANALYSIS_ERROR) {\n return -6;\n }\n }\n }\n }\n }\n }\n return minimum;\n };\n this.init_bit_stream_w = function(gfc) {\n buf = new_byte$2(Lame$1.LAME_MAXMP3BUFFER);\n gfc.h_ptr = gfc.w_ptr = 0;\n gfc.header[gfc.h_ptr].write_timing = 0;\n bufByteIdx = -1;\n bufBitIdx = 0;\n totbit = 0;\n };\n}\nvar System$2 = common.System;\nvar VbrMode$3 = common.VbrMode;\nvar ShortBlock$1 = common.ShortBlock;\nvar new_float$2 = common.new_float;\nvar new_int_n = common.new_int_n;\nvar new_short_n = common.new_short_n;\nvar assert$4 = common.assert;\nfunction Lame$1() {\n var self2 = this;\n var LAME_MAXALBUMART = 128 * 1024;\n Lame$1.V9 = 410;\n Lame$1.V8 = 420;\n Lame$1.V7 = 430;\n Lame$1.V6 = 440;\n Lame$1.V5 = 450;\n Lame$1.V4 = 460;\n Lame$1.V3 = 470;\n Lame$1.V2 = 480;\n Lame$1.V1 = 490;\n Lame$1.V0 = 500;\n Lame$1.R3MIX = 1e3;\n Lame$1.STANDARD = 1001;\n Lame$1.EXTREME = 1002;\n Lame$1.INSANE = 1003;\n Lame$1.STANDARD_FAST = 1004;\n Lame$1.EXTREME_FAST = 1005;\n Lame$1.MEDIUM = 1006;\n Lame$1.MEDIUM_FAST = 1007;\n var LAME_MAXMP3BUFFER = 16384 + LAME_MAXALBUMART;\n Lame$1.LAME_MAXMP3BUFFER = LAME_MAXMP3BUFFER;\n var ga;\n var bs;\n var p2;\n var qupvt;\n var qu;\n var psy = new PsyModel();\n var vbr;\n var id3;\n var mpglib;\n this.enc = new Encoder();\n this.setModules = function(_ga, _bs, _p, _qupvt, _qu, _vbr, _ver, _id3, _mpglib) {\n ga = _ga;\n bs = _bs;\n p2 = _p;\n qupvt = _qupvt;\n qu = _qu;\n vbr = _vbr;\n id3 = _id3;\n mpglib = _mpglib;\n this.enc.setModules(bs, psy, qupvt, vbr);\n };\n function PSY() {\n this.mask_adjust = 0;\n this.mask_adjust_short = 0;\n this.bo_l_weight = new_float$2(Encoder.SBMAX_l);\n this.bo_s_weight = new_float$2(Encoder.SBMAX_s);\n }\n function LowPassHighPass() {\n this.lowerlimit = 0;\n }\n function BandPass(bitrate, lPass) {\n this.lowpass = lPass;\n }\n var LAME_ID = 4294479419;\n function lame_init_old(gfp) {\n var gfc;\n gfp.class_id = LAME_ID;\n gfc = gfp.internal_flags = new LameInternalFlags$1();\n gfp.mode = MPEGMode.NOT_SET;\n gfp.original = 1;\n gfp.in_samplerate = 44100;\n gfp.num_channels = 2;\n gfp.num_samples = -1;\n gfp.bWriteVbrTag = true;\n gfp.quality = -1;\n gfp.short_blocks = null;\n gfc.subblock_gain = -1;\n gfp.lowpassfreq = 0;\n gfp.highpassfreq = 0;\n gfp.lowpasswidth = -1;\n gfp.highpasswidth = -1;\n gfp.VBR = VbrMode$3.vbr_off;\n gfp.VBR_q = 4;\n gfp.ATHcurve = -1;\n gfp.VBR_mean_bitrate_kbps = 128;\n gfp.VBR_min_bitrate_kbps = 0;\n gfp.VBR_max_bitrate_kbps = 0;\n gfp.VBR_hard_min = 0;\n gfc.VBR_min_bitrate = 1;\n gfc.VBR_max_bitrate = 13;\n gfp.quant_comp = -1;\n gfp.quant_comp_short = -1;\n gfp.msfix = -1;\n gfc.resample_ratio = 1;\n gfc.OldValue[0] = 180;\n gfc.OldValue[1] = 180;\n gfc.CurrentStep[0] = 4;\n gfc.CurrentStep[1] = 4;\n gfc.masking_lower = 1;\n gfc.nsPsy.attackthre = -1;\n gfc.nsPsy.attackthre_s = -1;\n gfp.scale = -1;\n gfp.athaa_type = -1;\n gfp.ATHtype = -1;\n gfp.athaa_loudapprox = -1;\n gfp.athaa_sensitivity = 0;\n gfp.useTemporal = null;\n gfp.interChRatio = -1;\n gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n gfp.encoder_padding = 0;\n gfc.mf_size = Encoder.ENCDELAY - Encoder.MDCTDELAY;\n gfp.findReplayGain = false;\n gfp.decode_on_the_fly = false;\n gfc.decode_on_the_fly = false;\n gfc.findReplayGain = false;\n gfc.findPeakSample = false;\n gfc.RadioGain = 0;\n gfc.AudiophileGain = 0;\n gfc.noclipGainChange = 0;\n gfc.noclipScale = -1;\n gfp.preset = 0;\n gfp.write_id3tag_automatic = true;\n return 0;\n }\n this.lame_init = function() {\n var gfp = new LameGlobalFlags();\n lame_init_old(gfp);\n gfp.lame_allocated_gfp = 1;\n return gfp;\n };\n function filter_coef(x) {\n if (x > 1)\n return 0;\n if (x <= 0)\n return 1;\n return Math.cos(Math.PI / 2 * x);\n }\n this.nearestBitrateFullIndex = function(bitrate) {\n var full_bitrate_table = [\n 8,\n 16,\n 24,\n 32,\n 40,\n 48,\n 56,\n 64,\n 80,\n 96,\n 112,\n 128,\n 160,\n 192,\n 224,\n 256,\n 320\n ];\n var lower_range = 0;\n var lower_range_kbps = 0;\n var upper_range = 0;\n var upper_range_kbps = 0;\n upper_range_kbps = full_bitrate_table[16];\n upper_range = 16;\n lower_range_kbps = full_bitrate_table[16];\n lower_range = 16;\n for (var b = 0; b < 16; b++) {\n if (Math.max(bitrate, full_bitrate_table[b + 1]) != bitrate) {\n upper_range_kbps = full_bitrate_table[b + 1];\n upper_range = b + 1;\n lower_range_kbps = full_bitrate_table[b];\n lower_range = b;\n break;\n }\n }\n if (upper_range_kbps - bitrate > bitrate - lower_range_kbps) {\n return lower_range;\n }\n return upper_range;\n };\n function optimum_samplefreq(lowpassfreq, input_samplefreq) {\n var suggested_samplefreq = 44100;\n if (input_samplefreq >= 48e3)\n suggested_samplefreq = 48e3;\n else if (input_samplefreq >= 44100)\n suggested_samplefreq = 44100;\n else if (input_samplefreq >= 32e3)\n suggested_samplefreq = 32e3;\n else if (input_samplefreq >= 24e3)\n suggested_samplefreq = 24e3;\n else if (input_samplefreq >= 22050)\n suggested_samplefreq = 22050;\n else if (input_samplefreq >= 16e3)\n suggested_samplefreq = 16e3;\n else if (input_samplefreq >= 12e3)\n suggested_samplefreq = 12e3;\n else if (input_samplefreq >= 11025)\n suggested_samplefreq = 11025;\n else if (input_samplefreq >= 8e3)\n suggested_samplefreq = 8e3;\n if (lowpassfreq == -1)\n return suggested_samplefreq;\n if (lowpassfreq <= 15960)\n suggested_samplefreq = 44100;\n if (lowpassfreq <= 15250)\n suggested_samplefreq = 32e3;\n if (lowpassfreq <= 11220)\n suggested_samplefreq = 24e3;\n if (lowpassfreq <= 9970)\n suggested_samplefreq = 22050;\n if (lowpassfreq <= 7230)\n suggested_samplefreq = 16e3;\n if (lowpassfreq <= 5420)\n suggested_samplefreq = 12e3;\n if (lowpassfreq <= 4510)\n suggested_samplefreq = 11025;\n if (lowpassfreq <= 3970)\n suggested_samplefreq = 8e3;\n if (input_samplefreq < suggested_samplefreq) {\n if (input_samplefreq > 44100) {\n return 48e3;\n }\n if (input_samplefreq > 32e3) {\n return 44100;\n }\n if (input_samplefreq > 24e3) {\n return 32e3;\n }\n if (input_samplefreq > 22050) {\n return 24e3;\n }\n if (input_samplefreq > 16e3) {\n return 22050;\n }\n if (input_samplefreq > 12e3) {\n return 16e3;\n }\n if (input_samplefreq > 11025) {\n return 12e3;\n }\n if (input_samplefreq > 8e3) {\n return 11025;\n }\n return 8e3;\n }\n return suggested_samplefreq;\n }\n function SmpFrqIndex(sample_freq, gpf) {\n switch (sample_freq) {\n case 44100:\n gpf.version = 1;\n return 0;\n case 48e3:\n gpf.version = 1;\n return 1;\n case 32e3:\n gpf.version = 1;\n return 2;\n case 22050:\n gpf.version = 0;\n return 0;\n case 24e3:\n gpf.version = 0;\n return 1;\n case 16e3:\n gpf.version = 0;\n return 2;\n case 11025:\n gpf.version = 0;\n return 0;\n case 12e3:\n gpf.version = 0;\n return 1;\n case 8e3:\n gpf.version = 0;\n return 2;\n default:\n gpf.version = 0;\n return -1;\n }\n }\n function FindNearestBitrate(bRate, version2, samplerate) {\n if (samplerate < 16e3)\n version2 = 2;\n var bitrate = Tables$1.bitrate_table[version2][1];\n for (var i = 2; i <= 14; i++) {\n if (Tables$1.bitrate_table[version2][i] > 0) {\n if (Math.abs(Tables$1.bitrate_table[version2][i] - bRate) < Math.abs(bitrate - bRate)) {\n bitrate = Tables$1.bitrate_table[version2][i];\n }\n }\n }\n return bitrate;\n }\n function BitrateIndex(bRate, version2, samplerate) {\n if (samplerate < 16e3)\n version2 = 2;\n for (var i = 0; i <= 14; i++) {\n if (Tables$1.bitrate_table[version2][i] > 0) {\n if (Tables$1.bitrate_table[version2][i] == bRate) {\n return i;\n }\n }\n }\n return -1;\n }\n function optimum_bandwidth(lh, bitrate) {\n var freq_map = [\n new BandPass(8, 2e3),\n new BandPass(16, 3700),\n new BandPass(24, 3900),\n new BandPass(32, 5500),\n new BandPass(40, 7e3),\n new BandPass(48, 7500),\n new BandPass(56, 1e4),\n new BandPass(64, 11e3),\n new BandPass(80, 13500),\n new BandPass(96, 15100),\n new BandPass(112, 15600),\n new BandPass(128, 17e3),\n new BandPass(160, 17500),\n new BandPass(192, 18600),\n new BandPass(224, 19400),\n new BandPass(256, 19700),\n new BandPass(320, 20500)\n ];\n var table_index = self2.nearestBitrateFullIndex(bitrate);\n lh.lowerlimit = freq_map[table_index].lowpass;\n }\n function lame_init_params_ppflt(gfp) {\n var gfc = gfp.internal_flags;\n var lowpass_band = 32;\n var highpass_band = -1;\n if (gfc.lowpass1 > 0) {\n var minband = 999;\n for (var band = 0; band <= 31; band++) {\n var freq = band / 31;\n if (freq >= gfc.lowpass2) {\n lowpass_band = Math.min(lowpass_band, band);\n }\n if (gfc.lowpass1 < freq && freq < gfc.lowpass2) {\n minband = Math.min(minband, band);\n }\n }\n if (minband == 999) {\n gfc.lowpass1 = (lowpass_band - 0.75) / 31;\n } else {\n gfc.lowpass1 = (minband - 0.75) / 31;\n }\n gfc.lowpass2 = lowpass_band / 31;\n }\n if (gfc.highpass2 > 0) {\n if (gfc.highpass2 < 0.9 * (0.75 / 31)) {\n gfc.highpass1 = 0;\n gfc.highpass2 = 0;\n System$2.err.println(\n \"Warning: highpass filter disabled. highpass frequency too small\\n\"\n );\n }\n }\n if (gfc.highpass2 > 0) {\n var maxband = -1;\n for (var band = 0; band <= 31; band++) {\n var freq = band / 31;\n if (freq <= gfc.highpass1) {\n highpass_band = Math.max(highpass_band, band);\n }\n if (gfc.highpass1 < freq && freq < gfc.highpass2) {\n maxband = Math.max(maxband, band);\n }\n }\n gfc.highpass1 = highpass_band / 31;\n if (maxband == -1) {\n gfc.highpass2 = (highpass_band + 0.75) / 31;\n } else {\n gfc.highpass2 = (maxband + 0.75) / 31;\n }\n }\n for (var band = 0; band < 32; band++) {\n var fc1, fc2;\n var freq = band / 31;\n if (gfc.highpass2 > gfc.highpass1) {\n fc1 = filter_coef(\n (gfc.highpass2 - freq) / (gfc.highpass2 - gfc.highpass1 + 1e-20)\n );\n } else {\n fc1 = 1;\n }\n if (gfc.lowpass2 > gfc.lowpass1) {\n fc2 = filter_coef(\n (freq - gfc.lowpass1) / (gfc.lowpass2 - gfc.lowpass1 + 1e-20)\n );\n } else {\n fc2 = 1;\n }\n gfc.amp_filter[band] = fc1 * fc2;\n }\n }\n function lame_init_qval(gfp) {\n var gfc = gfp.internal_flags;\n switch (gfp.quality) {\n default:\n case 9:\n gfc.psymodel = 0;\n gfc.noise_shaping = 0;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 8:\n gfp.quality = 7;\n case 7:\n gfc.psymodel = 1;\n gfc.noise_shaping = 0;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 6:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 5:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 4:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 3:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 1;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 2:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 1;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 1:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 2;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 0:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 2;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n }\n }\n function lame_init_bitstream(gfp) {\n var gfc = gfp.internal_flags;\n gfp.frameNum = 0;\n if (gfp.write_id3tag_automatic) {\n id3.id3tag_write_v2(gfp);\n }\n gfc.bitrate_stereoMode_Hist = new_int_n([16, 4 + 1]);\n gfc.bitrate_blockType_Hist = new_int_n([16, 4 + 1 + 1]);\n gfc.PeakSample = 0;\n if (gfp.bWriteVbrTag)\n vbr.InitVbrTag(gfp);\n }\n this.lame_init_params = function(gfp) {\n var gfc = gfp.internal_flags;\n gfc.Class_ID = 0;\n if (gfc.ATH == null)\n gfc.ATH = new ATH();\n if (gfc.PSY == null)\n gfc.PSY = new PSY();\n if (gfc.rgdata == null)\n gfc.rgdata = new ReplayGain();\n gfc.channels_in = gfp.num_channels;\n if (gfc.channels_in == 1)\n gfp.mode = MPEGMode.MONO;\n gfc.channels_out = gfp.mode == MPEGMode.MONO ? 1 : 2;\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n if (gfp.mode == MPEGMode.MONO)\n gfp.force_ms = false;\n if (gfp.VBR == VbrMode$3.vbr_off && gfp.VBR_mean_bitrate_kbps != 128 && gfp.brate == 0) {\n gfp.brate = gfp.VBR_mean_bitrate_kbps;\n }\n if (gfp.VBR == VbrMode$3.vbr_off || gfp.VBR == VbrMode$3.vbr_mtrh || gfp.VBR == VbrMode$3.vbr_mt)\n ;\n else {\n gfp.free_format = false;\n }\n if (gfp.VBR == VbrMode$3.vbr_off && gfp.brate == 0) {\n if (BitStream$1.EQ(gfp.compression_ratio, 0))\n gfp.compression_ratio = 11.025;\n }\n if (gfp.VBR == VbrMode$3.vbr_off && gfp.compression_ratio > 0) {\n if (gfp.out_samplerate == 0) {\n gfp.out_samplerate = map2MP3Frequency(int(0.97 * gfp.in_samplerate));\n }\n gfp.brate = 0 | gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.compression_ratio);\n gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n if (!gfp.free_format) {\n gfp.brate = FindNearestBitrate(\n gfp.brate,\n gfp.version,\n gfp.out_samplerate\n );\n }\n }\n if (gfp.out_samplerate != 0) {\n if (gfp.out_samplerate < 16e3) {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 64);\n } else if (gfp.out_samplerate < 32e3) {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 160);\n } else {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 32);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n }\n }\n if (gfp.lowpassfreq == 0) {\n var lowpass = 16e3;\n switch (gfp.VBR) {\n case VbrMode$3.vbr_off: {\n var lh = new LowPassHighPass();\n optimum_bandwidth(lh, gfp.brate);\n lowpass = lh.lowerlimit;\n break;\n }\n case VbrMode$3.vbr_abr: {\n var lh = new LowPassHighPass();\n optimum_bandwidth(lh, gfp.VBR_mean_bitrate_kbps);\n lowpass = lh.lowerlimit;\n break;\n }\n case VbrMode$3.vbr_rh: {\n var x = [\n 19500,\n 19e3,\n 18600,\n 18e3,\n 17500,\n 16e3,\n 15600,\n 14900,\n 12500,\n 1e4,\n 3950\n ];\n if (gfp.VBR_q >= 0 && gfp.VBR_q <= 9) {\n var a = x[gfp.VBR_q];\n var b = x[gfp.VBR_q + 1];\n var m = gfp.VBR_q_frac;\n lowpass = linear_int(a, b, m);\n } else {\n lowpass = 19500;\n }\n break;\n }\n default: {\n var x = [\n 19500,\n 19e3,\n 18500,\n 18e3,\n 17500,\n 16500,\n 15500,\n 14500,\n 12500,\n 9500,\n 3950\n ];\n if (gfp.VBR_q >= 0 && gfp.VBR_q <= 9) {\n var a = x[gfp.VBR_q];\n var b = x[gfp.VBR_q + 1];\n var m = gfp.VBR_q_frac;\n lowpass = linear_int(a, b, m);\n } else {\n lowpass = 19500;\n }\n }\n }\n if (gfp.mode == MPEGMode.MONO && (gfp.VBR == VbrMode$3.vbr_off || gfp.VBR == VbrMode$3.vbr_abr)) {\n lowpass *= 1.5;\n }\n gfp.lowpassfreq = lowpass | 0;\n }\n if (gfp.out_samplerate == 0) {\n if (2 * gfp.lowpassfreq > gfp.in_samplerate) {\n gfp.lowpassfreq = gfp.in_samplerate / 2;\n }\n gfp.out_samplerate = optimum_samplefreq(\n gfp.lowpassfreq | 0,\n gfp.in_samplerate\n );\n }\n gfp.lowpassfreq = Math.min(20500, gfp.lowpassfreq);\n gfp.lowpassfreq = Math.min(gfp.out_samplerate / 2, gfp.lowpassfreq);\n if (gfp.VBR == VbrMode$3.vbr_off) {\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.brate);\n }\n if (gfp.VBR == VbrMode$3.vbr_abr) {\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.VBR_mean_bitrate_kbps);\n }\n if (!gfp.bWriteVbrTag) {\n gfp.findReplayGain = false;\n gfp.decode_on_the_fly = false;\n gfc.findPeakSample = false;\n }\n gfc.findReplayGain = gfp.findReplayGain;\n gfc.decode_on_the_fly = gfp.decode_on_the_fly;\n if (gfc.decode_on_the_fly)\n gfc.findPeakSample = true;\n if (gfc.findReplayGain) {\n if (ga.InitGainAnalysis(gfc.rgdata, gfp.out_samplerate) == GainAnalysis.INIT_GAIN_ANALYSIS_ERROR) {\n gfp.internal_flags = null;\n return -6;\n }\n }\n if (gfc.decode_on_the_fly && !gfp.decode_only) {\n if (gfc.hip != null) {\n mpglib.hip_decode_exit(gfc.hip);\n }\n gfc.hip = mpglib.hip_decode_init();\n }\n gfc.mode_gr = gfp.out_samplerate <= 24e3 ? 1 : 2;\n gfp.framesize = 576 * gfc.mode_gr;\n gfp.encoder_delay = Encoder.ENCDELAY;\n gfc.resample_ratio = gfp.in_samplerate / gfp.out_samplerate;\n switch (gfp.VBR) {\n case VbrMode$3.vbr_mt:\n case VbrMode$3.vbr_rh:\n case VbrMode$3.vbr_mtrh:\n {\n var cmp = [5.7, 6.5, 7.3, 8.2, 10, 11.9, 13, 14, 15, 16.5];\n gfp.compression_ratio = cmp[gfp.VBR_q];\n }\n break;\n case VbrMode$3.vbr_abr:\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.VBR_mean_bitrate_kbps);\n break;\n default:\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1e3 * gfp.brate);\n break;\n }\n if (gfp.mode == MPEGMode.NOT_SET) {\n gfp.mode = MPEGMode.JOINT_STEREO;\n }\n if (gfp.highpassfreq > 0) {\n gfc.highpass1 = 2 * gfp.highpassfreq;\n if (gfp.highpasswidth >= 0) {\n gfc.highpass2 = 2 * (gfp.highpassfreq + gfp.highpasswidth);\n } else {\n gfc.highpass2 = (1 + 0) * 2 * gfp.highpassfreq;\n }\n gfc.highpass1 /= gfp.out_samplerate;\n gfc.highpass2 /= gfp.out_samplerate;\n } else {\n gfc.highpass1 = 0;\n gfc.highpass2 = 0;\n }\n if (gfp.lowpassfreq > 0) {\n gfc.lowpass2 = 2 * gfp.lowpassfreq;\n if (gfp.lowpasswidth >= 0) {\n gfc.lowpass1 = 2 * (gfp.lowpassfreq - gfp.lowpasswidth);\n if (gfc.lowpass1 < 0)\n gfc.lowpass1 = 0;\n } else {\n gfc.lowpass1 = (1 - 0) * 2 * gfp.lowpassfreq;\n }\n gfc.lowpass1 /= gfp.out_samplerate;\n gfc.lowpass2 /= gfp.out_samplerate;\n } else {\n gfc.lowpass1 = 0;\n gfc.lowpass2 = 0;\n }\n lame_init_params_ppflt(gfp);\n gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n if (gfc.samplerate_index < 0) {\n gfp.internal_flags = null;\n return -1;\n }\n if (gfp.VBR == VbrMode$3.vbr_off) {\n if (gfp.free_format) {\n gfc.bitrate_index = 0;\n } else {\n gfp.brate = FindNearestBitrate(\n gfp.brate,\n gfp.version,\n gfp.out_samplerate\n );\n gfc.bitrate_index = BitrateIndex(\n gfp.brate,\n gfp.version,\n gfp.out_samplerate\n );\n if (gfc.bitrate_index <= 0) {\n gfp.internal_flags = null;\n return -1;\n }\n }\n } else {\n gfc.bitrate_index = 1;\n }\n if (gfp.analysis)\n gfp.bWriteVbrTag = false;\n if (gfc.pinfo != null)\n gfp.bWriteVbrTag = false;\n bs.init_bit_stream_w(gfc);\n var j = gfc.samplerate_index + 3 * gfp.version + 6 * (gfp.out_samplerate < 16e3 ? 1 : 0);\n for (var i = 0; i < Encoder.SBMAX_l + 1; i++) {\n gfc.scalefac_band.l[i] = qupvt.sfBandIndex[j].l[i];\n }\n for (var i = 0; i < Encoder.PSFB21 + 1; i++) {\n var size2 = (gfc.scalefac_band.l[22] - gfc.scalefac_band.l[21]) / Encoder.PSFB21;\n var start2 = gfc.scalefac_band.l[21] + i * size2;\n gfc.scalefac_band.psfb21[i] = start2;\n }\n gfc.scalefac_band.psfb21[Encoder.PSFB21] = 576;\n for (var i = 0; i < Encoder.SBMAX_s + 1; i++) {\n gfc.scalefac_band.s[i] = qupvt.sfBandIndex[j].s[i];\n }\n for (var i = 0; i < Encoder.PSFB12 + 1; i++) {\n var size2 = (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]) / Encoder.PSFB12;\n var start2 = gfc.scalefac_band.s[12] + i * size2;\n gfc.scalefac_band.psfb12[i] = start2;\n }\n gfc.scalefac_band.psfb12[Encoder.PSFB12] = 192;\n if (gfp.version == 1) {\n gfc.sideinfo_len = gfc.channels_out == 1 ? 4 + 17 : 4 + 32;\n } else\n gfc.sideinfo_len = gfc.channels_out == 1 ? 4 + 9 : 4 + 17;\n if (gfp.error_protection)\n gfc.sideinfo_len += 2;\n lame_init_bitstream(gfp);\n gfc.Class_ID = LAME_ID;\n {\n var k;\n for (k = 0; k < 19; k++) {\n gfc.nsPsy.pefirbuf[k] = 700 * gfc.mode_gr * gfc.channels_out;\n }\n if (gfp.ATHtype == -1)\n gfp.ATHtype = 4;\n }\n assert$4(gfp.VBR_q <= 9);\n assert$4(gfp.VBR_q >= 0);\n switch (gfp.VBR) {\n case VbrMode$3.vbr_mt:\n gfp.VBR = VbrMode$3.vbr_mtrh;\n case VbrMode$3.vbr_mtrh: {\n if (gfp.useTemporal == null) {\n gfp.useTemporal = false;\n }\n p2.apply_preset(gfp, 500 - gfp.VBR_q * 10, 0);\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n if (gfp.quality < 5)\n gfp.quality = 0;\n if (gfp.quality > 5)\n gfp.quality = 5;\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n if (gfp.experimentalY)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = gfp.out_samplerate > 44e3;\n gfc.iteration_loop = new VBRNewIterationLoop(qu);\n break;\n }\n case VbrMode$3.vbr_rh: {\n p2.apply_preset(gfp, 500 - gfp.VBR_q * 10, 0);\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n if (gfp.experimentalY)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = gfp.out_samplerate > 44e3;\n if (gfp.quality > 6)\n gfp.quality = 6;\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n gfc.iteration_loop = new VBROldIterationLoop(qu);\n break;\n }\n default: {\n var vbrmode;\n gfc.sfb21_extra = false;\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n vbrmode = gfp.VBR;\n if (vbrmode == VbrMode$3.vbr_off)\n gfp.VBR_mean_bitrate_kbps = gfp.brate;\n p2.apply_preset(gfp, gfp.VBR_mean_bitrate_kbps, 0);\n gfp.VBR = vbrmode;\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n if (vbrmode == VbrMode$3.vbr_off) {\n gfc.iteration_loop = new CBRNewIterationLoop(qu);\n } else {\n gfc.iteration_loop = new ABRIterationLoop(qu);\n }\n break;\n }\n }\n assert$4(gfp.scale >= 0);\n if (gfp.VBR != VbrMode$3.vbr_off) {\n gfc.VBR_min_bitrate = 1;\n gfc.VBR_max_bitrate = 14;\n if (gfp.out_samplerate < 16e3)\n gfc.VBR_max_bitrate = 8;\n if (gfp.VBR_min_bitrate_kbps != 0) {\n gfp.VBR_min_bitrate_kbps = FindNearestBitrate(\n gfp.VBR_min_bitrate_kbps,\n gfp.version,\n gfp.out_samplerate\n );\n gfc.VBR_min_bitrate = BitrateIndex(\n gfp.VBR_min_bitrate_kbps,\n gfp.version,\n gfp.out_samplerate\n );\n if (gfc.VBR_min_bitrate < 0)\n return -1;\n }\n if (gfp.VBR_max_bitrate_kbps != 0) {\n gfp.VBR_max_bitrate_kbps = FindNearestBitrate(\n gfp.VBR_max_bitrate_kbps,\n gfp.version,\n gfp.out_samplerate\n );\n gfc.VBR_max_bitrate = BitrateIndex(\n gfp.VBR_max_bitrate_kbps,\n gfp.version,\n gfp.out_samplerate\n );\n if (gfc.VBR_max_bitrate < 0)\n return -1;\n }\n gfp.VBR_min_bitrate_kbps = Tables$1.bitrate_table[gfp.version][gfc.VBR_min_bitrate];\n gfp.VBR_max_bitrate_kbps = Tables$1.bitrate_table[gfp.version][gfc.VBR_max_bitrate];\n gfp.VBR_mean_bitrate_kbps = Math.min(\n Tables$1.bitrate_table[gfp.version][gfc.VBR_max_bitrate],\n gfp.VBR_mean_bitrate_kbps\n );\n gfp.VBR_mean_bitrate_kbps = Math.max(\n Tables$1.bitrate_table[gfp.version][gfc.VBR_min_bitrate],\n gfp.VBR_mean_bitrate_kbps\n );\n }\n if (gfp.tune) {\n gfc.PSY.mask_adjust += gfp.tune_value_a;\n gfc.PSY.mask_adjust_short += gfp.tune_value_a;\n }\n lame_init_qval(gfp);\n assert$4(gfp.scale >= 0);\n if (gfp.athaa_type < 0)\n gfc.ATH.useAdjust = 3;\n else\n gfc.ATH.useAdjust = gfp.athaa_type;\n gfc.ATH.aaSensitivityP = Math.pow(10, gfp.athaa_sensitivity / -10);\n if (gfp.short_blocks == null) {\n gfp.short_blocks = ShortBlock$1.short_block_allowed;\n }\n if (gfp.short_blocks == ShortBlock$1.short_block_allowed && (gfp.mode == MPEGMode.JOINT_STEREO || gfp.mode == MPEGMode.STEREO)) {\n gfp.short_blocks = ShortBlock$1.short_block_coupled;\n }\n if (gfp.quant_comp < 0)\n gfp.quant_comp = 1;\n if (gfp.quant_comp_short < 0)\n gfp.quant_comp_short = 0;\n if (gfp.msfix < 0)\n gfp.msfix = 0;\n gfp.exp_nspsytune = gfp.exp_nspsytune | 1;\n if (gfp.internal_flags.nsPsy.attackthre < 0) {\n gfp.internal_flags.nsPsy.attackthre = PsyModel.NSATTACKTHRE;\n }\n if (gfp.internal_flags.nsPsy.attackthre_s < 0) {\n gfp.internal_flags.nsPsy.attackthre_s = PsyModel.NSATTACKTHRE_S;\n }\n assert$4(gfp.scale >= 0);\n if (gfp.scale < 0)\n gfp.scale = 1;\n if (gfp.ATHtype < 0)\n gfp.ATHtype = 4;\n if (gfp.ATHcurve < 0)\n gfp.ATHcurve = 4;\n if (gfp.athaa_loudapprox < 0)\n gfp.athaa_loudapprox = 2;\n if (gfp.interChRatio < 0)\n gfp.interChRatio = 0;\n if (gfp.useTemporal == null)\n gfp.useTemporal = true;\n gfc.slot_lag = gfc.frac_SpF = 0;\n if (gfp.VBR == VbrMode$3.vbr_off) {\n gfc.slot_lag = gfc.frac_SpF = (gfp.version + 1) * 72e3 * gfp.brate % gfp.out_samplerate | 0;\n }\n qupvt.iteration_init(gfp);\n psy.psymodel_init(gfp);\n assert$4(gfp.scale >= 0);\n return 0;\n };\n function update_inbuffer_size(gfc, nsamples) {\n if (gfc.in_buffer_0 == null || gfc.in_buffer_nsamples < nsamples) {\n gfc.in_buffer_0 = new_float$2(nsamples);\n gfc.in_buffer_1 = new_float$2(nsamples);\n gfc.in_buffer_nsamples = nsamples;\n }\n }\n this.lame_encode_flush = function(gfp, mp3buffer, mp3bufferPos, mp3buffer_size) {\n var gfc = gfp.internal_flags;\n var buffer = new_short_n([2, 1152]);\n var imp3 = 0;\n var mp3count;\n var mp3buffer_size_remaining;\n var end_padding;\n var frames_left;\n var samples_to_encode = gfc.mf_samples_to_encode - Encoder.POSTDELAY;\n var mf_needed = calcNeeded(gfp);\n if (gfc.mf_samples_to_encode < 1) {\n return 0;\n }\n mp3count = 0;\n if (gfp.in_samplerate != gfp.out_samplerate) {\n samples_to_encode += 16 * gfp.out_samplerate / gfp.in_samplerate;\n }\n end_padding = gfp.framesize - samples_to_encode % gfp.framesize;\n if (end_padding < 576)\n end_padding += gfp.framesize;\n gfp.encoder_padding = end_padding;\n frames_left = (samples_to_encode + end_padding) / gfp.framesize;\n while (frames_left > 0 && imp3 >= 0) {\n var bunch = mf_needed - gfc.mf_size;\n var frame_num = gfp.frameNum;\n bunch *= gfp.in_samplerate;\n bunch /= gfp.out_samplerate;\n if (bunch > 1152)\n bunch = 1152;\n if (bunch < 1)\n bunch = 1;\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n imp3 = this.lame_encode_buffer(\n gfp,\n buffer[0],\n buffer[1],\n bunch,\n mp3buffer,\n mp3bufferPos,\n mp3buffer_size_remaining\n );\n mp3bufferPos += imp3;\n mp3count += imp3;\n frames_left -= frame_num != gfp.frameNum ? 1 : 0;\n }\n gfc.mf_samples_to_encode = 0;\n if (imp3 < 0) {\n return imp3;\n }\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n bs.flush_bitstream(gfp);\n imp3 = bs.copy_buffer(\n gfc,\n mp3buffer,\n mp3bufferPos,\n mp3buffer_size_remaining,\n 1\n );\n if (imp3 < 0) {\n return imp3;\n }\n mp3bufferPos += imp3;\n mp3count += imp3;\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n if (gfp.write_id3tag_automatic) {\n id3.id3tag_write_v1(gfp);\n imp3 = bs.copy_buffer(\n gfc,\n mp3buffer,\n mp3bufferPos,\n mp3buffer_size_remaining,\n 0\n );\n if (imp3 < 0) {\n return imp3;\n }\n mp3count += imp3;\n }\n return mp3count;\n };\n this.lame_encode_buffer = function(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n var gfc = gfp.internal_flags;\n var in_buffer = [null, null];\n if (gfc.Class_ID != LAME_ID)\n return -3;\n if (nsamples == 0)\n return 0;\n update_inbuffer_size(gfc, nsamples);\n in_buffer[0] = gfc.in_buffer_0;\n in_buffer[1] = gfc.in_buffer_1;\n for (var i = 0; i < nsamples; i++) {\n in_buffer[0][i] = buffer_l[i];\n if (gfc.channels_in > 1)\n in_buffer[1][i] = buffer_r[i];\n }\n return lame_encode_buffer_sample(\n gfp,\n in_buffer[0],\n in_buffer[1],\n nsamples,\n mp3buf,\n mp3bufPos,\n mp3buf_size\n );\n };\n function calcNeeded(gfp) {\n var mf_needed = Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET;\n mf_needed = Math.max(mf_needed, 512 + gfp.framesize - 32);\n return mf_needed;\n }\n function lame_encode_buffer_sample(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n var gfc = gfp.internal_flags;\n var mp3size = 0;\n var ret;\n var i;\n var ch;\n var mf_needed;\n var mp3out;\n var mfbuf = [null, null];\n var in_buffer = [null, null];\n if (gfc.Class_ID != LAME_ID)\n return -3;\n if (nsamples == 0)\n return 0;\n mp3out = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 0);\n if (mp3out < 0)\n return mp3out;\n mp3bufPos += mp3out;\n mp3size += mp3out;\n in_buffer[0] = buffer_l;\n in_buffer[1] = buffer_r;\n if (BitStream$1.NEQ(gfp.scale, 0) && BitStream$1.NEQ(gfp.scale, 1)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] *= gfp.scale;\n if (gfc.channels_out == 2)\n in_buffer[1][i] *= gfp.scale;\n }\n }\n if (BitStream$1.NEQ(gfp.scale_left, 0) && BitStream$1.NEQ(gfp.scale_left, 1)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] *= gfp.scale_left;\n }\n }\n if (BitStream$1.NEQ(gfp.scale_right, 0) && BitStream$1.NEQ(gfp.scale_right, 1)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[1][i] *= gfp.scale_right;\n }\n }\n if (gfp.num_channels == 2 && gfc.channels_out == 1) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] = 0.5 * (in_buffer[0][i] + in_buffer[1][i]);\n in_buffer[1][i] = 0;\n }\n }\n mf_needed = calcNeeded(gfp);\n mfbuf[0] = gfc.mfbuf[0];\n mfbuf[1] = gfc.mfbuf[1];\n var in_bufferPos = 0;\n while (nsamples > 0) {\n var in_buffer_ptr = [null, null];\n var n_in = 0;\n var n_out = 0;\n in_buffer_ptr[0] = in_buffer[0];\n in_buffer_ptr[1] = in_buffer[1];\n var inOut = new InOut();\n fill_buffer(gfp, mfbuf, in_buffer_ptr, in_bufferPos, nsamples, inOut);\n n_in = inOut.n_in;\n n_out = inOut.n_out;\n if (gfc.findReplayGain && !gfc.decode_on_the_fly) {\n if (ga.AnalyzeSamples(\n gfc.rgdata,\n mfbuf[0],\n gfc.mf_size,\n mfbuf[1],\n gfc.mf_size,\n n_out,\n gfc.channels_out\n ) == GainAnalysis.GAIN_ANALYSIS_ERROR) {\n return -6;\n }\n }\n nsamples -= n_in;\n in_bufferPos += n_in;\n if (gfc.channels_out == 2)\n ;\n gfc.mf_size += n_out;\n assert$4(gfc.mf_size <= LameInternalFlags$1.MFSIZE);\n if (gfc.mf_samples_to_encode < 1) {\n gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n }\n gfc.mf_samples_to_encode += n_out;\n if (gfc.mf_size >= mf_needed) {\n var buf_size = mp3buf_size - mp3size;\n if (mp3buf_size == 0)\n buf_size = 0;\n ret = lame_encode_frame(\n gfp,\n mfbuf[0],\n mfbuf[1],\n mp3buf,\n mp3bufPos,\n buf_size\n );\n if (ret < 0)\n return ret;\n mp3bufPos += ret;\n mp3size += ret;\n gfc.mf_size -= gfp.framesize;\n gfc.mf_samples_to_encode -= gfp.framesize;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n for (i = 0; i < gfc.mf_size; i++) {\n mfbuf[ch][i] = mfbuf[ch][i + gfp.framesize];\n }\n }\n }\n }\n return mp3size;\n }\n function lame_encode_frame(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n var ret = self2.enc.lame_encode_mp3_frame(\n gfp,\n inbuf_l,\n inbuf_r,\n mp3buf,\n mp3bufPos,\n mp3buf_size\n );\n gfp.frameNum++;\n return ret;\n }\n function InOut() {\n this.n_in = 0;\n this.n_out = 0;\n }\n function NumUsed() {\n this.num_used = 0;\n }\n function gcd(i, j) {\n return j != 0 ? gcd(j, i % j) : i;\n }\n function blackman(x, fcn, l) {\n var wcn = Math.PI * fcn;\n x /= l;\n if (x < 0)\n x = 0;\n if (x > 1)\n x = 1;\n var x2 = x - 0.5;\n var bkwn = 0.42 - 0.5 * Math.cos(2 * x * Math.PI) + 0.08 * Math.cos(4 * x * Math.PI);\n if (Math.abs(x2) < 1e-9)\n return wcn / Math.PI;\n else\n return bkwn * Math.sin(l * wcn * x2) / (Math.PI * l * x2);\n }\n function fill_buffer_resample(gfp, outbuf, outbufPos, desired_len, inbuf, in_bufferPos, len, num_used, ch) {\n var gfc = gfp.internal_flags;\n var i;\n var j = 0;\n var k;\n var bpc = gfp.out_samplerate / gcd(gfp.out_samplerate, gfp.in_samplerate);\n if (bpc > LameInternalFlags$1.BPC)\n bpc = LameInternalFlags$1.BPC;\n var intratio = Math.abs(gfc.resample_ratio - Math.floor(0.5 + gfc.resample_ratio)) < 1e-4 ? 1 : 0;\n var fcn = 1 / gfc.resample_ratio;\n if (fcn > 1)\n fcn = 1;\n var filter_l = 31;\n if (filter_l % 2 == 0)\n --filter_l;\n filter_l += intratio;\n var BLACKSIZE = filter_l + 1;\n if (gfc.fill_buffer_resample_init == 0) {\n gfc.inbuf_old[0] = new_float$2(BLACKSIZE);\n gfc.inbuf_old[1] = new_float$2(BLACKSIZE);\n for (i = 0; i <= 2 * bpc; ++i)\n gfc.blackfilt[i] = new_float$2(BLACKSIZE);\n gfc.itime[0] = 0;\n gfc.itime[1] = 0;\n for (j = 0; j <= 2 * bpc; j++) {\n var sum = 0;\n var offset = (j - bpc) / (2 * bpc);\n for (i = 0; i <= filter_l; i++) {\n sum += gfc.blackfilt[j][i] = blackman(i - offset, fcn, filter_l);\n }\n for (i = 0; i <= filter_l; i++)\n gfc.blackfilt[j][i] /= sum;\n }\n gfc.fill_buffer_resample_init = 1;\n }\n var inbuf_old = gfc.inbuf_old[ch];\n for (k = 0; k < desired_len; k++) {\n var time0;\n var joff;\n time0 = k * gfc.resample_ratio;\n j = 0 | Math.floor(time0 - gfc.itime[ch]);\n if (filter_l + j - filter_l / 2 >= len)\n break;\n var offset = time0 - gfc.itime[ch] - (j + 0.5 * (filter_l % 2));\n joff = 0 | Math.floor(offset * 2 * bpc + bpc + 0.5);\n var xvalue = 0;\n for (i = 0; i <= filter_l; ++i) {\n var j2 = 0 | i + j - filter_l / 2;\n var y;\n y = j2 < 0 ? inbuf_old[BLACKSIZE + j2] : inbuf[in_bufferPos + j2];\n xvalue += y * gfc.blackfilt[joff][i];\n }\n outbuf[outbufPos + k] = xvalue;\n }\n num_used.num_used = Math.min(len, filter_l + j - filter_l / 2);\n gfc.itime[ch] += num_used.num_used - k * gfc.resample_ratio;\n if (num_used.num_used >= BLACKSIZE) {\n for (i = 0; i < BLACKSIZE; i++) {\n inbuf_old[i] = inbuf[in_bufferPos + num_used.num_used + i - BLACKSIZE];\n }\n } else {\n var n_shift = BLACKSIZE - num_used.num_used;\n for (i = 0; i < n_shift; ++i) {\n inbuf_old[i] = inbuf_old[i + num_used.num_used];\n }\n for (j = 0; i < BLACKSIZE; ++i, ++j) {\n inbuf_old[i] = inbuf[in_bufferPos + j];\n }\n assert$4(j == num_used.num_used);\n }\n return k;\n }\n function fill_buffer(gfp, mfbuf, in_buffer, in_bufferPos, nsamples, io) {\n var gfc = gfp.internal_flags;\n if (gfc.resample_ratio < 0.9999 || gfc.resample_ratio > 1.0001) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var numUsed = new NumUsed();\n io.n_out = fill_buffer_resample(\n gfp,\n mfbuf[ch],\n gfc.mf_size,\n gfp.framesize,\n in_buffer[ch],\n in_bufferPos,\n nsamples,\n numUsed,\n ch\n );\n io.n_in = numUsed.num_used;\n }\n } else {\n io.n_out = Math.min(gfp.framesize, nsamples);\n io.n_in = io.n_out;\n for (var i = 0; i < io.n_out; ++i) {\n mfbuf[0][gfc.mf_size + i] = in_buffer[0][in_bufferPos + i];\n if (gfc.channels_out == 2) {\n mfbuf[1][gfc.mf_size + i] = in_buffer[1][in_bufferPos + i];\n }\n }\n }\n }\n}\nvar VbrMode$2 = common.VbrMode;\nfunction Presets() {\n function VBRPresets(qual, comp, compS, y, shThreshold, shThresholdS, adj, adjShort, lower, curve, sens, inter, joint, mod, fix) {\n this.vbr_q = qual;\n this.quant_comp = comp;\n this.quant_comp_s = compS;\n this.expY = y;\n this.st_lrm = shThreshold;\n this.st_s = shThresholdS;\n this.masking_adj = adj;\n this.masking_adj_short = adjShort;\n this.ath_lower = lower;\n this.ath_curve = curve;\n this.ath_sensitivity = sens;\n this.interch = inter;\n this.safejoint = joint;\n this.sfb21mod = mod;\n this.msfix = fix;\n }\n function ABRPresets(kbps, comp, compS, joint, fix, shThreshold, shThresholdS, bass, sc, mask, lower, curve, interCh, sfScale) {\n this.quant_comp = comp;\n this.quant_comp_s = compS;\n this.safejoint = joint;\n this.nsmsfix = fix;\n this.st_lrm = shThreshold;\n this.st_s = shThresholdS;\n this.nsbass = bass;\n this.scale = sc;\n this.masking_adj = mask;\n this.ath_lower = lower;\n this.ath_curve = curve;\n this.interch = interCh;\n this.sfscale = sfScale;\n }\n var lame;\n this.setModules = function(_lame) {\n lame = _lame;\n };\n var vbr_old_switch_map = [\n new VBRPresets(\n 0,\n 9,\n 9,\n 0,\n 5.2,\n 125,\n -4.2,\n -6.3,\n 4.8,\n 1,\n 0,\n 0,\n 2,\n 21,\n 0.97\n ),\n new VBRPresets(\n 1,\n 9,\n 9,\n 0,\n 5.3,\n 125,\n -3.6,\n -5.6,\n 4.5,\n 1.5,\n 0,\n 0,\n 2,\n 21,\n 1.35\n ),\n new VBRPresets(\n 2,\n 9,\n 9,\n 0,\n 5.6,\n 125,\n -2.2,\n -3.5,\n 2.8,\n 2,\n 0,\n 0,\n 2,\n 21,\n 1.49\n ),\n new VBRPresets(\n 3,\n 9,\n 9,\n 1,\n 5.8,\n 130,\n -1.8,\n -2.8,\n 2.6,\n 3,\n -4,\n 0,\n 2,\n 20,\n 1.64\n ),\n new VBRPresets(\n 4,\n 9,\n 9,\n 1,\n 6,\n 135,\n -0.7,\n -1.1,\n 1.1,\n 3.5,\n -8,\n 0,\n 2,\n 0,\n 1.79\n ),\n new VBRPresets(\n 5,\n 9,\n 9,\n 1,\n 6.4,\n 140,\n 0.5,\n 0.4,\n -7.5,\n 4,\n -12,\n 2e-4,\n 0,\n 0,\n 1.95\n ),\n new VBRPresets(\n 6,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 0.67,\n 0.65,\n -14.7,\n 6.5,\n -19,\n 4e-4,\n 0,\n 0,\n 2.3\n ),\n new VBRPresets(\n 7,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 0.8,\n 0.75,\n -19.7,\n 8,\n -22,\n 6e-4,\n 0,\n 0,\n 2.7\n ),\n new VBRPresets(\n 8,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 1.2,\n 1.15,\n -27.5,\n 10,\n -23,\n 7e-4,\n 0,\n 0,\n 0\n ),\n new VBRPresets(\n 9,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 1.6,\n 1.6,\n -36,\n 11,\n -25,\n 8e-4,\n 0,\n 0,\n 0\n ),\n new VBRPresets(\n 10,\n 9,\n 9,\n 1,\n 6.6,\n 145,\n 2,\n 2,\n -36,\n 12,\n -25,\n 8e-4,\n 0,\n 0,\n 0\n )\n ];\n var vbr_psy_switch_map = [\n new VBRPresets(\n 0,\n 9,\n 9,\n 0,\n 4.2,\n 25,\n -7,\n -4,\n 7.5,\n 1,\n 0,\n 0,\n 2,\n 26,\n 0.97\n ),\n new VBRPresets(\n 1,\n 9,\n 9,\n 0,\n 4.2,\n 25,\n -5.6,\n -3.6,\n 4.5,\n 1.5,\n 0,\n 0,\n 2,\n 21,\n 1.35\n ),\n new VBRPresets(2, 9, 9, 0, 4.2, 25, -4.4, -1.8, 2, 2, 0, 0, 2, 18, 1.49),\n new VBRPresets(\n 3,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n -3.4,\n -1.25,\n 1.1,\n 3,\n -4,\n 0,\n 2,\n 15,\n 1.64\n ),\n new VBRPresets(4, 9, 9, 1, 4.2, 25, -2.2, 0.1, 0, 3.5, -8, 0, 2, 0, 1.79),\n new VBRPresets(\n 5,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n -1,\n 1.65,\n -7.7,\n 4,\n -12,\n 2e-4,\n 0,\n 0,\n 1.95\n ),\n new VBRPresets(\n 6,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n -0,\n 2.47,\n -7.7,\n 6.5,\n -19,\n 4e-4,\n 0,\n 0,\n 2\n ),\n new VBRPresets(\n 7,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n 0.5,\n 2,\n -14.5,\n 8,\n -22,\n 6e-4,\n 0,\n 0,\n 2\n ),\n new VBRPresets(\n 8,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n 1,\n 2.4,\n -22,\n 10,\n -23,\n 7e-4,\n 0,\n 0,\n 2\n ),\n new VBRPresets(\n 9,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n 1.5,\n 2.95,\n -30,\n 11,\n -25,\n 8e-4,\n 0,\n 0,\n 2\n ),\n new VBRPresets(\n 10,\n 9,\n 9,\n 1,\n 4.2,\n 25,\n 2,\n 2.95,\n -36,\n 12,\n -30,\n 8e-4,\n 0,\n 0,\n 2\n )\n ];\n function apply_vbr_preset(gfp, a, enforce) {\n var vbr_preset = gfp.VBR == VbrMode$2.vbr_rh ? vbr_old_switch_map : vbr_psy_switch_map;\n var x = gfp.VBR_q_frac;\n var p2 = vbr_preset[a];\n var q = vbr_preset[a + 1];\n var set2 = p2;\n p2.st_lrm = p2.st_lrm + x * (q.st_lrm - p2.st_lrm);\n p2.st_s = p2.st_s + x * (q.st_s - p2.st_s);\n p2.masking_adj = p2.masking_adj + x * (q.masking_adj - p2.masking_adj);\n p2.masking_adj_short = p2.masking_adj_short + x * (q.masking_adj_short - p2.masking_adj_short);\n p2.ath_lower = p2.ath_lower + x * (q.ath_lower - p2.ath_lower);\n p2.ath_curve = p2.ath_curve + x * (q.ath_curve - p2.ath_curve);\n p2.ath_sensitivity = p2.ath_sensitivity + x * (q.ath_sensitivity - p2.ath_sensitivity);\n p2.interch = p2.interch + x * (q.interch - p2.interch);\n p2.msfix = p2.msfix + x * (q.msfix - p2.msfix);\n lame_set_VBR_q(gfp, set2.vbr_q);\n if (enforce != 0)\n gfp.quant_comp = set2.quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0)) {\n gfp.quant_comp = set2.quant_comp;\n }\n if (enforce != 0)\n gfp.quant_comp_short = set2.quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0)) {\n gfp.quant_comp_short = set2.quant_comp_s;\n }\n if (set2.expY != 0) {\n gfp.experimentalY = set2.expY != 0;\n }\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre = set2.st_lrm;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0)) {\n gfp.internal_flags.nsPsy.attackthre = set2.st_lrm;\n }\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre_s = set2.st_s;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0)) {\n gfp.internal_flags.nsPsy.attackthre_s = set2.st_s;\n }\n if (enforce != 0)\n gfp.maskingadjust = set2.masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0)) {\n gfp.maskingadjust = set2.masking_adj;\n }\n if (enforce != 0)\n gfp.maskingadjust_short = set2.masking_adj_short;\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) {\n gfp.maskingadjust_short = set2.masking_adj_short;\n }\n if (enforce != 0)\n gfp.ATHlower = -set2.ath_lower / 10;\n else if (!(Math.abs(-gfp.ATHlower * 10 - 0) > 0)) {\n gfp.ATHlower = -set2.ath_lower / 10;\n }\n if (enforce != 0)\n gfp.ATHcurve = set2.ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0))\n gfp.ATHcurve = set2.ath_curve;\n if (enforce != 0)\n gfp.athaa_sensitivity = set2.ath_sensitivity;\n else if (!(Math.abs(gfp.athaa_sensitivity - -1) > 0)) {\n gfp.athaa_sensitivity = set2.ath_sensitivity;\n }\n if (set2.interch > 0) {\n if (enforce != 0)\n gfp.interChRatio = set2.interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0)) {\n gfp.interChRatio = set2.interch;\n }\n }\n if (set2.safejoint > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | set2.safejoint;\n }\n if (set2.sfb21mod > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | set2.sfb21mod << 20;\n }\n if (enforce != 0)\n gfp.msfix = set2.msfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0))\n gfp.msfix = set2.msfix;\n if (enforce == 0) {\n gfp.VBR_q = a;\n gfp.VBR_q_frac = x;\n }\n }\n var abr_switch_map = [\n new ABRPresets(\n 8,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -30,\n 11,\n 12e-4,\n 1\n ),\n new ABRPresets(\n 16,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -25,\n 11,\n 1e-3,\n 1\n ),\n new ABRPresets(\n 24,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -20,\n 11,\n 1e-3,\n 1\n ),\n new ABRPresets(\n 32,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -15,\n 11,\n 1e-3,\n 1\n ),\n new ABRPresets(\n 40,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -10,\n 11,\n 9e-4,\n 1\n ),\n new ABRPresets(\n 48,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -10,\n 11,\n 9e-4,\n 1\n ),\n new ABRPresets(\n 56,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -6,\n 11,\n 8e-4,\n 1\n ),\n new ABRPresets(\n 64,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n -2,\n 11,\n 8e-4,\n 1\n ),\n new ABRPresets(\n 80,\n 9,\n 9,\n 0,\n 0,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n 0,\n 8,\n 7e-4,\n 1\n ),\n new ABRPresets(\n 96,\n 9,\n 9,\n 0,\n 2.5,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n 1,\n 5.5,\n 6e-4,\n 1\n ),\n new ABRPresets(\n 112,\n 9,\n 9,\n 0,\n 2.25,\n 6.6,\n 145,\n 0,\n 0.95,\n 0,\n 2,\n 4.5,\n 5e-4,\n 1\n ),\n new ABRPresets(\n 128,\n 9,\n 9,\n 0,\n 1.95,\n 6.4,\n 140,\n 0,\n 0.95,\n 0,\n 3,\n 4,\n 2e-4,\n 1\n ),\n new ABRPresets(\n 160,\n 9,\n 9,\n 1,\n 1.79,\n 6,\n 135,\n 0,\n 0.95,\n -2,\n 5,\n 3.5,\n 0,\n 1\n ),\n new ABRPresets(\n 192,\n 9,\n 9,\n 1,\n 1.49,\n 5.6,\n 125,\n 0,\n 0.97,\n -4,\n 7,\n 3,\n 0,\n 0\n ),\n new ABRPresets(\n 224,\n 9,\n 9,\n 1,\n 1.25,\n 5.2,\n 125,\n 0,\n 0.98,\n -6,\n 9,\n 2,\n 0,\n 0\n ),\n new ABRPresets(\n 256,\n 9,\n 9,\n 1,\n 0.97,\n 5.2,\n 125,\n 0,\n 1,\n -8,\n 10,\n 1,\n 0,\n 0\n ),\n new ABRPresets(\n 320,\n 9,\n 9,\n 1,\n 0.9,\n 5.2,\n 125,\n 0,\n 1,\n -10,\n 12,\n 0,\n 0,\n 0\n )\n ];\n function apply_abr_preset(gfp, preset, enforce) {\n var actual_bitrate = preset;\n var r = lame.nearestBitrateFullIndex(preset);\n gfp.VBR = VbrMode$2.vbr_abr;\n gfp.VBR_mean_bitrate_kbps = actual_bitrate;\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.brate = gfp.VBR_mean_bitrate_kbps;\n if (gfp.VBR_mean_bitrate_kbps > 320) {\n gfp.disable_reservoir = true;\n }\n if (abr_switch_map[r].safejoint > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | 2;\n }\n if (abr_switch_map[r].sfscale > 0) {\n gfp.internal_flags.noise_shaping = 2;\n }\n if (Math.abs(abr_switch_map[r].nsbass) > 0) {\n var k = int(abr_switch_map[r].nsbass * 4);\n if (k < 0)\n k += 64;\n gfp.exp_nspsytune = gfp.exp_nspsytune | k << 2;\n }\n if (enforce != 0)\n gfp.quant_comp = abr_switch_map[r].quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0)) {\n gfp.quant_comp = abr_switch_map[r].quant_comp;\n }\n if (enforce != 0)\n gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0)) {\n gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n }\n if (enforce != 0)\n gfp.msfix = abr_switch_map[r].nsmsfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0)) {\n gfp.msfix = abr_switch_map[r].nsmsfix;\n }\n if (enforce != 0) {\n gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n } else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0)) {\n gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n }\n if (enforce != 0) {\n gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n } else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0)) {\n gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n }\n if (enforce != 0)\n gfp.scale = abr_switch_map[r].scale;\n else if (!(Math.abs(gfp.scale - -1) > 0)) {\n gfp.scale = abr_switch_map[r].scale;\n }\n if (enforce != 0)\n gfp.maskingadjust = abr_switch_map[r].masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0)) {\n gfp.maskingadjust = abr_switch_map[r].masking_adj;\n }\n if (abr_switch_map[r].masking_adj > 0) {\n if (enforce != 0) {\n gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 0.9;\n } else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) {\n gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 0.9;\n }\n } else {\n if (enforce != 0) {\n gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 1.1;\n } else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) {\n gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 1.1;\n }\n }\n if (enforce != 0)\n gfp.ATHlower = -abr_switch_map[r].ath_lower / 10;\n else if (!(Math.abs(-gfp.ATHlower * 10 - 0) > 0)) {\n gfp.ATHlower = -abr_switch_map[r].ath_lower / 10;\n }\n if (enforce != 0)\n gfp.ATHcurve = abr_switch_map[r].ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0)) {\n gfp.ATHcurve = abr_switch_map[r].ath_curve;\n }\n if (enforce != 0)\n gfp.interChRatio = abr_switch_map[r].interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0)) {\n gfp.interChRatio = abr_switch_map[r].interch;\n }\n return preset;\n }\n this.apply_preset = function(gfp, preset, enforce) {\n switch (preset) {\n case Lame$1.R3MIX: {\n preset = Lame$1.V3;\n gfp.VBR = VbrMode$2.vbr_mtrh;\n break;\n }\n case Lame$1.MEDIUM: {\n preset = Lame$1.V4;\n gfp.VBR = VbrMode$2.vbr_rh;\n break;\n }\n case Lame$1.MEDIUM_FAST: {\n preset = Lame$1.V4;\n gfp.VBR = VbrMode$2.vbr_mtrh;\n break;\n }\n case Lame$1.STANDARD: {\n preset = Lame$1.V2;\n gfp.VBR = VbrMode$2.vbr_rh;\n break;\n }\n case Lame$1.STANDARD_FAST: {\n preset = Lame$1.V2;\n gfp.VBR = VbrMode$2.vbr_mtrh;\n break;\n }\n case Lame$1.EXTREME: {\n preset = Lame$1.V0;\n gfp.VBR = VbrMode$2.vbr_rh;\n break;\n }\n case Lame$1.EXTREME_FAST: {\n preset = Lame$1.V0;\n gfp.VBR = VbrMode$2.vbr_mtrh;\n break;\n }\n case Lame$1.INSANE: {\n preset = 320;\n gfp.preset = preset;\n apply_abr_preset(gfp, preset, enforce);\n gfp.VBR = VbrMode$2.vbr_off;\n return preset;\n }\n }\n gfp.preset = preset;\n {\n switch (preset) {\n case Lame$1.V9:\n apply_vbr_preset(gfp, 9, enforce);\n return preset;\n case Lame$1.V8:\n apply_vbr_preset(gfp, 8, enforce);\n return preset;\n case Lame$1.V7:\n apply_vbr_preset(gfp, 7, enforce);\n return preset;\n case Lame$1.V6:\n apply_vbr_preset(gfp, 6, enforce);\n return preset;\n case Lame$1.V5:\n apply_vbr_preset(gfp, 5, enforce);\n return preset;\n case Lame$1.V4:\n apply_vbr_preset(gfp, 4, enforce);\n return preset;\n case Lame$1.V3:\n apply_vbr_preset(gfp, 3, enforce);\n return preset;\n case Lame$1.V2:\n apply_vbr_preset(gfp, 2, enforce);\n return preset;\n case Lame$1.V1:\n apply_vbr_preset(gfp, 1, enforce);\n return preset;\n case Lame$1.V0:\n apply_vbr_preset(gfp, 0, enforce);\n return preset;\n }\n }\n if (preset >= 8 && preset <= 320) {\n return apply_abr_preset(gfp, preset, enforce);\n }\n gfp.preset = 0;\n return preset;\n };\n function lame_set_VBR_q(gfp, VBR_q) {\n var ret = 0;\n if (VBR_q < 0) {\n ret = -1;\n VBR_q = 0;\n }\n if (VBR_q > 9) {\n ret = -1;\n VBR_q = 9;\n }\n gfp.VBR_q = VBR_q;\n gfp.VBR_q_frac = 0;\n return ret;\n }\n}\nfunction VBRQuantize() {\n this.setModules = function(_qupvt, _tk) {\n };\n}\nfunction CalcNoiseResult$1() {\n this.over_noise = 0;\n this.tot_noise = 0;\n this.max_noise = 0;\n this.over_count = 0;\n this.over_SSD = 0;\n this.bits = 0;\n}\nvar new_float$1 = common.new_float;\nvar new_int = common.new_int;\nfunction CalcNoiseData() {\n this.global_gain = 0;\n this.sfb_count1 = 0;\n this.step = new_int(39);\n this.noise = new_float$1(39);\n this.noise_log = new_float$1(39);\n}\nvar System$1 = common.System;\nvar VbrMode$1 = common.VbrMode;\nvar Util = common.Util;\nvar Arrays$1 = common.Arrays;\nvar new_float = common.new_float;\nvar assert$3 = common.assert;\nfunction Quantize() {\n var bs;\n this.rv = null;\n var rv;\n this.qupvt = null;\n var qupvt;\n var vbr = new VBRQuantize();\n var tk;\n this.setModules = function(_bs, _rv, _qupvt, _tk) {\n bs = _bs;\n rv = _rv;\n this.rv = _rv;\n qupvt = _qupvt;\n this.qupvt = _qupvt;\n tk = _tk;\n vbr.setModules(qupvt, tk);\n };\n this.ms_convert = function(l3_side, gr) {\n for (var i = 0; i < 576; ++i) {\n var l = l3_side.tt[gr][0].xr[i];\n var r = l3_side.tt[gr][1].xr[i];\n l3_side.tt[gr][0].xr[i] = (l + r) * (Util.SQRT2 * 0.5);\n l3_side.tt[gr][1].xr[i] = (l - r) * (Util.SQRT2 * 0.5);\n }\n };\n function init_xrpow_core(cod_info, xrpow, upper, sum) {\n sum = 0;\n for (var i = 0; i <= upper; ++i) {\n var tmp = Math.abs(cod_info.xr[i]);\n sum += tmp;\n xrpow[i] = Math.sqrt(tmp * Math.sqrt(tmp));\n if (xrpow[i] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[i];\n }\n return sum;\n }\n this.init_xrpow = function(gfc, cod_info, xrpow) {\n var sum = 0;\n var upper = 0 | cod_info.max_nonzero_coeff;\n cod_info.xrpow_max = 0;\n Arrays$1.fill(xrpow, upper, 576, 0);\n sum = init_xrpow_core(cod_info, xrpow, upper, sum);\n if (sum > 1e-20) {\n var j = 0;\n if ((gfc.substep_shaping & 2) != 0)\n j = 1;\n for (var i = 0; i < cod_info.psymax; i++)\n gfc.pseudohalf[i] = j;\n return true;\n }\n Arrays$1.fill(cod_info.l3_enc, 0, 576, 0);\n return false;\n };\n function psfb21_analogsilence(gfc, cod_info) {\n var ath = gfc.ATH;\n var xr = cod_info.xr;\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n var stop = false;\n for (var gsfb = Encoder.PSFB21 - 1; gsfb >= 0 && !stop; gsfb--) {\n var start2 = gfc.scalefac_band.psfb21[gsfb];\n var end = gfc.scalefac_band.psfb21[gsfb + 1];\n var ath21 = qupvt.athAdjust(ath.adjust, ath.psfb21[gsfb], ath.floor);\n if (gfc.nsPsy.longfact[21] > 1e-12)\n ath21 *= gfc.nsPsy.longfact[21];\n for (var j = end - 1; j >= start2; j--) {\n if (Math.abs(xr[j]) < ath21)\n xr[j] = 0;\n else {\n stop = true;\n break;\n }\n }\n }\n } else {\n for (var block = 0; block < 3; block++) {\n var stop = false;\n for (var gsfb = Encoder.PSFB12 - 1; gsfb >= 0 && !stop; gsfb--) {\n var start2 = gfc.scalefac_band.s[12] * 3 + (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]) * block + (gfc.scalefac_band.psfb12[gsfb] - gfc.scalefac_band.psfb12[0]);\n var end = start2 + (gfc.scalefac_band.psfb12[gsfb + 1] - gfc.scalefac_band.psfb12[gsfb]);\n var ath12 = qupvt.athAdjust(ath.adjust, ath.psfb12[gsfb], ath.floor);\n if (gfc.nsPsy.shortfact[12] > 1e-12)\n ath12 *= gfc.nsPsy.shortfact[12];\n for (var j = end - 1; j >= start2; j--) {\n if (Math.abs(xr[j]) < ath12)\n xr[j] = 0;\n else {\n stop = true;\n break;\n }\n }\n }\n }\n }\n }\n this.init_outer_loop = function(gfc, cod_info) {\n cod_info.part2_3_length = 0;\n cod_info.big_values = 0;\n cod_info.count1 = 0;\n cod_info.global_gain = 210;\n cod_info.scalefac_compress = 0;\n cod_info.table_select[0] = 0;\n cod_info.table_select[1] = 0;\n cod_info.table_select[2] = 0;\n cod_info.subblock_gain[0] = 0;\n cod_info.subblock_gain[1] = 0;\n cod_info.subblock_gain[2] = 0;\n cod_info.subblock_gain[3] = 0;\n cod_info.region0_count = 0;\n cod_info.region1_count = 0;\n cod_info.preflag = 0;\n cod_info.scalefac_scale = 0;\n cod_info.count1table_select = 0;\n cod_info.part2_length = 0;\n cod_info.sfb_lmax = Encoder.SBPSY_l;\n cod_info.sfb_smin = Encoder.SBPSY_s;\n cod_info.psy_lmax = gfc.sfb21_extra ? Encoder.SBMAX_l : Encoder.SBPSY_l;\n cod_info.psymax = cod_info.psy_lmax;\n cod_info.sfbmax = cod_info.sfb_lmax;\n cod_info.sfbdivide = 11;\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n cod_info.width[sfb] = gfc.scalefac_band.l[sfb + 1] - gfc.scalefac_band.l[sfb];\n cod_info.window[sfb] = 3;\n }\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n var ixwork = new_float(576);\n cod_info.sfb_smin = 0;\n cod_info.sfb_lmax = 0;\n if (cod_info.mixed_block_flag != 0) {\n cod_info.sfb_smin = 3;\n cod_info.sfb_lmax = gfc.mode_gr * 2 + 4;\n }\n cod_info.psymax = cod_info.sfb_lmax + 3 * ((gfc.sfb21_extra ? Encoder.SBMAX_s : Encoder.SBPSY_s) - cod_info.sfb_smin);\n cod_info.sfbmax = cod_info.sfb_lmax + 3 * (Encoder.SBPSY_s - cod_info.sfb_smin);\n cod_info.sfbdivide = cod_info.sfbmax - 18;\n cod_info.psy_lmax = cod_info.sfb_lmax;\n var ix = gfc.scalefac_band.l[cod_info.sfb_lmax];\n System$1.arraycopy(cod_info.xr, 0, ixwork, 0, 576);\n for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n var start2 = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n for (var window2 = 0; window2 < 3; window2++) {\n for (var l = start2; l < end; l++) {\n cod_info.xr[ix++] = ixwork[3 * l + window2];\n }\n }\n }\n var j = cod_info.sfb_lmax;\n for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n cod_info.width[j] = cod_info.width[j + 1] = cod_info.width[j + 2] = gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb];\n cod_info.window[j] = 0;\n cod_info.window[j + 1] = 1;\n cod_info.window[j + 2] = 2;\n j += 3;\n }\n }\n cod_info.count1bits = 0;\n cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[0][0];\n cod_info.slen[0] = 0;\n cod_info.slen[1] = 0;\n cod_info.slen[2] = 0;\n cod_info.slen[3] = 0;\n cod_info.max_nonzero_coeff = 575;\n Arrays$1.fill(cod_info.scalefac, 0);\n psfb21_analogsilence(gfc, cod_info);\n };\n function BinSearchDirection(ordinal) {\n this.ordinal = ordinal;\n }\n BinSearchDirection.BINSEARCH_NONE = new BinSearchDirection(0);\n BinSearchDirection.BINSEARCH_UP = new BinSearchDirection(1);\n BinSearchDirection.BINSEARCH_DOWN = new BinSearchDirection(2);\n function bin_search_StepSize(gfc, cod_info, desired_rate, ch, xrpow) {\n var nBits;\n var CurrentStep = gfc.CurrentStep[ch];\n var flagGoneOver = false;\n var start2 = gfc.OldValue[ch];\n var Direction = BinSearchDirection.BINSEARCH_NONE;\n cod_info.global_gain = start2;\n desired_rate -= cod_info.part2_length;\n for (; ; ) {\n var step;\n nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n if (CurrentStep == 1 || nBits == desired_rate)\n break;\n if (nBits > desired_rate) {\n if (Direction == BinSearchDirection.BINSEARCH_DOWN)\n flagGoneOver = true;\n if (flagGoneOver)\n CurrentStep /= 2;\n Direction = BinSearchDirection.BINSEARCH_UP;\n step = CurrentStep;\n } else {\n if (Direction == BinSearchDirection.BINSEARCH_UP)\n flagGoneOver = true;\n if (flagGoneOver)\n CurrentStep /= 2;\n Direction = BinSearchDirection.BINSEARCH_DOWN;\n step = -CurrentStep;\n }\n cod_info.global_gain += step;\n if (cod_info.global_gain < 0) {\n cod_info.global_gain = 0;\n flagGoneOver = true;\n }\n if (cod_info.global_gain > 255) {\n cod_info.global_gain = 255;\n flagGoneOver = true;\n }\n }\n assert$3(cod_info.global_gain >= 0);\n assert$3(cod_info.global_gain < 256);\n while (nBits > desired_rate && cod_info.global_gain < 255) {\n cod_info.global_gain++;\n nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n }\n gfc.CurrentStep[ch] = start2 - cod_info.global_gain >= 4 ? 4 : 2;\n gfc.OldValue[ch] = cod_info.global_gain;\n cod_info.part2_3_length = nBits;\n return nBits;\n }\n this.trancate_smallspectrums = function(gfc, gi, l3_xmin, work) {\n var distort = new_float(L3Side$1.SFBMAX);\n if ((gfc.substep_shaping & 4) == 0 && gi.block_type == Encoder.SHORT_TYPE || (gfc.substep_shaping & 128) != 0) {\n return;\n }\n qupvt.calc_noise(gi, l3_xmin, distort, new CalcNoiseResult$1(), null);\n for (var j = 0; j < 576; j++) {\n var xr = 0;\n if (gi.l3_enc[j] != 0)\n xr = Math.abs(gi.xr[j]);\n work[j] = xr;\n }\n var j = 0;\n var sfb = 8;\n if (gi.block_type == Encoder.SHORT_TYPE)\n sfb = 6;\n do {\n var allowedNoise, trancateThreshold;\n var nsame, start2;\n var width = gi.width[sfb];\n j += width;\n if (distort[sfb] >= 1)\n continue;\n Arrays$1.sort(work, j - width, width);\n if (BitStream.EQ(work[j - 1], 0))\n continue;\n allowedNoise = (1 - distort[sfb]) * l3_xmin[sfb];\n trancateThreshold = 0;\n start2 = 0;\n do {\n var noise;\n for (nsame = 1; start2 + nsame < width; nsame++) {\n if (BitStream.NEQ(\n work[start2 + j - width],\n work[start2 + j + nsame - width]\n )) {\n break;\n }\n }\n noise = work[start2 + j - width] * work[start2 + j - width] * nsame;\n if (allowedNoise < noise) {\n if (start2 != 0)\n trancateThreshold = work[start2 + j - width - 1];\n break;\n }\n allowedNoise -= noise;\n start2 += nsame;\n } while (start2 < width);\n if (BitStream.EQ(trancateThreshold, 0))\n continue;\n do {\n if (Math.abs(gi.xr[j - width]) <= trancateThreshold) {\n gi.l3_enc[j - width] = 0;\n }\n } while (--width > 0);\n } while (++sfb < gi.psymax);\n gi.part2_3_length = tk.noquant_count_bits(gfc, gi, null);\n };\n function loop_break(cod_info) {\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n if (cod_info.scalefac[sfb] + cod_info.subblock_gain[cod_info.window[sfb]] == 0) {\n return false;\n }\n }\n return true;\n }\n function penalties(noise) {\n return Util.FAST_LOG10(0.368 + 0.632 * noise * noise * noise);\n }\n function get_klemm_noise(distort, gi) {\n var klemm_noise = 1e-37;\n for (var sfb = 0; sfb < gi.psymax; sfb++) {\n klemm_noise += penalties(distort[sfb]);\n }\n return Math.max(1e-20, klemm_noise);\n }\n function quant_compare(quant_comp, best, calc, gi, distort) {\n var better;\n switch (quant_comp) {\n default:\n case 9: {\n if (best.over_count > 0) {\n better = calc.over_SSD <= best.over_SSD;\n if (calc.over_SSD == best.over_SSD)\n better = calc.bits < best.bits;\n } else {\n better = calc.max_noise < 0 && calc.max_noise * 10 + calc.bits <= best.max_noise * 10 + best.bits;\n }\n break;\n }\n case 0:\n better = calc.over_count < best.over_count || calc.over_count == best.over_count && calc.over_noise < best.over_noise || calc.over_count == best.over_count && BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise;\n break;\n case 8:\n calc.max_noise = get_klemm_noise(distort, gi);\n case 1:\n better = calc.max_noise < best.max_noise;\n break;\n case 2:\n better = calc.tot_noise < best.tot_noise;\n break;\n case 3:\n better = calc.tot_noise < best.tot_noise && calc.max_noise < best.max_noise;\n break;\n case 4:\n better = calc.max_noise <= 0 && best.max_noise > 0.2 || calc.max_noise <= 0 && best.max_noise < 0 && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise || calc.max_noise <= 0 && best.max_noise > 0 && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise + best.over_noise || calc.max_noise > 0 && best.max_noise > -0.05 && best.max_noise > calc.max_noise - 0.1 && calc.tot_noise + calc.over_noise < best.tot_noise + best.over_noise || calc.max_noise > 0 && best.max_noise > -0.1 && best.max_noise > calc.max_noise - 0.15 && calc.tot_noise + calc.over_noise + calc.over_noise < best.tot_noise + best.over_noise + best.over_noise;\n break;\n case 5:\n better = calc.over_noise < best.over_noise || BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise;\n break;\n case 6:\n better = calc.over_noise < best.over_noise || BitStream.EQ(calc.over_noise, best.over_noise) && (calc.max_noise < best.max_noise || BitStream.EQ(calc.max_noise, best.max_noise) && calc.tot_noise <= best.tot_noise);\n break;\n case 7:\n better = calc.over_count < best.over_count || calc.over_noise < best.over_noise;\n break;\n }\n if (best.over_count == 0) {\n better = better && calc.bits < best.bits;\n }\n return better;\n }\n function amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine) {\n var gfc = gfp.internal_flags;\n var ifqstep34;\n if (cod_info.scalefac_scale == 0) {\n ifqstep34 = 1.2968395546510096;\n } else {\n ifqstep34 = 1.6817928305074292;\n }\n var trigger2 = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n if (trigger2 < distort[sfb])\n trigger2 = distort[sfb];\n }\n var noise_shaping_amp = gfc.noise_shaping_amp;\n if (noise_shaping_amp == 3) {\n if (bRefine)\n noise_shaping_amp = 2;\n else\n noise_shaping_amp = 1;\n }\n switch (noise_shaping_amp) {\n case 2:\n break;\n case 1:\n if (trigger2 > 1)\n trigger2 = Math.pow(trigger2, 0.5);\n else\n trigger2 *= 0.95;\n break;\n case 0:\n default:\n if (trigger2 > 1)\n trigger2 = 1;\n else\n trigger2 *= 0.95;\n break;\n }\n var j = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n var width = cod_info.width[sfb];\n var l;\n j += width;\n if (distort[sfb] < trigger2)\n continue;\n if ((gfc.substep_shaping & 2) != 0) {\n gfc.pseudohalf[sfb] = gfc.pseudohalf[sfb] == 0 ? 1 : 0;\n if (gfc.pseudohalf[sfb] == 0 && gfc.noise_shaping_amp == 2)\n return;\n }\n cod_info.scalefac[sfb]++;\n for (l = -width; l < 0; l++) {\n xrpow[j + l] *= ifqstep34;\n if (xrpow[j + l] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[j + l];\n }\n if (gfc.noise_shaping_amp == 2)\n return;\n }\n }\n function inc_scalefac_scale(cod_info, xrpow) {\n var ifqstep34 = 1.2968395546510096;\n var j = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n var width = cod_info.width[sfb];\n var s = cod_info.scalefac[sfb];\n if (cod_info.preflag != 0)\n s += qupvt.pretab[sfb];\n j += width;\n if ((s & 1) != 0) {\n s++;\n for (var l = -width; l < 0; l++) {\n xrpow[j + l] *= ifqstep34;\n if (xrpow[j + l] > cod_info.xrpow_max) {\n cod_info.xrpow_max = xrpow[j + l];\n }\n }\n }\n cod_info.scalefac[sfb] = s >> 1;\n }\n cod_info.preflag = 0;\n cod_info.scalefac_scale = 1;\n }\n function inc_subblock_gain(gfc, cod_info, xrpow) {\n var sfb;\n var scalefac = cod_info.scalefac;\n for (sfb = 0; sfb < cod_info.sfb_lmax; sfb++) {\n if (scalefac[sfb] >= 16)\n return true;\n }\n for (var window2 = 0; window2 < 3; window2++) {\n var s1 = 0;\n var s2 = 0;\n for (sfb = cod_info.sfb_lmax + window2; sfb < cod_info.sfbdivide; sfb += 3) {\n if (s1 < scalefac[sfb])\n s1 = scalefac[sfb];\n }\n for (; sfb < cod_info.sfbmax; sfb += 3) {\n if (s2 < scalefac[sfb])\n s2 = scalefac[sfb];\n }\n if (s1 < 16 && s2 < 8)\n continue;\n if (cod_info.subblock_gain[window2] >= 7)\n return true;\n cod_info.subblock_gain[window2]++;\n var j = gfc.scalefac_band.l[cod_info.sfb_lmax];\n for (sfb = cod_info.sfb_lmax + window2; sfb < cod_info.sfbmax; sfb += 3) {\n var amp;\n var width = cod_info.width[sfb];\n var s = scalefac[sfb];\n s = s - (4 >> cod_info.scalefac_scale);\n if (s >= 0) {\n scalefac[sfb] = s;\n j += width * 3;\n continue;\n }\n scalefac[sfb] = 0;\n {\n var gain = 210 + (s << cod_info.scalefac_scale + 1);\n amp = qupvt.IPOW20(gain);\n }\n j += width * (window2 + 1);\n for (var l = -width; l < 0; l++) {\n xrpow[j + l] *= amp;\n if (xrpow[j + l] > cod_info.xrpow_max) {\n cod_info.xrpow_max = xrpow[j + l];\n }\n }\n j += width * (3 - window2 - 1);\n }\n {\n var amp = qupvt.IPOW20(202);\n j += cod_info.width[sfb] * (window2 + 1);\n for (var l = -cod_info.width[sfb]; l < 0; l++) {\n xrpow[j + l] *= amp;\n if (xrpow[j + l] > cod_info.xrpow_max) {\n cod_info.xrpow_max = xrpow[j + l];\n }\n }\n }\n }\n return false;\n }\n function balance_noise(gfp, cod_info, distort, xrpow, bRefine) {\n var gfc = gfp.internal_flags;\n amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine);\n var status = loop_break(cod_info);\n if (status)\n return false;\n if (gfc.mode_gr == 2)\n status = tk.scale_bitcount(cod_info);\n else\n status = tk.scale_bitcount_lsf(gfc, cod_info);\n if (!status)\n return true;\n if (gfc.noise_shaping > 1) {\n Arrays$1.fill(gfc.pseudohalf, 0);\n if (cod_info.scalefac_scale == 0) {\n inc_scalefac_scale(cod_info, xrpow);\n status = false;\n } else {\n if (cod_info.block_type == Encoder.SHORT_TYPE && gfc.subblock_gain > 0) {\n status = inc_subblock_gain(gfc, cod_info, xrpow) || loop_break(cod_info);\n }\n }\n }\n if (!status) {\n if (gfc.mode_gr == 2)\n status = tk.scale_bitcount(cod_info);\n else\n status = tk.scale_bitcount_lsf(gfc, cod_info);\n }\n return !status;\n }\n this.outer_loop = function(gfp, cod_info, l3_xmin, xrpow, ch, targ_bits) {\n var gfc = gfp.internal_flags;\n var cod_info_w = new GrInfo();\n var save_xrpow = new_float(576);\n var distort = new_float(L3Side$1.SFBMAX);\n var best_noise_info = new CalcNoiseResult$1();\n var better;\n var prev_noise = new CalcNoiseData();\n var best_part2_3_length = 9999999;\n var bEndOfSearch = false;\n var bRefine = false;\n var best_ggain_pass1 = 0;\n bin_search_StepSize(gfc, cod_info, targ_bits, ch, xrpow);\n if (gfc.noise_shaping == 0) {\n return 100;\n }\n qupvt.calc_noise(cod_info, l3_xmin, distort, best_noise_info, prev_noise);\n best_noise_info.bits = cod_info.part2_3_length;\n cod_info_w.assign(cod_info);\n var age = 0;\n System$1.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n while (!bEndOfSearch) {\n do {\n var noise_info = new CalcNoiseResult$1();\n var search_limit;\n var maxggain = 255;\n if ((gfc.substep_shaping & 2) != 0) {\n search_limit = 20;\n } else {\n search_limit = 3;\n }\n if (gfc.sfb21_extra) {\n if (distort[cod_info_w.sfbmax] > 1)\n break;\n if (cod_info_w.block_type == Encoder.SHORT_TYPE && (distort[cod_info_w.sfbmax + 1] > 1 || distort[cod_info_w.sfbmax + 2] > 1)) {\n break;\n }\n }\n if (!balance_noise(gfp, cod_info_w, distort, xrpow, bRefine))\n break;\n if (cod_info_w.scalefac_scale != 0)\n maxggain = 254;\n var huff_bits = targ_bits - cod_info_w.part2_length;\n if (huff_bits <= 0)\n break;\n while ((cod_info_w.part2_3_length = tk.count_bits(\n gfc,\n xrpow,\n cod_info_w,\n prev_noise\n )) > huff_bits && cod_info_w.global_gain <= maxggain) {\n cod_info_w.global_gain++;\n }\n if (cod_info_w.global_gain > maxggain)\n break;\n if (best_noise_info.over_count == 0) {\n while ((cod_info_w.part2_3_length = tk.count_bits(\n gfc,\n xrpow,\n cod_info_w,\n prev_noise\n )) > best_part2_3_length && cod_info_w.global_gain <= maxggain) {\n cod_info_w.global_gain++;\n }\n if (cod_info_w.global_gain > maxggain)\n break;\n }\n qupvt.calc_noise(cod_info_w, l3_xmin, distort, noise_info, prev_noise);\n noise_info.bits = cod_info_w.part2_3_length;\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n better = gfp.quant_comp;\n } else\n better = gfp.quant_comp_short;\n better = quant_compare(\n better,\n best_noise_info,\n noise_info,\n cod_info_w,\n distort\n ) ? 1 : 0;\n if (better != 0) {\n best_part2_3_length = cod_info.part2_3_length;\n best_noise_info = noise_info;\n cod_info.assign(cod_info_w);\n age = 0;\n System$1.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n } else {\n if (gfc.full_outer_loop == 0) {\n if (++age > search_limit && best_noise_info.over_count == 0)\n break;\n if (gfc.noise_shaping_amp == 3 && bRefine && age > 30)\n break;\n if (gfc.noise_shaping_amp == 3 && bRefine && cod_info_w.global_gain - best_ggain_pass1 > 15) {\n break;\n }\n }\n }\n } while (cod_info_w.global_gain + cod_info_w.scalefac_scale < 255);\n if (gfc.noise_shaping_amp == 3) {\n if (!bRefine) {\n cod_info_w.assign(cod_info);\n System$1.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n age = 0;\n best_ggain_pass1 = cod_info_w.global_gain;\n bRefine = true;\n } else {\n bEndOfSearch = true;\n }\n } else {\n bEndOfSearch = true;\n }\n }\n assert$3(cod_info.global_gain + cod_info.scalefac_scale <= 255);\n if (gfp.VBR == VbrMode$1.vbr_rh || gfp.VBR == VbrMode$1.vbr_mtrh) {\n System$1.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n } else if ((gfc.substep_shaping & 1) != 0) {\n trancate_smallspectrums(gfc, cod_info, l3_xmin, xrpow);\n }\n return best_noise_info.over_count;\n };\n this.iteration_finish_one = function(gfc, gr, ch) {\n var l3_side = gfc.l3_side;\n var cod_info = l3_side.tt[gr][ch];\n tk.best_scalefac_store(gfc, gr, ch, l3_side);\n if (gfc.use_best_huffman == 1)\n tk.best_huffman_divide(gfc, cod_info);\n rv.ResvAdjust(gfc, cod_info);\n };\n this.VBR_encode_granule = function(gfp, cod_info, l3_xmin, xrpow, ch, min_bits, max_bits) {\n var gfc = gfp.internal_flags;\n var bst_cod_info = new GrInfo();\n var bst_xrpow = new_float(576);\n var Max_bits = max_bits;\n var real_bits = max_bits + 1;\n var this_bits = (max_bits + min_bits) / 2;\n var dbits;\n var over;\n var found = 0;\n var sfb21_extra = gfc.sfb21_extra;\n assert$3(Max_bits <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n Arrays$1.fill(bst_cod_info.l3_enc, 0);\n do {\n if (this_bits > Max_bits - 42)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = sfb21_extra;\n over = outer_loop(gfp, cod_info, l3_xmin, xrpow, ch, this_bits);\n if (over <= 0) {\n found = 1;\n real_bits = cod_info.part2_3_length;\n bst_cod_info.assign(cod_info);\n System$1.arraycopy(xrpow, 0, bst_xrpow, 0, 576);\n max_bits = real_bits - 32;\n dbits = max_bits - min_bits;\n this_bits = (max_bits + min_bits) / 2;\n } else {\n min_bits = this_bits + 32;\n dbits = max_bits - min_bits;\n this_bits = (max_bits + min_bits) / 2;\n if (found != 0) {\n found = 2;\n cod_info.assign(bst_cod_info);\n System$1.arraycopy(bst_xrpow, 0, xrpow, 0, 576);\n }\n }\n } while (dbits > 12);\n gfc.sfb21_extra = sfb21_extra;\n if (found == 2) {\n System$1.arraycopy(bst_cod_info.l3_enc, 0, cod_info.l3_enc, 0, 576);\n }\n assert$3(cod_info.part2_3_length <= Max_bits);\n };\n this.get_framebits = function(gfp, frameBits) {\n var gfc = gfp.internal_flags;\n gfc.bitrate_index = gfc.VBR_min_bitrate;\n var bitsPerFrame = bs.getframebits(gfp);\n gfc.bitrate_index = 1;\n bitsPerFrame = bs.getframebits(gfp);\n for (var i = 1; i <= gfc.VBR_max_bitrate; i++) {\n gfc.bitrate_index = i;\n var mb = new MeanBits(bitsPerFrame);\n frameBits[i] = rv.ResvFrameBegin(gfp, mb);\n bitsPerFrame = mb.bits;\n }\n };\n this.VBR_old_prepare = function(gfp, pe, ms_ener_ratio, ratio, l3_xmin, frameBits, min_bits, max_bits, bands) {\n var gfc = gfp.internal_flags;\n var masking_lower_db;\n var adjust = 0;\n var analog_silence = 1;\n var bits = 0;\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var avg = rv.ResvFrameBegin(gfp, new MeanBits(0)) / gfc.mode_gr;\n get_framebits(gfp, frameBits);\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n var mxb = qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n ms_convert(gfc.l3_side, gr);\n qupvt.reduce_side(max_bits[gr], ms_ener_ratio[gr], avg, mxb);\n }\n for (var ch = 0; ch < gfc.channels_out; ++ch) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n adjust = 1.28 / (1 + Math.exp(3.5 - pe[gr][ch] / 300)) - 0.05;\n masking_lower_db = gfc.PSY.mask_adjust - adjust;\n } else {\n adjust = 2.56 / (1 + Math.exp(3.5 - pe[gr][ch] / 300)) - 0.14;\n masking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n }\n gfc.masking_lower = Math.pow(10, masking_lower_db * 0.1);\n init_outer_loop(gfc, cod_info);\n bands[gr][ch] = qupvt.calc_xmin(\n gfp,\n ratio[gr][ch],\n cod_info,\n l3_xmin[gr][ch]\n );\n if (bands[gr][ch] != 0)\n analog_silence = 0;\n min_bits[gr][ch] = 126;\n bits += max_bits[gr][ch];\n }\n }\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n if (bits > frameBits[gfc.VBR_max_bitrate]) {\n max_bits[gr][ch] *= frameBits[gfc.VBR_max_bitrate];\n max_bits[gr][ch] /= bits;\n }\n if (min_bits[gr][ch] > max_bits[gr][ch]) {\n min_bits[gr][ch] = max_bits[gr][ch];\n }\n }\n }\n return analog_silence;\n };\n this.bitpressure_strategy = function(gfc, l3_xmin, min_bits, max_bits) {\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var gi = gfc.l3_side.tt[gr][ch];\n var pxmin = l3_xmin[gr][ch];\n var pxminPos = 0;\n for (var sfb = 0; sfb < gi.psy_lmax; sfb++) {\n pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_l / Encoder.SBMAX_l;\n }\n if (gi.block_type == Encoder.SHORT_TYPE) {\n for (var sfb = gi.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_s / Encoder.SBMAX_s;\n pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_s / Encoder.SBMAX_s;\n pxmin[pxminPos++] *= 1 + 0.029 * sfb * sfb / Encoder.SBMAX_s / Encoder.SBMAX_s;\n }\n }\n max_bits[gr][ch] = 0 | Math.max(min_bits[gr][ch], 0.9 * max_bits[gr][ch]);\n }\n }\n };\n this.VBR_new_prepare = function(gfp, pe, ratio, l3_xmin, frameBits, max_bits) {\n var gfc = gfp.internal_flags;\n var analog_silence = 1;\n var avg = 0;\n var bits = 0;\n var maximum_framebits;\n if (!gfp.free_format) {\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var mb = new MeanBits(avg);\n rv.ResvFrameBegin(gfp, mb);\n avg = mb.bits;\n get_framebits(gfp, frameBits);\n maximum_framebits = frameBits[gfc.VBR_max_bitrate];\n } else {\n gfc.bitrate_index = 0;\n var mb = new MeanBits(avg);\n maximum_framebits = rv.ResvFrameBegin(gfp, mb);\n avg = mb.bits;\n frameBits[0] = maximum_framebits;\n }\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n ms_convert(gfc.l3_side, gr);\n }\n for (var ch = 0; ch < gfc.channels_out; ++ch) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n gfc.masking_lower = Math.pow(10, gfc.PSY.mask_adjust * 0.1);\n init_outer_loop(gfc, cod_info);\n if (qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info, l3_xmin[gr][ch]) != 0) {\n analog_silence = 0;\n }\n bits += max_bits[gr][ch];\n }\n }\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n if (bits > maximum_framebits) {\n max_bits[gr][ch] *= maximum_framebits;\n max_bits[gr][ch] /= bits;\n }\n }\n }\n return analog_silence;\n };\n this.calc_target_bits = function(gfp, pe, ms_ener_ratio, targ_bits, analog_silence_bits, max_frame_bits) {\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n var res_factor;\n var gr;\n var ch;\n var totbits;\n var mean_bits = 0;\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var mb = new MeanBits(mean_bits);\n max_frame_bits[0] = rv.ResvFrameBegin(gfp, mb);\n mean_bits = mb.bits;\n gfc.bitrate_index = 1;\n mean_bits = bs.getframebits(gfp) - gfc.sideinfo_len * 8;\n analog_silence_bits[0] = mean_bits / (gfc.mode_gr * gfc.channels_out);\n mean_bits = gfp.VBR_mean_bitrate_kbps * gfp.framesize * 1e3;\n if ((gfc.substep_shaping & 1) != 0)\n mean_bits *= 1.09;\n mean_bits /= gfp.out_samplerate;\n mean_bits -= gfc.sideinfo_len * 8;\n mean_bits /= gfc.mode_gr * gfc.channels_out;\n res_factor = 0.93 + 0.07 * (11 - gfp.compression_ratio) / (11 - 5.5);\n if (res_factor < 0.9)\n res_factor = 0.9;\n if (res_factor > 1)\n res_factor = 1;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n var sum = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n targ_bits[gr][ch] = int(res_factor * mean_bits);\n if (pe[gr][ch] > 700) {\n var add_bits = int((pe[gr][ch] - 700) / 1.4);\n var cod_info = l3_side.tt[gr][ch];\n targ_bits[gr][ch] = int(res_factor * mean_bits);\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n if (add_bits < mean_bits / 2)\n add_bits = mean_bits / 2;\n }\n if (add_bits > mean_bits * 3 / 2)\n add_bits = mean_bits * 3 / 2;\n else if (add_bits < 0)\n add_bits = 0;\n targ_bits[gr][ch] += add_bits;\n }\n if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) {\n targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n }\n sum += targ_bits[gr][ch];\n }\n if (sum > LameInternalFlags.MAX_BITS_PER_GRANULE) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[gr][ch] *= LameInternalFlags.MAX_BITS_PER_GRANULE;\n targ_bits[gr][ch] /= sum;\n }\n }\n }\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n qupvt.reduce_side(\n targ_bits[gr],\n ms_ener_ratio[gr],\n mean_bits * gfc.channels_out,\n LameInternalFlags.MAX_BITS_PER_GRANULE\n );\n }\n }\n totbits = 0;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) {\n targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n }\n totbits += targ_bits[gr][ch];\n }\n }\n if (totbits > max_frame_bits[0]) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n targ_bits[gr][ch] *= max_frame_bits[0];\n targ_bits[gr][ch] /= totbits;\n }\n }\n }\n };\n}\nvar assert$2 = common.assert;\nfunction Reservoir() {\n var bs;\n this.setModules = function(_bs) {\n bs = _bs;\n };\n this.ResvFrameBegin = function(gfp, mean_bits) {\n var gfc = gfp.internal_flags;\n var maxmp3buf;\n var l3_side = gfc.l3_side;\n var frameLength = bs.getframebits(gfp);\n mean_bits.bits = (frameLength - gfc.sideinfo_len * 8) / gfc.mode_gr;\n var resvLimit = 8 * 256 * gfc.mode_gr - 8;\n if (gfp.brate > 320) {\n maxmp3buf = 8 * int(gfp.brate * 1e3 / (gfp.out_samplerate / 1152) / 8 + 0.5);\n } else {\n maxmp3buf = 8 * 1440;\n if (gfp.strict_ISO) {\n maxmp3buf = 8 * int(32e4 / (gfp.out_samplerate / 1152) / 8 + 0.5);\n }\n }\n gfc.ResvMax = maxmp3buf - frameLength;\n if (gfc.ResvMax > resvLimit)\n gfc.ResvMax = resvLimit;\n if (gfc.ResvMax < 0 || gfp.disable_reservoir)\n gfc.ResvMax = 0;\n var fullFrameBits = mean_bits.bits * gfc.mode_gr + Math.min(gfc.ResvSize, gfc.ResvMax);\n if (fullFrameBits > maxmp3buf)\n fullFrameBits = maxmp3buf;\n assert$2(gfc.ResvMax % 8 == 0);\n assert$2(gfc.ResvMax >= 0);\n l3_side.resvDrain_pre = 0;\n if (gfc.pinfo != null) {\n gfc.pinfo.mean_bits = mean_bits.bits / 2;\n gfc.pinfo.resvsize = gfc.ResvSize;\n }\n return fullFrameBits;\n };\n this.ResvMaxBits = function(gfp, mean_bits, targ_bits, cbr) {\n var gfc = gfp.internal_flags;\n var add_bits;\n var ResvSize = gfc.ResvSize;\n var ResvMax = gfc.ResvMax;\n if (cbr != 0)\n ResvSize += mean_bits;\n if ((gfc.substep_shaping & 1) != 0)\n ResvMax *= 0.9;\n targ_bits.bits = mean_bits;\n if (ResvSize * 10 > ResvMax * 9) {\n add_bits = ResvSize - ResvMax * 9 / 10;\n targ_bits.bits += add_bits;\n gfc.substep_shaping |= 128;\n } else {\n add_bits = 0;\n gfc.substep_shaping &= 127;\n if (!gfp.disable_reservoir && (gfc.substep_shaping & 1) == 0) {\n targ_bits.bits -= 0.1 * mean_bits;\n }\n }\n var extra_bits = ResvSize < gfc.ResvMax * 6 / 10 ? ResvSize : gfc.ResvMax * 6 / 10;\n extra_bits -= add_bits;\n if (extra_bits < 0)\n extra_bits = 0;\n return extra_bits;\n };\n this.ResvAdjust = function(gfc, gi) {\n gfc.ResvSize -= gi.part2_3_length + gi.part2_length;\n };\n this.ResvFrameEnd = function(gfc, mean_bits) {\n var over_bits;\n var l3_side = gfc.l3_side;\n gfc.ResvSize += mean_bits * gfc.mode_gr;\n var stuffingBits = 0;\n l3_side.resvDrain_post = 0;\n l3_side.resvDrain_pre = 0;\n if ((over_bits = gfc.ResvSize % 8) != 0)\n stuffingBits += over_bits;\n over_bits = gfc.ResvSize - stuffingBits - gfc.ResvMax;\n if (over_bits > 0) {\n stuffingBits += over_bits;\n }\n {\n var mdb_bytes = Math.min(l3_side.main_data_begin * 8, stuffingBits) / 8;\n l3_side.resvDrain_pre += 8 * mdb_bytes;\n stuffingBits -= 8 * mdb_bytes;\n gfc.ResvSize -= 8 * mdb_bytes;\n l3_side.main_data_begin -= mdb_bytes;\n }\n l3_side.resvDrain_post += stuffingBits;\n gfc.ResvSize -= stuffingBits;\n };\n}\nfunction Version() {\n var LAME_URL = \"http://www.mp3dev.org/\";\n var LAME_MAJOR_VERSION = 3;\n var LAME_MINOR_VERSION = 98;\n var LAME_PATCH_VERSION = 4;\n var PSY_MAJOR_VERSION = 0;\n var PSY_MINOR_VERSION = 93;\n this.getLameVersion = function() {\n return LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION;\n };\n this.getLameShortVersion = function() {\n return LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION;\n };\n this.getLameVeryShortVersion = function() {\n return \"LAME\" + LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \"r\";\n };\n this.getPsyVersion = function() {\n return PSY_MAJOR_VERSION + \".\" + PSY_MINOR_VERSION;\n };\n this.getLameUrl = function() {\n return LAME_URL;\n };\n this.getLameOsBitness = function() {\n return \"32bits\";\n };\n}\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar ShortBlock = common.ShortBlock;\nvar Arrays = common.Arrays;\nvar new_byte$1 = common.new_byte;\nvar assert$1 = common.assert;\nVBRTag.NUMTOCENTRIES = 100;\nVBRTag.MAXFRAMESIZE = 2880;\nfunction VBRTag() {\n var lame;\n var bs;\n var v;\n this.setModules = function(_lame, _bs, _v) {\n lame = _lame;\n bs = _bs;\n v = _v;\n };\n var FRAMES_FLAG = 1;\n var BYTES_FLAG = 2;\n var TOC_FLAG = 4;\n var VBR_SCALE_FLAG = 8;\n var NUMTOCENTRIES = VBRTag.NUMTOCENTRIES;\n var MAXFRAMESIZE = VBRTag.MAXFRAMESIZE;\n var VBRHEADERSIZE = NUMTOCENTRIES + 4 + 4 + 4 + 4 + 4;\n var LAMEHEADERSIZE = VBRHEADERSIZE + 9 + 1 + 1 + 8 + 1 + 1 + 3 + 1 + 1 + 2 + 4 + 2 + 2;\n var XING_BITRATE1 = 128;\n var XING_BITRATE2 = 64;\n var XING_BITRATE25 = 32;\n var ISO_8859_1 = null;\n var VBRTag0 = \"Xing\";\n var VBRTag1 = \"Info\";\n var crc16Lookup = [\n 0,\n 49345,\n 49537,\n 320,\n 49921,\n 960,\n 640,\n 49729,\n 50689,\n 1728,\n 1920,\n 51009,\n 1280,\n 50625,\n 50305,\n 1088,\n 52225,\n 3264,\n 3456,\n 52545,\n 3840,\n 53185,\n 52865,\n 3648,\n 2560,\n 51905,\n 52097,\n 2880,\n 51457,\n 2496,\n 2176,\n 51265,\n 55297,\n 6336,\n 6528,\n 55617,\n 6912,\n 56257,\n 55937,\n 6720,\n 7680,\n 57025,\n 57217,\n 8e3,\n 56577,\n 7616,\n 7296,\n 56385,\n 5120,\n 54465,\n 54657,\n 5440,\n 55041,\n 6080,\n 5760,\n 54849,\n 53761,\n 4800,\n 4992,\n 54081,\n 4352,\n 53697,\n 53377,\n 4160,\n 61441,\n 12480,\n 12672,\n 61761,\n 13056,\n 62401,\n 62081,\n 12864,\n 13824,\n 63169,\n 63361,\n 14144,\n 62721,\n 13760,\n 13440,\n 62529,\n 15360,\n 64705,\n 64897,\n 15680,\n 65281,\n 16320,\n 16e3,\n 65089,\n 64001,\n 15040,\n 15232,\n 64321,\n 14592,\n 63937,\n 63617,\n 14400,\n 10240,\n 59585,\n 59777,\n 10560,\n 60161,\n 11200,\n 10880,\n 59969,\n 60929,\n 11968,\n 12160,\n 61249,\n 11520,\n 60865,\n 60545,\n 11328,\n 58369,\n 9408,\n 9600,\n 58689,\n 9984,\n 59329,\n 59009,\n 9792,\n 8704,\n 58049,\n 58241,\n 9024,\n 57601,\n 8640,\n 8320,\n 57409,\n 40961,\n 24768,\n 24960,\n 41281,\n 25344,\n 41921,\n 41601,\n 25152,\n 26112,\n 42689,\n 42881,\n 26432,\n 42241,\n 26048,\n 25728,\n 42049,\n 27648,\n 44225,\n 44417,\n 27968,\n 44801,\n 28608,\n 28288,\n 44609,\n 43521,\n 27328,\n 27520,\n 43841,\n 26880,\n 43457,\n 43137,\n 26688,\n 30720,\n 47297,\n 47489,\n 31040,\n 47873,\n 31680,\n 31360,\n 47681,\n 48641,\n 32448,\n 32640,\n 48961,\n 32e3,\n 48577,\n 48257,\n 31808,\n 46081,\n 29888,\n 30080,\n 46401,\n 30464,\n 47041,\n 46721,\n 30272,\n 29184,\n 45761,\n 45953,\n 29504,\n 45313,\n 29120,\n 28800,\n 45121,\n 20480,\n 37057,\n 37249,\n 20800,\n 37633,\n 21440,\n 21120,\n 37441,\n 38401,\n 22208,\n 22400,\n 38721,\n 21760,\n 38337,\n 38017,\n 21568,\n 39937,\n 23744,\n 23936,\n 40257,\n 24320,\n 40897,\n 40577,\n 24128,\n 23040,\n 39617,\n 39809,\n 23360,\n 39169,\n 22976,\n 22656,\n 38977,\n 34817,\n 18624,\n 18816,\n 35137,\n 19200,\n 35777,\n 35457,\n 19008,\n 19968,\n 36545,\n 36737,\n 20288,\n 36097,\n 19904,\n 19584,\n 35905,\n 17408,\n 33985,\n 34177,\n 17728,\n 34561,\n 18368,\n 18048,\n 34369,\n 33281,\n 17088,\n 17280,\n 33601,\n 16640,\n 33217,\n 32897,\n 16448\n ];\n function addVbr(v2, bitrate) {\n v2.nVbrNumFrames++;\n v2.sum += bitrate;\n v2.seen++;\n if (v2.seen < v2.want) {\n return;\n }\n if (v2.pos < v2.size) {\n v2.bag[v2.pos] = v2.sum;\n v2.pos++;\n v2.seen = 0;\n }\n if (v2.pos == v2.size) {\n for (var i = 1; i < v2.size; i += 2) {\n v2.bag[i / 2] = v2.bag[i];\n }\n v2.want *= 2;\n v2.pos /= 2;\n }\n }\n function xingSeekTable(v2, t) {\n if (v2.pos <= 0)\n return;\n for (var i = 1; i < NUMTOCENTRIES; ++i) {\n var j = i / NUMTOCENTRIES;\n var act;\n var sum;\n var indx = 0 | Math.floor(j * v2.pos);\n if (indx > v2.pos - 1)\n indx = v2.pos - 1;\n act = v2.bag[indx];\n sum = v2.sum;\n var seek_point = 0 | 256 * act / sum;\n if (seek_point > 255)\n seek_point = 255;\n t[i] = 255 & seek_point;\n }\n }\n this.addVbrFrame = function(gfp) {\n var gfc = gfp.internal_flags;\n var kbps = Tables.bitrate_table[gfp.version][gfc.bitrate_index];\n assert$1(gfc.VBR_seek_table.bag != null);\n addVbr(gfc.VBR_seek_table, kbps);\n };\n function extractInteger(buf, bufPos) {\n var x = buf[bufPos + 0] & 255;\n x <<= 8;\n x |= buf[bufPos + 1] & 255;\n x <<= 8;\n x |= buf[bufPos + 2] & 255;\n x <<= 8;\n x |= buf[bufPos + 3] & 255;\n return x;\n }\n function createInteger(buf, bufPos, value) {\n buf[bufPos + 0] = 255 & (value >> 24 & 255);\n buf[bufPos + 1] = 255 & (value >> 16 & 255);\n buf[bufPos + 2] = 255 & (value >> 8 & 255);\n buf[bufPos + 3] = 255 & (value & 255);\n }\n function createShort(buf, bufPos, value) {\n buf[bufPos + 0] = 255 & (value >> 8 & 255);\n buf[bufPos + 1] = 255 & (value & 255);\n }\n function isVbrTag(buf, bufPos) {\n return new String(buf, bufPos, VBRTag0.length(), ISO_8859_1).equals(VBRTag0) || new String(buf, bufPos, VBRTag1.length(), ISO_8859_1).equals(VBRTag1);\n }\n function shiftInBitsValue(x, n, v2) {\n return 255 & (x << n | v2 & ~(-1 << n));\n }\n function setLameTagFrameHeader(gfp, buffer) {\n var gfc = gfp.internal_flags;\n buffer[0] = shiftInBitsValue(buffer[0], 8, 255);\n buffer[1] = shiftInBitsValue(buffer[1], 3, 7);\n buffer[1] = shiftInBitsValue(\n buffer[1],\n 1,\n gfp.out_samplerate < 16e3 ? 0 : 1\n );\n buffer[1] = shiftInBitsValue(buffer[1], 1, gfp.version);\n buffer[1] = shiftInBitsValue(buffer[1], 2, 4 - 3);\n buffer[1] = shiftInBitsValue(buffer[1], 1, !gfp.error_protection ? 1 : 0);\n buffer[2] = shiftInBitsValue(buffer[2], 4, gfc.bitrate_index);\n buffer[2] = shiftInBitsValue(buffer[2], 2, gfc.samplerate_index);\n buffer[2] = shiftInBitsValue(buffer[2], 1, 0);\n buffer[2] = shiftInBitsValue(buffer[2], 1, gfp.extension);\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.mode.ordinal());\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfc.mode_ext);\n buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.copyright);\n buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.original);\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.emphasis);\n buffer[0] = 255;\n var abyte = 255 & (buffer[1] & 241);\n var bitrate;\n if (gfp.version == 1) {\n bitrate = XING_BITRATE1;\n } else {\n if (gfp.out_samplerate < 16e3)\n bitrate = XING_BITRATE25;\n else\n bitrate = XING_BITRATE2;\n }\n if (gfp.VBR == VbrMode.vbr_off)\n bitrate = gfp.brate;\n var bbyte;\n if (gfp.free_format)\n bbyte = 0;\n else {\n bbyte = 255 & 16 * lame.BitrateIndex(bitrate, gfp.version, gfp.out_samplerate);\n }\n if (gfp.version == 1) {\n buffer[1] = 255 & (abyte | 10);\n abyte = 255 & (buffer[2] & 13);\n buffer[2] = 255 & (bbyte | abyte);\n } else {\n buffer[1] = 255 & (abyte | 2);\n abyte = 255 & (buffer[2] & 13);\n buffer[2] = 255 & (bbyte | abyte);\n }\n }\n this.getVbrTag = function(buf) {\n var pTagData = new VBRTagData();\n var bufPos = 0;\n pTagData.flags = 0;\n var hId = buf[bufPos + 1] >> 3 & 1;\n var hSrIndex = buf[bufPos + 2] >> 2 & 3;\n var hMode = buf[bufPos + 3] >> 6 & 3;\n var hBitrate = buf[bufPos + 2] >> 4 & 15;\n hBitrate = Tables.bitrate_table[hId][hBitrate];\n if (buf[bufPos + 1] >> 4 == 14) {\n pTagData.samprate = Tables.samplerate_table[2][hSrIndex];\n } else\n pTagData.samprate = Tables.samplerate_table[hId][hSrIndex];\n if (hId != 0) {\n if (hMode != 3)\n bufPos += 32 + 4;\n else\n bufPos += 17 + 4;\n } else {\n if (hMode != 3)\n bufPos += 17 + 4;\n else\n bufPos += 9 + 4;\n }\n if (!isVbrTag(buf, bufPos))\n return null;\n bufPos += 4;\n pTagData.hId = hId;\n var head_flags = pTagData.flags = extractInteger(buf, bufPos);\n bufPos += 4;\n if ((head_flags & FRAMES_FLAG) != 0) {\n pTagData.frames = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n if ((head_flags & BYTES_FLAG) != 0) {\n pTagData.bytes = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n if ((head_flags & TOC_FLAG) != 0) {\n if (pTagData.toc != null) {\n for (var i = 0; i < NUMTOCENTRIES; i++) {\n pTagData.toc[i] = buf[bufPos + i];\n }\n }\n bufPos += NUMTOCENTRIES;\n }\n pTagData.vbrScale = -1;\n if ((head_flags & VBR_SCALE_FLAG) != 0) {\n pTagData.vbrScale = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n pTagData.headersize = (hId + 1) * 72e3 * hBitrate / pTagData.samprate;\n bufPos += 21;\n var encDelay = buf[bufPos + 0] << 4;\n encDelay += buf[bufPos + 1] >> 4;\n var encPadding = (buf[bufPos + 1] & 15) << 8;\n encPadding += buf[bufPos + 2] & 255;\n if (encDelay < 0 || encDelay > 3e3)\n encDelay = -1;\n if (encPadding < 0 || encPadding > 3e3)\n encPadding = -1;\n pTagData.encDelay = encDelay;\n pTagData.encPadding = encPadding;\n return pTagData;\n };\n this.InitVbrTag = function(gfp) {\n var gfc = gfp.internal_flags;\n var kbps_header;\n if (gfp.version == 1) {\n kbps_header = XING_BITRATE1;\n } else {\n if (gfp.out_samplerate < 16e3)\n kbps_header = XING_BITRATE25;\n else\n kbps_header = XING_BITRATE2;\n }\n if (gfp.VBR == VbrMode.vbr_off)\n kbps_header = gfp.brate;\n var totalFrameSize = (gfp.version + 1) * 72e3 * kbps_header / gfp.out_samplerate;\n var headerSize = gfc.sideinfo_len + LAMEHEADERSIZE;\n gfc.VBR_seek_table.TotalFrameSize = totalFrameSize;\n if (totalFrameSize < headerSize || totalFrameSize > MAXFRAMESIZE) {\n gfp.bWriteVbrTag = false;\n return;\n }\n gfc.VBR_seek_table.nVbrNumFrames = 0;\n gfc.VBR_seek_table.nBytesWritten = 0;\n gfc.VBR_seek_table.sum = 0;\n gfc.VBR_seek_table.seen = 0;\n gfc.VBR_seek_table.want = 1;\n gfc.VBR_seek_table.pos = 0;\n if (gfc.VBR_seek_table.bag == null) {\n gfc.VBR_seek_table.bag = new int[400]();\n gfc.VBR_seek_table.size = 400;\n }\n var buffer = new_byte$1(MAXFRAMESIZE);\n setLameTagFrameHeader(gfp, buffer);\n var n = gfc.VBR_seek_table.TotalFrameSize;\n for (var i = 0; i < n; ++i) {\n bs.add_dummy_byte(gfp, buffer[i] & 255, 1);\n }\n };\n function crcUpdateLookup(value, crc) {\n var tmp = crc ^ value;\n crc = crc >> 8 ^ crc16Lookup[tmp & 255];\n return crc;\n }\n this.updateMusicCRC = function(crc, buffer, bufferPos, size2) {\n for (var i = 0; i < size2; ++i) {\n crc[0] = crcUpdateLookup(buffer[bufferPos + i], crc[0]);\n }\n };\n function putLameVBR(gfp, musicLength, streamBuffer, streamBufferPos, crc) {\n var gfc = gfp.internal_flags;\n var bytesWritten = 0;\n var encDelay = gfp.encoder_delay;\n var encPadding = gfp.encoder_padding;\n var quality = 100 - 10 * gfp.VBR_q - gfp.quality;\n var version2 = v.getLameVeryShortVersion();\n var vbr;\n var revision = 0;\n var revMethod;\n var vbrTypeTranslator = [1, 5, 3, 2, 4, 0, 3];\n var lowpass = 0 | (gfp.lowpassfreq / 100 + 0.5 > 255 ? 255 : gfp.lowpassfreq / 100 + 0.5);\n var peakSignalAmplitude = 0;\n var radioReplayGain = 0;\n var audiophileReplayGain = 0;\n var noiseShaping = gfp.internal_flags.noise_shaping;\n var stereoMode = 0;\n var nonOptimal = 0;\n var sourceFreq = 0;\n var misc = 0;\n var musicCRC = 0;\n var expNPsyTune = (gfp.exp_nspsytune & 1) != 0;\n var safeJoint = (gfp.exp_nspsytune & 2) != 0;\n var noGapMore = false;\n var noGapPrevious = false;\n var noGapCount = gfp.internal_flags.nogap_total;\n var noGapCurr = gfp.internal_flags.nogap_current;\n var athType = gfp.ATHtype;\n var flags = 0;\n var abrBitrate;\n switch (gfp.VBR) {\n case vbr_abr:\n abrBitrate = gfp.VBR_mean_bitrate_kbps;\n break;\n case vbr_off:\n abrBitrate = gfp.brate;\n break;\n default:\n abrBitrate = gfp.VBR_min_bitrate_kbps;\n }\n if (gfp.VBR.ordinal() < vbrTypeTranslator.length) {\n vbr = vbrTypeTranslator[gfp.VBR.ordinal()];\n } else\n vbr = 0;\n revMethod = 16 * revision + vbr;\n if (gfc.findReplayGain) {\n if (gfc.RadioGain > 510)\n gfc.RadioGain = 510;\n if (gfc.RadioGain < -510)\n gfc.RadioGain = -510;\n radioReplayGain = 8192;\n radioReplayGain |= 3072;\n if (gfc.RadioGain >= 0) {\n radioReplayGain |= gfc.RadioGain;\n } else {\n radioReplayGain |= 512;\n radioReplayGain |= -gfc.RadioGain;\n }\n }\n if (gfc.findPeakSample) {\n peakSignalAmplitude = Math.abs(\n 0 | gfc.PeakSample / 32767 * Math.pow(2, 23) + 0.5\n );\n }\n if (noGapCount != -1) {\n if (noGapCurr > 0)\n noGapPrevious = true;\n if (noGapCurr < noGapCount - 1)\n noGapMore = true;\n }\n flags = athType + ((expNPsyTune ? 1 : 0) << 4) + ((safeJoint ? 1 : 0) << 5) + ((noGapMore ? 1 : 0) << 6) + ((noGapPrevious ? 1 : 0) << 7);\n if (quality < 0)\n quality = 0;\n switch (gfp.mode) {\n case MONO:\n stereoMode = 0;\n break;\n case STEREO:\n stereoMode = 1;\n break;\n case DUAL_CHANNEL:\n stereoMode = 2;\n break;\n case JOINT_STEREO:\n if (gfp.force_ms)\n stereoMode = 4;\n else\n stereoMode = 3;\n break;\n case NOT_SET:\n default:\n stereoMode = 7;\n break;\n }\n if (gfp.in_samplerate <= 32e3)\n sourceFreq = 0;\n else if (gfp.in_samplerate == 48e3)\n sourceFreq = 2;\n else if (gfp.in_samplerate > 48e3)\n sourceFreq = 3;\n else {\n sourceFreq = 1;\n }\n if (gfp.short_blocks == ShortBlock.short_block_forced || gfp.short_blocks == ShortBlock.short_block_dispensed || gfp.lowpassfreq == -1 && gfp.highpassfreq == -1 || gfp.scale_left < gfp.scale_right || gfp.scale_left > gfp.scale_right || gfp.disable_reservoir && gfp.brate < 320 || gfp.noATH || gfp.ATHonly || athType == 0 || gfp.in_samplerate <= 32e3) {\n nonOptimal = 1;\n }\n misc = noiseShaping + (stereoMode << 2) + (nonOptimal << 5) + (sourceFreq << 6);\n musicCRC = gfc.nMusicCRC;\n createInteger(streamBuffer, streamBufferPos + bytesWritten, quality);\n bytesWritten += 4;\n for (var j = 0; j < 9; j++) {\n streamBuffer[streamBufferPos + bytesWritten + j] = 255 & version2.charAt(j);\n }\n bytesWritten += 9;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & revMethod;\n bytesWritten++;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & lowpass;\n bytesWritten++;\n createInteger(\n streamBuffer,\n streamBufferPos + bytesWritten,\n peakSignalAmplitude\n );\n bytesWritten += 4;\n createShort(streamBuffer, streamBufferPos + bytesWritten, radioReplayGain);\n bytesWritten += 2;\n createShort(\n streamBuffer,\n streamBufferPos + bytesWritten,\n audiophileReplayGain\n );\n bytesWritten += 2;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & flags;\n bytesWritten++;\n if (abrBitrate >= 255)\n streamBuffer[streamBufferPos + bytesWritten] = 255;\n else\n streamBuffer[streamBufferPos + bytesWritten] = 255 & abrBitrate;\n bytesWritten++;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & encDelay >> 4;\n streamBuffer[streamBufferPos + bytesWritten + 1] = 255 & (encDelay << 4) + (encPadding >> 8);\n streamBuffer[streamBufferPos + bytesWritten + 2] = 255 & encPadding;\n bytesWritten += 3;\n streamBuffer[streamBufferPos + bytesWritten] = 255 & misc;\n bytesWritten++;\n streamBuffer[streamBufferPos + bytesWritten++] = 0;\n createShort(streamBuffer, streamBufferPos + bytesWritten, gfp.preset);\n bytesWritten += 2;\n createInteger(streamBuffer, streamBufferPos + bytesWritten, musicLength);\n bytesWritten += 4;\n createShort(streamBuffer, streamBufferPos + bytesWritten, musicCRC);\n bytesWritten += 2;\n for (var i = 0; i < bytesWritten; i++) {\n crc = crcUpdateLookup(streamBuffer[streamBufferPos + i], crc);\n }\n createShort(streamBuffer, streamBufferPos + bytesWritten, crc);\n bytesWritten += 2;\n return bytesWritten;\n }\n function skipId3v2(fpStream) {\n fpStream.seek(0);\n var id3v2Header = new_byte$1(10);\n fpStream.readFully(id3v2Header);\n var id3v2TagSize;\n if (!new String(id3v2Header, \"ISO-8859-1\").startsWith(\"ID3\")) {\n id3v2TagSize = ((id3v2Header[6] & 127) << 21 | (id3v2Header[7] & 127) << 14 | (id3v2Header[8] & 127) << 7 | id3v2Header[9] & 127) + id3v2Header.length;\n } else {\n id3v2TagSize = 0;\n }\n return id3v2TagSize;\n }\n this.getLameTagFrame = function(gfp, buffer) {\n var gfc = gfp.internal_flags;\n if (!gfp.bWriteVbrTag) {\n return 0;\n }\n if (gfc.Class_ID != Lame.LAME_ID) {\n return 0;\n }\n if (gfc.VBR_seek_table.pos <= 0) {\n return 0;\n }\n if (buffer.length < gfc.VBR_seek_table.TotalFrameSize) {\n return gfc.VBR_seek_table.TotalFrameSize;\n }\n Arrays.fill(buffer, 0, gfc.VBR_seek_table.TotalFrameSize, 0);\n setLameTagFrameHeader(gfp, buffer);\n var toc = new_byte$1(NUMTOCENTRIES);\n if (gfp.free_format) {\n for (var i = 1; i < NUMTOCENTRIES; ++i)\n toc[i] = 255 & 255 * i / 100;\n } else {\n xingSeekTable(gfc.VBR_seek_table, toc);\n }\n var streamIndex = gfc.sideinfo_len;\n if (gfp.error_protection)\n streamIndex -= 2;\n if (gfp.VBR == VbrMode.vbr_off) {\n buffer[streamIndex++] = 255 & VBRTag1.charAt(0);\n buffer[streamIndex++] = 255 & VBRTag1.charAt(1);\n buffer[streamIndex++] = 255 & VBRTag1.charAt(2);\n buffer[streamIndex++] = 255 & VBRTag1.charAt(3);\n } else {\n buffer[streamIndex++] = 255 & VBRTag0.charAt(0);\n buffer[streamIndex++] = 255 & VBRTag0.charAt(1);\n buffer[streamIndex++] = 255 & VBRTag0.charAt(2);\n buffer[streamIndex++] = 255 & VBRTag0.charAt(3);\n }\n createInteger(\n buffer,\n streamIndex,\n FRAMES_FLAG + BYTES_FLAG + TOC_FLAG + VBR_SCALE_FLAG\n );\n streamIndex += 4;\n createInteger(buffer, streamIndex, gfc.VBR_seek_table.nVbrNumFrames);\n streamIndex += 4;\n var streamSize = gfc.VBR_seek_table.nBytesWritten + gfc.VBR_seek_table.TotalFrameSize;\n createInteger(buffer, streamIndex, 0 | streamSize);\n streamIndex += 4;\n System.arraycopy(toc, 0, buffer, streamIndex, toc.length);\n streamIndex += toc.length;\n if (gfp.error_protection) {\n bs.CRC_writeheader(gfc, buffer);\n }\n var crc = 0;\n for (var i = 0; i < streamIndex; i++)\n crc = crcUpdateLookup(buffer[i], crc);\n streamIndex += putLameVBR(gfp, streamSize, buffer, streamIndex, crc);\n return gfc.VBR_seek_table.TotalFrameSize;\n };\n this.putVbrTag = function(gfp, stream) {\n var gfc = gfp.internal_flags;\n if (gfc.VBR_seek_table.pos <= 0)\n return -1;\n stream.seek(stream.length());\n if (stream.length() == 0)\n return -1;\n var id3v2TagSize = skipId3v2(stream);\n stream.seek(id3v2TagSize);\n var buffer = new_byte$1(MAXFRAMESIZE);\n var bytes = getLameTagFrame(gfp, buffer);\n if (bytes > buffer.length) {\n return -1;\n }\n if (bytes < 1) {\n return 0;\n }\n stream.write(buffer, 0, bytes);\n return 0;\n };\n}\nvar new_byte = common.new_byte;\nvar assert = common.assert;\nfunction GetAudio() {\n this.setModules = function(parse2, mpg2) {\n };\n}\nfunction Parse() {\n this.setModules = function(ver2, id32, pre2) {\n };\n}\nfunction MPGLib() {\n}\nfunction ID3Tag() {\n this.setModules = function(_bits, _ver) {\n };\n}\nfunction Mp3Encoder$1(channels, samplerate, kbps) {\n if (arguments.length != 3) {\n console.error(\"WARN: Mp3Encoder(channels, samplerate, kbps) not specified\");\n channels = 1;\n samplerate = 44100;\n kbps = 128;\n }\n var lame = new Lame$1();\n var gaud = new GetAudio();\n var ga = new GainAnalysis$1();\n var bs = new BitStream$1();\n var p2 = new Presets();\n var qupvt = new QuantizePVT();\n var qu = new Quantize();\n var vbr = new VBRTag();\n var ver = new Version();\n var id3 = new ID3Tag();\n var rv = new Reservoir();\n var tak = new Takehiro();\n var parse = new Parse();\n var mpg = new MPGLib();\n lame.setModules(ga, bs, p2, qupvt, qu, vbr, ver, id3, mpg);\n bs.setModules(ga, mpg, ver, vbr);\n id3.setModules(bs, ver);\n p2.setModules(lame);\n qu.setModules(bs, rv, qupvt, tak);\n qupvt.setModules(tak, rv, lame.enc.psy);\n rv.setModules(bs);\n tak.setModules(qupvt);\n vbr.setModules(lame, bs, ver);\n gaud.setModules(parse, mpg);\n parse.setModules(ver, id3, p2);\n var gfp = lame.lame_init();\n gfp.num_channels = channels;\n gfp.in_samplerate = samplerate;\n gfp.brate = kbps;\n gfp.mode = MPEGMode.STEREO;\n gfp.quality = 3;\n gfp.bWriteVbrTag = false;\n gfp.disable_reservoir = true;\n gfp.write_id3tag_automatic = false;\n lame.lame_init_params(gfp);\n var maxSamples = 1152;\n var mp3buf_size = 0 | 1.25 * maxSamples + 7200;\n var mp3buf = new_byte(mp3buf_size);\n this.encodeBuffer = function(left, right) {\n if (channels == 1) {\n right = left;\n }\n assert(left.length == right.length);\n if (left.length > maxSamples) {\n maxSamples = left.length;\n mp3buf_size = 0 | 1.25 * maxSamples + 7200;\n mp3buf = new_byte(mp3buf_size);\n }\n var _sz = lame.lame_encode_buffer(\n gfp,\n left,\n right,\n left.length,\n mp3buf,\n 0,\n mp3buf_size\n );\n return new Int8Array(mp3buf.subarray(0, _sz));\n };\n this.flush = function() {\n var _sz = lame.lame_encode_flush(gfp, mp3buf, 0, mp3buf_size);\n return new Int8Array(mp3buf.subarray(0, _sz));\n };\n}\nfunction fourccToInt(fourcc) {\n return fourcc.charCodeAt(0) << 24 | fourcc.charCodeAt(1) << 16 | fourcc.charCodeAt(2) << 8 | fourcc.charCodeAt(3);\n}\nfourccToInt(\"RIFF\");\nfourccToInt(\"WAVE\");\nfourccToInt(\"fmt \");\nfourccToInt(\"data\");\nclass Mp3Encoder {\n constructor(config) {\n this.bitRate = config.bitRate;\n this.sampleRate = config.sampleRate;\n this.dataBuffer = [];\n this.encoder = new Mp3Encoder$1(1, this.sampleRate, this.bitRate);\n }\n encode(arrayBuffer) {\n const maxSamples = 1152;\n const samples = this._convertBuffer(arrayBuffer);\n let remaining = samples.length;\n for (let i = 0; remaining >= 0; i += maxSamples) {\n const left = samples.subarray(i, i + maxSamples);\n const buffer = this.encoder.encodeBuffer(left);\n this.dataBuffer.push(new Int8Array(buffer));\n remaining -= maxSamples;\n }\n }\n finish() {\n this.dataBuffer.push(this.encoder.flush());\n const blob = new Blob(this.dataBuffer, { type: \"audio/mp3\" });\n this.dataBuffer = [];\n return {\n id: Date.now(),\n blob,\n url: URL.createObjectURL(blob)\n };\n }\n _floatTo16BitPCM(input, output) {\n for (let i = 0; i < input.length; i++) {\n const s = Math.max(-1, Math.min(1, input[i]));\n output[i] = s < 0 ? s * 32768 : s * 32767;\n }\n }\n _convertBuffer(arrayBuffer) {\n const data = new Float32Array(arrayBuffer);\n const out = new Int16Array(arrayBuffer.length);\n this._floatTo16BitPCM(data, out);\n return out;\n }\n}\nclass Recorder {\n constructor(options2 = {}) {\n this.beforeRecording = options2.beforeRecording;\n this.pauseRecording = options2.pauseRecording;\n this.afterRecording = options2.afterRecording;\n this.micFailed = options2.micFailed;\n this.encoderOptions = {\n bitRate: options2.bitRate,\n sampleRate: options2.sampleRate\n };\n this.bufferSize = 4096;\n this.records = [];\n this.isPause = false;\n this.isRecording = false;\n this.duration = 0;\n this.volume = 0;\n this._duration = 0;\n }\n start() {\n const constraints = {\n video: false,\n audio: {\n channelCount: 1,\n echoCancellation: false\n }\n };\n this.beforeRecording && this.beforeRecording(\"start recording\");\n navigator.mediaDevices.getUserMedia(constraints).then(this._micCaptured.bind(this)).catch(this._micError.bind(this));\n this.isPause = false;\n this.isRecording = true;\n if (!this.lameEncoder) {\n this.lameEncoder = new Mp3Encoder(this.encoderOptions);\n }\n }\n stop() {\n this.stream.getTracks().forEach((track2) => track2.stop());\n this.input.disconnect();\n this.processor.disconnect();\n this.context.close();\n let record = null;\n record = this.lameEncoder.finish();\n record.duration = this.duration;\n this.records.push(record);\n this._duration = 0;\n this.duration = 0;\n this.isPause = false;\n this.isRecording = false;\n this.afterRecording && this.afterRecording(record);\n }\n pause() {\n this.stream.getTracks().forEach((track2) => track2.stop());\n this.input.disconnect();\n this.processor.disconnect();\n this._duration = this.duration;\n this.isPause = true;\n this.pauseRecording && this.pauseRecording(\"pause recording\");\n }\n _micCaptured(stream) {\n this.context = new (window.AudioContext || window.webkitAudioContext)();\n this.duration = this._duration;\n this.input = this.context.createMediaStreamSource(stream);\n this.processor = this.context.createScriptProcessor(this.bufferSize, 1, 1);\n this.stream = stream;\n this.processor.onaudioprocess = (ev) => {\n const sample = ev.inputBuffer.getChannelData(0);\n let sum = 0;\n if (this.lameEncoder) {\n this.lameEncoder.encode(sample);\n }\n for (let i = 0; i < sample.length; ++i) {\n sum += sample[i] * sample[i];\n }\n this.duration = parseFloat(this._duration) + parseFloat(this.context.currentTime.toFixed(2));\n this.volume = Math.sqrt(sum / sample.length).toFixed(2);\n };\n this.input.connect(this.processor);\n this.processor.connect(this.context.destination);\n }\n _micError(error) {\n this.micFailed && this.micFailed(error);\n }\n}\nvar isChromium = window.chrome;\nvar winNav = window.navigator;\nvar vendorName = winNav.vendor;\nvar isOpera = typeof window.opr !== \"undefined\";\nvar isIEedge = winNav.userAgent.indexOf(\"Edg\") > -1;\nvar isIOSChrome = winNav.userAgent.match(\"CriOS\");\nfunction detectChrome() {\n if (isIOSChrome) {\n return true;\n } else if (isChromium !== null && typeof isChromium !== \"undefined\" && vendorName === \"Google Inc.\" && isOpera === false && isIEedge === false) {\n return true;\n } else {\n return false;\n }\n}\nfunction detectMobile() {\n var userAgent = getUserAgent();\n var userAgentPart = userAgent.substr(0, 4);\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(\n userAgent\n ) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i.test(\n userAgentPart\n );\n}\nfunction getUserAgent() {\n var userAgent = navigator.userAgent || navigator.vendor || window.opera || null;\n if (!userAgent)\n throw new Error(\"Failed to look for user agent information.\");\n return userAgent;\n}\nconst _sfc_main$a = {\n name: \"RoomFooter\",\n components: {\n SvgIcon,\n EmojiPickerContainer,\n RoomFiles,\n RoomMessageReply,\n RoomUsersTag,\n RoomEmojis,\n RoomTemplatesText\n },\n directives: {\n clickOutside: vClickOutside\n },\n props: {\n room: { type: Object, required: true },\n roomId: { type: [String, Number], required: true },\n roomMessage: { type: String, default: null },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n textMessages: { type: Object, required: true },\n showSendIcon: { type: Boolean, required: true },\n showFiles: { type: Boolean, required: true },\n showAudio: { type: Boolean, required: true },\n showEmojis: { type: Boolean, required: true },\n showFooter: { type: Boolean, required: true },\n acceptedFiles: { type: String, required: true },\n textareaActionEnabled: { type: Boolean, required: true },\n textareaAutoFocus: { type: Boolean, required: true },\n userTagsEnabled: { type: Boolean, required: true },\n emojisSuggestionEnabled: { type: Boolean, required: true },\n templatesText: { type: Array, default: null },\n audioBitRate: { type: Number, required: true },\n audioSampleRate: { type: Number, required: true },\n initReplyMessage: { type: Object, default: null },\n initEditMessage: { type: Object, default: null },\n droppedFiles: { type: Array, default: null },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"edit-message\",\n \"send-message\",\n \"update-edited-message-id\",\n \"textarea-action-handler\",\n \"typing-message\"\n ],\n data() {\n return {\n message: \"\",\n editedMessage: {},\n messageReply: null,\n cursorRangePosition: null,\n files: [],\n fileDialog: false,\n selectUsersTagItem: null,\n selectEmojiItem: null,\n selectTemplatesTextItem: null,\n format: \"mp3\",\n activeUpOrDownEmojis: null,\n activeUpOrDownUsersTag: null,\n activeUpOrDownTemplatesText: null,\n emojisDB: new Database({ dataSource: this.emojiDataSource }),\n emojiOpened: false,\n keepKeyboardOpen: false,\n filteredEmojis: [],\n filteredUsersTag: [],\n selectedUsersTag: [],\n filteredTemplatesText: [],\n recorder: this.initRecorder(),\n isRecording: false\n };\n },\n computed: {\n isMessageEmpty() {\n return !this.files.length && !this.message.trim();\n },\n isFileLoading() {\n return this.files.some((e) => e.loading);\n },\n recordedTime() {\n return new Date(this.recorder.duration * 1e3).toISOString().substr(14, 5);\n },\n shadowFooter() {\n return !!this.filteredEmojis.length || !!this.filteredUsersTag.length || !!this.filteredTemplatesText.length || !!this.files.length || !!this.messageReply;\n }\n },\n watch: {\n roomId() {\n this.resetMessage(true, true);\n if (this.roomMessage) {\n this.message = this.roomMessage;\n setTimeout(() => this.onChangeInput());\n }\n },\n message(val) {\n this.getTextareaRef().value = val;\n },\n roomMessage: {\n immediate: true,\n handler(val) {\n if (val)\n this.message = this.roomMessage;\n }\n },\n editedMessage(val) {\n this.$emit(\"update-edited-message-id\", val._id);\n },\n initReplyMessage(val) {\n if (val) {\n this.replyMessage(val);\n }\n },\n initEditMessage(val) {\n if (val) {\n this.editMessage(val);\n }\n },\n droppedFiles(val) {\n if (val) {\n this.onFileChange(val);\n }\n }\n },\n mounted() {\n const isMobile = detectMobile();\n let isComposed = true;\n this.getTextareaRef().addEventListener(\"keyup\", (e) => {\n if (e.key === \"Enter\" && !e.shiftKey && !this.fileDialog) {\n if (isMobile) {\n this.message = this.message + \"\\n\";\n setTimeout(() => this.onChangeInput());\n } else if (isComposed && !this.filteredEmojis.length && !this.filteredUsersTag.length && !this.filteredTemplatesText.length) {\n this.sendMessage();\n }\n }\n isComposed = !e.isComposing;\n setTimeout(() => {\n this.updateFooterLists();\n }, 60);\n });\n this.getTextareaRef().addEventListener(\"click\", () => {\n if (isMobile)\n this.keepKeyboardOpen = true;\n this.updateFooterLists();\n });\n this.getTextareaRef().addEventListener(\"blur\", () => {\n setTimeout(() => {\n this.resetFooterList();\n }, 100);\n if (isMobile)\n setTimeout(() => this.keepKeyboardOpen = false);\n });\n },\n beforeUnmount() {\n this.stopRecorder();\n },\n methods: {\n getTextareaRef() {\n return this.$refs.roomTextarea;\n },\n focusTextarea(disableMobileFocus) {\n if (detectMobile() && disableMobileFocus)\n return;\n if (!this.getTextareaRef())\n return;\n this.getTextareaRef().focus();\n if (this.cursorRangePosition) {\n setTimeout(() => {\n const offset = detectChrome() ? 0 : 1;\n this.getTextareaRef().setSelectionRange(\n this.cursorRangePosition + offset,\n this.cursorRangePosition + offset\n );\n this.cursorRangePosition = null;\n });\n }\n },\n onChangeInput() {\n var _a, _b, _c;\n if (((_a = this.getTextareaRef()) == null ? void 0 : _a.value) || ((_b = this.getTextareaRef()) == null ? void 0 : _b.value) === \"\") {\n this.message = (_c = this.getTextareaRef()) == null ? void 0 : _c.value;\n }\n this.keepKeyboardOpen = true;\n this.resizeTextarea();\n this.$emit(\"typing-message\", this.message);\n },\n resizeTextarea() {\n const el = this.getTextareaRef();\n if (!el)\n return;\n const padding = window.getComputedStyle(el, null).getPropertyValue(\"padding-top\").replace(\"px\", \"\");\n el.style.height = 0;\n el.style.height = el.scrollHeight - padding * 2 + \"px\";\n },\n escapeTextarea() {\n if (this.filteredEmojis.length)\n this.filteredEmojis = [];\n else if (this.filteredUsersTag.length)\n this.filteredUsersTag = [];\n else if (this.filteredTemplatesText.length) {\n this.filteredTemplatesText = [];\n } else\n this.resetMessage();\n },\n onPasteImage(pasteEvent) {\n var _a;\n const items = (_a = pasteEvent.clipboardData) == null ? void 0 : _a.items;\n if (items) {\n Array.from(items).forEach((item) => {\n if (item.type.includes(\"image\")) {\n const blob = item.getAsFile();\n this.onFileChange([blob]);\n }\n });\n }\n },\n updateActiveUpOrDown(event, direction) {\n if (this.filteredEmojis.length) {\n this.activeUpOrDownEmojis = direction;\n event.preventDefault();\n } else if (this.filteredUsersTag.length) {\n this.activeUpOrDownUsersTag = direction;\n event.preventDefault();\n } else if (this.filteredTemplatesText.length) {\n this.activeUpOrDownTemplatesText = direction;\n event.preventDefault();\n }\n },\n selectItem() {\n if (this.filteredEmojis.length) {\n this.selectEmojiItem = true;\n } else if (this.filteredUsersTag.length) {\n this.selectUsersTagItem = true;\n } else if (this.filteredTemplatesText.length) {\n this.selectTemplatesTextItem = true;\n }\n },\n selectEmoji(emoji) {\n this.selectEmojiItem = false;\n if (!emoji)\n return;\n const { position, endPosition } = this.getCharPosition(\":\");\n this.message = this.message.substr(0, position - 1) + emoji + this.message.substr(endPosition, this.message.length - 1);\n this.cursorRangePosition = position;\n this.focusTextarea();\n },\n selectTemplateText(template) {\n this.selectTemplatesTextItem = false;\n if (!template)\n return;\n const { position, endPosition } = this.getCharPosition(\"/\");\n const space = this.message.substr(endPosition, endPosition).length ? \"\" : \" \";\n this.message = this.message.substr(0, position - 1) + template.text + space + this.message.substr(endPosition, this.message.length - 1);\n this.cursorRangePosition = position + template.text.length + space.length + 1;\n this.focusTextarea();\n },\n addEmoji(emoji) {\n this.message += emoji.unicode;\n this.focusTextarea(true);\n },\n launchFilePicker() {\n this.$refs.file.value = \"\";\n this.$refs.file.click();\n },\n async onFileChange(files) {\n this.fileDialog = true;\n this.focusTextarea();\n Array.from(files).forEach(async (file) => {\n const fileURL = URL.createObjectURL(file);\n const typeIndex = file.name.lastIndexOf(\".\");\n this.files.push({\n loading: true,\n name: file.name.substring(0, typeIndex),\n size: file.size,\n type: file.type,\n extension: file.name.substring(typeIndex + 1),\n localUrl: fileURL\n });\n const blobFile = await fetch(fileURL).then((res) => res.blob());\n let loadedFile = this.files.find((file2) => file2.localUrl === fileURL);\n if (loadedFile) {\n loadedFile.blob = blobFile;\n loadedFile.loading = false;\n delete loadedFile.loading;\n }\n });\n setTimeout(() => this.fileDialog = false, 500);\n },\n removeFile(index) {\n this.files.splice(index, 1);\n this.focusTextarea();\n },\n toggleRecorder(recording) {\n this.isRecording = recording;\n if (!this.recorder.isRecording) {\n setTimeout(() => this.recorder.start(), 200);\n } else {\n try {\n this.recorder.stop();\n const record = this.recorder.records[0];\n this.files.push({\n blob: record.blob,\n name: `audio.${this.format}`,\n size: record.blob.size,\n duration: record.duration,\n type: record.blob.type,\n audio: true,\n localUrl: URL.createObjectURL(record.blob)\n });\n this.recorder = this.initRecorder();\n this.sendMessage();\n } catch {\n setTimeout(() => this.stopRecorder(), 100);\n }\n }\n },\n stopRecorder() {\n if (this.recorder.isRecording) {\n try {\n this.recorder.stop();\n this.recorder = this.initRecorder();\n } catch {\n setTimeout(() => this.stopRecorder(), 100);\n }\n }\n },\n textareaActionHandler() {\n this.$emit(\"textarea-action-handler\", this.message);\n },\n sendMessage() {\n var _a;\n let message = this.message.trim();\n if (!this.files.length && !message)\n return;\n if (this.isFileLoading)\n return;\n this.selectedUsersTag.forEach((user) => {\n message = message.replace(\n `@${user.username}`,\n `${user._id}`\n );\n });\n const files = this.files.length ? this.files : null;\n if (this.editedMessage._id) {\n if (this.editedMessage.content !== message || ((_a = this.editedMessage.files) == null ? void 0 : _a.length) || this.files.length) {\n this.$emit(\"edit-message\", {\n messageId: this.editedMessage._id,\n newContent: message,\n files,\n replyMessage: this.messageReply,\n usersTag: this.selectedUsersTag\n });\n }\n } else {\n this.$emit(\"send-message\", {\n content: message,\n files,\n replyMessage: this.messageReply,\n usersTag: this.selectedUsersTag\n });\n }\n this.resetMessage(true);\n },\n editMessage(message) {\n this.resetMessage();\n this.editedMessage = { ...message };\n let messageContent = message.content;\n const initialContent = messageContent;\n const firstTag = \"\";\n const secondTag = \"\";\n const usertags = [\n ...messageContent.matchAll(new RegExp(firstTag, \"gi\"))\n ].map((a) => a.index);\n usertags.forEach((index) => {\n const userId = initialContent.substring(\n index + firstTag.length,\n initialContent.indexOf(secondTag, index)\n );\n const user = this.room.users.find((user2) => user2._id === userId);\n messageContent = messageContent.replace(\n `${firstTag}${userId}${secondTag}`,\n `@${(user == null ? void 0 : user.username) || \"unknown\"}`\n );\n this.selectUserTag(user, true);\n });\n this.message = messageContent;\n if (message.files) {\n this.files = [...message.files];\n }\n setTimeout(() => this.resizeTextarea());\n },\n replyMessage(message) {\n this.editedMessage = {};\n this.messageReply = message;\n this.focusTextarea();\n },\n updateFooterLists() {\n this.updateFooterList(\"@\");\n this.updateFooterList(\":\");\n this.updateFooterList(\"/\");\n },\n updateFooterList(tagChar) {\n if (!this.getTextareaRef())\n return;\n if (tagChar === \":\" && !this.emojisSuggestionEnabled) {\n return;\n }\n if (tagChar === \"@\" && (!this.userTagsEnabled || !this.room.users)) {\n return;\n }\n if (tagChar === \"/\" && !this.templatesText) {\n return;\n }\n const textareaCursorPosition = this.getTextareaRef().selectionStart;\n let position = textareaCursorPosition;\n while (position > 0 && this.message.charAt(position - 1) !== tagChar && (this.message.charAt(position - 1) !== \" \" || tagChar !== \":\")) {\n position--;\n }\n const beforeTag = this.message.charAt(position - 2);\n const notLetterNumber = !beforeTag.match(/^[0-9a-zA-Z]+$/);\n if (this.message.charAt(position - 1) === tagChar && (!beforeTag || beforeTag === \" \" || notLetterNumber)) {\n const query = this.message.substring(position, textareaCursorPosition);\n if (tagChar === \":\") {\n this.updateEmojis(query);\n } else if (tagChar === \"@\") {\n this.updateShowUsersTag(query);\n } else if (tagChar === \"/\") {\n this.updateShowTemplatesText(query);\n }\n } else {\n this.resetFooterList(tagChar);\n }\n },\n updateShowUsersTag(query) {\n this.filteredUsersTag = filteredItems(\n this.room.users,\n \"username\",\n query,\n true\n ).filter((user) => user._id !== this.currentUserId);\n },\n selectUserTag(user, editMode = false) {\n this.selectUsersTagItem = false;\n if (!user)\n return;\n const { position, endPosition } = this.getCharPosition(\"@\");\n const space = this.message.substr(endPosition, endPosition).length ? \"\" : \" \";\n this.message = this.message.substr(0, position) + user.username + space + this.message.substr(endPosition, this.message.length - 1);\n this.selectedUsersTag = [...this.selectedUsersTag, { ...user }];\n if (!editMode) {\n this.cursorRangePosition = position + user.username.length + space.length + 1;\n }\n this.focusTextarea();\n },\n updateShowTemplatesText(query) {\n this.filteredTemplatesText = filteredItems(\n this.templatesText,\n \"tag\",\n query,\n true\n );\n },\n getCharPosition(tagChar) {\n const cursorPosition = this.getTextareaRef().selectionStart;\n let position = cursorPosition;\n while (position > 0 && this.message.charAt(position - 1) !== tagChar) {\n position--;\n }\n const endPosition = this.getTextareaRef().selectionEnd;\n return { position, endPosition };\n },\n async updateEmojis(query) {\n if (!query)\n return;\n const emojis = await this.emojisDB.getEmojiBySearchQuery(query);\n this.filteredEmojis = emojis.map((emoji) => emoji.unicode);\n },\n resetFooterList(tagChar = null) {\n if (tagChar === \":\") {\n this.filteredEmojis = [];\n } else if (tagChar === \"@\") {\n this.filteredUsersTag = [];\n } else if (tagChar === \"/\") {\n this.filteredTemplatesText = [];\n } else {\n this.filteredEmojis = [];\n this.filteredUsersTag = [];\n this.filteredTemplatesText = [];\n }\n },\n resetMessage(disableMobileFocus = false, initRoom = false) {\n if (!initRoom) {\n this.$emit(\"typing-message\", null);\n }\n this.selectedUsersTag = [];\n this.resetFooterList();\n this.resetTextareaSize();\n this.message = \"\";\n this.editedMessage = {};\n this.messageReply = null;\n this.files = [];\n this.emojiOpened = false;\n this.preventKeyboardFromClosing();\n if (this.textareaAutoFocus || !initRoom) {\n setTimeout(() => this.focusTextarea(disableMobileFocus));\n }\n },\n resetTextareaSize() {\n if (this.getTextareaRef()) {\n this.getTextareaRef().style.height = \"20px\";\n }\n },\n preventKeyboardFromClosing() {\n if (this.keepKeyboardOpen)\n this.getTextareaRef().focus();\n },\n initRecorder() {\n this.isRecording = false;\n return new Recorder({\n bitRate: Number(this.audioBitRate),\n sampleRate: Number(this.audioSampleRate),\n beforeRecording: null,\n afterRecording: null,\n pauseRecording: null,\n micFailed: this.micFailed\n });\n },\n micFailed() {\n this.isRecording = false;\n this.recorder = this.initRecorder();\n }\n }\n};\nconst _hoisted_1$a = {\n key: 0,\n class: \"vac-icon-textarea-left\"\n};\nconst _hoisted_2$8 = /* @__PURE__ */ createBaseVNode(\"div\", { class: \"vac-dot-audio-record\" }, null, -1);\nconst _hoisted_3$8 = { class: \"vac-dot-audio-record-time\" };\nconst _hoisted_4$8 = [\"placeholder\"];\nconst _hoisted_5$6 = { class: \"vac-icon-textarea\" };\nconst _hoisted_6$3 = { key: 1 };\nconst _hoisted_7$3 = [\"accept\"];\nfunction _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_room_emojis = resolveComponent(\"room-emojis\");\n const _component_room_users_tag = resolveComponent(\"room-users-tag\");\n const _component_room_templates_text = resolveComponent(\"room-templates-text\");\n const _component_room_message_reply = resolveComponent(\"room-message-reply\");\n const _component_room_files = resolveComponent(\"room-files\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_emoji_picker_container = resolveComponent(\"emoji-picker-container\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return withDirectives((openBlock(), createElementBlock(\"div\", {\n id: \"room-footer\",\n class: normalizeClass([\"vac-room-footer\", {\n \"vac-app-box-shadow\": $options.shadowFooter\n }])\n }, [\n createVNode(_component_room_emojis, {\n \"filtered-emojis\": $data.filteredEmojis,\n \"select-item\": $data.selectEmojiItem,\n \"active-up-or-down\": $data.activeUpOrDownEmojis,\n onSelectEmoji: _cache[0] || (_cache[0] = ($event) => $options.selectEmoji($event)),\n onActivateItem: _cache[1] || (_cache[1] = ($event) => $data.activeUpOrDownEmojis = 0)\n }, null, 8, [\"filtered-emojis\", \"select-item\", \"active-up-or-down\"]),\n createVNode(_component_room_users_tag, {\n \"filtered-users-tag\": $data.filteredUsersTag,\n \"select-item\": $data.selectUsersTagItem,\n \"active-up-or-down\": $data.activeUpOrDownUsersTag,\n onSelectUserTag: _cache[2] || (_cache[2] = ($event) => $options.selectUserTag($event)),\n onActivateItem: _cache[3] || (_cache[3] = ($event) => $data.activeUpOrDownUsersTag = 0)\n }, null, 8, [\"filtered-users-tag\", \"select-item\", \"active-up-or-down\"]),\n createVNode(_component_room_templates_text, {\n \"filtered-templates-text\": $data.filteredTemplatesText,\n \"select-item\": $data.selectTemplatesTextItem,\n \"active-up-or-down\": $data.activeUpOrDownTemplatesText,\n onSelectTemplateText: _cache[4] || (_cache[4] = ($event) => $options.selectTemplateText($event)),\n onActivateItem: _cache[5] || (_cache[5] = ($event) => $data.activeUpOrDownTemplatesText = 0)\n }, null, 8, [\"filtered-templates-text\", \"select-item\", \"active-up-or-down\"]),\n createVNode(_component_room_message_reply, {\n room: $props.room,\n \"message-reply\": $data.messageReply,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n onResetMessage: $options.resetMessage\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"room\", \"message-reply\", \"text-formatting\", \"link-options\", \"onResetMessage\"]),\n createVNode(_component_room_files, {\n files: $data.files,\n onRemoveFile: $options.removeFile,\n onResetMessage: $options.resetMessage\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"files\", \"onRemoveFile\", \"onResetMessage\"]),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-box-footer\", { \"vac-box-footer-border\": !$data.files.length }])\n }, [\n $props.showAudio && !$data.files.length ? (openBlock(), createElementBlock(\"div\", _hoisted_1$a, [\n $data.isRecording ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-icon-audio-stop\",\n onClick: _cache[6] || (_cache[6] = (...args) => $options.stopRecorder && $options.stopRecorder(...args))\n }, [\n renderSlot(_ctx.$slots, \"audio-stop-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"close-outline\" })\n ])\n ]),\n _hoisted_2$8,\n createBaseVNode(\"div\", _hoisted_3$8, toDisplayString($options.recordedTime), 1),\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-icon-audio-confirm\",\n onClick: _cache[7] || (_cache[7] = ($event) => $options.toggleRecorder(false))\n }, [\n renderSlot(_ctx.$slots, \"audio-check-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"checkmark\" })\n ])\n ])\n ], 64)) : (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"vac-svg-button\",\n onClick: _cache[8] || (_cache[8] = ($event) => $options.toggleRecorder(true))\n }, [\n renderSlot(_ctx.$slots, \"microphone-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"microphone\",\n class: \"vac-icon-microphone\"\n })\n ])\n ]))\n ])) : createCommentVNode(\"\", true),\n createBaseVNode(\"textarea\", {\n id: \"roomTextarea\",\n ref: \"roomTextarea\",\n placeholder: $props.textMessages.TYPE_MESSAGE,\n class: normalizeClass([\"vac-textarea\", {\n \"vac-textarea-outline\": $data.editedMessage._id\n }]),\n style: {\n \"min-height\": `20px`,\n \"padding-left\": `12px`\n },\n onInput: _cache[9] || (_cache[9] = (...args) => $options.onChangeInput && $options.onChangeInput(...args)),\n onKeydown: [\n _cache[10] || (_cache[10] = withKeys((...args) => $options.escapeTextarea && $options.escapeTextarea(...args), [\"esc\"])),\n _cache[11] || (_cache[11] = withKeys(withModifiers((...args) => $options.selectItem && $options.selectItem(...args), [\"exact\", \"prevent\"]), [\"enter\"])),\n _cache[13] || (_cache[13] = withKeys(withModifiers(() => {\n }, [\"exact\", \"prevent\"]), [\"tab\"])),\n _cache[14] || (_cache[14] = withKeys((...args) => $options.selectItem && $options.selectItem(...args), [\"tab\"])),\n _cache[15] || (_cache[15] = withKeys(($event) => $options.updateActiveUpOrDown($event, -1), [\"up\"])),\n _cache[16] || (_cache[16] = withKeys(($event) => $options.updateActiveUpOrDown($event, 1), [\"down\"]))\n ],\n onPaste: _cache[12] || (_cache[12] = (...args) => $options.onPasteImage && $options.onPasteImage(...args))\n }, null, 42, _hoisted_4$8),\n createBaseVNode(\"div\", _hoisted_5$6, [\n $data.editedMessage._id ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-svg-button\",\n onClick: _cache[17] || (_cache[17] = (...args) => $options.resetMessage && $options.resetMessage(...args))\n }, [\n renderSlot(_ctx.$slots, \"edit-close-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"close-outline\" })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.showEmojis ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_6$3, [\n renderSlot(_ctx.$slots, \"emoji-picker\", mergeProps({ emojiOpened: $data.emojiOpened }, { addEmoji: $options.addEmoji }), () => [\n createVNode(_component_emoji_picker_container, {\n \"emoji-opened\": $data.emojiOpened,\n \"position-top\": true,\n \"emoji-data-source\": $props.emojiDataSource,\n onAddEmoji: $options.addEmoji,\n onOpenEmoji: _cache[18] || (_cache[18] = ($event) => $data.emojiOpened = $event)\n }, {\n \"emoji-picker-icon\": withCtx(() => [\n renderSlot(_ctx.$slots, \"emoji-picker-icon\")\n ]),\n _: 3\n }, 8, [\"emoji-opened\", \"emoji-data-source\", \"onAddEmoji\"])\n ])\n ])), [\n [_directive_click_outside, () => $data.emojiOpened = false]\n ]) : createCommentVNode(\"\", true),\n $props.showFiles ? (openBlock(), createElementBlock(\"div\", {\n key: 2,\n class: \"vac-svg-button\",\n onClick: _cache[19] || (_cache[19] = (...args) => $options.launchFilePicker && $options.launchFilePicker(...args))\n }, [\n renderSlot(_ctx.$slots, \"paperclip-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"paperclip\" })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.textareaActionEnabled ? (openBlock(), createElementBlock(\"div\", {\n key: 3,\n class: \"vac-svg-button\",\n onClick: _cache[20] || (_cache[20] = (...args) => $options.textareaActionHandler && $options.textareaActionHandler(...args))\n }, [\n renderSlot(_ctx.$slots, \"custom-action-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"deleted\" })\n ])\n ])) : createCommentVNode(\"\", true),\n $props.showFiles ? (openBlock(), createElementBlock(\"input\", {\n key: 4,\n ref: \"file\",\n type: \"file\",\n multiple: \"\",\n accept: $props.acceptedFiles,\n style: { \"display\": \"none\" },\n onChange: _cache[21] || (_cache[21] = ($event) => $options.onFileChange($event.target.files))\n }, null, 40, _hoisted_7$3)) : createCommentVNode(\"\", true),\n $props.showSendIcon ? (openBlock(), createElementBlock(\"div\", {\n key: 5,\n class: normalizeClass([\"vac-svg-button\", { \"vac-send-disabled\": $options.isMessageEmpty }]),\n onClick: _cache[22] || (_cache[22] = (...args) => $options.sendMessage && $options.sendMessage(...args))\n }, [\n renderSlot(_ctx.$slots, \"send-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"send\",\n param: $options.isMessageEmpty || $options.isFileLoading ? \"disabled\" : \"\"\n }, null, 8, [\"param\"])\n ])\n ], 2)) : createCommentVNode(\"\", true)\n ])\n ], 2)\n ], 2)), [\n [vShow, Object.keys($props.room).length && $props.showFooter]\n ]);\n}\nvar RoomFooter = /* @__PURE__ */ _export_sfc(_sfc_main$a, [[\"render\", _sfc_render$a]]);\nconst _sfc_main$9 = {\n name: \"MessageReply\",\n components: { AudioPlayer, SvgIcon, FormatMessage },\n props: {\n message: { type: Object, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n roomUsers: { type: Array, required: true }\n },\n computed: {\n replyUsername() {\n const { senderId } = this.message.replyMessage;\n const replyUser = this.roomUsers.find((user) => user._id === senderId);\n return replyUser ? replyUser.username : \"\";\n },\n firstFile() {\n var _a, _b;\n return ((_b = (_a = this.message.replyMessage) == null ? void 0 : _a.files) == null ? void 0 : _b.length) ? this.message.replyMessage.files[0] : {};\n },\n isAudio() {\n return isAudioFile(this.firstFile);\n },\n isImage() {\n return isImageFile(this.firstFile);\n },\n isVideo() {\n return isVideoFile(this.firstFile);\n },\n isOtherFile() {\n var _a;\n return ((_a = this.message.replyMessage.files) == null ? void 0 : _a.length) && !this.isAudio && !this.isVideo && !this.isImage;\n }\n }\n};\nconst _hoisted_1$9 = { class: \"vac-reply-message\" };\nconst _hoisted_2$7 = { class: \"vac-reply-username\" };\nconst _hoisted_3$7 = {\n key: 0,\n class: \"vac-image-reply-container\"\n};\nconst _hoisted_4$7 = {\n key: 1,\n class: \"vac-video-reply-container\"\n};\nconst _hoisted_5$5 = { controls: \"\" };\nconst _hoisted_6$2 = [\"src\"];\nconst _hoisted_7$2 = {\n key: 3,\n class: \"vac-file-container\"\n};\nconst _hoisted_8$1 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_9$1 = {\n key: 0,\n class: \"vac-text-ellipsis vac-text-extension\"\n};\nconst _hoisted_10$1 = { class: \"vac-reply-content\" };\nfunction _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_audio_player = resolveComponent(\"audio-player\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_format_message = resolveComponent(\"format-message\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$9, [\n createBaseVNode(\"div\", _hoisted_2$7, toDisplayString($options.replyUsername), 1),\n $options.isImage ? (openBlock(), createElementBlock(\"div\", _hoisted_3$7, [\n createBaseVNode(\"div\", {\n class: \"vac-message-image vac-message-image-reply\",\n style: normalizeStyle({\n \"background-image\": `url('${$options.firstFile.url}')`\n })\n }, null, 4)\n ])) : $options.isVideo ? (openBlock(), createElementBlock(\"div\", _hoisted_4$7, [\n createBaseVNode(\"video\", _hoisted_5$5, [\n createBaseVNode(\"source\", {\n src: $options.firstFile.url\n }, null, 8, _hoisted_6$2)\n ])\n ])) : $options.isAudio ? (openBlock(), createBlock(_component_audio_player, {\n key: 2,\n src: $options.firstFile.url,\n \"message-selection-enabled\": false,\n onUpdateProgressTime: _cache[0] || (_cache[0] = ($event) => _ctx.progressTime = $event),\n onHoverAudioProgress: _cache[1] || (_cache[1] = ($event) => _ctx.hoverAudioProgress = $event)\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"src\"])) : $options.isOtherFile ? (openBlock(), createElementBlock(\"div\", _hoisted_7$2, [\n createBaseVNode(\"div\", null, [\n renderSlot(_ctx.$slots, \"file-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"file\" })\n ])\n ]),\n createBaseVNode(\"div\", _hoisted_8$1, toDisplayString($options.firstFile.name), 1),\n $options.firstFile.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_9$1, toDisplayString($options.firstFile.extension), 1)) : createCommentVNode(\"\", true)\n ])) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", _hoisted_10$1, [\n createVNode(_component_format_message, {\n \"message-id\": $props.message.replyMessage._id,\n content: $props.message.replyMessage.content,\n users: $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n reply: true\n }, null, 8, [\"message-id\", \"content\", \"users\", \"text-formatting\", \"link-options\"])\n ])\n ]);\n}\nvar MessageReply = /* @__PURE__ */ _export_sfc(_sfc_main$9, [[\"render\", _sfc_render$9]]);\nconst _sfc_main$8 = {\n name: \"ProgressBar\",\n props: {\n progress: { type: Number, default: 0 }\n },\n data() {\n const radius = 35;\n const stroke = 4;\n const normalizedRadius = radius - stroke * 2;\n const circumference = normalizedRadius * 2 * Math.PI;\n return {\n radius,\n stroke,\n normalizedRadius,\n circumference\n };\n },\n computed: {\n strokeDashoffset() {\n return this.circumference - this.progress / 100 * this.circumference;\n }\n }\n};\nconst _hoisted_1$8 = {\n ref: \"progress\",\n class: \"vac-progress-wrapper\"\n};\nconst _hoisted_2$6 = [\"height\", \"width\"];\nconst _hoisted_3$6 = [\"stroke-dasharray\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_4$6 = { class: \"vac-progress-text\" };\nconst _hoisted_5$4 = /* @__PURE__ */ createBaseVNode(\"span\", { class: \"vac-progress-pourcent\" }, \"%\", -1);\nfunction _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createBlock(Transition, {\n name: \"vac-fade-spinner\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n createBaseVNode(\"div\", _hoisted_1$8, [\n (openBlock(), createElementBlock(\"svg\", {\n height: $data.radius * 2,\n width: $data.radius * 2\n }, [\n createBaseVNode(\"circle\", {\n stroke: \"rgba(255, 255, 255, 0.7)\",\n \"stroke-dasharray\": $data.circumference + \" \" + $data.circumference,\n style: normalizeStyle({\n strokeDashoffset: $options.strokeDashoffset,\n strokeLinecap: \"round\"\n }),\n \"stroke-width\": $data.stroke,\n fill: \"transparent\",\n r: $data.normalizedRadius,\n cx: $data.radius,\n cy: $data.radius\n }, null, 12, _hoisted_3$6)\n ], 8, _hoisted_2$6)),\n createBaseVNode(\"div\", {\n class: \"vac-progress-content\",\n style: normalizeStyle({\n height: $data.radius * 2 - 19 + \"px\",\n width: $data.radius * 2 - 19 + \"px\"\n })\n }, [\n createBaseVNode(\"div\", _hoisted_4$6, [\n createTextVNode(toDisplayString($props.progress), 1),\n _hoisted_5$4\n ])\n ], 4)\n ], 512)\n ]),\n _: 1\n });\n}\nvar ProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main$8, [[\"render\", _sfc_render$8]]);\nconst _sfc_main$7 = {\n name: \"MessageFile\",\n components: { SvgIcon, Loader, ProgressBar },\n props: {\n currentUserId: { type: [String, Number], required: true },\n message: { type: Object, required: true },\n file: { type: Object, required: true },\n index: { type: Number, required: true },\n messageSelectionEnabled: { type: Boolean, required: true }\n },\n emits: [\"open-file\"],\n data() {\n return {\n imageResponsive: \"\",\n imageLoading: false,\n imageHover: false\n };\n },\n computed: {\n isImageLoading() {\n return this.file.url.indexOf(\"blob:http\") !== -1 || this.imageLoading;\n },\n isImage() {\n return isImageFile(this.file);\n },\n isVideo() {\n return isVideoFile(this.file);\n }\n },\n watch: {\n file: {\n immediate: true,\n handler() {\n this.checkImgLoad();\n }\n }\n },\n mounted() {\n const ref = this.$refs[\"imageRef\" + this.index];\n if (ref) {\n this.imageResponsive = {\n maxHeight: ref.clientWidth - 18,\n loaderTop: ref.clientHeight / 2 - 9\n };\n }\n },\n methods: {\n checkImgLoad() {\n if (!isImageFile(this.file))\n return;\n this.imageLoading = true;\n const image = new Image();\n image.src = this.file.url;\n image.addEventListener(\"load\", () => this.imageLoading = false);\n },\n openFile(event, action) {\n if (!this.messageSelectionEnabled) {\n event.stopPropagation();\n this.$emit(\"open-file\", { file: this.file, action });\n }\n }\n }\n};\nconst _hoisted_1$7 = { class: \"vac-message-file-container\" };\nconst _hoisted_2$5 = {\n key: 0,\n class: \"vac-image-buttons\"\n};\nconst _hoisted_3$5 = { controls: \"\" };\nconst _hoisted_4$5 = [\"src\"];\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_progress_bar = resolveComponent(\"progress-bar\");\n const _component_loader = resolveComponent(\"loader\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$7, [\n $options.isImage ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref: \"imageRef\" + $props.index,\n class: \"vac-message-image-container\",\n onMouseover: _cache[2] || (_cache[2] = ($event) => $data.imageHover = true),\n onMouseleave: _cache[3] || (_cache[3] = ($event) => $data.imageHover = false),\n onClick: _cache[4] || (_cache[4] = ($event) => $options.openFile($event, \"preview\"))\n }, [\n $props.file.progress >= 0 ? (openBlock(), createBlock(_component_progress_bar, {\n key: 0,\n progress: $props.file.progress,\n style: normalizeStyle({ top: `${$data.imageResponsive.loaderTop}px` })\n }, null, 8, [\"progress\", \"style\"])) : (openBlock(), createBlock(_component_loader, {\n key: 1,\n show: $options.isImageLoading,\n type: \"message-file\",\n \"message-id\": $props.message._id,\n style: normalizeStyle({ top: `${$data.imageResponsive.loaderTop}px` })\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\", \"message-id\", \"style\"])),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-message-image\", {\n \"vac-blur-loading\": $options.isImageLoading && $props.message.senderId === $props.currentUserId\n }]),\n style: normalizeStyle({\n \"background-image\": `url('${$options.isImageLoading ? $props.file.preview || $props.file.url : $props.file.url}')`,\n \"max-height\": `${$data.imageResponsive.maxHeight}px`\n })\n }, [\n createVNode(Transition, { name: \"vac-fade-image\" }, {\n default: withCtx(() => [\n !$props.messageSelectionEnabled && $data.imageHover && !$options.isImageLoading ? (openBlock(), createElementBlock(\"div\", _hoisted_2$5, [\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-button-view\",\n onClick: _cache[0] || (_cache[0] = ($event) => $options.openFile($event, \"preview\"))\n }, [\n renderSlot(_ctx.$slots, \"eye-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, { name: \"eye\" })\n ])\n ]),\n createBaseVNode(\"div\", {\n class: \"vac-svg-button vac-button-download\",\n onClick: _cache[1] || (_cache[1] = ($event) => $options.openFile($event, \"download\"))\n }, [\n renderSlot(_ctx.$slots, \"document-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, { name: \"document\" })\n ])\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ], 6)\n ], 544)) : $options.isVideo ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"vac-video-container\",\n onClick: _cache[5] || (_cache[5] = withModifiers(($event) => $options.openFile($event, \"preview\"), [\"prevent\"]))\n }, [\n $props.file.progress >= 0 ? (openBlock(), createBlock(_component_progress_bar, {\n key: 0,\n progress: $props.file.progress\n }, null, 8, [\"progress\"])) : createCommentVNode(\"\", true),\n createBaseVNode(\"video\", _hoisted_3$5, [\n createBaseVNode(\"source\", {\n src: $props.file.url\n }, null, 8, _hoisted_4$5)\n ])\n ])) : createCommentVNode(\"\", true)\n ]);\n}\nvar MessageFile = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$7]]);\nconst _sfc_main$6 = {\n name: \"MessageFiles\",\n components: { SvgIcon, FormatMessage, ProgressBar, MessageFile },\n props: {\n currentUserId: { type: [String, Number], required: true },\n message: { type: Object, required: true },\n roomUsers: { type: Array, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n messageSelectionEnabled: { type: Boolean, required: true }\n },\n emits: [\"open-file\", \"open-user-tag\"],\n computed: {\n imageVideoFiles() {\n return this.message.files.filter((file) => isImageVideoFile(file));\n },\n otherFiles() {\n return this.message.files.filter((file) => !isImageVideoFile(file));\n }\n },\n methods: {\n openFile(event, file, action) {\n if (!this.messageSelectionEnabled) {\n event.stopPropagation();\n this.$emit(\"open-file\", { file, action });\n }\n }\n }\n};\nconst _hoisted_1$6 = { class: \"vac-message-files-container\" };\nconst _hoisted_2$4 = [\"onClick\"];\nconst _hoisted_3$4 = { class: \"vac-svg-button\" };\nconst _hoisted_4$4 = { class: \"vac-text-ellipsis\" };\nconst _hoisted_5$3 = {\n key: 0,\n class: \"vac-text-ellipsis vac-text-extension\"\n};\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_message_file = resolveComponent(\"message-file\");\n const _component_progress_bar = resolveComponent(\"progress-bar\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_format_message = resolveComponent(\"format-message\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$6, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.imageVideoFiles, (file, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: i + \"iv\"\n }, [\n createVNode(_component_message_file, {\n file,\n \"current-user-id\": $props.currentUserId,\n message: $props.message,\n index: i,\n \"message-selection-enabled\": $props.messageSelectionEnabled,\n onOpenFile: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"open-file\", $event))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"file\", \"current-user-id\", \"message\", \"index\", \"message-selection-enabled\"])\n ]);\n }), 128)),\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.otherFiles, (file, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: i + \"a\",\n class: \"vac-file-wrapper\"\n }, [\n file.progress >= 0 ? (openBlock(), createBlock(_component_progress_bar, {\n key: 0,\n progress: file.progress,\n style: { top: \"44px\" }\n }, null, 8, [\"progress\"])) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-file-container\", { \"vac-file-container-progress\": file.progress >= 0 }]),\n onClick: ($event) => $options.openFile($event, file, \"download\")\n }, [\n createBaseVNode(\"div\", _hoisted_3$4, [\n renderSlot(_ctx.$slots, \"document-icon\", {}, () => [\n createVNode(_component_svg_icon, { name: \"document\" })\n ])\n ]),\n createBaseVNode(\"div\", _hoisted_4$4, toDisplayString(file.name), 1),\n file.extension ? (openBlock(), createElementBlock(\"div\", _hoisted_5$3, toDisplayString(file.extension), 1)) : createCommentVNode(\"\", true)\n ], 10, _hoisted_2$4)\n ]);\n }), 128)),\n createVNode(_component_format_message, {\n \"message-id\": $props.message._id,\n content: $props.message.content,\n users: $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n onOpenUserTag: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"open-user-tag\", $event))\n }, null, 8, [\"message-id\", \"content\", \"users\", \"text-formatting\", \"link-options\"])\n ]);\n}\nvar MessageFiles = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$5 = {\n name: \"MessageActions\",\n components: { SvgIcon, EmojiPickerContainer },\n directives: {\n clickOutside: vClickOutside\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n message: { type: Object, required: true },\n messageActions: { type: Array, required: true },\n showReactionEmojis: { type: Boolean, required: true },\n messageHover: { type: Boolean, required: true },\n hoverMessageId: { type: [String, Number], default: null },\n hoverAudioProgress: { type: Boolean, required: true },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"update-emoji-opened\",\n \"update-options-opened\",\n \"update-message-hover\",\n \"message-action-handler\",\n \"send-message-reaction\"\n ],\n data() {\n return {\n menuOptionsTop: 0,\n optionsOpened: false,\n optionsClosing: false,\n emojiOpened: false\n };\n },\n computed: {\n isMessageActions() {\n return this.filteredMessageActions.length && this.messageHover && !this.message.deleted && !this.message.disableActions && !this.hoverAudioProgress;\n },\n isMessageReactions() {\n return this.showReactionEmojis && this.messageHover && !this.message.deleted && !this.message.disableReactions && !this.hoverAudioProgress;\n },\n filteredMessageActions() {\n return this.message.senderId === this.currentUserId ? this.messageActions : this.messageActions.filter((message) => !message.onlyMe);\n }\n },\n watch: {\n emojiOpened(val) {\n this.$emit(\"update-emoji-opened\", val);\n if (val)\n this.optionsOpened = false;\n },\n optionsOpened(val) {\n this.$emit(\"update-options-opened\", val);\n }\n },\n methods: {\n openOptions() {\n if (this.optionsClosing)\n return;\n this.optionsOpened = !this.optionsOpened;\n if (!this.optionsOpened)\n return;\n setTimeout(() => {\n const roomFooterRef = findParentBySelector(this.$el, \"#room-footer\");\n if (!roomFooterRef || !this.$refs.menuOptions || !this.$refs.actionIcon) {\n return;\n }\n const menuOptionsTop = this.$refs.menuOptions.getBoundingClientRect().height;\n const actionIconTop = this.$refs.actionIcon.getBoundingClientRect().top;\n const roomFooterTop = roomFooterRef.getBoundingClientRect().top;\n const optionsTopPosition = roomFooterTop - actionIconTop > menuOptionsTop + 50;\n if (optionsTopPosition)\n this.menuOptionsTop = 30;\n else\n this.menuOptionsTop = -menuOptionsTop;\n });\n },\n closeOptions() {\n this.optionsOpened = false;\n this.optionsClosing = true;\n this.updateMessageHover();\n setTimeout(() => this.optionsClosing = false, 100);\n },\n openEmoji() {\n this.emojiOpened = !this.emojiOpened;\n },\n closeEmoji() {\n this.emojiOpened = false;\n this.updateMessageHover();\n },\n updateMessageHover() {\n if (this.hoverMessageId !== this.message._id) {\n this.$emit(\"update-message-hover\", false);\n }\n },\n messageActionHandler(action) {\n this.closeOptions();\n this.$emit(\"message-action-handler\", action);\n },\n sendMessageReaction(emoji, reaction) {\n this.$emit(\"send-message-reaction\", { emoji, reaction });\n this.closeEmoji();\n }\n }\n};\nconst _hoisted_1$5 = { class: \"vac-message-actions-wrapper\" };\nconst _hoisted_2$3 = { key: \"3\" };\nconst _hoisted_3$3 = { class: \"vac-menu-list\" };\nconst _hoisted_4$3 = [\"onClick\"];\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_emoji_picker_container = resolveComponent(\"emoji-picker-container\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return openBlock(), createElementBlock(\"div\", _hoisted_1$5, [\n createBaseVNode(\"div\", {\n class: \"vac-options-container\",\n style: normalizeStyle({\n display: $props.hoverAudioProgress ? \"none\" : \"initial\",\n width: $options.filteredMessageActions.length && $props.showReactionEmojis ? \"70px\" : \"45px\"\n })\n }, [\n createVNode(TransitionGroup, {\n name: \"vac-slide-left\",\n tag: \"span\"\n }, {\n default: withCtx(() => [\n $options.isMessageActions || $options.isMessageReactions ? (openBlock(), createElementBlock(\"div\", {\n key: \"1\",\n class: normalizeClass([\"vac-blur-container\", {\n \"vac-options-me\": $props.message.senderId === $props.currentUserId\n }])\n }, null, 2)) : createCommentVNode(\"\", true),\n $options.isMessageActions ? (openBlock(), createElementBlock(\"div\", {\n ref: \"actionIcon\",\n key: \"2\",\n class: \"vac-svg-button vac-message-options\",\n onClick: _cache[0] || (_cache[0] = (...args) => $options.openOptions && $options.openOptions(...args))\n }, [\n renderSlot(_ctx.$slots, \"dropdown-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, {\n name: \"dropdown\",\n param: \"message\"\n })\n ])\n ], 512)) : createCommentVNode(\"\", true),\n $options.isMessageReactions ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_2$3, [\n renderSlot(_ctx.$slots, \"emoji-picker\", mergeProps({ emojiOpened: $data.emojiOpened }, { addEmoji: $options.sendMessageReaction }), () => [\n createVNode(_component_emoji_picker_container, {\n class: \"vac-message-emojis\",\n style: normalizeStyle({ right: $options.isMessageActions ? \"30px\" : \"5px\" }),\n \"emoji-opened\": $data.emojiOpened,\n \"emoji-reaction\": true,\n \"position-right\": $props.message.senderId === $props.currentUserId,\n \"message-id\": $props.message._id,\n \"emoji-data-source\": $props.emojiDataSource,\n onAddEmoji: $options.sendMessageReaction,\n onOpenEmoji: $options.openEmoji\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"style\", \"emoji-opened\", \"position-right\", \"message-id\", \"emoji-data-source\", \"onAddEmoji\", \"onOpenEmoji\"])\n ])\n ])), [\n [_directive_click_outside, $options.closeEmoji]\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ], 4),\n $options.filteredMessageActions.length ? (openBlock(), createBlock(Transition, {\n key: 0,\n name: $props.message.senderId === $props.currentUserId ? \"vac-slide-left\" : \"vac-slide-right\"\n }, {\n default: withCtx(() => [\n $data.optionsOpened ? withDirectives((openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref: \"menuOptions\",\n class: normalizeClass([\"vac-menu-options\", {\n \"vac-menu-left\": $props.message.senderId !== $props.currentUserId\n }]),\n style: normalizeStyle({ top: `${$data.menuOptionsTop}px` })\n }, [\n createBaseVNode(\"div\", _hoisted_3$3, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.filteredMessageActions, (action) => {\n return openBlock(), createElementBlock(\"div\", {\n key: action.name\n }, [\n createBaseVNode(\"div\", {\n class: \"vac-menu-item\",\n onClick: ($event) => $options.messageActionHandler(action)\n }, toDisplayString(action.title), 9, _hoisted_4$3)\n ]);\n }), 128))\n ])\n ], 6)), [\n [_directive_click_outside, $options.closeOptions]\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"name\"])) : createCommentVNode(\"\", true)\n ]);\n}\nvar MessageActions = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$4 = {\n name: \"MessageReactions\",\n props: {\n currentUserId: { type: [String, Number], required: true },\n message: { type: Object, required: true }\n },\n emits: [\"send-message-reaction\"],\n methods: {\n sendMessageReaction(emoji, reaction) {\n this.$emit(\"send-message-reaction\", { emoji, reaction });\n }\n }\n};\nconst _hoisted_1$4 = [\"onClick\"];\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return !$props.message.deleted ? (openBlock(), createBlock(TransitionGroup, {\n key: 0,\n name: \"vac-slide-left\",\n tag: \"span\"\n }, {\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.message.reactions, (reaction, key) => {\n return withDirectives((openBlock(), createElementBlock(\"button\", {\n key: key + 0,\n class: normalizeClass([\"vac-button-reaction\", {\n \"vac-reaction-me\": reaction.indexOf($props.currentUserId) !== -1\n }]),\n style: normalizeStyle({\n float: $props.message.senderId === $props.currentUserId ? \"right\" : \"left\"\n }),\n onClick: ($event) => $options.sendMessageReaction({ unicode: key }, reaction)\n }, [\n createTextVNode(toDisplayString(key), 1),\n createBaseVNode(\"span\", null, toDisplayString(reaction.length), 1)\n ], 14, _hoisted_1$4)), [\n [vShow, reaction.length]\n ]);\n }), 128))\n ]),\n _: 1\n })) : createCommentVNode(\"\", true);\n}\nvar MessageReactions = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$4]]);\nfunction roomsValidation(obj) {\n const roomsValidate = [\n { key: \"roomId\", type: [\"string\", \"number\"] },\n { key: \"roomName\", type: [\"string\"] },\n { key: \"users\", type: [\"array\"] }\n ];\n const validate = (obj2, props) => {\n return props.every((prop) => {\n let validType = false;\n if (prop.type[0] === \"array\" && Array.isArray(obj2[prop.key])) {\n validType = true;\n } else if (prop.type.find((t) => t === typeof obj2[prop.key])) {\n validType = true;\n }\n return validType && checkObjectValid(obj2, prop.key);\n });\n };\n if (!validate(obj, roomsValidate)) {\n throw new Error(\n \"Rooms object is not valid! Must contain at least roomId[String, Number], roomName[String] and users[Array]\"\n );\n }\n}\nfunction partcipantsValidation(obj) {\n const participantsValidate = [\n { key: \"_id\", type: [\"string\", \"number\"] },\n { key: \"username\", type: [\"string\"] }\n ];\n const validate = (obj2, props) => {\n return props.every((prop) => {\n const validType = prop.type.find((t) => t === typeof obj2[prop.key]);\n return validType && checkObjectValid(obj2, prop.key);\n });\n };\n if (!validate(obj, participantsValidate)) {\n throw new Error(\n \"Participants object is not valid! Must contain at least _id[String, Number] and username[String]\"\n );\n }\n}\nfunction messagesValidation(obj) {\n const messagesValidate = [\n { key: \"_id\", type: [\"string\", \"number\"] },\n { key: \"senderId\", type: [\"string\", \"number\"] }\n ];\n const validate = (obj2, props) => {\n return props.every((prop) => {\n const validType = prop.type.find((t) => t === typeof obj2[prop.key]);\n return validType && checkObjectValid(obj2, prop.key);\n });\n };\n if (!validate(obj, messagesValidate)) {\n throw new Error(\n \"Messages object is not valid! Must contain at least _id[String, Number] and senderId[String, Number]\"\n );\n }\n}\nfunction checkObjectValid(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key) && obj[key] !== null && obj[key] !== void 0;\n}\nconst _sfc_main$3 = {\n name: \"RoomMessage\",\n components: {\n SvgIcon,\n FormatMessage,\n AudioPlayer,\n MessageReply,\n MessageFiles,\n MessageActions,\n MessageReactions\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n textMessages: { type: Object, required: true },\n index: { type: Number, required: true },\n message: { type: Object, required: true },\n messages: { type: Array, required: true },\n editedMessageId: { type: [String, Number], default: null },\n roomUsers: { type: Array, default: () => [] },\n messageActions: { type: Array, required: true },\n newMessages: { type: Array, default: () => [] },\n showReactionEmojis: { type: Boolean, required: true },\n showNewMessagesDivider: { type: Boolean, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n usernameOptions: { type: Object, required: true },\n messageSelectionEnabled: { type: Boolean, required: true },\n selectedMessages: { type: Array, default: () => [] },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"message-added\",\n \"open-file\",\n \"open-user-tag\",\n \"open-failed-message\",\n \"message-action-handler\",\n \"send-message-reaction\",\n \"select-message\",\n \"unselect-message\"\n ],\n data() {\n return {\n hoverMessageId: null,\n messageHover: false,\n optionsOpened: false,\n emojiOpened: false,\n newMessage: {},\n progressTime: \"- : -\",\n hoverAudioProgress: false\n };\n },\n computed: {\n showUsername() {\n if (!this.usernameOptions.currentUser && this.message.senderId === this.currentUserId) {\n return false;\n } else {\n return this.roomUsers.length >= this.usernameOptions.minUsers;\n }\n },\n showDate() {\n return this.index > 0 && this.message.date !== this.messages[this.index - 1].date;\n },\n messageOffset() {\n return this.index > 0 && this.message.senderId !== this.messages[this.index - 1].senderId;\n },\n isMessageHover() {\n return this.editedMessageId === this.message._id || this.hoverMessageId === this.message._id;\n },\n isAudio() {\n var _a;\n return (_a = this.message.files) == null ? void 0 : _a.some((file) => isAudioFile(file));\n },\n isCheckmarkVisible() {\n return this.message.senderId === this.currentUserId && !this.message.deleted && (this.message.saved || this.message.distributed || this.message.seen);\n },\n hasCurrentUserAvatar() {\n return this.messages.some(\n (message) => message.senderId === this.currentUserId && message.avatar\n );\n },\n hasSenderUserAvatar() {\n return this.messages.some(\n (message) => message.senderId !== this.currentUserId && message.avatar\n );\n },\n isMessageSelected() {\n return this.messageSelectionEnabled && !!this.selectedMessages.find(\n (message) => message._id === this.message._id\n );\n }\n },\n watch: {\n newMessages: {\n immediate: true,\n deep: true,\n handler(val) {\n if (!val.length || !this.showNewMessagesDivider) {\n this.newMessage = {};\n return;\n }\n this.newMessage = val.reduce(\n (res, obj) => obj.index < res.index ? obj : res\n );\n }\n },\n messageSelectionEnabled() {\n this.resetMessageHover();\n }\n },\n mounted() {\n messagesValidation(this.message);\n this.$emit(\"message-added\", {\n message: this.message,\n index: this.index,\n ref: this.$refs.message\n });\n },\n methods: {\n onHoverMessage() {\n if (!this.messageSelectionEnabled) {\n this.messageHover = true;\n if (this.canEditMessage())\n this.hoverMessageId = this.message._id;\n }\n },\n canEditMessage() {\n return !this.message.deleted;\n },\n onLeaveMessage() {\n if (!this.messageSelectionEnabled) {\n if (!this.optionsOpened && !this.emojiOpened)\n this.messageHover = false;\n this.hoverMessageId = null;\n }\n },\n resetMessageHover() {\n this.messageHover = false;\n this.hoverMessageId = null;\n },\n openFile(file) {\n this.$emit(\"open-file\", { message: this.message, file });\n },\n openUserTag(user) {\n this.$emit(\"open-user-tag\", { user });\n },\n messageActionHandler(action) {\n this.resetMessageHover();\n setTimeout(() => {\n this.$emit(\"message-action-handler\", { action, message: this.message });\n }, 300);\n },\n sendMessageReaction({ emoji, reaction }) {\n this.$emit(\"send-message-reaction\", {\n messageId: this.message._id,\n reaction: emoji,\n remove: reaction && reaction.indexOf(this.currentUserId) !== -1\n });\n this.messageHover = false;\n },\n selectMessage() {\n if (this.messageSelectionEnabled) {\n if (this.isMessageSelected) {\n this.$emit(\"unselect-message\", this.message._id);\n } else {\n this.$emit(\"select-message\", this.message);\n }\n }\n }\n }\n};\nconst _hoisted_1$3 = [\"id\"];\nconst _hoisted_2$2 = {\n key: 0,\n class: \"vac-card-info vac-card-date\"\n};\nconst _hoisted_3$2 = {\n key: 1,\n class: \"vac-line-new\"\n};\nconst _hoisted_4$2 = {\n key: 2,\n class: \"vac-card-info vac-card-system\"\n};\nconst _hoisted_5$2 = {\n key: 1,\n class: \"vac-avatar-offset\"\n};\nconst _hoisted_6$1 = {\n key: 0,\n class: \"vac-progress-time\"\n};\nconst _hoisted_7$1 = { class: \"vac-text-timestamp\" };\nconst _hoisted_8 = {\n key: 0,\n class: \"vac-icon-edited\"\n};\nconst _hoisted_9 = { key: 1 };\nconst _hoisted_10 = /* @__PURE__ */ createBaseVNode(\"div\", { class: \"vac-failure-text\" }, \"!\", -1);\nconst _hoisted_11 = [\n _hoisted_10\n];\nconst _hoisted_12 = {\n key: 3,\n class: \"vac-avatar-current-offset\"\n};\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_format_message = resolveComponent(\"format-message\");\n const _component_message_reply = resolveComponent(\"message-reply\");\n const _component_message_files = resolveComponent(\"message-files\");\n const _component_audio_player = resolveComponent(\"audio-player\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_message_actions = resolveComponent(\"message-actions\");\n const _component_message_reactions = resolveComponent(\"message-reactions\");\n return openBlock(), createElementBlock(\"div\", {\n id: $props.message._id,\n ref: \"message\",\n class: \"vac-message-wrapper\"\n }, [\n $options.showDate ? (openBlock(), createElementBlock(\"div\", _hoisted_2$2, toDisplayString($props.message.date), 1)) : createCommentVNode(\"\", true),\n $data.newMessage._id === $props.message._id ? (openBlock(), createElementBlock(\"div\", _hoisted_3$2, toDisplayString($props.textMessages.NEW_MESSAGES), 1)) : createCommentVNode(\"\", true),\n $props.message.system ? (openBlock(), createElementBlock(\"div\", _hoisted_4$2, [\n renderSlot(_ctx.$slots, \"message_\" + $props.message._id, {}, () => [\n createVNode(_component_format_message, {\n \"message-id\": $props.message._id,\n content: $props.message.content,\n deleted: !!$props.message.deleted,\n users: $props.roomUsers,\n \"text-messages\": $props.textMessages,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n onOpenUserTag: $options.openUserTag\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message-id\", \"content\", \"deleted\", \"users\", \"text-messages\", \"text-formatting\", \"link-options\", \"onOpenUserTag\"])\n ])\n ])) : (openBlock(), createElementBlock(\"div\", {\n key: 3,\n class: normalizeClass([\"vac-message-box\", { \"vac-offset-current\": $props.message.senderId === $props.currentUserId }]),\n onClick: _cache[8] || (_cache[8] = (...args) => $options.selectMessage && $options.selectMessage(...args))\n }, [\n renderSlot(_ctx.$slots, \"message_\" + $props.message._id, {}, () => [\n $props.message.senderId !== $props.currentUserId ? renderSlot(_ctx.$slots, \"message-avatar_\" + $props.message._id, { key: 0 }, () => [\n $props.message.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar\",\n style: normalizeStyle({ \"background-image\": `url('${$props.message.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true)\n ]) : createCommentVNode(\"\", true),\n $options.hasSenderUserAvatar && !$props.message.avatar ? (openBlock(), createElementBlock(\"div\", _hoisted_5$2)) : createCommentVNode(\"\", true),\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-message-container\", {\n \"vac-message-container-offset\": $options.messageOffset\n }])\n }, [\n createBaseVNode(\"div\", {\n class: normalizeClass([\"vac-message-card\", {\n \"vac-message-highlight\": $options.isMessageHover,\n \"vac-message-current\": $props.message.senderId === $props.currentUserId,\n \"vac-message-deleted\": $props.message.deleted,\n \"vac-item-clickable\": $props.messageSelectionEnabled,\n \"vac-message-selected\": $options.isMessageSelected\n }]),\n onMouseover: _cache[5] || (_cache[5] = (...args) => $options.onHoverMessage && $options.onHoverMessage(...args)),\n onMouseleave: _cache[6] || (_cache[6] = (...args) => $options.onLeaveMessage && $options.onLeaveMessage(...args))\n }, [\n $options.showUsername ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-text-username\", {\n \"vac-username-reply\": !$props.message.deleted && $props.message.replyMessage\n }])\n }, [\n createBaseVNode(\"span\", null, toDisplayString($props.message.username), 1)\n ], 2)) : createCommentVNode(\"\", true),\n !$props.message.deleted && $props.message.replyMessage ? (openBlock(), createBlock(_component_message_reply, {\n key: 1,\n message: $props.message,\n \"room-users\": $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message\", \"room-users\", \"text-formatting\", \"link-options\"])) : createCommentVNode(\"\", true),\n !!$props.message.deleted || !$props.message.files || !$props.message.files.length ? (openBlock(), createBlock(_component_format_message, {\n key: 2,\n \"message-id\": $props.message._id,\n content: $props.message.content,\n deleted: !!$props.message.deleted,\n users: $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"text-messages\": $props.textMessages,\n \"link-options\": $props.linkOptions,\n onOpenUserTag: $options.openUserTag\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message-id\", \"content\", \"deleted\", \"users\", \"text-formatting\", \"text-messages\", \"link-options\", \"onOpenUserTag\"])) : !$options.isAudio || $props.message.files.length > 1 ? (openBlock(), createBlock(_component_message_files, {\n key: 3,\n \"current-user-id\": $props.currentUserId,\n message: $props.message,\n \"room-users\": $props.roomUsers,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"message-selection-enabled\": $props.messageSelectionEnabled,\n onOpenFile: $options.openFile,\n onOpenUserTag: $options.openUserTag\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"message\", \"room-users\", \"text-formatting\", \"link-options\", \"message-selection-enabled\", \"onOpenFile\", \"onOpenUserTag\"])) : (openBlock(), createElementBlock(Fragment, { key: 4 }, [\n createVNode(_component_audio_player, {\n \"message-id\": $props.message._id,\n src: $props.message.files[0].url,\n \"message-selection-enabled\": $props.messageSelectionEnabled,\n onUpdateProgressTime: _cache[0] || (_cache[0] = ($event) => $data.progressTime = $event),\n onHoverAudioProgress: _cache[1] || (_cache[1] = ($event) => $data.hoverAudioProgress = $event)\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"message-id\", \"src\", \"message-selection-enabled\"]),\n !$props.message.deleted ? (openBlock(), createElementBlock(\"div\", _hoisted_6$1, toDisplayString($data.progressTime), 1)) : createCommentVNode(\"\", true)\n ], 64)),\n createBaseVNode(\"div\", _hoisted_7$1, [\n $props.message.edited && !$props.message.deleted ? (openBlock(), createElementBlock(\"div\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"pencil-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, { name: \"pencil\" })\n ])\n ])) : createCommentVNode(\"\", true),\n createBaseVNode(\"span\", null, toDisplayString($props.message.timestamp), 1),\n $options.isCheckmarkVisible ? (openBlock(), createElementBlock(\"span\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"checkmark-icon_\" + $props.message._id, {}, () => [\n createVNode(_component_svg_icon, {\n name: $props.message.distributed ? \"double-checkmark\" : \"checkmark\",\n param: $props.message.seen ? \"seen\" : \"\",\n class: \"vac-icon-check\"\n }, null, 8, [\"name\", \"param\"])\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n createVNode(_component_message_actions, {\n \"current-user-id\": $props.currentUserId,\n message: $props.message,\n \"message-actions\": $props.messageActions,\n \"show-reaction-emojis\": $props.showReactionEmojis,\n \"message-hover\": $data.messageHover,\n \"hover-message-id\": $data.hoverMessageId,\n \"hover-audio-progress\": $data.hoverAudioProgress,\n \"emoji-data-source\": $props.emojiDataSource,\n onUpdateMessageHover: _cache[2] || (_cache[2] = ($event) => $data.messageHover = $event),\n onUpdateOptionsOpened: _cache[3] || (_cache[3] = ($event) => $data.optionsOpened = $event),\n onUpdateEmojiOpened: _cache[4] || (_cache[4] = ($event) => $data.emojiOpened = $event),\n onMessageActionHandler: $options.messageActionHandler,\n onSendMessageReaction: $options.sendMessageReaction\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"message\", \"message-actions\", \"show-reaction-emojis\", \"message-hover\", \"hover-message-id\", \"hover-audio-progress\", \"emoji-data-source\", \"onMessageActionHandler\", \"onSendMessageReaction\"])\n ], 34),\n createVNode(_component_message_reactions, {\n \"current-user-id\": $props.currentUserId,\n message: $props.message,\n onSendMessageReaction: $options.sendMessageReaction\n }, null, 8, [\"current-user-id\", \"message\", \"onSendMessageReaction\"])\n ], 2),\n renderSlot(_ctx.$slots, \"message-failure_\" + $props.message._id, {}, () => [\n $props.message.failure && $props.message.senderId === $props.currentUserId ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vac-failure-container vac-svg-button\", {\n \"vac-failure-container-avatar\": $props.message.avatar && $props.message.senderId === $props.currentUserId\n }]),\n onClick: _cache[7] || (_cache[7] = ($event) => _ctx.$emit(\"open-failed-message\", { message: $props.message }))\n }, _hoisted_11, 2)) : createCommentVNode(\"\", true)\n ]),\n $props.message.senderId === $props.currentUserId ? renderSlot(_ctx.$slots, \"message-avatar_\" + $props.message._id, { key: 2 }, () => [\n $props.message.avatar ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-avatar vac-avatar-current\",\n style: normalizeStyle({ \"background-image\": `url('${$props.message.avatar}')` })\n }, null, 4)) : createCommentVNode(\"\", true)\n ]) : createCommentVNode(\"\", true),\n $options.hasCurrentUserAvatar && !$props.message.avatar ? (openBlock(), createElementBlock(\"div\", _hoisted_12)) : createCommentVNode(\"\", true)\n ])\n ], 2))\n ], 8, _hoisted_1$3);\n}\nvar RoomMessage = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n name: \"ChatRoom\",\n components: {\n Loader,\n SvgIcon,\n RoomHeader,\n RoomFooter,\n RoomMessage\n },\n props: {\n currentUserId: { type: [String, Number], required: true },\n textMessages: { type: Object, required: true },\n singleRoom: { type: Boolean, required: true },\n showRoomsList: { type: Boolean, required: true },\n isMobile: { type: Boolean, required: true },\n rooms: { type: Array, required: true },\n roomId: { type: [String, Number], required: true },\n loadFirstRoom: { type: Boolean, required: true },\n messages: { type: Array, required: true },\n roomMessage: { type: String, default: null },\n messagesLoaded: { type: Boolean, required: true },\n menuActions: { type: Array, required: true },\n messageActions: { type: Array, required: true },\n messageSelectionActions: { type: Array, required: true },\n autoScroll: { type: Object, required: true },\n showSendIcon: { type: Boolean, required: true },\n showFiles: { type: Boolean, required: true },\n showAudio: { type: Boolean, required: true },\n audioBitRate: { type: Number, required: true },\n audioSampleRate: { type: Number, required: true },\n showEmojis: { type: Boolean, required: true },\n showReactionEmojis: { type: Boolean, required: true },\n showNewMessagesDivider: { type: Boolean, required: true },\n showFooter: { type: Boolean, required: true },\n acceptedFiles: { type: String, required: true },\n textFormatting: { type: Object, required: true },\n linkOptions: { type: Object, required: true },\n loadingRooms: { type: Boolean, required: true },\n roomInfoEnabled: { type: Boolean, required: true },\n textareaActionEnabled: { type: Boolean, required: true },\n textareaAutoFocus: { type: Boolean, required: true },\n userTagsEnabled: { type: Boolean, required: true },\n emojisSuggestionEnabled: { type: Boolean, required: true },\n scrollDistance: { type: Number, required: true },\n templatesText: { type: Array, default: null },\n usernameOptions: { type: Object, required: true },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"toggle-rooms-list\",\n \"room-info\",\n \"menu-action-handler\",\n \"message-selection-action-handler\",\n \"edit-message\",\n \"send-message\",\n \"delete-message\",\n \"message-action-handler\",\n \"fetch-messages\",\n \"send-message-reaction\",\n \"typing-message\",\n \"open-file\",\n \"open-user-tag\",\n \"open-failed-message\",\n \"textarea-action-handler\"\n ],\n data() {\n return {\n editedMessageId: null,\n initReplyMessage: null,\n initEditMessage: null,\n loadingMessages: false,\n observer: null,\n showLoader: true,\n loadingMoreMessages: false,\n scrollIcon: false,\n scrollMessagesCount: 0,\n newMessages: [],\n messageSelectionEnabled: false,\n selectedMessages: [],\n droppedFiles: []\n };\n },\n computed: {\n room() {\n return this.rooms.find((room) => room.roomId === this.roomId) || {};\n },\n showNoMessages() {\n return this.roomId && !this.messages.length && !this.loadingMessages && !this.loadingRooms;\n },\n showNoRoom() {\n const noRoomSelected = !this.rooms.length && !this.loadingRooms || !this.roomId && !this.loadFirstRoom;\n if (noRoomSelected) {\n this.updateLoadingMessages(false);\n }\n return noRoomSelected;\n },\n showMessagesStarted() {\n return this.messages.length && this.messagesLoaded;\n }\n },\n watch: {\n roomId: {\n immediate: true,\n handler() {\n this.onRoomChanged();\n }\n },\n messages: {\n deep: true,\n handler(newVal, oldVal) {\n newVal.forEach((message, i) => {\n if (this.showNewMessagesDivider && !message.seen && message.senderId !== this.currentUserId) {\n this.newMessages.push({\n _id: message._id,\n index: i\n });\n }\n });\n if ((oldVal == null ? void 0 : oldVal.length) === (newVal == null ? void 0 : newVal.length) - 1) {\n this.newMessages = [];\n }\n setTimeout(() => this.loadingMoreMessages = false);\n }\n },\n messagesLoaded(val) {\n if (val)\n this.updateLoadingMessages(false);\n }\n },\n mounted() {\n this.newMessages = [];\n },\n methods: {\n updateLoadingMessages(val) {\n this.loadingMessages = val;\n if (!val) {\n setTimeout(() => this.initIntersectionObserver());\n }\n },\n initIntersectionObserver() {\n if (this.observer) {\n this.showLoader = true;\n this.observer.disconnect();\n }\n const loader = this.$el.querySelector(\"#infinite-loader-messages\");\n if (loader) {\n const options2 = {\n root: this.$el.querySelector(\"#messages-list\"),\n rootMargin: `${this.scrollDistance}px`,\n threshold: 0\n };\n this.observer = new IntersectionObserver((entries) => {\n if (entries[0].isIntersecting) {\n this.loadMoreMessages();\n }\n }, options2);\n this.observer.observe(loader);\n }\n },\n preventTopScroll() {\n const container = this.$refs.scrollContainer;\n const prevScrollHeight = container.scrollHeight;\n const observer = new ResizeObserver((_) => {\n if (container.scrollHeight !== prevScrollHeight) {\n if (this.$refs.scrollContainer) {\n this.$refs.scrollContainer.scrollTo({\n top: container.scrollHeight - prevScrollHeight\n });\n observer.disconnect();\n }\n }\n });\n for (var i = 0; i < container.children.length; i++) {\n observer.observe(container.children[i]);\n }\n },\n touchStart(touchEvent) {\n if (this.singleRoom)\n return;\n if (touchEvent.changedTouches.length === 1) {\n const posXStart = touchEvent.changedTouches[0].clientX;\n const posYStart = touchEvent.changedTouches[0].clientY;\n addEventListener(\n \"touchend\",\n (touchEvent2) => this.touchEnd(touchEvent2, posXStart, posYStart),\n { once: true }\n );\n }\n },\n touchEnd(touchEvent, posXStart, posYStart) {\n if (touchEvent.changedTouches.length === 1) {\n const posXEnd = touchEvent.changedTouches[0].clientX;\n const posYEnd = touchEvent.changedTouches[0].clientY;\n const swippedRight = posXEnd - posXStart > 100;\n const swippedVertically = Math.abs(posYEnd - posYStart) > 50;\n if (swippedRight && !swippedVertically) {\n this.$emit(\"toggle-rooms-list\");\n }\n }\n },\n onRoomChanged() {\n this.updateLoadingMessages(true);\n this.scrollIcon = false;\n this.scrollMessagesCount = 0;\n this.resetMessageSelection();\n const unwatch = this.$watch(\n () => this.messages,\n (val) => {\n if (!val || !val.length)\n return;\n const element2 = this.$refs.scrollContainer;\n if (!element2)\n return;\n unwatch();\n setTimeout(() => {\n element2.scrollTo({ top: element2.scrollHeight });\n this.updateLoadingMessages(false);\n });\n }\n );\n },\n resetMessageSelection() {\n this.messageSelectionEnabled = false;\n this.selectedMessages = [];\n },\n selectMessage(message) {\n this.selectedMessages.push(message);\n },\n unselectMessage(messageId) {\n this.selectedMessages = this.selectedMessages.filter(\n (message) => message._id !== messageId\n );\n },\n onMessageAdded({ message, index, ref }) {\n if (index !== this.messages.length - 1)\n return;\n const autoScrollOffset = ref.offsetHeight + 60;\n setTimeout(() => {\n const scrolledUp = this.getBottomScroll(this.$refs.scrollContainer) > autoScrollOffset;\n if (message.senderId === this.currentUserId) {\n if (scrolledUp) {\n if (this.autoScroll.send.newAfterScrollUp) {\n this.scrollToBottom();\n }\n } else {\n if (this.autoScroll.send.new) {\n this.scrollToBottom();\n }\n }\n } else {\n if (scrolledUp) {\n if (this.autoScroll.receive.newAfterScrollUp) {\n this.scrollToBottom();\n } else {\n this.scrollIcon = true;\n this.scrollMessagesCount++;\n }\n } else {\n if (this.autoScroll.receive.new) {\n this.scrollToBottom();\n } else {\n this.scrollIcon = true;\n this.scrollMessagesCount++;\n }\n }\n }\n });\n },\n onContainerScroll(e) {\n if (!e.target)\n return;\n const bottomScroll = this.getBottomScroll(e.target);\n if (bottomScroll < 60)\n this.scrollMessagesCount = 0;\n this.scrollIcon = bottomScroll > 500 || this.scrollMessagesCount;\n },\n loadMoreMessages() {\n if (this.loadingMessages)\n return;\n setTimeout(\n () => {\n if (this.loadingMoreMessages)\n return;\n if (this.messagesLoaded || !this.roomId) {\n this.loadingMoreMessages = false;\n this.showLoader = false;\n return;\n }\n this.preventTopScroll();\n this.$emit(\"fetch-messages\");\n this.loadingMoreMessages = true;\n },\n 500\n );\n },\n messageActionHandler({ action, message }) {\n switch (action.name) {\n case \"replyMessage\":\n this.initReplyMessage = message;\n setTimeout(() => {\n this.initReplyMessage = null;\n });\n return;\n case \"editMessage\":\n this.initEditMessage = message;\n setTimeout(() => {\n this.initEditMessage = null;\n });\n return;\n case \"deleteMessage\":\n return this.$emit(\"delete-message\", message);\n case \"selectMessages\":\n this.selectedMessages = [message];\n this.messageSelectionEnabled = true;\n return;\n default:\n return this.$emit(\"message-action-handler\", { action, message });\n }\n },\n messageSelectionActionHandler(action) {\n this.$emit(\"message-selection-action-handler\", {\n action,\n messages: this.selectedMessages\n });\n this.resetMessageSelection();\n },\n sendMessageReaction(messageReaction) {\n this.$emit(\"send-message-reaction\", messageReaction);\n },\n getBottomScroll(element2) {\n const { scrollHeight, clientHeight, scrollTop } = element2;\n return scrollHeight - clientHeight - scrollTop;\n },\n scrollToBottom() {\n setTimeout(() => {\n const element2 = this.$refs.scrollContainer;\n element2.classList.add(\"vac-scroll-smooth\");\n element2.scrollTo({ top: element2.scrollHeight, behavior: \"smooth\" });\n setTimeout(() => element2.classList.remove(\"vac-scroll-smooth\"));\n }, 50);\n },\n openFile({ message, file }) {\n this.$emit(\"open-file\", { message, file });\n },\n openUserTag(user) {\n this.$emit(\"open-user-tag\", user);\n },\n onDropFiles(event) {\n if (this.showFiles) {\n this.droppedFiles = event.dataTransfer.files;\n }\n }\n }\n};\nconst _hoisted_1$2 = { class: \"vac-container-center vac-room-empty\" };\nconst _hoisted_2$1 = { class: \"vac-messages-container\" };\nconst _hoisted_3$1 = {\n key: 0,\n class: \"vac-text-started\"\n};\nconst _hoisted_4$1 = {\n key: 1,\n class: \"vac-text-started\"\n};\nconst _hoisted_5$1 = {\n key: 0,\n id: \"infinite-loader-messages\"\n};\nconst _hoisted_6 = { key: 2 };\nconst _hoisted_7 = {\n key: 0,\n class: \"vac-badge-counter vac-messages-count\"\n};\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_room_header = resolveComponent(\"room-header\");\n const _component_loader = resolveComponent(\"loader\");\n const _component_room_message = resolveComponent(\"room-message\");\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n const _component_room_footer = resolveComponent(\"room-footer\");\n return withDirectives((openBlock(), createElementBlock(\"div\", {\n class: \"vac-col-messages\",\n onDrop: _cache[12] || (_cache[12] = withModifiers((...args) => $options.onDropFiles && $options.onDropFiles(...args), [\"prevent\"])),\n onDragenter: _cache[13] || (_cache[13] = withModifiers(() => {\n }, [\"prevent\"])),\n onDragover: _cache[14] || (_cache[14] = withModifiers(() => {\n }, [\"prevent\"])),\n onDragleave: _cache[15] || (_cache[15] = withModifiers(() => {\n }, [\"prevent\"])),\n onTouchstart: _cache[16] || (_cache[16] = (...args) => $options.touchStart && $options.touchStart(...args))\n }, [\n $options.showNoRoom ? renderSlot(_ctx.$slots, \"no-room-selected\", { key: 0 }, () => [\n createBaseVNode(\"div\", _hoisted_1$2, [\n createBaseVNode(\"div\", null, toDisplayString($props.textMessages.ROOM_EMPTY), 1)\n ])\n ]) : (openBlock(), createBlock(_component_room_header, {\n key: 1,\n \"current-user-id\": $props.currentUserId,\n \"text-messages\": $props.textMessages,\n \"single-room\": $props.singleRoom,\n \"show-rooms-list\": $props.showRoomsList,\n \"is-mobile\": $props.isMobile,\n \"room-info-enabled\": $props.roomInfoEnabled,\n \"menu-actions\": $props.menuActions,\n room: $options.room,\n \"message-selection-enabled\": $data.messageSelectionEnabled,\n \"message-selection-actions\": $props.messageSelectionActions,\n \"selected-messages-total\": $data.selectedMessages.length,\n onToggleRoomsList: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"toggle-rooms-list\")),\n onRoomInfo: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"room-info\")),\n onMenuActionHandler: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"menu-action-handler\", $event)),\n onMessageSelectionActionHandler: $options.messageSelectionActionHandler,\n onCancelMessageSelection: _cache[3] || (_cache[3] = ($event) => $data.messageSelectionEnabled = false)\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (i, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"text-messages\", \"single-room\", \"show-rooms-list\", \"is-mobile\", \"room-info-enabled\", \"menu-actions\", \"room\", \"message-selection-enabled\", \"message-selection-actions\", \"selected-messages-total\", \"onMessageSelectionActionHandler\"])),\n createBaseVNode(\"div\", {\n id: \"messages-list\",\n ref: \"scrollContainer\",\n class: \"vac-container-scroll\",\n onScroll: _cache[5] || (_cache[5] = (...args) => $options.onContainerScroll && $options.onContainerScroll(...args))\n }, [\n createVNode(_component_loader, {\n show: $data.loadingMessages,\n type: \"messages\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"show\"]),\n createBaseVNode(\"div\", _hoisted_2$1, [\n createBaseVNode(\"div\", {\n class: normalizeClass({ \"vac-messages-hidden\": $data.loadingMessages })\n }, [\n createVNode(Transition, { name: \"vac-fade-message\" }, {\n default: withCtx(() => [\n createBaseVNode(\"div\", null, [\n $options.showNoMessages ? (openBlock(), createElementBlock(\"div\", _hoisted_3$1, [\n renderSlot(_ctx.$slots, \"messages-empty\", {}, () => [\n createTextVNode(toDisplayString($props.textMessages.MESSAGES_EMPTY), 1)\n ])\n ])) : createCommentVNode(\"\", true),\n $options.showMessagesStarted ? (openBlock(), createElementBlock(\"div\", _hoisted_4$1, toDisplayString($props.textMessages.CONVERSATION_STARTED) + \" \" + toDisplayString($props.messages[0].date), 1)) : createCommentVNode(\"\", true)\n ])\n ]),\n _: 3\n }),\n $props.messages.length && !$props.messagesLoaded ? (openBlock(), createElementBlock(\"div\", _hoisted_5$1, [\n createVNode(_component_loader, {\n show: true,\n infinite: true,\n type: \"infinite-messages\"\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1024)\n ])) : createCommentVNode(\"\", true),\n (openBlock(), createBlock(TransitionGroup, {\n key: $props.roomId,\n name: \"vac-fade-message\",\n tag: \"span\"\n }, {\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($props.messages, (m, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: m.indexId || m._id\n }, [\n createVNode(_component_room_message, {\n \"current-user-id\": $props.currentUserId,\n message: m,\n index: i,\n messages: $props.messages,\n \"edited-message-id\": $data.editedMessageId,\n \"message-actions\": $props.messageActions,\n \"room-users\": $options.room.users,\n \"text-messages\": $props.textMessages,\n \"new-messages\": $data.newMessages,\n \"show-reaction-emojis\": $props.showReactionEmojis,\n \"show-new-messages-divider\": $props.showNewMessagesDivider,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"username-options\": $props.usernameOptions,\n \"message-selection-enabled\": $data.messageSelectionEnabled,\n \"selected-messages\": $data.selectedMessages,\n \"emoji-data-source\": $props.emojiDataSource,\n onMessageAdded: $options.onMessageAdded,\n onMessageActionHandler: $options.messageActionHandler,\n onOpenFile: $options.openFile,\n onOpenUserTag: $options.openUserTag,\n onOpenFailedMessage: _cache[4] || (_cache[4] = ($event) => _ctx.$emit(\"open-failed-message\", $event)),\n onSendMessageReaction: $options.sendMessageReaction,\n onSelectMessage: $options.selectMessage,\n onUnselectMessage: $options.unselectMessage\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"message\", \"index\", \"messages\", \"edited-message-id\", \"message-actions\", \"room-users\", \"text-messages\", \"new-messages\", \"show-reaction-emojis\", \"show-new-messages-divider\", \"text-formatting\", \"link-options\", \"username-options\", \"message-selection-enabled\", \"selected-messages\", \"emoji-data-source\", \"onMessageAdded\", \"onMessageActionHandler\", \"onOpenFile\", \"onOpenUserTag\", \"onSendMessageReaction\", \"onSelectMessage\", \"onUnselectMessage\"])\n ]);\n }), 128))\n ]),\n _: 3\n }))\n ], 2)\n ])\n ], 544),\n !$data.loadingMessages ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n createVNode(Transition, { name: \"vac-bounce\" }, {\n default: withCtx(() => [\n $data.scrollIcon ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: \"vac-icon-scroll\",\n onClick: _cache[6] || (_cache[6] = (...args) => $options.scrollToBottom && $options.scrollToBottom(...args))\n }, [\n createVNode(Transition, { name: \"vac-bounce\" }, {\n default: withCtx(() => [\n $data.scrollMessagesCount ? (openBlock(), createElementBlock(\"div\", _hoisted_7, toDisplayString($data.scrollMessagesCount), 1)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n renderSlot(_ctx.$slots, \"scroll-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"dropdown\",\n param: \"scroll\"\n })\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ])) : createCommentVNode(\"\", true),\n createVNode(_component_room_footer, {\n room: $options.room,\n \"room-id\": $props.roomId,\n \"room-message\": $props.roomMessage,\n \"text-messages\": $props.textMessages,\n \"show-send-icon\": $props.showSendIcon,\n \"show-files\": $props.showFiles,\n \"show-audio\": $props.showAudio,\n \"show-emojis\": $props.showEmojis,\n \"show-footer\": $props.showFooter,\n \"accepted-files\": $props.acceptedFiles,\n \"textarea-action-enabled\": $props.textareaActionEnabled,\n \"textarea-auto-focus\": $props.textareaAutoFocus,\n \"user-tags-enabled\": $props.userTagsEnabled,\n \"emojis-suggestion-enabled\": $props.emojisSuggestionEnabled,\n \"templates-text\": $props.templatesText,\n \"text-formatting\": $props.textFormatting,\n \"link-options\": $props.linkOptions,\n \"audio-bit-rate\": $props.audioBitRate,\n \"audio-sample-rate\": $props.audioSampleRate,\n \"init-reply-message\": $data.initReplyMessage,\n \"init-edit-message\": $data.initEditMessage,\n \"dropped-files\": $data.droppedFiles,\n \"emoji-data-source\": $props.emojiDataSource,\n onUpdateEditedMessageId: _cache[7] || (_cache[7] = ($event) => $data.editedMessageId = $event),\n onEditMessage: _cache[8] || (_cache[8] = ($event) => _ctx.$emit(\"edit-message\", $event)),\n onSendMessage: _cache[9] || (_cache[9] = ($event) => _ctx.$emit(\"send-message\", $event)),\n onTypingMessage: _cache[10] || (_cache[10] = ($event) => _ctx.$emit(\"typing-message\", $event)),\n onTextareaActionHandler: _cache[11] || (_cache[11] = ($event) => _ctx.$emit(\"textarea-action-handler\", $event))\n }, createSlots({ _: 2 }, [\n renderList(_ctx.$slots, (idx, name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"room\", \"room-id\", \"room-message\", \"text-messages\", \"show-send-icon\", \"show-files\", \"show-audio\", \"show-emojis\", \"show-footer\", \"accepted-files\", \"textarea-action-enabled\", \"textarea-auto-focus\", \"user-tags-enabled\", \"emojis-suggestion-enabled\", \"templates-text\", \"text-formatting\", \"link-options\", \"audio-bit-rate\", \"audio-sample-rate\", \"init-reply-message\", \"init-edit-message\", \"dropped-files\", \"emoji-data-source\"])\n ], 544)), [\n [vShow, $props.isMobile && !$props.showRoomsList || !$props.isMobile || $props.singleRoom]\n ]);\n}\nvar Room = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$1 = {\n name: \"MediaPreview\",\n components: {\n SvgIcon\n },\n props: {\n file: { type: Object, required: true }\n },\n emits: [\"close-media-preview\"],\n computed: {\n isImage() {\n return isImageFile(this.file);\n },\n isVideo() {\n return isVideoFile(this.file);\n }\n },\n mounted() {\n this.$refs.modal.focus();\n },\n methods: {\n closeModal() {\n this.$emit(\"close-media-preview\");\n }\n }\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"vac-media-preview-container\"\n};\nconst _hoisted_2 = {\n key: 1,\n class: \"vac-media-preview-container\"\n};\nconst _hoisted_3 = {\n controls: \"\",\n autoplay: \"\"\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = { class: \"vac-svg-button\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_svg_icon = resolveComponent(\"svg-icon\");\n return openBlock(), createElementBlock(\"div\", {\n ref: \"modal\",\n tabindex: \"0\",\n class: \"vac-media-preview\",\n onClick: _cache[0] || (_cache[0] = withModifiers((...args) => $options.closeModal && $options.closeModal(...args), [\"stop\"])),\n onKeydown: _cache[1] || (_cache[1] = withKeys((...args) => $options.closeModal && $options.closeModal(...args), [\"esc\"]))\n }, [\n createVNode(Transition, {\n name: \"vac-bounce-preview\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n $options.isImage ? (openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n createBaseVNode(\"div\", {\n class: \"vac-image-preview\",\n style: normalizeStyle({\n \"background-image\": `url('${$props.file.url}')`\n })\n }, null, 4)\n ])) : $options.isVideo ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n createBaseVNode(\"video\", _hoisted_3, [\n createBaseVNode(\"source\", {\n src: $props.file.url\n }, null, 8, _hoisted_4)\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n createBaseVNode(\"div\", _hoisted_5, [\n renderSlot(_ctx.$slots, \"preview-close-icon\", {}, () => [\n createVNode(_component_svg_icon, {\n name: \"close-outline\",\n param: \"preview\"\n })\n ])\n ])\n ], 544);\n}\nvar MediaPreview = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nvar locales = {\n ROOMS_EMPTY: \"No rooms\",\n ROOM_EMPTY: \"No room selected\",\n NEW_MESSAGES: \"New Messages\",\n MESSAGE_DELETED: \"This message was deleted\",\n MESSAGES_EMPTY: \"No messages\",\n CONVERSATION_STARTED: \"Conversation started on:\",\n TYPE_MESSAGE: \"Type message\",\n SEARCH: \"Search\",\n IS_ONLINE: \"is online\",\n LAST_SEEN: \"last seen \",\n IS_TYPING: \"is writing...\",\n CANCEL_SELECT_MESSAGE: \"Cancel\"\n};\nconst defaultThemeStyles = {\n light: {\n general: {\n color: \"#0a0a0a\",\n colorButtonClear: \"#1976d2\",\n colorButton: \"#fff\",\n backgroundColorButton: \"#1976d2\",\n backgroundInput: \"#fff\",\n colorPlaceholder: \"#9ca6af\",\n colorCaret: \"#1976d2\",\n colorSpinner: \"#333\",\n borderStyle: \"1px solid #e1e4e8\",\n backgroundScrollIcon: \"#fff\"\n },\n container: {\n border: \"none\",\n borderRadius: \"4px\",\n boxShadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)\"\n },\n header: {\n background: \"#fff\",\n colorRoomName: \"#0a0a0a\",\n colorRoomInfo: \"#9ca6af\"\n },\n footer: {\n background: \"#f8f9fa\",\n borderStyleInput: \"1px solid #e1e4e8\",\n borderInputSelected: \"#1976d2\",\n backgroundReply: \"#e5e5e6\",\n backgroundTagActive: \"#e5e5e6\",\n backgroundTag: \"#f8f9fa\"\n },\n content: {\n background: \"#f8f9fa\"\n },\n sidemenu: {\n background: \"#fff\",\n backgroundHover: \"#f6f6f6\",\n backgroundActive: \"#e5effa\",\n colorActive: \"#1976d2\",\n borderColorSearch: \"#e1e5e8\"\n },\n dropdown: {\n background: \"#fff\",\n backgroundHover: \"#f6f6f6\"\n },\n message: {\n background: \"#fff\",\n backgroundMe: \"#ccf2cf\",\n color: \"#0a0a0a\",\n colorStarted: \"#9ca6af\",\n backgroundDeleted: \"#dadfe2\",\n backgroundSelected: \"#c2dcf2\",\n colorDeleted: \"#757e85\",\n colorUsername: \"#9ca6af\",\n colorTimestamp: \"#828c94\",\n backgroundDate: \"#e5effa\",\n colorDate: \"#505a62\",\n backgroundSystem: \"#e5effa\",\n colorSystem: \"#505a62\",\n backgroundMedia: \"rgba(0, 0, 0, 0.15)\",\n backgroundReply: \"rgba(0, 0, 0, 0.08)\",\n colorReplyUsername: \"#0a0a0a\",\n colorReply: \"#6e6e6e\",\n colorTag: \"#0d579c\",\n backgroundImage: \"#ddd\",\n colorNewMessages: \"#1976d2\",\n backgroundScrollCounter: \"#0696c7\",\n colorScrollCounter: \"#fff\",\n backgroundReaction: \"#eee\",\n borderStyleReaction: \"1px solid #eee\",\n backgroundReactionHover: \"#fff\",\n borderStyleReactionHover: \"1px solid #ddd\",\n colorReactionCounter: \"#0a0a0a\",\n backgroundReactionMe: \"#cfecf5\",\n borderStyleReactionMe: \"1px solid #3b98b8\",\n backgroundReactionHoverMe: \"#cfecf5\",\n borderStyleReactionHoverMe: \"1px solid #3b98b8\",\n colorReactionCounterMe: \"#0b59b3\",\n backgroundAudioRecord: \"#eb4034\",\n backgroundAudioLine: \"rgba(0, 0, 0, 0.15)\",\n backgroundAudioProgress: \"#455247\",\n backgroundAudioProgressSelector: \"#455247\",\n colorFileExtension: \"#757e85\"\n },\n markdown: {\n background: \"rgba(239, 239, 239, 0.7)\",\n border: \"rgba(212, 212, 212, 0.9)\",\n color: \"#e01e5a\",\n colorMulti: \"#0a0a0a\"\n },\n room: {\n colorUsername: \"#0a0a0a\",\n colorMessage: \"#67717a\",\n colorTimestamp: \"#a2aeb8\",\n colorStateOnline: \"#4caf50\",\n colorStateOffline: \"#9ca6af\",\n backgroundCounterBadge: \"#0696c7\",\n colorCounterBadge: \"#fff\"\n },\n emoji: {\n background: \"#fff\"\n },\n icons: {\n search: \"#9ca6af\",\n add: \"#1976d2\",\n toggle: \"#0a0a0a\",\n menu: \"#0a0a0a\",\n close: \"#9ca6af\",\n closeImage: \"#fff\",\n file: \"#1976d2\",\n paperclip: \"#1976d2\",\n closeOutline: \"#000\",\n closePreview: \"#fff\",\n send: \"#1976d2\",\n sendDisabled: \"#9ca6af\",\n emoji: \"#1976d2\",\n emojiReaction: \"rgba(0, 0, 0, 0.3)\",\n document: \"#1976d2\",\n pencil: \"#9e9e9e\",\n checkmark: \"#9e9e9e\",\n checkmarkSeen: \"#0696c7\",\n eye: \"#fff\",\n dropdownMessage: \"#fff\",\n dropdownMessageBackground: \"rgba(0, 0, 0, 0.25)\",\n dropdownRoom: \"#9e9e9e\",\n dropdownScroll: \"#0a0a0a\",\n microphone: \"#1976d2\",\n audioPlay: \"#455247\",\n audioPause: \"#455247\",\n audioCancel: \"#eb4034\",\n audioConfirm: \"#1ba65b\"\n }\n },\n dark: {\n general: {\n color: \"#fff\",\n colorButtonClear: \"#fff\",\n colorButton: \"#fff\",\n backgroundColorButton: \"#1976d2\",\n backgroundInput: \"#202223\",\n colorPlaceholder: \"#596269\",\n colorCaret: \"#fff\",\n colorSpinner: \"#fff\",\n borderStyle: \"none\",\n backgroundScrollIcon: \"#fff\"\n },\n container: {\n border: \"none\",\n borderRadius: \"4px\",\n boxShadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)\"\n },\n header: {\n background: \"#181a1b\",\n colorRoomName: \"#fff\",\n colorRoomInfo: \"#9ca6af\"\n },\n footer: {\n background: \"#131415\",\n borderStyleInput: \"none\",\n borderInputSelected: \"#1976d2\",\n backgroundReply: \"#1b1c1c\",\n backgroundTagActive: \"#1b1c1c\",\n backgroundTag: \"#131415\"\n },\n content: {\n background: \"#131415\"\n },\n sidemenu: {\n background: \"#181a1b\",\n backgroundHover: \"#202224\",\n backgroundActive: \"#151617\",\n colorActive: \"#fff\",\n borderColorSearch: \"#181a1b\"\n },\n dropdown: {\n background: \"#2a2c33\",\n backgroundHover: \"#26282e\"\n },\n message: {\n background: \"#22242a\",\n backgroundMe: \"#1f7e80\",\n color: \"#fff\",\n colorStarted: \"#9ca6af\",\n backgroundDeleted: \"#1b1c21\",\n backgroundSelected: \"#c2dcf2\",\n colorDeleted: \"#a2a5a8\",\n colorUsername: \"#b3bac9\",\n colorTimestamp: \"#ebedf2\",\n backgroundDate: \"rgba(0, 0, 0, 0.3)\",\n colorDate: \"#bec5cc\",\n backgroundSystem: \"rgba(0, 0, 0, 0.3)\",\n colorSystem: \"#bec5cc\",\n backgroundMedia: \"rgba(0, 0, 0, 0.18)\",\n backgroundReply: \"rgba(0, 0, 0, 0.18)\",\n colorReplyUsername: \"#fff\",\n colorReply: \"#d6d6d6\",\n colorTag: \"#f0c60a\",\n backgroundImage: \"#ddd\",\n colorNewMessages: \"#fff\",\n backgroundScrollCounter: \"#1976d2\",\n colorScrollCounter: \"#fff\",\n backgroundReaction: \"none\",\n borderStyleReaction: \"none\",\n backgroundReactionHover: \"#202223\",\n borderStyleReactionHover: \"none\",\n colorReactionCounter: \"#fff\",\n backgroundReactionMe: \"#4e9ad1\",\n borderStyleReactionMe: \"none\",\n backgroundReactionHoverMe: \"#4e9ad1\",\n borderStyleReactionHoverMe: \"none\",\n colorReactionCounterMe: \"#fff\",\n backgroundAudioRecord: \"#eb4034\",\n backgroundAudioLine: \"rgba(255, 255, 255, 0.15)\",\n backgroundAudioProgress: \"#b7d4d3\",\n backgroundAudioProgressSelector: \"#b7d4d3\",\n colorFileExtension: \"#a2a5a8\"\n },\n markdown: {\n background: \"rgba(239, 239, 239, 0.7)\",\n border: \"rgba(212, 212, 212, 0.9)\",\n color: \"#e01e5a\",\n colorMulti: \"#0a0a0a\"\n },\n room: {\n colorUsername: \"#fff\",\n colorMessage: \"#6c7278\",\n colorTimestamp: \"#6c7278\",\n colorStateOnline: \"#4caf50\",\n colorStateOffline: \"#596269\",\n backgroundCounterBadge: \"#1976d2\",\n colorCounterBadge: \"#fff\"\n },\n emoji: {\n background: \"#343740\"\n },\n icons: {\n search: \"#596269\",\n add: \"#fff\",\n toggle: \"#fff\",\n menu: \"#fff\",\n close: \"#9ca6af\",\n closeImage: \"#fff\",\n file: \"#1976d2\",\n paperclip: \"#fff\",\n closeOutline: \"#fff\",\n closePreview: \"#fff\",\n send: \"#fff\",\n sendDisabled: \"#646a70\",\n emoji: \"#fff\",\n emojiReaction: \"#fff\",\n document: \"#1976d2\",\n pencil: \"#ebedf2\",\n checkmark: \"#ebedf2\",\n checkmarkSeen: \"#f0d90a\",\n eye: \"#fff\",\n dropdownMessage: \"#fff\",\n dropdownMessageBackground: \"rgba(0, 0, 0, 0.25)\",\n dropdownRoom: \"#fff\",\n dropdownScroll: \"#0a0a0a\",\n microphone: \"#fff\",\n audioPlay: \"#b7d4d3\",\n audioPause: \"#b7d4d3\",\n audioCancel: \"#eb4034\",\n audioConfirm: \"#1ba65b\"\n }\n }\n};\nconst cssThemeVars = ({\n general,\n container,\n header,\n footer,\n sidemenu,\n content,\n dropdown,\n message,\n markdown,\n room,\n emoji,\n icons\n}) => {\n return {\n \"--chat-color\": general.color,\n \"--chat-color-button-clear\": general.colorButtonClear,\n \"--chat-color-button\": general.colorButton,\n \"--chat-bg-color-button\": general.backgroundColorButton,\n \"--chat-bg-color-input\": general.backgroundInput,\n \"--chat-color-spinner\": general.colorSpinner,\n \"--chat-color-placeholder\": general.colorPlaceholder,\n \"--chat-color-caret\": general.colorCaret,\n \"--chat-border-style\": general.borderStyle,\n \"--chat-bg-scroll-icon\": general.backgroundScrollIcon,\n \"--chat-container-border\": container.border,\n \"--chat-container-border-radius\": container.borderRadius,\n \"--chat-container-box-shadow\": container.boxShadow,\n \"--chat-header-bg-color\": header.background,\n \"--chat-header-color-name\": header.colorRoomName,\n \"--chat-header-color-info\": header.colorRoomInfo,\n \"--chat-footer-bg-color\": footer.background,\n \"--chat-border-style-input\": footer.borderStyleInput,\n \"--chat-border-color-input-selected\": footer.borderInputSelected,\n \"--chat-footer-bg-color-reply\": footer.backgroundReply,\n \"--chat-footer-bg-color-tag-active\": footer.backgroundTagActive,\n \"--chat-footer-bg-color-tag\": footer.backgroundTag,\n \"--chat-content-bg-color\": content.background,\n \"--chat-sidemenu-bg-color\": sidemenu.background,\n \"--chat-sidemenu-bg-color-hover\": sidemenu.backgroundHover,\n \"--chat-sidemenu-bg-color-active\": sidemenu.backgroundActive,\n \"--chat-sidemenu-color-active\": sidemenu.colorActive,\n \"--chat-sidemenu-border-color-search\": sidemenu.borderColorSearch,\n \"--chat-dropdown-bg-color\": dropdown.background,\n \"--chat-dropdown-bg-color-hover\": dropdown.backgroundHover,\n \"--chat-message-bg-color\": message.background,\n \"--chat-message-bg-color-me\": message.backgroundMe,\n \"--chat-message-color-started\": message.colorStarted,\n \"--chat-message-bg-color-deleted\": message.backgroundDeleted,\n \"--chat-message-bg-color-selected\": message.backgroundSelected,\n \"--chat-message-color-deleted\": message.colorDeleted,\n \"--chat-message-color-username\": message.colorUsername,\n \"--chat-message-color-timestamp\": message.colorTimestamp,\n \"--chat-message-bg-color-date\": message.backgroundDate,\n \"--chat-message-color-date\": message.colorDate,\n \"--chat-message-bg-color-system\": message.backgroundSystem,\n \"--chat-message-color-system\": message.colorSystem,\n \"--chat-message-color\": message.color,\n \"--chat-message-bg-color-media\": message.backgroundMedia,\n \"--chat-message-bg-color-reply\": message.backgroundReply,\n \"--chat-message-color-reply-username\": message.colorReplyUsername,\n \"--chat-message-color-reply-content\": message.colorReply,\n \"--chat-message-color-tag\": message.colorTag,\n \"--chat-message-bg-color-image\": message.backgroundImage,\n \"--chat-message-color-new-messages\": message.colorNewMessages,\n \"--chat-message-bg-color-scroll-counter\": message.backgroundScrollCounter,\n \"--chat-message-color-scroll-counter\": message.colorScrollCounter,\n \"--chat-message-bg-color-reaction\": message.backgroundReaction,\n \"--chat-message-border-style-reaction\": message.borderStyleReaction,\n \"--chat-message-bg-color-reaction-hover\": message.backgroundReactionHover,\n \"--chat-message-border-style-reaction-hover\": message.borderStyleReactionHover,\n \"--chat-message-color-reaction-counter\": message.colorReactionCounter,\n \"--chat-message-bg-color-reaction-me\": message.backgroundReactionMe,\n \"--chat-message-border-style-reaction-me\": message.borderStyleReactionMe,\n \"--chat-message-bg-color-reaction-hover-me\": message.backgroundReactionHoverMe,\n \"--chat-message-border-style-reaction-hover-me\": message.borderStyleReactionHoverMe,\n \"--chat-message-color-reaction-counter-me\": message.colorReactionCounterMe,\n \"--chat-message-bg-color-audio-record\": message.backgroundAudioRecord,\n \"--chat-message-bg-color-audio-line\": message.backgroundAudioLine,\n \"--chat-message-bg-color-audio-progress\": message.backgroundAudioProgress,\n \"--chat-message-bg-color-audio-progress-selector\": message.backgroundAudioProgressSelector,\n \"--chat-message-color-file-extension\": message.colorFileExtension,\n \"--chat-markdown-bg\": markdown.background,\n \"--chat-markdown-border\": markdown.border,\n \"--chat-markdown-color\": markdown.color,\n \"--chat-markdown-color-multi\": markdown.colorMulti,\n \"--chat-room-color-username\": room.colorUsername,\n \"--chat-room-color-message\": room.colorMessage,\n \"--chat-room-color-timestamp\": room.colorTimestamp,\n \"--chat-room-color-online\": room.colorStateOnline,\n \"--chat-room-color-offline\": room.colorStateOffline,\n \"--chat-room-bg-color-badge\": room.backgroundCounterBadge,\n \"--chat-room-color-badge\": room.colorCounterBadge,\n \"--chat-emoji-bg-color\": emoji.background,\n \"--chat-icon-color-search\": icons.search,\n \"--chat-icon-color-add\": icons.add,\n \"--chat-icon-color-toggle\": icons.toggle,\n \"--chat-icon-color-menu\": icons.menu,\n \"--chat-icon-color-close\": icons.close,\n \"--chat-icon-color-close-image\": icons.closeImage,\n \"--chat-icon-color-file\": icons.file,\n \"--chat-icon-color-paperclip\": icons.paperclip,\n \"--chat-icon-color-close-outline\": icons.closeOutline,\n \"--chat-icon-color-close-preview\": icons.closePreview,\n \"--chat-icon-color-send\": icons.send,\n \"--chat-icon-color-send-disabled\": icons.sendDisabled,\n \"--chat-icon-color-emoji\": icons.emoji,\n \"--chat-icon-color-emoji-reaction\": icons.emojiReaction,\n \"--chat-icon-color-document\": icons.document,\n \"--chat-icon-color-pencil\": icons.pencil,\n \"--chat-icon-color-checkmark\": icons.checkmark,\n \"--chat-icon-color-checkmark-seen\": icons.checkmarkSeen,\n \"--chat-icon-color-eye\": icons.eye,\n \"--chat-icon-color-dropdown-message\": icons.dropdownMessage,\n \"--chat-icon-bg-dropdown-message\": icons.dropdownMessageBackground,\n \"--chat-icon-color-dropdown-room\": icons.dropdownRoom,\n \"--chat-icon-color-dropdown-scroll\": icons.dropdownScroll,\n \"--chat-icon-color-microphone\": icons.microphone,\n \"--chat-icon-color-audio-play\": icons.audioPlay,\n \"--chat-icon-color-audio-pause\": icons.audioPause,\n \"--chat-icon-color-audio-cancel\": icons.audioCancel,\n \"--chat-icon-color-audio-confirm\": icons.audioConfirm\n };\n};\nvar _style_0 = '.vac-fade-spinner-enter-from{opacity:0}.vac-fade-spinner-enter-active{transition:opacity .8s}.vac-fade-spinner-leave-active{transition:opacity .2s;opacity:0}.vac-fade-image-enter-from{opacity:0}.vac-fade-image-enter-active{transition:opacity 1s}.vac-fade-image-leave-active{transition:opacity .5s;opacity:0}.vac-fade-message-enter-from{opacity:0}.vac-fade-message-enter-active{transition:opacity .5s}.vac-fade-message-leave-active{transition:opacity .2s;opacity:0}.vac-slide-left-enter-active,.vac-slide-right-enter-active{transition:all .3s ease;transition-property:transform,opacity}.vac-slide-left-leave-active,.vac-slide-right-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)!important;transition-property:transform,opacity}.vac-slide-left-enter-from,.vac-slide-left-leave-to{transform:translate(10px);opacity:0}.vac-slide-right-enter-from,.vac-slide-right-leave-to{transform:translate(-10px);opacity:0}.vac-slide-up-enter-active{transition:all .3s ease}.vac-slide-up-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)}.vac-slide-up-enter-from,.vac-slide-up-leave-to{transform:translateY(10px);opacity:0}.vac-bounce-enter-active{animation:vac-bounce-in .5s}.vac-bounce-leave-active{animation:vac-bounce-in .3s reverse}@keyframes vac-bounce-in{0%{transform:scale(0)}50%{transform:scale(1.05)}to{transform:scale(1)}}.vac-fade-preview-enter{opacity:0}.vac-fade-preview-enter-active{transition:opacity .1s}.vac-fade-preview-leave-active{transition:opacity .2s;opacity:0}.vac-bounce-preview-enter-active{animation:vac-bounce-image-in .4s}.vac-bounce-preview-leave-active{animation:vac-bounce-image-in .3s reverse}@keyframes vac-bounce-image-in{0%{transform:scale(.6)}to{transform:scale(1)}}.vac-menu-list{border-radius:4px;display:block;cursor:pointer;background:var(--chat-dropdown-bg-color);padding:6px 0}.vac-menu-list :hover{background:var(--chat-dropdown-bg-color-hover);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-menu-list :not(:hover){transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-menu-item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%;min-height:30px;padding:5px 16px;position:relative;white-space:nowrap;line-height:30px}.vac-menu-options{position:absolute;right:10px;top:20px;z-index:9999;min-width:150px;display:inline-block;border-radius:4px;font-size:14px;color:var(--chat-color);overflow-y:auto;overflow-x:hidden;contain:content;box-shadow:0 2px 2px -4px #0000001a,0 2px 2px 1px #0000001f,0 1px 8px 1px #0000001f}.vac-app-border{border:var(--chat-border-style)}.vac-app-border-t{border-top:var(--chat-border-style)}.vac-app-border-r{border-right:var(--chat-border-style)}.vac-app-border-b{border-bottom:var(--chat-border-style)}.vac-app-box-shadow{transition:all .5s;box-shadow:0 2px 2px -4px #0000001a,0 2px 2px 1px #0000001f,0 1px 8px 1px #0000001f}.vac-item-clickable{cursor:pointer}.vac-vertical-center{display:flex;align-items:center;height:100%}.vac-vertical-center .vac-vertical-container{width:100%;text-align:center}.vac-svg-button{max-height:30px;display:flex;cursor:pointer;transition:all .2s}.vac-svg-button:hover{transform:scale(1.1);opacity:.7}.vac-avatar{background-size:cover;background-position:center center;background-repeat:no-repeat;background-color:#ddd;height:42px;width:42px;min-height:42px;min-width:42px;margin-right:15px;border-radius:50%}.vac-blur-loading{filter:blur(3px)}.vac-badge-counter{height:13px;width:auto;min-width:13px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:3px;font-size:11px;font-weight:500}.vac-text-ellipsis{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-text-bold{font-weight:700}.vac-text-italic{font-style:italic}.vac-text-strike{text-decoration:line-through}.vac-text-underline{text-decoration:underline}.vac-text-inline-code{display:inline-block;font-size:12px;color:var(--chat-markdown-color);background:var(--chat-markdown-bg);border:1px solid var(--chat-markdown-border);border-radius:3px;margin:2px 0;padding:2px 3px}.vac-text-multiline-code{display:block;font-size:12px;color:var(--chat-markdown-color-multi);background:var(--chat-markdown-bg);border:1px solid var(--chat-markdown-border);border-radius:3px;margin:4px 0;padding:7px}.vac-text-tag{color:var(--chat-message-color-tag);cursor:pointer}.vac-file-container{display:flex;align-content:center;justify-content:center;flex-wrap:wrap;text-align:center;background:var(--chat-bg-color-input);border:var(--chat-border-style-input);border-radius:4px;padding:10px}.vac-file-container svg{height:28px;width:28px}.vac-file-container .vac-text-extension{font-size:12px;color:var(--chat-message-color-file-extension);margin-top:-2px}.vac-card-window{width:100%;display:block;max-width:100%;background:var(--chat-content-bg-color);color:var(--chat-color);overflow-wrap:break-word;white-space:normal;border:var(--chat-container-border);border-radius:var(--chat-container-border-radius);box-shadow:var(--chat-container-box-shadow);-webkit-tap-highlight-color:transparent}.vac-card-window *{font-family:inherit}.vac-card-window a{color:#0d579c;font-weight:500}.vac-card-window .vac-chat-container{height:100%;display:flex}.vac-card-window .vac-chat-container input{min-width:10px}.vac-card-window .vac-chat-container textarea,.vac-card-window .vac-chat-container input[type=text],.vac-card-window .vac-chat-container input[type=search]{-webkit-appearance:none}.vac-media-preview{position:fixed;top:0;left:0;z-index:99;width:100vw;height:100vh;display:flex;align-items:center;background-color:#000c;outline:none}.vac-media-preview .vac-media-preview-container{height:calc(100% - 140px);width:calc(100% - 80px);padding:70px 40px;margin:0 auto}.vac-media-preview .vac-image-preview{width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:center}.vac-media-preview video{width:100%;height:100%}.vac-media-preview .vac-svg-button{position:absolute;top:30px;right:30px;transform:scale(1.4)}@media only screen and (max-width: 768px){.vac-media-preview .vac-svg-button{top:20px;right:20px;transform:scale(1.2)}.vac-media-preview .vac-media-preview-container{width:calc(100% - 40px);padding:70px 20px}}.vac-col-messages{position:relative;height:100%;flex:1;overflow:hidden;display:flex;flex-flow:column}.vac-col-messages .vac-container-center{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.vac-col-messages .vac-room-empty{font-size:14px;color:#9ca6af;font-style:italic;line-height:20px;white-space:pre-line}.vac-col-messages .vac-room-empty div{padding:0 10%}.vac-col-messages .vac-container-scroll{background:var(--chat-content-bg-color);flex:1;overflow-y:auto;margin-right:1px;margin-top:65px;-webkit-overflow-scrolling:touch}.vac-col-messages .vac-container-scroll.vac-scroll-smooth{scroll-behavior:smooth}.vac-col-messages .vac-messages-container{padding:0 5px 5px}.vac-col-messages .vac-text-started{font-size:14px;color:var(--chat-message-color-started);font-style:italic;text-align:center;margin-top:25px;margin-bottom:20px}.vac-col-messages .vac-icon-scroll{position:absolute;bottom:80px;right:20px;padding:8px;background:var(--chat-bg-scroll-icon);border-radius:50%;box-shadow:0 1px 1px -1px #0003,0 1px 1px #00000024,0 1px 2px #0000001f;display:flex;cursor:pointer;z-index:10}.vac-col-messages .vac-icon-scroll svg{height:25px;width:25px}.vac-col-messages .vac-messages-count{position:absolute;top:-8px;left:11px;background-color:var(--chat-message-bg-color-scroll-counter);color:var(--chat-message-color-scroll-counter)}.vac-col-messages .vac-messages-hidden{opacity:0}@media only screen and (max-width: 768px){.vac-col-messages .vac-container-scroll{margin-top:50px}.vac-col-messages .vac-text-started{margin-top:20px}.vac-col-messages .vac-icon-scroll{bottom:70px}}.vac-room-header{position:absolute;display:flex;align-items:center;height:64px;width:100%;z-index:10;margin-right:1px;background:var(--chat-header-bg-color);border-top-right-radius:var(--chat-container-border-radius)}.vac-room-header .vac-room-wrapper{display:flex;align-items:center;min-width:0;height:100%;width:100%;padding:0 16px}.vac-room-header .vac-toggle-button{margin-right:15px}.vac-room-header .vac-toggle-button svg{height:26px;width:26px}.vac-room-header .vac-rotate-icon{transform:rotate(180deg)!important}.vac-room-header .vac-rotate-icon-init{transform:rotate(360deg)}.vac-room-header .vac-info-wrapper,.vac-room-header .vac-room-selection{display:flex;align-items:center;min-width:0;width:100%;height:100%}.vac-room-header .vac-room-selection .vac-selection-button{padding:8px 16px;color:var(--chat-color-button);background-color:var(--chat-bg-color-button);border-radius:4px;margin-right:10px;cursor:pointer;transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-button:hover{opacity:.7}.vac-room-header .vac-room-selection .vac-selection-button:active{opacity:.9}.vac-room-header .vac-room-selection .vac-selection-button .vac-selection-button-count{margin-left:6px;opacity:.9}.vac-room-header .vac-room-selection .vac-selection-cancel{display:flex;align-items:center;margin-left:auto;white-space:nowrap;color:var(--chat-color-button-clear);transition:all .2s}.vac-room-header .vac-room-selection .vac-selection-cancel:hover{opacity:.7}.vac-room-header .vac-room-name{font-size:17px;font-weight:500;line-height:22px;color:var(--chat-header-color-name)}.vac-room-header .vac-room-info{font-size:13px;line-height:18px;color:var(--chat-header-color-info)}.vac-room-header .vac-room-options{margin-left:auto}@media only screen and (max-width: 768px){.vac-room-header{height:50px}.vac-room-header .vac-room-wrapper{padding:0 10px}.vac-room-header .vac-room-name{font-size:16px;line-height:22px}.vac-room-header .vac-room-info{font-size:12px;line-height:16px}.vac-room-header .vac-avatar{height:37px;width:37px;min-height:37px;min-width:37px}}.vac-room-footer{width:100%;border-bottom-right-radius:4px;z-index:10}.vac-box-footer{display:flex;position:relative;background:var(--chat-footer-bg-color);padding:10px 8px}.vac-textarea{max-height:300px;overflow-y:auto;height:20px;width:100%;line-height:20px;outline:0;resize:none;border-radius:20px;padding:12px 16px;box-sizing:content-box;font-size:16px;background:var(--chat-bg-color-input);color:var(--chat-color);caret-color:var(--chat-color-caret);border:var(--chat-border-style-input)}.vac-textarea::placeholder{color:var(--chat-color-placeholder);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vac-textarea-outline{border:1px solid var(--chat-border-color-input-selected);box-shadow:inset 0 0 0 1px var(--chat-border-color-input-selected)}.vac-icon-textarea,.vac-icon-textarea-left{display:flex;align-items:center}.vac-icon-textarea svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 7px}.vac-icon-textarea{margin-left:5px}.vac-icon-textarea-left{display:flex;align-items:center;margin-right:5px}.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 7px}.vac-icon-textarea-left .vac-icon-microphone{fill:var(--chat-icon-color-microphone);margin:0 7px}.vac-icon-textarea-left .vac-dot-audio-record{height:15px;width:15px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-record);animation:vac-scaling .8s ease-in-out infinite alternate}@keyframes vac-scaling{0%{transform:scale(1);opacity:.4}to{transform:scale(1.1);opacity:1}}.vac-icon-textarea-left .vac-dot-audio-record-time{font-size:16px;color:var(--chat-color);margin-left:8px;width:45px}.vac-icon-textarea-left .vac-icon-audio-stop,.vac-icon-textarea-left .vac-icon-audio-confirm{min-height:28px;min-width:28px}.vac-icon-textarea-left .vac-icon-audio-stop svg,.vac-icon-textarea-left .vac-icon-audio-confirm svg{min-height:28px;min-width:28px}.vac-icon-textarea-left .vac-icon-audio-stop{margin-right:20px}.vac-icon-textarea-left .vac-icon-audio-stop #vac-icon-close-outline{fill:var(--chat-icon-color-audio-cancel)}.vac-icon-textarea-left .vac-icon-audio-confirm{margin-right:3px;margin-left:12px}.vac-icon-textarea-left .vac-icon-audio-confirm #vac-icon-checkmark{fill:var(--chat-icon-color-audio-confirm)}.vac-send-disabled,.vac-send-disabled svg{cursor:none!important;pointer-events:none!important;transform:none!important}@media only screen and (max-width: 768px){.vac-room-footer{width:100%}.vac-box-footer{padding:7px 2px 7px 7px}.vac-box-footer.vac-box-footer-border{border-top:var(--chat-border-style-input)}.vac-textarea{padding:7px;line-height:18px}.vac-textarea::placeholder{color:transparent}.vac-icon-textarea svg,.vac-icon-textarea .vac-wrapper,.vac-icon-textarea-left svg,.vac-icon-textarea-left .vac-wrapper{margin:0 5px!important}}@media only screen and (max-height: 768px){.vac-textarea{max-height:120px}}.vac-emojis-container{width:calc(100% - 16px);padding:10px 8px;background:var(--chat-footer-bg-color);display:flex;align-items:center;overflow:auto}.vac-emojis-container .vac-emoji-element{padding:0 8px;font-size:30px;border-radius:4px;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-emojis-container .vac-emoji-element-active{background:var(--chat-footer-bg-color-tag-active)}@media only screen and (max-width: 768px){.vac-emojis-container{width:calc(100% - 10px);padding:7px 5px}.vac-emojis-container .vac-emoji-element{padding:0 7px;font-size:26px}}.vac-reply-container{display:flex;padding:10px 10px 0;background:var(--chat-footer-bg-color);align-items:center;width:calc(100% - 20px)}.vac-reply-container .vac-reply-box{width:100%;overflow:hidden;background:var(--chat-footer-bg-color-reply);border-radius:4px;padding:8px 10px}.vac-reply-container .vac-reply-info{overflow:hidden}.vac-reply-container .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-container .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content);white-space:pre-line}.vac-reply-container .vac-icon-reply{margin-left:10px}.vac-reply-container .vac-icon-reply svg{height:20px;width:20px}.vac-reply-container .vac-image-reply{max-height:100px;max-width:200px;margin:4px 10px 0 0;border-radius:4px}.vac-reply-container .vac-audio-reply{margin-right:10px}.vac-reply-container .vac-file-container{max-width:80px}@media only screen and (max-width: 768px){.vac-reply-container{padding:5px 8px;width:calc(100% - 16px)}}.vac-room-files-container{display:flex;align-items:center;padding:10px 6px 0;background:var(--chat-footer-bg-color)}.vac-room-files-container .vac-files-box{display:flex;overflow:auto;width:calc(100% - 30px)}.vac-room-files-container video{height:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-files-container .vac-icon-close{margin-left:auto}.vac-room-files-container .vac-icon-close svg{height:20px;width:20px}@media only screen and (max-width: 768px){.vac-files-container{padding:6px 4px 4px 2px}}.vac-room-file-container{display:flex;position:relative;margin:0 4px}.vac-room-file-container .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important;height:100px;width:100px;border:var(--chat-border-style-input);border-radius:4px}.vac-room-file-container .vac-file-container{height:80px;width:80px}.vac-room-file-container .vac-icon-remove{position:absolute;top:6px;left:6px;z-index:10}.vac-room-file-container .vac-icon-remove svg{height:20px;width:20px;border-radius:50%}.vac-room-file-container .vac-icon-remove:before{content:\" \";position:absolute;width:100%;height:100%;background:rgba(0,0,0,.5);border-radius:50%;z-index:-1}.vac-tags-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-tags-container .vac-tags-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-tags-container .vac-tags-box-active{background:var(--chat-footer-bg-color-tag-active)}.vac-tags-container .vac-tags-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-tags-container .vac-tags-avatar{height:34px;width:34px;min-height:34px;min-width:34px}.vac-tags-container .vac-tags-username{font-size:14px}@media only screen and (max-width: 768px){.vac-tags-container .vac-tags-box{height:50px}.vac-tags-container .vac-tags-info{padding:0 12px}}.vac-template-container{display:flex;flex-direction:column;align-items:center;width:100%}.vac-template-container .vac-template-box{display:flex;width:100%;height:54px;overflow:hidden;cursor:pointer;background:var(--chat-footer-bg-color-tag);transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-template-container .vac-template-active{background:var(--chat-footer-bg-color-tag-active)}.vac-template-container .vac-template-info{display:flex;overflow:hidden;padding:0 20px;align-items:center}.vac-template-container .vac-template-tag{font-size:14px;font-weight:700;margin-right:10px}.vac-template-container .vac-template-text{font-size:14px}@media only screen and (max-width: 768px){.vac-template-container .vac-template-box{height:50px}.vac-template-container .vac-template-info{padding:0 12px}}.vac-rooms-container{display:flex;flex-flow:column;flex:0 0 25%;min-width:260px;max-width:500px;position:relative;background:var(--chat-sidemenu-bg-color);height:100%;border-top-left-radius:var(--chat-container-border-radius);border-bottom-left-radius:var(--chat-container-border-radius)}.vac-rooms-container.vac-rooms-container-full{flex:0 0 100%;max-width:100%}.vac-rooms-container .vac-rooms-empty{font-size:14px;color:#9ca6af;font-style:italic;text-align:center;margin:40px 0;line-height:20px;white-space:pre-line}.vac-rooms-container .vac-room-list{flex:1;position:relative;max-width:100%;cursor:pointer;padding:0 10px 5px;overflow-y:auto}.vac-rooms-container .vac-room-item{border-radius:8px;align-items:center;display:flex;flex:1 1 100%;margin-bottom:5px;padding:0 14px;position:relative;min-height:71px;transition:background-color .3s cubic-bezier(.25,.8,.5,1)}.vac-rooms-container .vac-room-item:hover{background:var(--chat-sidemenu-bg-color-hover)}.vac-rooms-container .vac-room-selected{color:var(--chat-sidemenu-color-active)!important;background:var(--chat-sidemenu-bg-color-active)!important}.vac-rooms-container .vac-room-selected:hover{background:var(--chat-sidemenu-bg-color-active)!important}@media only screen and (max-width: 768px){.vac-rooms-container .vac-room-list{padding:0 7px 5px}.vac-rooms-container .vac-room-item{min-height:60px;padding:0 8px}}.vac-room-container{display:flex;flex:1;align-items:center;width:100%}.vac-room-container .vac-name-container{flex:1}.vac-room-container .vac-title-container{display:flex;align-items:center;line-height:25px}.vac-room-container .vac-state-circle{width:9px;height:9px;border-radius:50%;background-color:var(--chat-room-color-offline);margin-right:6px;transition:.3s}.vac-room-container .vac-state-online{background-color:var(--chat-room-color-online)}.vac-room-container .vac-room-name{flex:1;color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-text-date{margin-left:5px;font-size:11px;color:var(--chat-room-color-timestamp)}.vac-room-container .vac-text-last{display:flex;align-items:center;font-size:12px;line-height:19px;color:var(--chat-room-color-message)}.vac-room-container .vac-message-new{color:var(--chat-room-color-username);font-weight:500}.vac-room-container .vac-icon-check{display:flex;vertical-align:middle;height:14px;width:14px;margin-top:-2px;margin-right:2px}.vac-room-container .vac-icon-microphone{height:15px;width:15px;vertical-align:middle;margin:-3px 1px 0 -2px;fill:var(--chat-room-color-message)}.vac-room-container .vac-room-options-container{display:flex;margin-left:auto}.vac-room-container .vac-room-badge{background-color:var(--chat-room-bg-color-badge);color:var(--chat-room-color-badge);margin-left:5px}.vac-room-container .vac-list-room-options{height:19px;width:19px;align-items:center;margin-left:5px}.vac-box-empty{margin-top:10px}@media only screen and (max-width: 768px){.vac-box-empty{margin-top:7px}}.vac-box-search{position:sticky;display:flex;align-items:center;height:64px;padding:0 15px}.vac-box-search .vac-icon-search{display:flex;position:absolute;left:30px}.vac-box-search .vac-icon-search svg{width:18px;height:18px}.vac-box-search .vac-input{height:38px;width:100%;background:var(--chat-bg-color-input);color:var(--chat-color);font-size:15px;outline:0;caret-color:var(--chat-color-caret);padding:10px 10px 10px 40px;border:1px solid var(--chat-sidemenu-border-color-search);border-radius:20px}.vac-box-search .vac-input::placeholder{color:var(--chat-color-placeholder)}.vac-box-search .vac-add-icon{margin-left:auto;padding-left:10px}@media only screen and (max-width: 768px){.vac-box-search{height:58px}}.vac-message-wrapper .vac-card-info{border-radius:4px;text-align:center;margin:10px auto;font-size:12px;padding:4px;display:block;overflow-wrap:break-word;position:relative;white-space:normal;box-shadow:0 1px 1px -1px #0000001a,0 1px 1px -1px #0000001c,0 1px 2px -1px #0000001c}.vac-message-wrapper .vac-card-date{max-width:150px;font-weight:500;text-transform:uppercase;color:var(--chat-message-color-date);background-color:var(--chat-message-bg-color-date)}.vac-message-wrapper .vac-card-system{max-width:250px;padding:8px 4px;color:var(--chat-message-color-system);background-color:var(--chat-message-bg-color-system)}.vac-message-wrapper .vac-line-new{color:var(--chat-message-color-new-messages);position:relative;text-align:center;font-size:13px;padding:10px 0}.vac-message-wrapper .vac-line-new:after,.vac-message-wrapper .vac-line-new:before{border-top:1px solid var(--chat-message-color-new-messages);content:\"\";left:0;position:absolute;top:50%;width:calc(50% - 60px)}.vac-message-wrapper .vac-line-new:before{left:auto;right:0}.vac-message-wrapper .vac-message-box{display:flex;flex:0 0 50%;max-width:50%;justify-content:flex-start;line-height:1.4}.vac-message-wrapper .vac-avatar{height:28px;width:28px;min-height:28px;min-width:28px;margin:0 0 2px;align-self:flex-end}.vac-message-wrapper .vac-avatar-current-offset{margin-right:28px}.vac-message-wrapper .vac-avatar-offset{margin-left:28px}.vac-message-wrapper .vac-failure-container{position:relative;align-self:flex-end;height:20px;width:20px;margin:0 0 2px -4px;border-radius:50%;background-color:#f44336}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:6px}.vac-message-wrapper .vac-failure-container .vac-failure-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:15px;font-weight:700}.vac-message-wrapper .vac-message-container{position:relative;padding:2px 10px;align-items:end;min-width:100px;box-sizing:content-box}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-offset-current{margin-left:50%;justify-content:flex-end}.vac-message-wrapper .vac-message-card{background-color:var(--chat-message-bg-color);color:var(--chat-message-color);border-radius:8px;font-size:14px;padding:6px 9px 3px;white-space:pre-line;max-width:100%;-webkit-transition-property:box-shadow,opacity;transition-property:box-shadow,opacity;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);will-change:box-shadow;box-shadow:0 1px 1px -1px #0000001a,0 1px 1px -1px #0000001c,0 1px 2px -1px #0000001c}.vac-message-wrapper .vac-message-highlight{box-shadow:0 1px 2px -1px #0000001a,0 1px 2px -1px #0000001c,0 1px 5px -1px #0000001c}.vac-message-wrapper .vac-message-current{background-color:var(--chat-message-bg-color-me)!important}.vac-message-wrapper .vac-message-deleted{color:var(--chat-message-color-deleted)!important;font-size:13px!important;font-style:italic!important;background-color:var(--chat-message-bg-color-deleted)!important}.vac-message-wrapper .vac-message-selected{background-color:var(--chat-message-bg-color-selected)!important;transition:background-color .2s}.vac-message-wrapper .vac-message-image{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:cover!important;background-position:center center!important;background-repeat:no-repeat!important;height:250px;width:250px;max-width:100%;border-radius:4px;margin:4px auto 5px;transition:.4s filter linear}.vac-message-wrapper .vac-text-username{font-size:13px;color:var(--chat-message-color-username);margin-bottom:2px}.vac-message-wrapper .vac-username-reply{margin-bottom:5px}.vac-message-wrapper .vac-text-timestamp{font-size:10px;color:var(--chat-message-color-timestamp);text-align:right}.vac-message-wrapper .vac-progress-time{float:left;margin:-2px 0 0 40px;color:var(--chat-color);font-size:12px}.vac-message-wrapper .vac-icon-edited{-webkit-box-align:center;align-items:center;display:-webkit-inline-box;display:inline-flex;justify-content:center;letter-spacing:normal;line-height:1;text-indent:0;vertical-align:middle;margin:0 4px 2px}.vac-message-wrapper .vac-icon-edited svg{height:12px;width:12px}.vac-message-wrapper .vac-icon-check{height:14px;width:14px;vertical-align:middle;margin:-3px -3px 0 3px}@media only screen and (max-width: 768px){.vac-message-wrapper .vac-message-container{padding:2px 3px 1px}.vac-message-wrapper .vac-message-container-offset{margin-top:10px}.vac-message-wrapper .vac-message-box{flex:0 0 80%;max-width:80%}.vac-message-wrapper .vac-avatar{height:25px;width:25px;min-height:25px;min-width:25px;margin:0 6px 1px 0}.vac-message-wrapper .vac-avatar.vac-avatar-current{margin:0 0 1px 6px}.vac-message-wrapper .vac-avatar-current-offset{margin-right:31px}.vac-message-wrapper .vac-avatar-offset{margin-left:31px}.vac-message-wrapper .vac-failure-container{margin-left:2px}.vac-message-wrapper .vac-failure-container.vac-failure-container-avatar{margin-right:0}.vac-message-wrapper .vac-offset-current{margin-left:20%}.vac-message-wrapper .vac-progress-time{margin-left:37px}}.vac-audio-player{display:flex;margin:8px 0 5px}.vac-audio-player .vac-svg-button{max-width:18px;margin-left:7px}@media only screen and (max-width: 768px){.vac-audio-player{margin:4px 0 0}.vac-audio-player .vac-svg-button{max-width:16px;margin-left:5px}}.vac-player-bar{display:flex;align-items:center;max-width:calc(100% - 18px);margin-right:7px;margin-left:20px}.vac-player-bar .vac-player-progress{width:190px}.vac-player-bar .vac-player-progress .vac-line-container{position:relative;height:4px;border-radius:5px;background-color:var(--chat-message-bg-color-audio-line)}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-progress{position:absolute;height:inherit;background-color:var(--chat-message-bg-color-audio-progress);border-radius:inherit}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{position:absolute;top:-5px;margin-left:-7px;height:14px;width:14px;border-radius:50%;background-color:var(--chat-message-bg-color-audio-progress-selector);transition:transform .25s}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot__active{transform:scale(1.2)}@media only screen and (max-width: 768px){.vac-player-bar{margin-right:5px}.vac-player-bar .vac-player-progress .vac-line-container{height:3px}.vac-player-bar .vac-player-progress .vac-line-container .vac-line-dot{height:12px;width:12px;top:-5px;margin-left:-5px}}.vac-message-actions-wrapper .vac-options-container{position:absolute;top:2px;right:10px;height:40px;width:70px;overflow:hidden;border-top-right-radius:8px}.vac-message-actions-wrapper .vac-blur-container{position:absolute;height:100%;width:100%;left:8px;bottom:10px;background:var(--chat-message-bg-color);filter:blur(3px);border-bottom-left-radius:8px}.vac-message-actions-wrapper .vac-options-me{background:var(--chat-message-bg-color-me)}.vac-message-actions-wrapper .vac-message-options{background:var(--chat-icon-bg-dropdown-message);border-radius:50%;position:absolute;top:7px;right:7px}.vac-message-actions-wrapper .vac-message-options svg{height:17px;width:17px;padding:5px;margin:-5px}.vac-message-actions-wrapper .vac-message-emojis{position:absolute;top:6px;right:30px}.vac-message-actions-wrapper .vac-menu-options{right:15px}.vac-message-actions-wrapper .vac-menu-left{right:-118px}@media only screen and (max-width: 768px){.vac-message-actions-wrapper .vac-options-container{right:3px}.vac-message-actions-wrapper .vac-menu-left{right:-50px}}.vac-message-files-container .vac-file-wrapper{position:relative;width:fit-content}.vac-message-files-container .vac-file-wrapper .vac-file-container{height:60px;width:60px;margin:3px 0 5px;cursor:pointer;transition:all .6s}.vac-message-files-container .vac-file-wrapper .vac-file-container:hover{opacity:.85}.vac-message-files-container .vac-file-wrapper .vac-file-container svg{height:30px;width:30px}.vac-message-files-container .vac-file-wrapper .vac-file-container.vac-file-container-progress{background-color:#0000004d}.vac-message-file-container{position:relative;z-index:0}.vac-message-file-container .vac-message-image-container{cursor:pointer}.vac-message-file-container .vac-image-buttons{position:absolute;width:100%;height:100%;border-radius:4px;background:linear-gradient(to bottom,rgba(0,0,0,0) 55%,rgba(0,0,0,.02) 60%,rgba(0,0,0,.05) 65%,rgba(0,0,0,.1) 70%,rgba(0,0,0,.2) 75%,rgba(0,0,0,.3) 80%,rgba(0,0,0,.5) 85%,rgba(0,0,0,.6) 90%,rgba(0,0,0,.7) 95%,rgba(0,0,0,.8) 100%)}.vac-message-file-container .vac-image-buttons svg{height:26px;width:26px}.vac-message-file-container .vac-image-buttons .vac-button-view,.vac-message-file-container .vac-image-buttons .vac-button-download{position:absolute;bottom:6px;left:7px}.vac-message-file-container .vac-image-buttons :first-child{left:40px}.vac-message-file-container .vac-image-buttons .vac-button-view{max-width:18px;bottom:8px}.vac-message-file-container .vac-video-container{width:350px;max-width:100%;margin:4px auto 5px;cursor:pointer}.vac-message-file-container .vac-video-container video{width:100%;height:100%;border-radius:4px}.vac-button-reaction{display:inline-flex;align-items:center;border:var(--chat-message-border-style-reaction);outline:none;background:var(--chat-message-bg-color-reaction);border-radius:4px;margin:4px 2px 0;transition:.3s;padding:0 5px;font-size:18px;line-height:23px}.vac-button-reaction span{font-size:11px;font-weight:500;min-width:7px;color:var(--chat-message-color-reaction-counter)}.vac-button-reaction:hover{border:var(--chat-message-border-style-reaction-hover);background:var(--chat-message-bg-color-reaction-hover);cursor:pointer}.vac-button-reaction.vac-reaction-me{border:var(--chat-message-border-style-reaction-me);background:var(--chat-message-bg-color-reaction-me)}.vac-button-reaction.vac-reaction-me span{color:var(--chat-message-color-reaction-counter-me)}.vac-button-reaction.vac-reaction-me:hover{border:var(--chat-message-border-style-reaction-hover-me);background:var(--chat-message-bg-color-reaction-hover-me)}.vac-reply-message{background:var(--chat-message-bg-color-reply);border-radius:4px;margin:-1px -5px 8px;padding:8px 10px}.vac-reply-message .vac-reply-username{color:var(--chat-message-color-reply-username);font-size:12px;line-height:15px;margin-bottom:2px}.vac-reply-message .vac-image-reply-container{width:70px}.vac-reply-message .vac-image-reply-container .vac-message-image-reply{height:70px;width:70px;margin:4px auto 3px}.vac-reply-message .vac-video-reply-container{width:200px;max-width:100%}.vac-reply-message .vac-video-reply-container video{width:100%;height:100%;border-radius:4px}.vac-reply-message .vac-reply-content{font-size:12px;color:var(--chat-message-color-reply-content)}.vac-reply-message .vac-file-container{height:60px;width:60px}.vac-emoji-wrapper{position:relative;display:flex}.vac-emoji-wrapper .vac-emoji-reaction svg{height:19px;width:19px}.vac-emoji-wrapper .vac-emoji-picker{position:absolute;z-index:9999;bottom:32px;right:10px;width:300px;padding-top:4px;overflow:scroll;box-sizing:border-box;border-radius:.5rem;background:var(--chat-emoji-bg-color);box-shadow:0 1px 2px -2px #0000001a,0 1px 2px -1px #0000001a,0 1px 2px 1px #0000001a;scrollbar-width:none}.vac-emoji-wrapper .vac-emoji-picker::-webkit-scrollbar{display:none}.vac-emoji-wrapper .vac-emoji-picker.vac-picker-reaction{position:fixed;top:initial;right:initial}.vac-emoji-wrapper .vac-emoji-picker emoji-picker{height:100%;width:100%;--emoji-size: 1.2rem;--background: var(--chat-emoji-bg-color);--emoji-padding: .4rem;--border-color: var(--chat-sidemenu-border-color-search);--button-hover-background: var(--chat-sidemenu-bg-color-hover);--button-active-background: var(--chat-sidemenu-bg-color-hover)}.vac-format-message-wrapper .vac-format-container{display:inline}.vac-format-message-wrapper .vac-icon-deleted{height:14px;width:14px;vertical-align:middle;margin:-2px 2px 0 0;fill:var(--chat-message-color-deleted)}.vac-format-message-wrapper .vac-icon-deleted.vac-icon-deleted-room{margin:-3px 1px 0 0;fill:var(--chat-room-color-message)}.vac-format-message-wrapper .vac-image-link-container{background-color:var(--chat-message-bg-color-media);padding:8px;margin:2px auto;border-radius:4px}.vac-format-message-wrapper .vac-image-link{position:relative;background-color:var(--chat-message-bg-color-image)!important;background-size:contain;background-position:center center!important;background-repeat:no-repeat!important;height:150px;width:150px;max-width:100%;border-radius:4px;margin:0 auto}.vac-format-message-wrapper .vac-image-link-message{max-width:166px;font-size:12px}.vac-loader-wrapper.vac-container-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-loader-wrapper.vac-container-top{padding:21px}.vac-loader-wrapper.vac-container-top #vac-circle{height:20px;width:20px}.vac-loader-wrapper #vac-circle{margin:auto;height:28px;width:28px;border:3px rgba(0,0,0,.25) solid;border-top:3px var(--chat-color-spinner) solid;border-right:3px var(--chat-color-spinner) solid;border-bottom:3px var(--chat-color-spinner) solid;border-radius:50%;-webkit-animation:vac-spin 1s infinite linear;animation:vac-spin 1s infinite linear}@media only screen and (max-width: 768px){.vac-loader-wrapper #vac-circle{height:24px;width:24px}.vac-loader-wrapper.vac-container-top{padding:18px}.vac-loader-wrapper.vac-container-top #vac-circle{height:16px;width:16px}}@-webkit-keyframes vac-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes vac-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}#vac-icon-search{fill:var(--chat-icon-color-search)}#vac-icon-add{fill:var(--chat-icon-color-add)}#vac-icon-toggle{fill:var(--chat-icon-color-toggle)}#vac-icon-menu{fill:var(--chat-icon-color-menu)}#vac-icon-close{fill:var(--chat-icon-color-close)}#vac-icon-close-image{fill:var(--chat-icon-color-close-image)}#vac-icon-file{fill:var(--chat-icon-color-file)}#vac-icon-paperclip{fill:var(--chat-icon-color-paperclip)}#vac-icon-close-outline{fill:var(--chat-icon-color-close-outline)}#vac-icon-close-outline-preview{fill:var(--chat-icon-color-close-preview)}#vac-icon-send{fill:var(--chat-icon-color-send)}#vac-icon-send-disabled{fill:var(--chat-icon-color-send-disabled)}#vac-icon-emoji{fill:var(--chat-icon-color-emoji)}#vac-icon-emoji-reaction{fill:var(--chat-icon-color-emoji-reaction)}#vac-icon-document{fill:var(--chat-icon-color-document)}#vac-icon-pencil{fill:var(--chat-icon-color-pencil)}#vac-icon-checkmark,#vac-icon-double-checkmark{fill:var(--chat-icon-color-checkmark)}#vac-icon-checkmark-seen,#vac-icon-double-checkmark-seen{fill:var(--chat-icon-color-checkmark-seen)}#vac-icon-eye{fill:var(--chat-icon-color-eye)}#vac-icon-dropdown-message{fill:var(--chat-icon-color-dropdown-message)}#vac-icon-dropdown-room{fill:var(--chat-icon-color-dropdown-room)}#vac-icon-dropdown-scroll{fill:var(--chat-icon-color-dropdown-scroll)}#vac-icon-audio-play{fill:var(--chat-icon-color-audio-play)}#vac-icon-audio-pause{fill:var(--chat-icon-color-audio-pause)}.vac-progress-wrapper{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9}.vac-progress-wrapper circle{transition:stroke-dashoffset .35s;transform:rotate(-90deg);transform-origin:50% 50%}.vac-progress-wrapper .vac-progress-content{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1;margin-top:-2px;background-color:#000000b3;border-radius:50%}.vac-progress-wrapper .vac-progress-content .vac-progress-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:700;color:#fff}.vac-progress-wrapper .vac-progress-content .vac-progress-text .vac-progress-pourcent{font-size:9px;font-weight:400}\\n';\nconst _sfc_main = {\n name: \"ChatContainer\",\n components: {\n RoomsList,\n Room,\n MediaPreview\n },\n props: {\n height: { type: String, default: \"600px\" },\n theme: { type: String, default: \"light\" },\n styles: { type: [Object, String], default: () => ({}) },\n responsiveBreakpoint: { type: Number, default: 900 },\n singleRoom: { type: [Boolean, String], default: false },\n roomsListOpened: { type: [Boolean, String], default: true },\n textMessages: { type: [Object, String], default: () => ({}) },\n currentUserId: { type: String, default: \"\" },\n rooms: { type: [Array, String], default: () => [] },\n roomsOrder: { type: String, default: \"desc\" },\n loadingRooms: { type: [Boolean, String], default: false },\n roomsLoaded: { type: [Boolean, String], default: false },\n roomId: { type: String, default: null },\n loadFirstRoom: { type: [Boolean, String], default: true },\n messages: { type: [Array, String], default: () => [] },\n messagesLoaded: { type: [Boolean, String], default: false },\n roomActions: { type: [Array, String], default: () => [] },\n menuActions: { type: [Array, String], default: () => [] },\n messageActions: {\n type: [Array, String],\n default: () => [\n { name: \"replyMessage\", title: \"Reply\" },\n { name: \"editMessage\", title: \"Edit Message\", onlyMe: true },\n { name: \"deleteMessage\", title: \"Delete Message\", onlyMe: true },\n { name: \"selectMessages\", title: \"Select\" }\n ]\n },\n messageSelectionActions: { type: [Array, String], default: () => [] },\n autoScroll: {\n type: [Object, String],\n default: () => {\n return {\n send: {\n new: true,\n newAfterScrollUp: true\n },\n receive: {\n new: true,\n newAfterScrollUp: false\n }\n };\n }\n },\n customSearchRoomEnabled: { type: [Boolean, String], default: false },\n showSearch: { type: [Boolean, String], default: true },\n showAddRoom: { type: [Boolean, String], default: true },\n showSendIcon: { type: [Boolean, String], default: true },\n showFiles: { type: [Boolean, String], default: true },\n showAudio: { type: [Boolean, String], default: true },\n audioBitRate: { type: Number, default: 128 },\n audioSampleRate: { type: Number, default: 44100 },\n showEmojis: { type: [Boolean, String], default: true },\n showReactionEmojis: { type: [Boolean, String], default: true },\n showNewMessagesDivider: { type: [Boolean, String], default: true },\n showFooter: { type: [Boolean, String], default: true },\n textFormatting: {\n type: [Object, String],\n default: () => ({\n disabled: false,\n italic: \"_\",\n bold: \"*\",\n strike: \"~\",\n underline: \"\\xB0\",\n multilineCode: \"```\",\n inlineCode: \"`\"\n })\n },\n linkOptions: {\n type: [Object, String],\n default: () => ({ disabled: false, target: \"_blank\", rel: null })\n },\n roomInfoEnabled: { type: [Boolean, String], default: false },\n textareaActionEnabled: { type: [Boolean, String], default: false },\n textareaAutoFocus: { type: [Boolean, String], default: true },\n userTagsEnabled: { type: [Boolean, String], default: true },\n emojisSuggestionEnabled: { type: [Boolean, String], default: true },\n roomMessage: { type: String, default: \"\" },\n scrollDistance: { type: Number, default: 60 },\n acceptedFiles: { type: String, default: \"*\" },\n templatesText: { type: [Array, String], default: () => [] },\n mediaPreviewEnabled: { type: [Boolean, String], default: true },\n usernameOptions: {\n type: [Object, String],\n default: () => ({ minUsers: 3, currentUser: false })\n },\n emojiDataSource: { type: String, default: void 0 }\n },\n emits: [\n \"toggle-rooms-list\",\n \"room-info\",\n \"fetch-messages\",\n \"send-message\",\n \"edit-message\",\n \"delete-message\",\n \"open-file\",\n \"open-user-tag\",\n \"open-failed-message\",\n \"menu-action-handler\",\n \"message-action-handler\",\n \"send-message-reaction\",\n \"typing-message\",\n \"textarea-action-handler\",\n \"fetch-more-rooms\",\n \"add-room\",\n \"search-room\",\n \"room-action-handler\",\n \"message-selection-action-handler\"\n ],\n data() {\n return {\n slots: [],\n room: {},\n loadingMoreRooms: false,\n showRoomsList: true,\n isMobile: false,\n showMediaPreview: false,\n previewFile: {}\n };\n },\n computed: {\n t() {\n return {\n ...locales,\n ...this.textMessagesCasted\n };\n },\n cssVars() {\n const defaultStyles = defaultThemeStyles[this.theme];\n const customStyles = {};\n Object.keys(defaultStyles).map((key) => {\n customStyles[key] = {\n ...defaultStyles[key],\n ...this.stylesCasted[key] || {}\n };\n });\n return cssThemeVars(customStyles);\n },\n orderedRooms() {\n return this.roomsCasted.slice().sort((a, b) => {\n const aVal = a.index || 0;\n const bVal = b.index || 0;\n if (this.roomsOrder === \"asc\") {\n return aVal < bVal ? -1 : bVal < aVal ? 1 : 0;\n }\n return aVal > bVal ? -1 : bVal > aVal ? 1 : 0;\n });\n },\n singleRoomCasted() {\n return this.castBoolean(this.singleRoom);\n },\n roomsListOpenedCasted() {\n return this.castBoolean(this.roomsListOpened);\n },\n loadingRoomsCasted() {\n return this.castBoolean(this.loadingRooms);\n },\n roomsLoadedCasted() {\n return this.castBoolean(this.roomsLoaded);\n },\n loadFirstRoomCasted() {\n return this.castBoolean(this.loadFirstRoom);\n },\n messagesLoadedCasted() {\n return this.castBoolean(this.messagesLoaded);\n },\n showSearchCasted() {\n return this.castBoolean(this.showSearch);\n },\n showAddRoomCasted() {\n return this.castBoolean(this.showAddRoom);\n },\n showSendIconCasted() {\n return this.castBoolean(this.showSendIcon);\n },\n showFilesCasted() {\n return this.castBoolean(this.showFiles);\n },\n showAudioCasted() {\n return this.castBoolean(this.showAudio);\n },\n showEmojisCasted() {\n return this.castBoolean(this.showEmojis);\n },\n showReactionEmojisCasted() {\n return this.castBoolean(this.showReactionEmojis);\n },\n showNewMessagesDividerCasted() {\n return this.castBoolean(this.showNewMessagesDivider);\n },\n showFooterCasted() {\n return this.castBoolean(this.showFooter);\n },\n roomInfoEnabledCasted() {\n return this.castBoolean(this.roomInfoEnabled);\n },\n textareaActionEnabledCasted() {\n return this.castBoolean(this.textareaActionEnabled);\n },\n textareaAutoFocusCasted() {\n return this.castBoolean(this.textareaAutoFocus);\n },\n userTagsEnabledCasted() {\n return this.castBoolean(this.userTagsEnabled);\n },\n emojisSuggestionEnabledCasted() {\n return this.castBoolean(this.emojisSuggestionEnabled);\n },\n mediaPreviewEnabledCasted() {\n return this.castBoolean(this.mediaPreviewEnabled);\n },\n roomsCasted() {\n return this.castArray(this.rooms);\n },\n messagesCasted() {\n return this.castArray(this.messages);\n },\n roomActionsCasted() {\n return this.castArray(this.roomActions);\n },\n menuActionsCasted() {\n return this.castArray(this.menuActions);\n },\n messageActionsCasted() {\n return this.castArray(this.messageActions);\n },\n messageSelectionActionsCasted() {\n return this.castArray(this.messageSelectionActions);\n },\n templatesTextCasted() {\n return this.castArray(this.templatesText);\n },\n stylesCasted() {\n return this.castObject(this.styles);\n },\n textMessagesCasted() {\n return this.castObject(this.textMessages);\n },\n autoScrollCasted() {\n return this.castObject(this.autoScroll);\n },\n textFormattingCasted() {\n return this.castObject(this.textFormatting);\n },\n linkOptionsCasted() {\n return this.castObject(this.linkOptions);\n },\n usernameOptionsCasted() {\n return this.castObject(this.usernameOptions);\n }\n },\n watch: {\n roomsCasted: {\n immediate: true,\n deep: true,\n handler(newVal, oldVal) {\n if (!newVal[0] || !newVal.find((room) => room.roomId === this.room.roomId)) {\n this.showRoomsList = true;\n }\n if (!this.loadingMoreRooms && this.loadFirstRoomCasted && newVal[0] && (!oldVal || newVal.length !== oldVal.length)) {\n if (this.roomId) {\n const room = newVal.find((r) => r.roomId === this.roomId) || {};\n this.fetchRoom({ room });\n } else if (!this.isMobile || this.singleRoomCasted) {\n this.fetchRoom({ room: this.orderedRooms[0] });\n } else {\n this.showRoomsList = true;\n }\n }\n }\n },\n loadingRoomsCasted(val) {\n if (val)\n this.room = {};\n },\n roomId: {\n immediate: true,\n handler(newVal, oldVal) {\n if (newVal && !this.loadingRoomsCasted && this.roomsCasted.length) {\n const room = this.roomsCasted.find((r) => r.roomId === newVal);\n this.fetchRoom({ room });\n } else if (oldVal && !newVal) {\n this.room = {};\n }\n }\n },\n room(val) {\n if (!val || Object.entries(val).length === 0)\n return;\n roomsValidation(val);\n val.users.forEach((user) => {\n partcipantsValidation(user);\n });\n },\n roomsListOpenedCasted: {\n immediate: true,\n handler(val) {\n this.showRoomsList = val;\n }\n }\n },\n created() {\n this.updateResponsive();\n window.addEventListener(\"resize\", (ev) => {\n if (ev.isTrusted)\n this.updateResponsive();\n });\n },\n updated() {\n const slots = document.querySelectorAll(\"[slot]\");\n if (this.slots.length !== slots.length) {\n this.slots = slots;\n }\n },\n methods: {\n castBoolean(val) {\n return val === \"true\" || val === true;\n },\n castArray(val) {\n return !val ? [] : Array.isArray(val) ? val : JSON.parse(val);\n },\n castObject(val) {\n return !val ? {} : typeof val === \"object\" ? val : JSON.parse(val);\n },\n updateResponsive() {\n this.isMobile = window.innerWidth < Number(this.responsiveBreakpoint);\n },\n toggleRoomsList() {\n this.showRoomsList = !this.showRoomsList;\n if (this.isMobile)\n this.room = {};\n this.$emit(\"toggle-rooms-list\", { opened: this.showRoomsList });\n },\n fetchRoom({ room }) {\n this.room = room;\n this.fetchMessages({ reset: true });\n if (this.isMobile)\n this.showRoomsList = false;\n },\n fetchMoreRooms() {\n this.$emit(\"fetch-more-rooms\");\n },\n roomInfo() {\n this.$emit(\"room-info\", this.room);\n },\n addRoom() {\n this.$emit(\"add-room\");\n },\n searchRoom(val) {\n this.$emit(\"search-room\", { value: val, roomId: this.room.roomId });\n },\n fetchMessages(options2) {\n this.$emit(\"fetch-messages\", { room: this.room, options: options2 });\n },\n sendMessage(message) {\n this.$emit(\"send-message\", { ...message, roomId: this.room.roomId });\n },\n editMessage(message) {\n this.$emit(\"edit-message\", { ...message, roomId: this.room.roomId });\n },\n deleteMessage(message) {\n this.$emit(\"delete-message\", { message, roomId: this.room.roomId });\n },\n openFile({ message, file }) {\n if (this.mediaPreviewEnabledCasted && file.action === \"preview\") {\n this.previewFile = file.file;\n this.showMediaPreview = true;\n } else {\n this.$emit(\"open-file\", { message, file });\n }\n },\n openUserTag({ user }) {\n this.$emit(\"open-user-tag\", { user });\n },\n openFailedMessage({ message }) {\n this.$emit(\"open-failed-message\", {\n message,\n roomId: this.room.roomId\n });\n },\n menuActionHandler(ev) {\n this.$emit(\"menu-action-handler\", {\n action: ev,\n roomId: this.room.roomId\n });\n },\n roomActionHandler({ action, roomId }) {\n this.$emit(\"room-action-handler\", {\n action,\n roomId\n });\n },\n messageActionHandler(ev) {\n this.$emit(\"message-action-handler\", {\n ...ev,\n roomId: this.room.roomId\n });\n },\n messageSelectionActionHandler(ev) {\n this.$emit(\"message-selection-action-handler\", {\n ...ev,\n roomId: this.room.roomId\n });\n },\n sendMessageReaction(messageReaction) {\n this.$emit(\"send-message-reaction\", {\n ...messageReaction,\n roomId: this.room.roomId\n });\n },\n typingMessage(message) {\n this.$emit(\"typing-message\", {\n message,\n roomId: this.room.roomId\n });\n },\n textareaActionHandler(message) {\n this.$emit(\"textarea-action-handler\", {\n message,\n roomId: this.room.roomId\n });\n }\n }\n};\nconst _hoisted_1 = { class: \"vac-chat-container\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_rooms_list = resolveComponent(\"rooms-list\");\n const _component_room = resolveComponent(\"room\");\n const _component_media_preview = resolveComponent(\"media-preview\");\n return openBlock(), createElementBlock(\"div\", {\n class: \"vac-card-window\",\n style: normalizeStyle([{ height: $props.height }, $options.cssVars])\n }, [\n createBaseVNode(\"div\", _hoisted_1, [\n !$options.singleRoomCasted ? (openBlock(), createBlock(_component_rooms_list, {\n key: 0,\n \"current-user-id\": $props.currentUserId,\n rooms: $options.orderedRooms,\n \"loading-rooms\": $options.loadingRoomsCasted,\n \"rooms-loaded\": $options.roomsLoadedCasted,\n room: $data.room,\n \"room-actions\": $options.roomActionsCasted,\n \"custom-search-room-enabled\": $props.customSearchRoomEnabled,\n \"text-messages\": $options.t,\n \"show-search\": $options.showSearchCasted,\n \"show-add-room\": $options.showAddRoomCasted,\n \"show-rooms-list\": $data.showRoomsList && $options.roomsListOpenedCasted,\n \"text-formatting\": $options.textFormattingCasted,\n \"link-options\": $options.linkOptionsCasted,\n \"is-mobile\": $data.isMobile,\n \"scroll-distance\": $props.scrollDistance,\n onFetchRoom: $options.fetchRoom,\n onFetchMoreRooms: $options.fetchMoreRooms,\n onLoadingMoreRooms: _cache[0] || (_cache[0] = ($event) => $data.loadingMoreRooms = $event),\n onAddRoom: $options.addRoom,\n onSearchRoom: $options.searchRoom,\n onRoomActionHandler: $options.roomActionHandler\n }, createSlots({ _: 2 }, [\n renderList($data.slots, (el) => {\n return {\n name: el.slot,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, el.slot, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"rooms\", \"loading-rooms\", \"rooms-loaded\", \"room\", \"room-actions\", \"custom-search-room-enabled\", \"text-messages\", \"show-search\", \"show-add-room\", \"show-rooms-list\", \"text-formatting\", \"link-options\", \"is-mobile\", \"scroll-distance\", \"onFetchRoom\", \"onFetchMoreRooms\", \"onAddRoom\", \"onSearchRoom\", \"onRoomActionHandler\"])) : createCommentVNode(\"\", true),\n createVNode(_component_room, {\n \"current-user-id\": $props.currentUserId,\n rooms: $options.roomsCasted,\n \"room-id\": $data.room.roomId || \"\",\n \"load-first-room\": $options.loadFirstRoomCasted,\n messages: $options.messagesCasted,\n \"room-message\": $props.roomMessage,\n \"messages-loaded\": $options.messagesLoadedCasted,\n \"menu-actions\": $options.menuActionsCasted,\n \"message-actions\": $options.messageActionsCasted,\n \"message-selection-actions\": $options.messageSelectionActionsCasted,\n \"auto-scroll\": $options.autoScrollCasted,\n \"show-send-icon\": $options.showSendIconCasted,\n \"show-files\": $options.showFilesCasted,\n \"show-audio\": $options.showAudioCasted,\n \"audio-bit-rate\": $props.audioBitRate,\n \"audio-sample-rate\": $props.audioSampleRate,\n \"show-emojis\": $options.showEmojisCasted,\n \"show-reaction-emojis\": $options.showReactionEmojisCasted,\n \"show-new-messages-divider\": $options.showNewMessagesDividerCasted,\n \"show-footer\": $options.showFooterCasted,\n \"text-messages\": $options.t,\n \"single-room\": $options.singleRoomCasted,\n \"show-rooms-list\": $data.showRoomsList && $options.roomsListOpenedCasted,\n \"text-formatting\": $options.textFormattingCasted,\n \"link-options\": $options.linkOptionsCasted,\n \"is-mobile\": $data.isMobile,\n \"loading-rooms\": $options.loadingRoomsCasted,\n \"room-info-enabled\": $options.roomInfoEnabledCasted,\n \"textarea-action-enabled\": $options.textareaActionEnabledCasted,\n \"textarea-auto-focus\": $options.textareaAutoFocusCasted,\n \"user-tags-enabled\": $options.userTagsEnabledCasted,\n \"emojis-suggestion-enabled\": $options.emojisSuggestionEnabledCasted,\n \"scroll-distance\": $props.scrollDistance,\n \"accepted-files\": $props.acceptedFiles,\n \"templates-text\": $options.templatesTextCasted,\n \"username-options\": $options.usernameOptionsCasted,\n \"emoji-data-source\": $props.emojiDataSource,\n onToggleRoomsList: $options.toggleRoomsList,\n onRoomInfo: $options.roomInfo,\n onFetchMessages: $options.fetchMessages,\n onSendMessage: $options.sendMessage,\n onEditMessage: $options.editMessage,\n onDeleteMessage: $options.deleteMessage,\n onOpenFile: $options.openFile,\n onOpenUserTag: $options.openUserTag,\n onOpenFailedMessage: $options.openFailedMessage,\n onMenuActionHandler: $options.menuActionHandler,\n onMessageActionHandler: $options.messageActionHandler,\n onMessageSelectionActionHandler: $options.messageSelectionActionHandler,\n onSendMessageReaction: $options.sendMessageReaction,\n onTypingMessage: $options.typingMessage,\n onTextareaActionHandler: $options.textareaActionHandler\n }, createSlots({ _: 2 }, [\n renderList($data.slots, (el) => {\n return {\n name: el.slot,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, el.slot, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"current-user-id\", \"rooms\", \"room-id\", \"load-first-room\", \"messages\", \"room-message\", \"messages-loaded\", \"menu-actions\", \"message-actions\", \"message-selection-actions\", \"auto-scroll\", \"show-send-icon\", \"show-files\", \"show-audio\", \"audio-bit-rate\", \"audio-sample-rate\", \"show-emojis\", \"show-reaction-emojis\", \"show-new-messages-divider\", \"show-footer\", \"text-messages\", \"single-room\", \"show-rooms-list\", \"text-formatting\", \"link-options\", \"is-mobile\", \"loading-rooms\", \"room-info-enabled\", \"textarea-action-enabled\", \"textarea-auto-focus\", \"user-tags-enabled\", \"emojis-suggestion-enabled\", \"scroll-distance\", \"accepted-files\", \"templates-text\", \"username-options\", \"emoji-data-source\", \"onToggleRoomsList\", \"onRoomInfo\", \"onFetchMessages\", \"onSendMessage\", \"onEditMessage\", \"onDeleteMessage\", \"onOpenFile\", \"onOpenUserTag\", \"onOpenFailedMessage\", \"onMenuActionHandler\", \"onMessageActionHandler\", \"onMessageSelectionActionHandler\", \"onSendMessageReaction\", \"onTypingMessage\", \"onTextareaActionHandler\"])\n ]),\n createVNode(Transition, {\n name: \"vac-fade-preview\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n $data.showMediaPreview ? (openBlock(), createBlock(_component_media_preview, {\n key: 0,\n file: $data.previewFile,\n onCloseMediaPreview: _cache[1] || (_cache[1] = ($event) => $data.showMediaPreview = false)\n }, createSlots({ _: 2 }, [\n renderList($data.slots, (el) => {\n return {\n name: el.slot,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, el.slot, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1032, [\"file\"])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })\n ], 4);\n}\nvar ChatWindow = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"styles\", [_style_0]]]);\nconst VueAdvancedChat = defineCustomElement(ChatWindow);\nconst PACKAGE_NAME = \"vue-advanced-chat\";\nfunction register() {\n if (!customElements.get(PACKAGE_NAME)) {\n customElements.define(PACKAGE_NAME, VueAdvancedChat);\n }\n}\nexport { VueAdvancedChat, register };\n","\n
\n
\n \"chatbot-avatar\"/\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n

{{ notificationCount }}

\n
\n
\n \"avatar\"/\n
\n
\n
\n","\n\n\n\n","import Vue from 'vue'\nimport Vuex from \"vuex\"\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state: {\n show: false,\n productList: [],\n budget: 0,\n valuador_hide: true,\n },\n mutations: {\n setShow(state, payload) {\n state.show = payload\n },\n setProductList(state, payload) {\n state.productList = payload\n },\n setBudget(state, payload) {\n state.budget = payload\n },\n setValuadorHide(state, payload) {\n state.valuador_hide = payload\n },\n },\n})"],"names":["makeMap$2","str","expectsLowerCase","map","list","val","NOOP$1","extend$2","hasOwnProperty$1","hasOwn$1","key","isArray$2","isMap$1","toTypeString$1","isFunction$2","isString$2","isSymbol","isObject$2","objectToString$1","value","toRawType","isIntegerKey","hasChanged$1","oldValue","def$1","obj","activeEffectScope","EffectScope","detached","fn","currentEffectScope","fromParent","i","l","last","recordEffectScope","effect","scope","createDep","effects","dep","wasTracked","trackOpBit","newTracked","initDepMarkers","deps","finalizeDepMarkers","ptr","targetMap","effectTrackDepth","maxMarkerBits","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveEffect","scheduler","parent","lastShouldTrack","shouldTrack","cleanupEffect","trackStack","pauseTracking","resetTracking","track","target","type","depsMap","trackEffects","debuggerEventExtraInfo","shouldTrack2","trigger","newValue","oldTarget","key2","triggerEffects","triggerEffect","isNonTrackableKeys","builtInSymbols","get$1","createGetter","shallowGet","readonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","args","arr","toRaw","res","isReadonly2","shallow","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","isRef","readonly","reactive","set$1","createSetter","shallowSet","isReadonly","isShallow","hadKey","result","deleteProperty","has","ownKeys","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","v","get$1$1","isShallow2","rawTarget","rawKey","has2","wrap","toReadonly","toReactive","has$1","size","add","set$1$1","get3","deleteEntry","clear","hadItems","createForEach","callback","thisArg","observed","createIterableMethod","method","targetIsMap","isPair","isKeyOnly","innerIterator","done","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isReactive","isProxy","raw","markRaw","trackRefValue","ref","triggerRefValue","newVal","r","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","ComputedRefImpl","getter","_setter","isSSR","self2","computed$1","getterOrOptions","debugOptions","setter","onlyGetter","makeMap$1","normalizeStyle","isArray$1","item","normalized","isString$1","parseStringStyle","isObject$1","listDelimiterRE","propertyDelimiterRE","cssText","ret","tmp","normalizeClass","name","normalizeProps","props","klass","style","toDisplayString","objectToString","isFunction$1","replacer","_key","isMap","entries","val2","isSet","isPlainObject","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","onRE$1","isOn$1","isModelListener$1","extend$1","remove","el","hasOwnProperty","hasOwn","toTypeString","isPromise","isReservedProp","cacheStringFunction$1","cache","camelizeRE$1","camelize$1","_","c","hyphenateRE$1","hyphenate$1","capitalize$1","toHandlerKey","hasChanged","invokeArrayFns","fns","arg","def","toNumber$1","n","_globalThis","getGlobalThis","callWithErrorHandling","instance2","err","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","appErrorHandler","logError","isFlushing","isFlushPending","queue","flushIndex","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","currentPreFlushParentJob","nextTick","p2","findInsertionIndex","id","start2","end","middle","getId","queueJob","job","queueFlush","flushJobs","invalidateJob","queueCb","cb","activeQueue","pendingQueue","index","queuePreFlushCb","queuePostFlushCb","flushPreFlushCbs","seen","parentJob","flushPostFlushCbs","deduped","a","b","emit$1","event","rawArgs","isModelListener2","modelArg","modifiersKey","number","trim","handlerName","handler","onceHandler","normalizeEmitsOptions","comp","appContext","asMixin","cached","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","options2","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","renderComponentRoot","Component","vnode","withProxy","propsOptions","slots","attrs","emit2","render2","renderCache","data","setupState","inheritAttrs","fallthroughAttrs","proxyToUse","normalizeVNode","render3","getFunctionalFallthrough","blockStack","createVNode","Comment","root","keys","shapeFlag","filterModelListeners","cloneVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","component","nextProps","nextChildren","patchFlag","emits","hasPropsChanged","dynamicProps","emitsOptions","nextKeys","updateHOCHostEl","isSuspense","queueEffectWithSuspense","suspense","provide","currentInstance","provides","parentProvides","inject","defaultValue","treatDefaultAsFactory","INITIAL_WATCHER_VALUE","watch","source","doWatch","immediate","deep","flush2","onTrack","onTrigger","forceTrigger","isMultiSource","s","traverse","cleanup","onCleanup","baseGetter","isInSSRComponentSetup","queuePostRenderEffect","instanceWatch","publicThis","createPathGetter","setCurrentInstance","unsetCurrentInstance","path","segments","useTransitionState","state2","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionImpl","getCurrentInstance","prevTransitionKey","children","getTransitionRawChildren","child","rawProps","mode","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","isSameVNodeType","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","BaseTransition","leavingVNodes","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook2","hook","callAsyncHook","hook2","hooks","leavingVNode","afterHook","cancelHook","called","cancelled","remove2","vnode2","isKeepAlive","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","isAsyncWrapper","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","current","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onUpdated","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","withDirectives","directives","internalInstance","getExposeProxy","bindings","dir","modifiers","invokeDirectiveHook","oldBindings","binding","COMPONENTS","DIRECTIVES","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","resolveDirective","warnMissing","selfName","getComponentName","resolve","registry","renderList","renderItem","createSlots","dynamicSlots","slot","j","renderSlot","fallback","noSlotted","openBlock","validSlotContent","ensureValidVNode","rendered","createBlock","vnodes","isVNode","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","PublicInstanceProxyHandlers","accessCache","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","descriptor","applyOptions","callHook$1","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount2","mounted","beforeUpdate","updated2","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted2","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","components","filters","resolveInjections","methodHandler","opt","set2","computed","createWatcher","registerLifecycleHook","register2","_hook","exposed","checkDuplicateProperties","unwrapRef","normalizeInject","h2","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","initProps","isStateful","InternalObjectKey","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","normalizePropsOptions","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","stringIndex","getType","ctor","match","isSameType","expectedTypes","t","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","createAppContext","uid","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","isMounted","app","version","plugin","mixin","directive2","rootContainer","isHydrate","isSVG","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","refValue","owner","oldRef","refs","_isString","_isRef","doSet","existing","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostCloneNode","hostInsertStaticContent","patch","n1","n2","container","anchor","parentComponent","slotScopeIds","getNextHostNode","unmount","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","nextSibling","next2","removeStaticNode","mountElement","patchElement","vnodeHook","transition","dirs","mountChildren","unmountChildren","invokeVNodeHook","setScopeId","needCallTransitionHooks","scopeId","subTree","parentVNode","cloneIfMounted","dynamicChildren","oldProps","newProps","toggleRecurse","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","placeholder","updateComponentPreRender","componentUpdateFn","bu","u","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","scopedInitialVNode","update2","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","newLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","move","moveType","leave","delayLeave","afterLeave","remove3","performLeave","doRemove","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","removeFragment","performRemove","bum","um","allowed","ch1","ch2","len","arrI","isTeleport","currentBlock","disableTracking","closeBlock","isBlockTreeEnabled","setupBlock","createElementBlock","createBaseVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","text2","flag","createCommentVNode","asBlock","slotFlag","toMerge","incoming","emptyAppContext","uid$1","setupResult","setupStatefulComponent","setup","setupContext","createSetupContext","resolvedResult","handleSetupResult","e","finishComponentSetup","compile","skipOptions","template","isCustomElement","compilerOptions","delimiters","componentCompilerOptions","finalCompilerOptions","createAttrsProxy","includeInferred","h","propsOrChildren","makeMap","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","onRE","isOn","isModelListener","extend","isArray","isFunction","isString","isObject","cacheStringFunction","camelizeRE","camelize","hyphenateRE","hyphenate","capitalize","toNumber","svgNS","doc","templateContainer","nodeOps","tag","is","node","selector","content","before","wrapper","patchClass","transitionClasses","patchStyle","isCssString","setStyle","currentDisplay","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","needRemove","_getNow","skipTimestampCheck","_getNow2","skipTimestampCheck2","ffMatch","cachedNow","p","reset","getNow","addEventListener$1","removeEventListener","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","initialValue","timeStamp","patchStopImmediatePropagation","originalStop","nativeOnRE","patchProp","shouldSetAsProp","defineCustomElement","Comp","VueCustomElement","VueElement","initialProps","BaseClass","_def","_props","render","mutations","resolve3","def2","styles","hasOptions","rawKeys","numberProps","asyncDef","shouldReflect","shouldUpdate","css","TRANSITION","ANIMATION","Transition","resolveTransitionProps","DOMTransitionPropsValidators","TransitionPropsValidators","callHook","hasExplicitCallback","baseProps","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","_vtc","endId","expectedType","explicitTimeout","resolveIfNotStale","timeout","propCount","getTransitionInfo","endEvent","ended","onEnd","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","toMs","positionMap","newPositionMap","TransitionGroupImpl","moveClass","hasCSSTransform","callPendingCbs","recordPosition","movedChildren","applyTranslation","cssTransitionProps","TransitionGroup","oldPos","newPos","dx","dy","clone","systemModifiers","modifierGuards","withModifiers","guard","keyNames","withKeys","eventKey","k","vShow","setDisplay","rendererOptions","renderer","ensureRenderer","_export_sfc","sfc","_sfc_main$q","_hoisted_1$q","_hoisted_2$n","_hoisted_3$j","_hoisted_4$h","_hoisted_5$b","_hoisted_6$7","_sfc_render$q","_ctx","_cache","$props","$setup","$data","$options","Loader","_sfc_main$p","param","_hoisted_1$p","_hoisted_2$m","_hoisted_3$i","_sfc_render$p","SvgIcon","_sfc_main$o","_hoisted_1$o","_hoisted_2$l","_sfc_render$o","_component_svg_icon","$event","RoomsSearch","linkify","_class$4","inherits","extended","options$1","_typeof","defaults","noop$1","typeToTarget","Options","contains","opts","ignoredTags","token","href","operator","optionValue","option","scanner$1","state","_class$3","createStateClass","tClass","BaseState","symbol","jump2","CharacterState","character","charOrRegExp","TokenState","tokenClass","stateify","endToken","defaultToken","newStates","nextState","text$1","createTokenClass$1","createTokenClass","_createTokenClass$1","_class$2","TextToken","inheritsToken","DOMAIN","AT","COLON","DOT","PUNCTUATION","LOCALHOST","NL$1","NUM","PLUS","POUND","PROTOCOL","MAILTO","QUERY","SLASH","UNDERSCORE","SYM","TLD","WS","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","AMPERSAND","_state$1","_text$2","TOKENS","_interopRequireWildcard$2","newObj","tlds","NUMBERS","ALPHANUM","WHITESPACE","domainStates","makeState$1","S_START$1","S_NUM","S_DOMAIN$1","S_DOMAIN_HYPHEN","S_WS","partialProtocolFileStates","partialProtocolFtpStates","partialProtocolHttpStates","partialProtocolMailtoStates","S_PROTOCOL_FILE","S_PROTOCOL_FTP","S_PROTOCOL_HTTP","S_MAILTO$1","S_PROTOCOL_SECURE","S_FULL_PROTOCOL","S_FULL_MAILTO","partialLocalhostStates","_i","run$2","lowerStr","tokens","cursor","tokenLength","latestAccepting","sinceAccepts","TOKEN","start","parser$1","multi","_createTokenClass","_class$1","_text$1","isDomainToken","MultiToken","protocol","MAILTOEMAIL","EMAIL","TEXT","NL","URL$1","hasProtocol2","hasSlashSlash","_state","_multi","MULTI_TOKENS","_interopRequireWildcard$1","_text","makeState2","S_START","S_PROTOCOL","S_MAILTO","S_PROTOCOL_SLASH","S_PROTOCOL_SLASH_SLASH","S_DOMAIN","S_DOMAIN_DOT","S_TLD","S_TLD_COLON","S_TLD_PORT","S_URL","S_URL_NON_ACCEPTING","S_URL_OPENBRACE","S_URL_OPENBRACKET","S_URL_OPENANGLEBRACKET","S_URL_OPENPAREN","S_URL_OPENBRACE_Q","S_URL_OPENBRACKET_Q","S_URL_OPENANGLEBRACKET_Q","S_URL_OPENPAREN_Q","S_URL_OPENBRACE_SYMS","S_URL_OPENBRACKET_SYMS","S_URL_OPENANGLEBRACKET_SYMS","S_URL_OPENPAREN_SYMS","S_EMAIL_DOMAIN","S_EMAIL_DOMAIN_DOT","S_EMAIL","S_EMAIL_COLON","S_EMAIL_PORT","S_MAILTO_EMAIL","S_MAILTO_EMAIL_NON_ACCEPTING","S_LOCALPART","S_LOCALPART_AT","S_LOCALPART_DOT","S_NL","qsAccepting","qsNonAccepting","localpartAccepting","run$1","multis","textTokens","secondState","multiLength","MULTI","_class","_options","options","_interopRequireWildcard","_scanner","scanner","_parser","parser","tokenize","find","filtered","test4","linkifyjs","formatString$1","doLinkify","textFormatting","typeMarkdown","pseudoMarkdown","json","compileToJSON","html","compileToHTML","linkifyResult","minIndexOf","minIndexOfKey","links","minIndexFromLink","startingValue","io","strLeft","strLink","strRight","char","object","parseContent","iterateContent","types","it","removeDuplicates","items","array","spaces","IMAGE_TYPES","VIDEO_TYPES","AUDIO_TYPES","_sfc_main$n","message","isMedia","image","onLoad","img","ratio","firstTag","secondTag","usertags","initialContent","userId","user","user2","emojiSize","onlyEmojis","visibleChars","_hoisted_1$n","_hoisted_2$k","_hoisted_3$h","_hoisted_4$g","_sfc_render$n","FormatMessage","HANDLERS_PROPERTY","HAS_WINDOWS","HAS_NAVIGATOR","IS_TOUCH","EVENTS","processDirectiveArguments","bindingValue","isFunction2","execHandler","middleware","onFauxIframeClick","activeElement","onEvent","beforeMount","events","isActive","detectIframe","capture","eventName","detectIframeEvent","srcTarget","thisHandler","unmounted","updated","directive","vClickOutside","typingText","room","currentUserId","textMessages","typingUsers","checkMediaType","file","isImageFile","isVideoFile","isImageVideoFile","isAudioFile","_sfc_main$m","isTyping","_a","_b","action","_hoisted_1$m","_hoisted_2$j","_hoisted_3$g","_hoisted_4$f","_hoisted_5$a","_hoisted_6$6","_hoisted_7$6","_hoisted_8$4","_hoisted_9$4","_hoisted_10$4","_hoisted_11$3","_hoisted_12$3","_hoisted_13$1","_sfc_render$m","_component_format_message","_directive_click_outside","idx","RoomContent","filteredItems","startsWith","formatString","string","_sfc_main$l","oldVal","loader","ev","_hoisted_1$l","_hoisted_2$i","_hoisted_3$f","_hoisted_4$e","_sfc_render$l","_component_rooms_search","_component_loader","_component_room_content","fRoom","RoomsList","_sfc_main$k","_hoisted_1$k","_hoisted_2$h","_hoisted_3$e","_hoisted_4$d","_hoisted_5$9","_hoisted_6$5","_hoisted_7$5","_hoisted_8$3","_hoisted_9$3","_hoisted_10$3","_hoisted_11$2","_hoisted_12$2","_hoisted_13","_sfc_render$k","RoomHeader","assertNonEmptyString","assertNumber","DB_VERSION_CURRENT","DB_VERSION_INITIAL","STORE_EMOJI","STORE_KEYVALUE","STORE_FAVORITES","FIELD_TOKENS","INDEX_TOKENS","FIELD_UNICODE","INDEX_COUNT","FIELD_GROUP","FIELD_ORDER","INDEX_GROUP_AND_ORDER","KEY_ETAG","KEY_URL","KEY_PREFERRED_SKINTONE","MODE_READONLY","MODE_READWRITE","INDEX_SKIN_UNICODE","FIELD_SKIN_UNICODE","DEFAULT_DATA_SOURCE$1","DEFAULT_LOCALE$1","uniqBy$1","func","uniqEmoji","emojis","initialMigration","db","createObjectStore","keyPath","indexes","store","indexName","keyPath2","multiEntry","openReqs","databaseCache","onCloseListeners","handleOpenOrDeleteReq","reject","req","createDatabase","dbName","closeDatabase","openDatabase","dbPromise","storeName","readOnlyOrReadWrite","txn","listeners","listener","deleteDatabase","addOnCloseListener","irregularEmoticons","extractTokens","word","MIN_SEARCH_TEXT_LENGTH$1","normalizeTokens","transformEmojiData","emojiData","annotation","emoticon","group","order","shortcodes","skins","tags","emoji","version2","res2","tone","emoji2","version3","callStore","getIDB","getAllIDB","commit","minBy","minItem","findCommonMembers","arrays","uniqByFunc","shortestArray","results","isEmpty","get2","hasData","url","eTag","oldETag","oldUrl","doFullDatabaseScanForSingleResult","predicate","emojiStore","lastKey","processNextBatch","loadData","transformedData","metaStore","todo","checkFetched","onFetched","getEmojiByGroup","range","getEmojiBySearchQuery","query","intermediateResults","checkDone","onDone","getEmojiByShortcode","shortcode","_2","getEmojiByUnicode","unicode","result2","set","incrementFavoriteEmojiCount","getTopFavoriteEmoji","customEmojiIndex2","limit","favoritesStore","addResult","unicodeOrName","custom","CODA_MARKER","trie","itemToTokens","currentMap","nextMap","valuesAtCoda","exact","queue2","entriesSortedByKey","requiredKeys$1","assertCustomEmojis","customEmojis","isArray2","firstItemIsFaulty","customEmojiIndex","sortByName","all","searchTrie","searchByExactMatch","searchByPrefix","search","shortcodeToEmoji","nameToEmoji","customEmoji","cleanEmoji","warnETag","requiredKeys","assertEmojiData","assertStatus","response","dataSource","getETag","getETagAndData","arrayBufferToBinaryString","buffer","binary","bytes","length","binaryStringToArrayBuffer","buf","jsonChecksum","inString","inBuffer","outBuffer","outBinString","checkForUpdates","eTagAndData","loadDataForFirstTime","Database","locale","checkReady","customs","natives","skinTone","noop","run3","blank_object","run_all","is_function","thing","safe_not_equal","src_url_equal_anchor","src_url_equal","element_src","is_empty","action_destroyer","action_result","append","insert","detach","element","text","listen","attr","attribute","set_data","set_input_value","input","set_style","important","current_component","set_current_component","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","update_scheduled","schedule_update","flush","tick","add_render_callback","seen_callbacks","flushidx","saved_component","update","$$","dirty","outroing","transition_in","block","local","globals","destroy_block","lookup","update_keyed_each","old_blocks","get_key","dynamic","destroy","create_each_block2","get_context","o","old_indexes","new_blocks","new_lookup","deltas","child_ctx","will_move","did_move","insert2","new_block","old_block","new_key","old_key","mount_component","customElement","fragment","on_mount","on_destroy","after_update","new_on_destroy","destroy_component","detaching","make_dirty","init","create_fragment2","not_equal","append_styles","parent_component","ready","rest","SvelteComponent","callbacks","$$props","allGroups","groups","customGroup","MIN_SEARCH_TEXT_LENGTH","NUM_SKIN_TONES","rIC","hasZwj","versionsAndTestEmoji","TIMEOUT_BEFORE_LOADING_MESSAGE","DEFAULT_SKIN_TONE_EMOJI","DEFAULT_NUM_COLUMNS","MOST_COMMONLY_USED_EMOJI","FONT_FAMILY","DEFAULT_CATEGORY_SORTING","getTextFeature","color","canvas","compareFeatures","feature1","feature2","feature1Str","feature2Str","testColorEmojiSupported","determineEmojiSupportLevel","emojiSupportLevelPromise","supportedZwjEmojis","VARIATION_SELECTOR","SKINTONE_MODIFIER","ZWJ","LIGHT_SKIN_TONE","LIGHT_SKIN_TONE_MODIFIER","applySkinTone","zwjIndex","halt","incrementOrDecrement","decrement","uniqBy","summarizeEmojisForUI","emojiSupportLevel","toSimpleSkinsMap","skin","category","rAF","resizeObserverSupported","calculateWidth","onUpdate","resizeObserver","calculateTextWidth","baselineEmojiWidth","checkZwjSupport","zwjEmojisToCheck","baselineEmoji","emojiToDomNode","domNode","emojiWidth","supported","uniq","Map_1","get_each_context","get_each_context_1","get_each_context_2","get_each_context_3","get_each_context_4","create_each_block_4","key_1","div","t_value","div_id_value","div_class_value","div_aria_selected_value","div_title_value","div_aria_label_value","new_ctx","create_each_block_3","button","button_aria_controls_value","button_aria_label_value","button_aria_selected_value","button_title_value","dispose","click_handler","create_else_block_1","img_src_value","ctx2","create_if_block_1","create_each_block_2","button_role_value","button_class_value","button_id_value","select_block_type","current_block_type","if_block","create_each_block_1","div0","div0_id_value","div0_class_value","div1","each_blocks","each_1_lookup","div1_role_value","div1_aria_labelledby_value","div1_id_value","each_value_2","create_else_block","create_if_block","create_each_block","select_block_type_1","create_fragment","section","div4","input_placeholder_value","input_aria_expanded_value","input_aria_activedescendant_value","label","t0_value","t0","span0","t1_value","t1","div2","button0","t2","button0_class_value","div2_class_value","span1","t3_value","t3","div3","each_blocks_3","each0_lookup","div3_class_value","div3_aria_label_value","div3_aria_activedescendant_value","div3_aria_hidden_value","div5","each_blocks_2","each1_lookup","div5_aria_label_value","div7","div6","div8","t4","div8_class_value","div10","div9","each_blocks_1","each2_lookup","div10_class_value","div10_role_value","div10_aria_label_value","div10_id_value","div11","each3_lookup","div11_class_value","div11_aria_label_value","button1","section_aria_label_value","each_value_4","each_value_3","get_key_1","each_value_1","get_key_2","each_value","get_key_3","instance","$$self","$$invalidate","skinToneEmoji","i18n","database","customCategorySorting","initialLoad","currentEmojis","currentEmojisWithCategories","rawSearchText","searchText","rootElement","tabpanelElement","searchMode","activeSearchItem","skinTonePickerExpanded","skinTonePickerExpandedAfterAnimation","skinToneDropdown","currentSkinTone","activeSkinTone","skinToneButtonText","pickerStyle","skinToneButtonLabel","skinTones","currentFavorites","defaultFavoriteEmojis","numColumns","isRtl","scrollbarWidth","currentGroupIndex","groups$1","currentGroup","databaseLoaded","activeSearchItemId","focus","fireEvent","detail","unicodeWithSkin","currentSkinTone2","labelWithSkin","isSkinToneOption","element2","level","calculateEmojiGridStyle","width","newNumColumns","newIsRtl","newScrollbarWidth","checkZwjSupportAndUpdate","rootNode","isZwjSupported","filterEmojisByVersion","summarizeEmojis","getEmojisByGroup","getEmojisBySearchQuery","onSearchKeydown","goToNextOrPrevious","previous","clickEmoji","onNavClick","onNavKeydown","doFocus","emojiSummary","skinTonedUnicode","onEmojiClick","onSkinToneOptionsClick","onClickSkinToneButton","onSkinToneOptionsKeydown","changeActiveSkinTone","nextSkinTone","onSkinToneOptionsKeyup","onSkinToneOptionsFocusOut","relatedTarget","input_input_handler","div3_binding","$$value","div10_binding","button1_binding","section_binding","$$props2","handleDatabaseLoading","showingLoadingMessage","timeoutHandle","updateEmojis","currentSearchText","newEmojis","currentGroupId","updatePreferredSkinTone","updateDefaultFavoriteEmojis","updateFavorites","dbFavorites","favorites","categoriesToEmoji","Picker","DEFAULT_DATA_SOURCE","DEFAULT_LOCALE","enI18n","PROPS","PickerElement","attrName","up","definitions","findParentBySelector","_sfc_main$j","picker","nav","searchBox","clientY","innerWidth","innerHeight","mobileSize","roomFooterRef","_hoisted_1$j","_sfc_render$j","_component_emoji_picker","EmojiPickerContainer","_sfc_main$i","_hoisted_1$i","_hoisted_2$g","_hoisted_3$d","_hoisted_4$c","_sfc_render$i","RoomFile","_sfc_main$h","_hoisted_1$h","_hoisted_2$f","_hoisted_3$c","_sfc_render$h","_component_room_file","RoomFiles","_sfc_main$g","seekPos","progressWidth","leftPosition","pos","_hoisted_1$g","_hoisted_2$e","_sfc_render$g","AudioControl","_sfc_main$f","seconds","_hoisted_1$f","_hoisted_2$d","_sfc_render$f","_component_audio_control","AudioPlayer","_sfc_main$e","_hoisted_1$e","_hoisted_2$c","_hoisted_3$b","_hoisted_4$b","_hoisted_5$8","_hoisted_6$4","_hoisted_7$4","_hoisted_8$2","_hoisted_9$2","_hoisted_10$2","_hoisted_11$1","_hoisted_12$1","_sfc_render$e","_component_audio_player","RoomMessageReply","_sfc_main$d","_hoisted_1$d","_hoisted_2$b","_hoisted_3$a","_hoisted_4$a","_sfc_render$d","RoomUsersTag","_sfc_main$c","_hoisted_1$c","_hoisted_2$a","_sfc_render$c","RoomEmojis","_sfc_main$b","_hoisted_1$b","_hoisted_2$9","_hoisted_3$9","_hoisted_4$9","_hoisted_5$7","_sfc_render$b","RoomTemplatesText","new_byte$4","count","new_short","new_int$d","new_float$f","new_double$1","new_float_n$6","sz","A","new_int_n$2","new_short_n$1","new_array_n$1","Arrays$7","fromIndex","toIndex","System$a","src","srcPos","dest","destPos","srcEnd","Util$5","x","y","ShortBlock$3","ordinal","Float$2","VbrMode$7","assert$b","common","System$9","Util$4","Arrays$6","new_float$e","NewMDCT","enwindow","NS","NL2","win","tantab_l","Encoder","cx","ca","cs","window_subband","x1","x1Pos","wp","x2","w","xr","mdct_short","inout","inoutPos","tc0","tc1","tc2","ts0","ts1","ts2","mdct_long","out","outPos","_in","ct","st","tc3","tc4","ts5","ts6","ts7","ts8","ts3","ts4","tc5","tc6","tc7","tc8","gfc","w0","w1","wk","wkPos","ch","gr","band","gi","mdct_enc","mdct_encPos","samp","sampPos","band0","band1","work","bd","System$8","new_float$d","new_float_n$5","III_psy_xmin","iii_psy_xmin","III_psy_ratio","MPEGMode","_ordinal","System$7","VbrMode$6","new_array_n","new_float$c","new_float_n$4","new_int$c","assert$a","FFTOFFSET","MPG_MD_MS_LR","bs","psy","vbr","qupvt","_bs","_psy","_qupvt","_vbr","newMDCT","adjust_ATH","gr2_max","max_pow","adj_lim_new","updateStats","bt","lame_encode_frame_init","gfp","inbuf","primebuff0","primebuff1","inbuf_l","inbuf_r","mp3buf","mp3bufPos","mp3buf_size","mp3count","masking_LR","masking_MS","masking","tot_ener","ms_ener_ratio","pe","pe_MS","pe_use","bufp","bufpPos","blocktype","cod_info","sum_pe_MS","sum_pe_LR","gi0","gi1","f","Util$3","new_float$b","FFT","window2","window_s","costab","fht","fz","fzPos","tri","k4","fi","k1","k2","k3","kx","f0","f1","f2","f3","g0","g1","g2","g3","rv_tbl","x_real","chn","bufPos","jj","VbrMode$5","Float$1","ShortBlock$2","Util$2","Arrays$5","new_float$a","new_float_n$3","new_int$b","assert$9","PsyModel","fft","LOG10","rpelev","rpelev2","rpelev_s","rpelev2_s","DELBARK","VO_SCALE","temporalmask_sustain_sec","NS_PREECHO_ATT0","NS_PREECHO_ATT1","NS_PREECHO_ATT2","NS_MSFIX","NSFIRLEN","LN_TO_LOG10","NON_LINEAR_SCALE_ENERGY","psycho_loudness_approx","energy","loudness_power","compute_ffts","fftenergy","fftenergy_s","wsamp_l","wsamp_lPos","wsamp_s","wsamp_sPos","gr_out","re","im","totalenergy","I1LIMIT","I2LIMIT","MLIMIT","ma_max_i1","ma_max_i2","ma_max_m","tab","init_mask_add_max_values","table1","table2","table3","mask_add","m1","m2","kk","shortblock","table2_","vbrpsy_mask_add","calc_interchannel_masking","sb","sblock","msfix1","mld","rmid","rside","ns_msfix","msfix","athadjust","msfix2","athlower","thmLR","thmM","thmS","ath","convert_partition2scalefac_s","eb","thr","enn","thmm","bo_s_sb","npart_s","b_lim","w_curr","w_next","convert_partition2scalefac_l","bo_l_sb","npart_l","compute_masking_s","ebb","ecb","block_type_set","uselongblock","blocktype_d","NS_INTERP","regcoef_s","pecalc_s","mr","masking_lower","pe_s","thm","en","regcoef_l","pecalc_l","pe_l","calc_energy","max","avg","calc_mask_index_l","mask_idx","last_tab_entry","fircoef","masking_ratio","masking_MS_ratio","percep_entropy","percep_MS_entropy","wsamp_L","wsamp_S","eb_l","eb_s","numchn","ns_hpfsmpl","pcfact","mask_idx_l","mask_idx_s","firbuf2","firbufPos","sum1","sum2","en_subshort","en_short","attack_intensity","ns_uselongblock","attackThreshold","ns_attacks","pf","pfPos","pfe","eb2","ppe","ppePos","vbrpsy_compute_fft_l","vbrpsy_compute_fft_s","vbrpsy_compute_loudness_approximation_l","fircoef_","vbrpsy_attack_detection","sub_short_factor","n_chn_out","n_chn_psy","factor","vbrpsy_skip_masking_s","vbrpsy_skip_masking_l","psyvbr_calc_mask_index_s","vbrpsy_compute_masking_s","dd","dd_n","avg_mask","vbrpsy_compute_masking_l","ecb_limit","ecb_limit_2","ecb_limit_1","vbrpsy_compute_block_type","vbrpsy_apply_block_type","vbrpsy_compute_MS_thresholds","cb_mld","ath_cb","ebM","ebS","thmL","thmR","mld_m","mld_s","thmMS","ch01","new_thmm","s3_func_x","bark","hf_slope","tempx","tempy","norm_s3_func_x","lim_a","lim_b","sum","norm","s3_func","temp","freq2bark","freq","init_numline","numlines","bo","bval","bval_width","bo_w","sfreq","blksize","scalepos","deltafreq","sbmax","b_frq","sample_freq_frac","partition","ni","bark1","j2","sfb","i1","i2","f_tmp","bark2","init_s3_values","s3ind","npart","use_old_s3","s3","numberOfNoneZero","s3_x_norm","stereo_demask","useOldS3","bvl_a","bvl_b","snr_l_a","snr_l_b","snr_s_a","snr_s_b","snr","frame_duration","freq_inc","eql_balance","ATHformula_GB","LameGlobalFlags","L3Side$1","new_float$9","new_int$a","GrInfo","clone_int","clone_float","other","new_int$9","IIISideInfo","System$6","new_int$8","ScaleFac","arrL","arrS","arr21","arr12","new_float$8","new_float_n$2","new_int$7","NsPsy","VBRSeekInfo","new_byte$3","new_double","new_float$7","new_float_n$1","new_int$6","new_int_n$1","LameInternalFlags$1","MAX_HEADER_LEN","Header","new_float$6","ATH","System$5","Arrays$4","GainAnalysis$1","PINK_REF","RMS_PERCENTILE","RMS_WINDOW_TIME_NUMERATOR","RMS_WINDOW_TIME_DENOMINATOR","ABYule","ABButter","filterYule","inputPos","output","outputPos","nSamples","kernel","filterButter","ResetSampleFrequency","rgData","samplefreq","fsqr","left_samples","left_samplesPos","right_samples","right_samplesPos","num_samples","num_channels","curleft","curleftBase","curright","currightBase","batchsamples","cursamples","cursamplepos","ival","analyzeResult","Array2","elems","upper","retval","new_float$5","new_int$5","ReplayGain","MeanBits$1","meanBits","new_float$4","new_int$4","assert$8","CBRNewIterationLoop","_quantize","quantize","l3_xmin","xrpow","targ_bits","mean_bits","max_bits","l3_side","mb","adjust","masking_lower_db","HuffCodeTab","hl","Tables$1","VbrMode$4","Float","Util$1","new_float$3","new_int$3","assert$7","QuantizePVT","tak","rv","_tk","_rv","POW20","pow20","ipow20","DBL_EPSILON","IXMAX_VAL","PRECALC_SIZE","Q_MAX","Q_MAX2","NSATHSCALE","pretab","pow43","adj43","ATHmdct","compute_ath","ATH_l","ATH_psfb21","ATH_s","ATH_psfb12","samp_freq","ATH_f","bass","alto","treble","sfb21","cbr","tbits","bits","add_bits","extra_bits","fac","move_bits","athFloor","pxmin","pxminPos","gsfb","ath_over","ATH2","enable_athaa_fix","en0","xmin","rh1","rh2","xa","xb","max_nonzero","BitStream$1","tmpATH","StartLine","startline","step","noise","ix","ix01","distort","prev_noise","distortPos","l3_xminPos","over","over_noise_db","tot_noise_db","max_noise","scalefac","scalefacPos","usefullsize","sl","sfb2","en1","ifqstep","xfsf","bw","System$4","Arrays$3","new_int$2","assert$6","Takehiro","Bits","subdv_table","quantize_lines_xrpow_01","istep","xrPos","ixPos","compareval0","quantize_lines_xrpow","remaining","x0","x3","rx0","rx1","rx2","rx3","quantize_xrpow","xp","pi","codInfo","prevNoise","sfbmax","prev_data_use","accumulate","accumulate01","xpPos","iData","iDataPos","acc_iData","acc_iDataPos","acc_xp","acc_xpPos","ix_max","endPos","max1","max2","count_bit_ESC","linbits","count_bit_noESC","hlen1","count_bit_noESC_from2","xlen","hlen","count_bit_noESC_from3","sum3","hlen2","hlen3","huf_tbl_noESC","choose_table","choice2","choice","a1","a2","bi","gain","roundfac","recalc_divide_init","r01_bits","r01_div","r0_tbl","r1_tbl","bigv","r0","r0bits","r0t","r1","r1t","recalc_divide_sub","cod_info2","r2","r2t","slen1_n","slen2_n","slen1_tab","slen2_tab","scfsi_calc","recalc","all_scalefactors_not_negative","scale_short","scale_mixed","scale_long","max_slen1","max_slen2","max_range_sfac_tab","table_number","row_in_table","nr_sfb","max_sfac","partition_table","slen1","slen2","slen3","slen4","log2tab","scfb_anz","bv_index","System$3","Arrays$2","new_byte$2","new_float_n","new_int$1","assert$5","CRC16_POLYNOMIAL","ga","mpg","ver","_ga","_mpg","_ver","totbit","bufByteIdx","bufBitIdx","bit_rate","putheader_bits","putbits2","putbits_noheaders","drain_into_ancillary","remainingBits","writeheader","CRC_update","crc","header","encodeSideInfo2","bitsPerFrame","old","huffman_coder_count1","huffbits","Huffmancode","tableindex","cbits","xbits","ext","linbits_x1","linbits_x2","ShortHuffmancodebits","region1Start","LongHuffmancodebits","bigvalues","region2Start","writeMainData","data_bits","tot_bits","sfb_partition","scale_bits","sfbs","slen","TotalBytes","compute_flushbits","total_bytes_output","flushbits","remaining_headers","last_ptr","first_ptr","RadioGain","bufferPos","size2","mp3data","minimum","pcm_buf","mp3_in","samples_out","Lame$1","System$2","VbrMode$3","ShortBlock$1","new_float$2","new_int_n","new_short_n","assert$4","LAME_MAXALBUMART","LAME_MAXMP3BUFFER","qu","id3","mpglib","_p","_qu","_id3","_mpglib","PSY","LowPassHighPass","BandPass","bitrate","lPass","LAME_ID","lame_init_old","filter_coef","full_bitrate_table","lower_range","lower_range_kbps","upper_range","upper_range_kbps","optimum_samplefreq","lowpassfreq","input_samplefreq","suggested_samplefreq","SmpFrqIndex","sample_freq","gpf","FindNearestBitrate","bRate","samplerate","BitrateIndex","optimum_bandwidth","lh","freq_map","table_index","lame_init_params_ppflt","lowpass_band","highpass_band","minband","maxband","fc1","fc2","lame_init_qval","lame_init_bitstream","lowpass","cmp","vbrmode","update_inbuffer_size","nsamples","mp3buffer","mp3bufferPos","mp3buffer_size","imp3","mp3buffer_size_remaining","end_padding","frames_left","samples_to_encode","mf_needed","calcNeeded","bunch","frame_num","buffer_l","buffer_r","in_buffer","lame_encode_buffer_sample","mp3size","mp3out","mfbuf","in_bufferPos","in_buffer_ptr","n_in","n_out","inOut","InOut","fill_buffer","buf_size","lame_encode_frame","NumUsed","gcd","blackman","fcn","wcn","bkwn","fill_buffer_resample","outbuf","outbufPos","desired_len","num_used","bpc","intratio","filter_l","BLACKSIZE","offset","inbuf_old","time0","joff","xvalue","n_shift","numUsed","VbrMode$2","Presets","VBRPresets","qual","compS","shThreshold","shThresholdS","adj","adjShort","lower","curve","sens","inter","joint","mod","fix","ABRPresets","kbps","sc","mask","interCh","sfScale","lame","_lame","vbr_old_switch_map","vbr_psy_switch_map","apply_vbr_preset","enforce","vbr_preset","q","lame_set_VBR_q","abr_switch_map","apply_abr_preset","preset","actual_bitrate","VBR_q","VBRQuantize","CalcNoiseResult$1","new_float$1","new_int","CalcNoiseData","System$1","VbrMode$1","Util","Arrays$1","new_float","assert$3","Quantize","tk","init_xrpow_core","psfb21_analogsilence","stop","ath21","ath12","ixwork","BinSearchDirection","bin_search_StepSize","desired_rate","nBits","CurrentStep","flagGoneOver","Direction","allowedNoise","trancateThreshold","nsame","loop_break","penalties","get_klemm_noise","klemm_noise","quant_compare","quant_comp","best","calc","better","amp_scalefac_bands","bRefine","ifqstep34","trigger2","noise_shaping_amp","inc_scalefac_scale","inc_subblock_gain","amp","balance_noise","status","cod_info_w","save_xrpow","best_noise_info","best_part2_3_length","bEndOfSearch","best_ggain_pass1","age","noise_info","search_limit","maxggain","huff_bits","min_bits","bst_cod_info","bst_xrpow","Max_bits","real_bits","this_bits","dbits","found","sfb21_extra","frameBits","bands","analog_silence","mxb","maximum_framebits","analog_silence_bits","max_frame_bits","res_factor","totbits","assert$2","Reservoir","maxmp3buf","frameLength","resvLimit","fullFrameBits","ResvSize","ResvMax","over_bits","stuffingBits","mdb_bytes","Version","LAME_URL","LAME_MAJOR_VERSION","LAME_MINOR_VERSION","LAME_PATCH_VERSION","PSY_MAJOR_VERSION","PSY_MINOR_VERSION","System","VbrMode","ShortBlock","Arrays","new_byte$1","assert$1","VBRTag","_v","FRAMES_FLAG","BYTES_FLAG","TOC_FLAG","VBR_SCALE_FLAG","NUMTOCENTRIES","MAXFRAMESIZE","VBRHEADERSIZE","LAMEHEADERSIZE","XING_BITRATE1","XING_BITRATE2","XING_BITRATE25","ISO_8859_1","VBRTag0","VBRTag1","crc16Lookup","addVbr","v2","xingSeekTable","act","indx","seek_point","extractInteger","createInteger","createShort","isVbrTag","shiftInBitsValue","setLameTagFrameHeader","abyte","bbyte","pTagData","hId","hSrIndex","hMode","hBitrate","head_flags","encDelay","encPadding","kbps_header","totalFrameSize","headerSize","crcUpdateLookup","putLameVBR","musicLength","streamBuffer","streamBufferPos","bytesWritten","quality","revision","revMethod","vbrTypeTranslator","peakSignalAmplitude","radioReplayGain","audiophileReplayGain","noiseShaping","stereoMode","nonOptimal","sourceFreq","misc","musicCRC","expNPsyTune","safeJoint","noGapMore","noGapPrevious","noGapCount","noGapCurr","athType","flags","abrBitrate","skipId3v2","fpStream","id3v2Header","id3v2TagSize","toc","streamIndex","streamSize","stream","new_byte","assert","GetAudio","parse2","mpg2","Parse","ver2","id32","pre2","MPGLib","ID3Tag","_bits","Mp3Encoder$1","channels","gaud","parse","maxSamples","left","right","_sz","fourccToInt","fourcc","Mp3Encoder","config","arrayBuffer","samples","blob","Recorder","constraints","track2","record","sample","error","isChromium","winNav","vendorName","isOpera","isIEedge","isIOSChrome","detectChrome","detectMobile","userAgent","getUserAgent","userAgentPart","_sfc_main$a","isMobile","isComposed","disableMobileFocus","_c","padding","pasteEvent","direction","position","endPosition","space","files","fileURL","typeIndex","blobFile","loadedFile","file2","recording","messageContent","tagChar","textareaCursorPosition","beforeTag","notLetterNumber","editMode","initRoom","_hoisted_1$a","_hoisted_2$8","_hoisted_3$8","_hoisted_4$8","_hoisted_5$6","_hoisted_6$3","_hoisted_7$3","_sfc_render$a","_component_room_emojis","_component_room_users_tag","_component_room_templates_text","_component_room_message_reply","_component_room_files","_component_emoji_picker_container","RoomFooter","_sfc_main$9","senderId","replyUser","_hoisted_1$9","_hoisted_2$7","_hoisted_3$7","_hoisted_4$7","_hoisted_5$5","_hoisted_6$2","_hoisted_7$2","_hoisted_8$1","_hoisted_9$1","_hoisted_10$1","_sfc_render$9","MessageReply","_sfc_main$8","_hoisted_1$8","_hoisted_2$6","_hoisted_3$6","_hoisted_4$6","_hoisted_5$4","_sfc_render$8","ProgressBar","_sfc_main$7","_hoisted_1$7","_hoisted_2$5","_hoisted_3$5","_hoisted_4$5","_sfc_render$7","_component_progress_bar","MessageFile","_sfc_main$6","_hoisted_1$6","_hoisted_2$4","_hoisted_3$4","_hoisted_4$4","_hoisted_5$3","_sfc_render$6","_component_message_file","MessageFiles","_sfc_main$5","menuOptionsTop","actionIconTop","reaction","_hoisted_1$5","_hoisted_2$3","_hoisted_3$3","_hoisted_4$3","_sfc_render$5","MessageActions","_sfc_main$4","_hoisted_1$4","_sfc_render$4","MessageReactions","roomsValidation","obj2","validType","checkObjectValid","partcipantsValidation","messagesValidation","_sfc_main$3","_hoisted_1$3","_hoisted_2$2","_hoisted_3$2","_hoisted_4$2","_hoisted_5$2","_hoisted_6$1","_hoisted_7$1","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_sfc_render$3","_component_message_reply","_component_message_files","_component_message_actions","_component_message_reactions","RoomMessage","_sfc_main$2","noRoomSelected","prevScrollHeight","observer","touchEvent","posXStart","posYStart","touchEvent2","posXEnd","posYEnd","swippedRight","swippedVertically","unwatch","messageId","autoScrollOffset","scrolledUp","bottomScroll","messageReaction","scrollHeight","clientHeight","scrollTop","_hoisted_1$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_hoisted_5$1","_hoisted_6","_hoisted_7","_sfc_render$2","_component_room_header","_component_room_message","_component_room_footer","Room","_sfc_main$1","_hoisted_1$1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_render$1","MediaPreview","locales","defaultThemeStyles","cssThemeVars","general","footer","sidemenu","dropdown","markdown","icons","_style_0","_sfc_main","defaultStyles","customStyles","aVal","bVal","roomId","_hoisted_1","_sfc_render","_component_rooms_list","_component_room","_component_media_preview","ChatWindow","VueAdvancedChat","PACKAGE_NAME","register","_vm","_h","staticRenderFns","__vue2_script","ssWSURL","ssConversationId","ssContactEmail","ssSessionId","ssTimestamp","historyMessage","msg","email_messages","client_code","schema","hostname","ws_url","msgData","categoria","peso","kilataje","slug","responseMessages","reader","base64data","dataUrl","link","mimeType","messages","email","imgBase64","imgData","extension","register_email","formData","image_URL","messageDate","responseMessage","responseAssetInfo","valor_total","productos","base64Image","imageCompression","Vue","Vuex","StoreChatbot","payload"],"mappings":"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AG,EACAC,EACAC,EACAC,EACAK,EACAC,EACAK,EACAI,GACAE,GACAI,GACAY,EACAI,GACAC,GACAI,GACAC,GACAC,GACAC,GACAG,GACAC,GACAnE,EACAF,EACAjS,EACAoS,EACAC,EACAI,EACAe,EACAC,EACA+C,GACAC,GACA/J,GACAiK,GACAC,GACAC,EACJ,CACA,CACA,MAAMe,WAAerQ,EAAgB,CACnC,YAAY/0C,EAAU,CACpB,QACAw0C,GACE,KACAx0C,EACAs/C,GACAzD,GACAhM,GACA,CACE,cAAe,GACf,KAAM,EACN,SAAU,GACV,YAAa,GACb,sBAAuB,EACxB,EACD,KACA,CAAC,GAAI,GAAI,EAAE,CACjB,CACG,CACH,CACA,MAAMwV,GAAsB,mFACtBC,GAAiB,KACvB,IAAIC,GAAS,CACX,gBAAiB,aACjB,wBAAyB,6CACzB,eAAgB,YAChB,eAAgB,WAChB,oBAAqB,wBACrB,YAAa,eACb,kBAAmB,qFACnB,YAAa,SACb,mBAAoB,iBACpB,oBAAqB,iEACrB,cAAe,4CACf,eAAgB,aAChB,UAAW,CACT,UACA,QACA,eACA,SACA,cACA,MACD,EACD,WAAY,CACV,OAAQ,SACR,kBAAmB,wBACnB,cAAe,kBACf,iBAAkB,qBAClB,aAAc,iBACd,gBAAiB,oBACjB,WAAY,aACZ,QAAS,UACT,QAAS,UACT,MAAO,OACR,CACH,EACA,MAAMC,GAAQ,CACZ,cACA,wBACA,WACA,aACA,OACA,SACA,eACF,EACA,MAAMC,WAAsB,WAAY,CACtC,YAAYntD,EAAO,CACjB,QACA,KAAK,aAAa,CAAE,KAAM,MAAQ,CAAA,EAClC,MAAME,EAAQ,SAAS,cAAc,OAAO,EAC5CA,EAAM,YAAc,28KACpB,KAAK,WAAW,YAAYA,CAAK,EACjC,KAAK,KAAO,CACV,OAAQ8sD,GACR,WAAYD,GACZ,cAAe1P,GACf,sBAAuBI,GACvB,YAAa,KACb,KAAMwP,GACN,GAAGjtD,CACT,EACI,UAAW2a,KAAQuyC,GACbvyC,IAAS,YAAc,OAAO,UAAU,eAAe,KAAK,KAAMA,CAAI,IACxE,KAAK,KAAKA,C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,GAAU,CAAC,EACnCA,GAAU,SAAW,IAAIA,GAAU,CAAC,EACpCA,GAAU,YAAcA,GAAU,SAClC,IAAIC,GAAW,SAASN,EAAG,CAC3B,EACIO,GAAS,CACX,OAAQd,GACR,QAASY,GACT,MAAOD,GACP,WAAYF,GACZ,KAAMH,GACN,OAAQT,GACR,YAAaD,GACb,SAAUX,GACV,WAAYK,GACZ,UAAWD,GACX,YAAaE,GACb,QAASH,GACT,UAAWM,GACX,UAAAP,GACA,YAAaQ,GACb,OAAQkB,EACV,EACIE,GAAWD,GAAO,OAClBE,GAASF,GAAO,KAChBG,GAAWH,GAAO,OAClBI,GAAcJ,GAAO,UACzB,SAASK,IAAU,CACjB,IAAIC,EAAW,CACb,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,iBACA,kBACA,mBACA,mBACA,mBACA,kBACA,kBACA,oBACA,mBACA,kBACA,iBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,iBACA,iBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,oBACA,mBACA,mBACA,kBACA,kBACA,kBACA,mBACA,kBACA,kBACA,mBACA,kBACA,kBACA,mBACA,oBACA,oBACA,mBACA,kBACA,kBACA,oBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,mBACA,oBACA,oBACA,mBACA,kBACA,kBACA,mBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,oBACA,mBACA,oBACA,kBACA,kBACA,oBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,kBACA,kBACA,mBACA,oBACA,oBACA,mBACA,kBACA,kBACA,oBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,mBACA,kBACA,kBACA,kBACA,oBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,oBACA,oBACA,oBACA,mBACA,kBACA,oBACA,mBACA,mBACA,oBACA,mBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,oBACA,mBACA,mBACA,oBACA,kBACA,kBACA,mBACA,iBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,kBACA,kBACA,mBACA,mBACA,oBACA,oBACA,iBACA,oBACA,kBACA,iBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,kBACA,oBACA,oBACA,mBACA,mBACA,kBACA,iBACA,mBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,oBACA,mBACA,iBACA,kBACA,mBACA,kBACA,iBACA,oBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,mBACA,mBACA,oBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,iBACA,kBACA,oBACA,mBACA,kBACA,kBACA,mBACA,mBACA,oBACA,mBACA,kBACA,oBACA,oBACA,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,oBACA,kBACA,iBACA,oBACA,oBACA,oBACA,mBACA,mBACA,kBACA,WAAcJ,GAAO,MAAQ,GAAM,QACnC,WAAcA,GAAO,MAAQ,GAAM,QACnC,WAAaA,GAAO,MAAQ,GAAM,QAClC,WAAaA,GAAO,MAAQ,GAAM,QAClC,UAAYA,GAAO,MAAQ,GAAM,QACjC,UAAYA,GAAO,MAAQ,GAAM,QACjC,UAAYA,GAAO,MAAQ,GAAM,QACjC,SAAWA,GAAO,MAAQ,GAAM,QAChC,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACJ,EACMK,EAAK,GACLC,EAAM,GACNC,EAAM,CACR,CACE,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,qBACD,EACD,CACE,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,sBACA,EACA,EACA,EACA,EACA,EACA,EACA,sBACA,sBACA,qBACD,EACD,CACE,kBACA,iBACA,kBACA,kBACA,kBACA,iBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,GACA,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,qBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,iBACD,EACD,CACE,EACA,EACA,EACA,EACA,EACA,EACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,qBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACD,CACL,EACMC,EAAWD,EAAIE,EAAQ,UAAU,EACjCC,EAAKH,EAAIE,EAAQ,UAAU,EAC3BE,EAAKJ,EAAIE,EAAQ,UAAU,EAC3BG,EAAKL,EAAIE,EAAQ,UAAU,EAC3BjlB,EAAQ,CACV,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACJ,EACE,SAASqlB,EAAeC,EAAIC,EAAOlvD,EAAG,CAGpC,QAFImvD,EAAK,GACLC,EAAKF,EAAQ,IAAM,GAAK,IACnBpgE,EA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E,EAAE,EACZA,EAAE,EAAE,GAAKsvD,EACTA,EAAKtvD,EAAE,CAAC,EACRA,EAAE,CAAC,GAAKA,EAAE,EAAE,EACZA,EAAE,EAAE,GAAKsvD,EACTA,EAAKtvD,EAAE,EAAE,EACTA,EAAE,EAAE,GAAKA,EAAE,EAAE,EACbA,EAAE,EAAE,GAAKsvD,EACTA,EAAKtvD,EAAE,EAAE,EACTA,EAAE,EAAE,GAAKA,EAAE,EAAE,EACbA,EAAE,EAAE,GAAKsvD,EACTA,EAAKtvD,EAAE,CAAC,EACRA,EAAE,CAAC,GAAKA,EAAE,EAAE,EACZA,EAAE,EAAE,GAAKsvD,EACTA,EAAKtvD,EAAE,CAAC,EACRA,EAAE,CAAC,GAAKA,EAAE,EAAE,EACZA,EAAE,EAAE,GAAKsvD,EACTA,EAAKtvD,EAAE,EAAE,EACTA,EAAE,EAAE,GAAKA,EAAE,CAAC,EACZA,EAAE,CAAC,GAAKsvD,EACRA,EAAKtvD,EAAE,EAAE,EACTA,EAAE,EAAE,GAAKA,EAAE,CAAC,EACZA,EAAE,CAAC,GAAKsvD,EACRA,EAAKtvD,EAAE,CAAC,EACRA,EAAE,CAAC,GAAKA,EAAE,EAAE,EACZA,EAAE,EAAE,GAAKsvD,EACTA,EAAKtvD,EAAE,CAAC,EACRA,EAAE,CAAC,GAAKA,EAAE,EAAE,EACZA,EAAE,EAAE,GAAKsvD,EACTA,EAAKtvD,EAAE,EAAE,EACTA,EAAE,EAAE,GAAKA,EAAE,EAAE,EACbA,EAAE,EAAE,GAAKsvD,EACTA,EAAKtvD,EAAE,EAAE,EACTA,EAAE,EAAE,GAAKA,EAAE,EAAE,EACbA,EAAE,EAAE,GAAKsvD,EACTA,EAAKtvD,EAAE,EAAE,EACTA,EAAE,EAAE,GAAKA,EAAE,EAAE,EACbA,EAAE,EAAE,GAAKsvD,EACTA,EAAKtvD,EAAE,EAAE,EACTA,EAAE,EAAE,GAAKA,EAAE,EAAE,EACbA,EAAE,EAAE,GAAKsvD,EACTA,EAAKtvD,EAAE,EAAE,EACTA,EAAE,EAAE,GAAKA,EAAE,CAAC,EACZA,EAAE,CAAC,GAAKsvD,EACRA,EAAKtvD,EAAE,EAAE,EACTA,EAAE,EAAE,GAAKA,EAA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AIK,EAAK,EACnBtF,GAAM+E,EACNC,GAAMD,CAChB,OAAiBC,EAAK/nE,GACd2uB,EAAKF,EACLA,EAAKE,EAAK84C,EAAOI,EAAM,CAAC,EAAIt4C,EAAKk4C,EAAOI,EAAM,CAAC,EAC/Ct4C,EAAKZ,EAAK84C,EAAOI,EAAM,CAAC,EAAIt4C,EAAKk4C,EAAOI,EAAM,CAAC,CAChD,CACDA,GAAO,CACb,OAAaC,EAAKh6D,EACf,CACD,IAAI86D,EAAS,CACX,EACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACJ,EACE,KAAK,UAAY,SAASrG,EAAKsG,EAAQC,EAAK/nB,EAAQgoB,EAAQ,CAC1D,QAASz3D,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAIytD,EAAIkB,EAAQ,UAAY,EACxBrgC,EAAI,MAAQ,IAAM,GAAKtuB,EAAI,GAC3B8N,EAAI6gD,EAAQ,UAAY,EAAI,EAChC,EAAG,CACD,IAAImI,EAAIC,EAAIC,EAAIC,EAAI7H,EAChBvgE,EAAIyoE,EAAOxpD,GAAK,CAAC,EAAI,IA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ACA,kBACA,gBACA,iBACA,gBACA,iBACA,gBACA,gBACA,eACD,EACD,CACE,eACA,kBACA,iBACA,iBACA,iBACA,kBACA,iBACA,gBACA,iBACA,kBACA,gBACA,iBACA,iBACA,kBACA,gBACA,iBACA,iBACA,iBACA,gBACA,gBACA,gBACD,EACD,CACE,gBACA,kBACA,iBACA,iBACA,iBACA,kBACA,gBACA,iBACA,iBACA,kBACA,gBACA,iBACA,gBACA,iBACA,gBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACD,EACD,CACE,gBACA,kBACA,iBACA,gBACA,iBACA,gBACA,gBACA,gBACA,iBACA,iBACA,iBACA,gBACA,iBACA,iBACA,gBACA,gBACA,eACA,gBACA,gBACA,gBACA,gBACD,EACD,CACE,gBACA,kBACA,gBACA,gBACA,iBACA,gBACA,gBACA,iBACA,iBACA,gBACA,gBACA,iBACA,gBACA,iBACA,gBACA,gBACA,gBACA,iBACA,gBACA,gBACA,eACD,EACD,CACE,eACA,iBACA,iBACA,gBACA,iBACA,eACA,iBACA,gBACA,gBACA,iBACA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,iBACA,gBACA,iBACA,gBACA,eACD,EACD,CACE,gBACA,kBACA,iBACA,gBACA,eACA,iBACA,gBACA,gBACA,iBACA,gBACA,eACA,iBACA,iBACA,eACA,gBACA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACD,EACD,CACE,gBACA,iBACA,iBACA,iBACA,iBACA,iBACA,gBACA,eACA,gBACA,gBACA,gBACA,iBACA,iBACA,iBACA,gBACA,iBACA,gBACA,gBACA,iBACA,gBACA,gBACD,EACD,CACE,gBACA,gBACA,iBACA,iBACA,iBACA,iBACA,gBACA,iBACA,iBACA,gBACA,gBACA,gBACA,iBACA,iBACA,iBACA,iBACA,cACA,gBACA,eACA,eACA,gBACD,CACL,EACMC,EAAW,CACb,CACE,gBACA,kBACA,kBACA,gBACA,eACD,EACD,CACE,gBACA,kBAC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fA,GAAS,KAAO,CAAC,EAAG,EAAG,EAAG,CAAC,EAC3BA,GAAS,KAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC1CA,GAAS,KAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC1CA,GAAS,KAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC/DA,GAAS,KAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC/DA,GAAS,KAAO,CACd,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACF,EACAA,GAAS,KAAO,CACd,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,CACF,EACAA,GAAS,KAAO,CACd,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,CACF,EACAA,GAAS,MAAQ,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACF,EACAA,GAAS,MAAQ,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,CACF,EACAA,GAAS,MAAQ,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,CACF,EACAA,GAAS,MAAQ,CACf,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,CACF,EACAA,GAAS,MAAQ,CACf,EACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,CACF,EACAA,GAAS,MAAQ,CACf,EACA,EACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,KACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,IACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,CACF,EACAA,GAAS,MAAQ,CACf,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACF,EACAA,GAAS,MAAQ,CACf,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACF,EACAA,GAAS,MAAQ,CACf,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,CACF,EACAA,GAAS,IAAM,CAAC,EAAG,EAAG,EAAG,CAAC,EAC1BA,GAAS,IAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACzCA,GAAS,IAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACzCA,GAAS,IAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAE,EAChEA,GAAS,IAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC9DA,GAAS,IAAM,CACb,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACF,EACAA,GAAS,IAAM,CACb,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACF,EACAA,GAAS,IAAM,CACb,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,EACF,EACAA,GAAS,KAAO,CACd,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACF,EACAA,GAAS,KAAO,CACd,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACF,EACAA,GAAS,KAAO,CACd,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACF,EACAA,GAAS,KAAO,CACd,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACF,EACAA,GAAS,KAAO,CACd,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACF,EACAA,GAAS,OAAS,CAChB,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACF,EACAA,GAAS,KAAO,CACd,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACF,EACAA,GAAS,KAAO,CACd,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA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A,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACF,EACAA,GAAS,QAAU,CACjB,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACF,EACAA,GAAS,QAAU,CACjB,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACF,EACAA,GAAS,cAAgB,CACvB,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,EACD,EACD,CACE,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACD,EACD,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,CAC/D,EACAA,GAAS,iBAAmB,CAC1B,CAAC,MAAO,KAAM,KAAM,EAAE,EACtB,CAAC,MAAO,KAAM,KAAM,EAAE,EACtB,CAAC,MAAO,KAAM,IAAK,EAAE,CACvB,EACAA,GAAS,WAAa,CAAC,EAAG,EAAG,GAAI,GAAI,EAAE,EACvC,IAAIC,GAAYhe,GAAO,QACnBie,GAAQje,GAAO,MACfke,GAASle,GAAO,KAChBme,GAAcne,GAAO,UACrBoe,GAAYpe,GAAO,QACnBqe,GAAWre,GAAO,OACtBse,GAAY,MAAQ,IAAM,EAC1BA,GAAY,OAAS,IACrBA,GAAY,WAAa,IACzBA,GAAY,UAAY,KACxB,SAASA,IAAc,CACrB,IAAIC,EAAM,KACNC,EAAK,KACLpZ,EAAM,KACV,KAAK,WAAa,SAASqZ,EAAKC,EAAKlZ,EAAM,CACzC+Y,EAAME,EACND,EAAKE,EACLtZ,EAAMI,CACV,EACE,SAASmZ,EAAMlf,EAAG,CAChB,OAAOmf,EAAMnf,EAAI6e,GAAY,MAAM,CACpC,CACD,KAAK,OAAS,SAAS7e,EAAG,CACxB,OAAOof,EAAOpf,CAAC,CACnB,EACE,IAAIqf,EAAc,qBACdC,EAAYT,GAAY,UACxBU,EAAeD,EAAY,EAC3BE,EAAQX,GAA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,GACF,CACE,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,EACD,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAG,EACxD,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACpB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CACrB,EACD,IAAIA,GACF,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,EACD,CACE,EAAI,EACJ,GAAK,EACL,GAAK,EACL,GAAK,EACL,GAAK,EACL,GAAK,EACL,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,CACP,EACD,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACpB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CACrB,EACD,IAAIA,GACF,CACE,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,EACD,CACE,EAAI,EACJ,GAAK,EACL,GAAK,EACL,GAAK,EACL,GAAK,EACL,GAAK,EACL,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,CACP,EACD,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACpB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CACrB,EACD,IAAIA,GACF,CACE,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA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BAAoBC,EACzB,KAAK,UAAYC,EACjB,KAAK,UAAYC,EACjB,KAAK,gBAAkBC,EACvB,KAAK,QAAUC,EACf,KAAK,UAAYC,EACjB,KAAK,SAAWC,EAChB,KAAK,MAAQC,CACd,CACD,SAASC,EAAWC,EAAMviF,EAAM0hF,EAAOS,EAAOE,EAAKV,EAAaC,EAAc1U,EAAMsV,EAAIC,EAAMV,EAAOC,EAAOU,EAASC,EAAS,CAC5H,KAAK,WAAa3iF,EAClB,KAAK,aAAe0hF,EACpB,KAAK,UAAYS,EACjB,KAAK,QAAUE,EACf,KAAK,OAASV,EACd,KAAK,KAAOC,EACZ,KAAK,OAAS1U,EACd,KAAK,MAAQsV,EACb,KAAK,YAAcC,EACnB,KAAK,UAAYV,EACjB,KAAK,UAAYC,EACjB,KAAK,QAAUU,EACf,KAAK,QAAUC,CAChB,CACD,IAAIC,EACJ,KAAK,WAAa,SAASC,EAAO,CAChCD,EAAOC,CACX,EACE,IAAIC,EAAqB,CACvB,IAAItB,EACF,EACA,EACA,EACA,EACA,IACA,IACA,KACA,KACA,IACA,EACA,EACA,EACA,EACA,GACA,GACD,EACD,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,KACA,KACA,IACA,IACA,EACA,EACA,EACA,GACA,IACD,EACD,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,KACA,KACA,IACA,EACA,EACA,EACA,EACA,GACA,IACD,EACD,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,KACA,KACA,IACA,EACA,GACA,EACA,EACA,GACA,IACD,EACD,IAAIA,EACF,EACA,EACA,EACA,EACA,EACA,IACA,IACA,KACA,IACA,IACA,GACA,EACA,EACA,EACA,IACD,EACD,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,GACA,GACA,KACA,EACA,IACA,KACA,EACA,EACA,IACD,EACD,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,MACA,IACA,IACA,KACA,EACA,EACA,GACD,EACD,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,GACA,IACA,MACA,EACA,IACA,KACA,EACA,EACA,GACD,EACD,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,IACA,KACA,MACA,GACA,IACA,KACA,EACA,EACA,CACD,EACD,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,KACA,EACA,EACA,CACD,EACD,IAAIA,EACF,GACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,IACA,GACA,IACA,KACA,EACA,EACA,CACD,CACL,EACMuB,EAAqB,CACvB,IAAIvB,EACF,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,IACA,EACA,EACA,EACA,EACA,GACA,GACD,EACD,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,KACA,KACA,IACA,IACA,EACA,EACA,EACA,GACA,IACD,EACD,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,KAAM,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAI,EACvE,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,KACA,MACA,IACA,EACA,GACA,EACA,EACA,GACA,IACD,EACD,IAAIA,EAAW,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,KAAM,GAAK,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,IAAI,EACxE,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,GACA,KACA,KACA,EACA,IACA,KACA,EACA,EACA,IACD,EACD,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,GACA,KACA,KACA,IACA,IACA,KACA,EACA,EACA,CACD,EACD,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,MACA,EACA,IACA,KACA,EACA,EACA,CACD,EACD,IAAIA,EACF,EACA,EACA,EACA,EACA,IACA,GACA,EACA,IACA,IACA,GACA,IACA,KACA,EACA,EACA,CACD,EACD,IAAIA,EACF,EAC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D,EAAI,WAAa1G,EAEpB,CACD,IAAIy2B,EAAiB,CACnB,IAAIf,EACF,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,IACA,GACA,MACA,CACD,EACD,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,IACA,GACA,KACA,CACD,EACD,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,IACA,GACA,KACA,CACD,EACD,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,IACA,GACA,KACA,CACD,EACD,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,IACA,GACA,KACA,CACD,EACD,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,IACA,GACA,KACA,CACD,EACD,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,GACA,GACA,KACA,CACD,EACD,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,GACA,GACA,KACA,CACD,EACD,IAAIA,EACF,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,KACA,CACD,EACD,IAAIA,EACF,GACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,IACA,KACA,CACD,EACD,IAAIA,EACF,IACA,EACA,EACA,EACA,KACA,IACA,IACA,EACA,IACA,EACA,EACA,IACA,KACA,CACD,EACD,IAAIA,EACF,IACA,EACA,EACA,EACA,KACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,KACA,CACD,EACD,IAAIA,EACF,IACA,EACA,EACA,EACA,KACA,EACA,IACA,EACA,IACA,GACA,EACA,IACA,EACA,CACD,EACD,IAAIA,EACF,IACA,EACA,EACA,EACA,KACA,I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,CAChB,EACA,MACA,MACA,IACA,MACA,IACA,IACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,KACA,MACA,MACA,IACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MAC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","x_google_ignoreList":[0]}