const p$3=function(){const R=document.createElement("link").relList;if(R&&R.supports&&R.supports("modulepreload"))return;for(const G of document.querySelectorAll('link[rel="modulepreload"]'))D(G);new MutationObserver(G=>{for(const U of G)if(U.type==="childList")for(const W of U.addedNodes)W.tagName==="LINK"&&W.rel==="modulepreload"&&D(W)}).observe(document,{childList:!0,subtree:!0});function B(G){const U={};return G.integrity&&(U.integrity=G.integrity),G.referrerpolicy&&(U.referrerPolicy=G.referrerpolicy),G.crossorigin==="use-credentials"?U.credentials="include":G.crossorigin==="anonymous"?U.credentials="omit":U.credentials="same-origin",U}function D(G){if(G.ep)return;G.ep=!0;const U=B(G);fetch(G.href,U)}};p$3();function makeMap(F,R){const B=Object.create(null),D=F.split(",");for(let G=0;G!!B[G.toLowerCase()]:G=>!!B[G]}const specialBooleanAttrs="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",isSpecialBooleanAttr=makeMap(specialBooleanAttrs);function includeBooleanAttr(F){return!!F||F===""}function normalizeStyle(F){if(isArray$5(F)){const R={};for(let B=0;B{if(B){const D=B.split(propertyDelimiterRE);D.length>1&&(R[D[0].trim()]=D[1].trim())}}),R}function normalizeClass(F){let R="";if(isString(F))R=F;else if(isArray$5(F))for(let B=0;B{},NO=()=>!1,onRE=/^on[^a-z]/,isOn=F=>onRE.test(F),isModelListener=F=>F.startsWith("onUpdate:"),extend$3=Object.assign,remove$7=(F,R)=>{const B=F.indexOf(R);B>-1&&F.splice(B,1)},hasOwnProperty$2=Object.prototype.hasOwnProperty,hasOwn=(F,R)=>hasOwnProperty$2.call(F,R),isArray$5=Array.isArray,isMap=F=>toTypeString(F)==="[object Map]",isSet=F=>toTypeString(F)==="[object Set]",isFunction$4=F=>typeof F=="function",isString=F=>typeof F=="string",isSymbol=F=>typeof F=="symbol",isObject$4=F=>F!==null&&typeof F=="object",isPromise$1=F=>isObject$4(F)&&isFunction$4(F.then)&&isFunction$4(F.catch),objectToString$1=Object.prototype.toString,toTypeString=F=>objectToString$1.call(F),toRawType=F=>toTypeString(F).slice(8,-1),isPlainObject$2=F=>toTypeString(F)==="[object Object]",isIntegerKey=F=>isString(F)&&F!=="NaN"&&F[0]!=="-"&&""+parseInt(F,10)===F,isReservedProp=makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cacheStringFunction=F=>{const R=Object.create(null);return B=>R[B]||(R[B]=F(B))},camelizeRE$1=/-(\w)/g,camelize$1=cacheStringFunction(F=>F.replace(camelizeRE$1,(R,B)=>B?B.toUpperCase():"")),hyphenateRE=/\B([A-Z])/g,hyphenate=cacheStringFunction(F=>F.replace(hyphenateRE,"-$1").toLowerCase()),capitalize=cacheStringFunction(F=>F.charAt(0).toUpperCase()+F.slice(1)),toHandlerKey=cacheStringFunction(F=>F?`on${capitalize(F)}`:""),hasChanged=(F,R)=>!Object.is(F,R),invokeArrayFns=(F,R)=>{for(let B=0;B{Object.defineProperty(F,R,{configurable:!0,enumerable:!1,value:B})},toNumber=F=>{const R=parseFloat(F);return isNaN(R)?F:R};let _globalThis;const getGlobalThis=()=>_globalThis||(_globalThis=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});let activeEffectScope;class EffectScope{constructor(R=!1){this.active=!0,this.effects=[],this.cleanups=[],!R&&activeEffectScope&&(this.parent=activeEffectScope,this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}run(R){if(this.active){const B=activeEffectScope;try{return activeEffectScope=this,R()}finally{activeEffectScope=B}}}on(){activeEffectScope=this}off(){activeEffectScope=this.parent}stop(R){if(this.active){let B,D;for(B=0,D=this.effects.length;B{const R=new Set(F);return R.w=0,R.n=0,R},wasTracked=F=>(F.w&trackOpBit)>0,newTracked=F=>(F.n&trackOpBit)>0,initDepMarkers=({deps:F})=>{if(F.length)for(let R=0;R{const{deps:R}=F;if(R.length){let B=0;for(let D=0;D{(Q==="length"||Q>=D)&&q.push(Y)});else switch(B!==void 0&&q.push(W.get(B)),R){case"add":isArray$5(F)?isIntegerKey(B)&&q.push(W.get("length")):(q.push(W.get(ITERATE_KEY)),isMap(F)&&q.push(W.get(MAP_KEY_ITERATE_KEY)));break;case"delete":isArray$5(F)||(q.push(W.get(ITERATE_KEY)),isMap(F)&&q.push(W.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap(F)&&q.push(W.get(ITERATE_KEY));break}if(q.length===1)q[0]&&triggerEffects(q[0]);else{const Y=[];for(const Q of q)Q&&Y.push(...Q);triggerEffects(createDep(Y))}}function triggerEffects(F,R){for(const B of isArray$5(F)?F:[...F])(B!==activeEffect||B.allowRecurse)&&(B.scheduler?B.scheduler():B.run())}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).map(F=>Symbol[F]).filter(isSymbol)),get$1=createGetter(),shallowGet=createGetter(!1,!0),readonlyGet=createGetter(!0),arrayInstrumentations=createArrayInstrumentations();function createArrayInstrumentations(){const F={};return["includes","indexOf","lastIndexOf"].forEach(R=>{F[R]=function(...B){const D=toRaw(this);for(let U=0,W=this.length;U{F[R]=function(...B){pauseTracking();const D=toRaw(this)[R].apply(this,B);return resetTracking(),D}}),F}function createGetter(F=!1,R=!1){return function(D,G,U){if(G==="__v_isReactive")return!F;if(G==="__v_isReadonly")return F;if(G==="__v_isShallow")return R;if(G==="__v_raw"&&U===(F?R?shallowReadonlyMap:readonlyMap:R?shallowReactiveMap:reactiveMap).get(D))return D;const W=isArray$5(D);if(!F&&W&&hasOwn(arrayInstrumentations,G))return Reflect.get(arrayInstrumentations,G,U);const q=Reflect.get(D,G,U);return(isSymbol(G)?builtInSymbols.has(G):isNonTrackableKeys(G))||(F||track(D,"get",G),R)?q:isRef(q)?!W||!isIntegerKey(G)?q.value:q:isObject$4(q)?F?readonly(q):reactive(q):q}}const set=createSetter(),shallowSet=createSetter(!0);function createSetter(F=!1){return function(B,D,G,U){let W=B[D];if(isReadonly(W)&&isRef(W)&&!isRef(G))return!1;if(!F&&!isReadonly(G)&&(isShallow(G)||(G=toRaw(G),W=toRaw(W)),!isArray$5(B)&&isRef(W)&&!isRef(G)))return W.value=G,!0;const q=isArray$5(B)&&isIntegerKey(D)?Number(D)F,getProto=F=>Reflect.getPrototypeOf(F);function get$1$1(F,R,B=!1,D=!1){F=F.__v_raw;const G=toRaw(F),U=toRaw(R);R!==U&&!B&&track(G,"get",R),!B&&track(G,"get",U);const{has:W}=getProto(G),q=D?toShallow:B?toReadonly:toReactive;if(W.call(G,R))return q(F.get(R));if(W.call(G,U))return q(F.get(U));F!==G&&F.get(R)}function has$1$1(F,R=!1){const B=this.__v_raw,D=toRaw(B),G=toRaw(F);return F!==G&&!R&&track(D,"has",F),!R&&track(D,"has",G),F===G?B.has(F):B.has(F)||B.has(G)}function size(F,R=!1){return F=F.__v_raw,!R&&track(toRaw(F),"iterate",ITERATE_KEY),Reflect.get(F,"size",F)}function add(F){F=toRaw(F);const R=toRaw(this);return getProto(R).has.call(R,F)||(R.add(F),trigger$1(R,"add",F,F)),this}function set$1(F,R){R=toRaw(R);const B=toRaw(this),{has:D,get:G}=getProto(B);let U=D.call(B,F);U||(F=toRaw(F),U=D.call(B,F));const W=G.call(B,F);return B.set(F,R),U?hasChanged(R,W)&&trigger$1(B,"set",F,R):trigger$1(B,"add",F,R),this}function deleteEntry(F){const R=toRaw(this),{has:B,get:D}=getProto(R);let G=B.call(R,F);G||(F=toRaw(F),G=B.call(R,F)),D&&D.call(R,F);const U=R.delete(F);return G&&trigger$1(R,"delete",F,void 0),U}function clear(){const F=toRaw(this),R=F.size!==0,B=F.clear();return R&&trigger$1(F,"clear",void 0,void 0),B}function createForEach(F,R){return function(D,G){const U=this,W=U.__v_raw,q=toRaw(W),Y=R?toShallow:F?toReadonly:toReactive;return!F&&track(q,"iterate",ITERATE_KEY),W.forEach((Q,Z)=>D.call(G,Y(Q),Y(Z),U))}}function createIterableMethod(F,R,B){return function(...D){const G=this.__v_raw,U=toRaw(G),W=isMap(U),q=F==="entries"||F===Symbol.iterator&&W,Y=F==="keys"&&W,Q=G[F](...D),Z=B?toShallow:R?toReadonly:toReactive;return!R&&track(U,"iterate",Y?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:K,done:ie}=Q.next();return ie?{value:K,done:ie}:{value:q?[Z(K[0]),Z(K[1])]:Z(K),done:ie}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(F){return function(...R){return F==="delete"?!1:this}}function createInstrumentations(){const F={get(U){return get$1$1(this,U)},get size(){return size(this)},has:has$1$1,add,set:set$1,delete:deleteEntry,clear,forEach:createForEach(!1,!1)},R={get(U){return get$1$1(this,U,!1,!0)},get size(){return size(this)},has:has$1$1,add,set:set$1,delete:deleteEntry,clear,forEach:createForEach(!1,!0)},B={get(U){return get$1$1(this,U,!0)},get size(){return size(this,!0)},has(U){return has$1$1.call(this,U,!0)},add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear"),forEach:createForEach(!0,!1)},D={get(U){return get$1$1(this,U,!0,!0)},get size(){return size(this,!0)},has(U){return has$1$1.call(this,U,!0)},add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear"),forEach:createForEach(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(U=>{F[U]=createIterableMethod(U,!1,!1),B[U]=createIterableMethod(U,!0,!1),R[U]=createIterableMethod(U,!1,!0),D[U]=createIterableMethod(U,!0,!0)}),[F,B,R,D]}const[mutableInstrumentations,readonlyInstrumentations,shallowInstrumentations,shallowReadonlyInstrumentations]=createInstrumentations();function createInstrumentationGetter(F,R){const B=R?F?shallowReadonlyInstrumentations:shallowInstrumentations:F?readonlyInstrumentations:mutableInstrumentations;return(D,G,U)=>G==="__v_isReactive"?!F:G==="__v_isReadonly"?F:G==="__v_raw"?D:Reflect.get(hasOwn(B,G)&&G in D?B:D,G,U)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(F){switch(F){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(F){return F.__v_skip||!Object.isExtensible(F)?0:targetTypeMap(toRawType(F))}function reactive(F){return isReadonly(F)?F:createReactiveObject(F,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(F){return createReactiveObject(F,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(F){return createReactiveObject(F,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function createReactiveObject(F,R,B,D,G){if(!isObject$4(F)||F.__v_raw&&!(R&&F.__v_isReactive))return F;const U=G.get(F);if(U)return U;const W=getTargetType(F);if(W===0)return F;const q=new Proxy(F,W===2?D:B);return G.set(F,q),q}function isReactive(F){return isReadonly(F)?isReactive(F.__v_raw):!!(F&&F.__v_isReactive)}function isReadonly(F){return!!(F&&F.__v_isReadonly)}function isShallow(F){return!!(F&&F.__v_isShallow)}function isProxy(F){return isReactive(F)||isReadonly(F)}function toRaw(F){const R=F&&F.__v_raw;return R?toRaw(R):F}function markRaw(F){return def(F,"__v_skip",!0),F}const toReactive=F=>isObject$4(F)?reactive(F):F,toReadonly=F=>isObject$4(F)?readonly(F):F;function trackRefValue(F){shouldTrack&&activeEffect&&(F=toRaw(F),trackEffects(F.dep||(F.dep=createDep())))}function triggerRefValue(F,R){F=toRaw(F),F.dep&&triggerEffects(F.dep)}function isRef(F){return!!(F&&F.__v_isRef===!0)}function ref(F){return createRef(F,!1)}function shallowRef(F){return createRef(F,!0)}function createRef(F,R){return isRef(F)?F:new RefImpl(F,R)}class RefImpl{constructor(R,B){this.__v_isShallow=B,this.dep=void 0,this.__v_isRef=!0,this._rawValue=B?R:toRaw(R),this._value=B?R:toReactive(R)}get value(){return trackRefValue(this),this._value}set value(R){R=this.__v_isShallow?R:toRaw(R),hasChanged(R,this._rawValue)&&(this._rawValue=R,this._value=this.__v_isShallow?R:toReactive(R),triggerRefValue(this))}}function unref(F){return isRef(F)?F.value:F}const shallowUnwrapHandlers={get:(F,R,B)=>unref(Reflect.get(F,R,B)),set:(F,R,B,D)=>{const G=F[R];return isRef(G)&&!isRef(B)?(G.value=B,!0):Reflect.set(F,R,B,D)}};function proxyRefs(F){return isReactive(F)?F:new Proxy(F,shallowUnwrapHandlers)}function toRefs(F){const R=isArray$5(F)?new Array(F.length):{};for(const B in F)R[B]=toRef(F,B);return R}class ObjectRefImpl{constructor(R,B,D){this._object=R,this._key=B,this._defaultValue=D,this.__v_isRef=!0}get value(){const R=this._object[this._key];return R===void 0?this._defaultValue:R}set value(R){this._object[this._key]=R}}function toRef(F,R,B){const D=F[R];return isRef(D)?D:new ObjectRefImpl(F,R,B)}class ComputedRefImpl{constructor(R,B,D,G){this._setter=B,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new ReactiveEffect(R,()=>{this._dirty||(this._dirty=!0,triggerRefValue(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!G,this.__v_isReadonly=D}get value(){const R=toRaw(this);return trackRefValue(R),(R._dirty||!R._cacheable)&&(R._dirty=!1,R._value=R.effect.run()),R._value}set value(R){this._setter(R)}}function computed$1(F,R,B=!1){let D,G;const U=isFunction$4(F);return U?(D=F,G=NOOP):(D=F.get,G=F.set),new ComputedRefImpl(D,G,U||!G,B)}function callWithErrorHandling(F,R,B,D){let G;try{G=D?F(...D):F()}catch(U){handleError(U,R,B)}return G}function callWithAsyncErrorHandling(F,R,B,D){if(isFunction$4(F)){const U=callWithErrorHandling(F,R,B,D);return U&&isPromise$1(U)&&U.catch(W=>{handleError(W,R,B)}),U}const G=[];for(let U=0;U>>1;getId(queue$2[D])flushIndex&&queue$2.splice(R,1)}function queueCb(F,R,B,D){isArray$5(F)?B.push(...F):(!R||!R.includes(F,F.allowRecurse?D+1:D))&&B.push(F),queueFlush()}function queuePreFlushCb(F){queueCb(F,activePreFlushCbs,pendingPreFlushCbs,preFlushIndex)}function queuePostFlushCb(F){queueCb(F,activePostFlushCbs,pendingPostFlushCbs,postFlushIndex)}function flushPreFlushCbs(F,R=null){if(pendingPreFlushCbs.length){for(currentPreFlushParentJob=R,activePreFlushCbs=[...new Set(pendingPreFlushCbs)],pendingPreFlushCbs.length=0,preFlushIndex=0;preFlushIndexgetId(B)-getId(D)),postFlushIndex=0;postFlushIndexF.id==null?1/0:F.id;function flushJobs(F){isFlushPending=!1,isFlushing=!0,flushPreFlushCbs(F),queue$2.sort((B,D)=>getId(B)-getId(D));const R=NOOP;try{for(flushIndex=0;flushIndexte.trim()):K&&(G=B.map(toNumber))}let q,Y=D[q=toHandlerKey(R)]||D[q=toHandlerKey(camelize$1(R))];!Y&&U&&(Y=D[q=toHandlerKey(hyphenate(R))]),Y&&callWithAsyncErrorHandling(Y,F,6,G);const Q=D[q+"Once"];if(Q){if(!F.emitted)F.emitted={};else if(F.emitted[q])return;F.emitted[q]=!0,callWithAsyncErrorHandling(Q,F,6,G)}}function normalizeEmitsOptions(F,R,B=!1){const D=R.emitsCache,G=D.get(F);if(G!==void 0)return G;const U=F.emits;let W={},q=!1;if(!isFunction$4(F)){const Y=Q=>{const Z=normalizeEmitsOptions(Q,R,!0);Z&&(q=!0,extend$3(W,Z))};!B&&R.mixins.length&&R.mixins.forEach(Y),F.extends&&Y(F.extends),F.mixins&&F.mixins.forEach(Y)}return!U&&!q?(D.set(F,null),null):(isArray$5(U)?U.forEach(Y=>W[Y]=null):extend$3(W,U),D.set(F,W),W)}function isEmitListener(F,R){return!F||!isOn(R)?!1:(R=R.slice(2).replace(/Once$/,""),hasOwn(F,R[0].toLowerCase()+R.slice(1))||hasOwn(F,hyphenate(R))||hasOwn(F,R))}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(F){const R=currentRenderingInstance;return currentRenderingInstance=F,currentScopeId=F&&F.type.__scopeId||null,R}function withCtx(F,R=currentRenderingInstance,B){if(!R||F._n)return F;const D=(...G)=>{D._d&&setBlockTracking(-1);const U=setCurrentRenderingInstance(R),W=F(...G);return setCurrentRenderingInstance(U),D._d&&setBlockTracking(1),W};return D._n=!0,D._c=!0,D._d=!0,D}function markAttrsAccessed(){}function renderComponentRoot(F){const{type:R,vnode:B,proxy:D,withProxy:G,props:U,propsOptions:[W],slots:q,attrs:Y,emit:Q,render:Z,renderCache:K,data:ie,setupState:te,ctx:ne,inheritAttrs:se}=F;let re,ae;const le=setCurrentRenderingInstance(F);try{if(B.shapeFlag&4){const he=G||D;re=normalizeVNode(Z.call(he,he,K,U,te,ie,ne)),ae=Y}else{const he=R;re=normalizeVNode(he.length>1?he(U,{attrs:Y,slots:q,emit:Q}):he(U,null)),ae=R.props?Y:getFunctionalFallthrough(Y)}}catch(he){blockStack.length=0,handleError(he,F,1),re=createVNode(Comment)}let ce=re;if(ae&&se!==!1){const he=Object.keys(ae),{shapeFlag:pe}=ce;he.length&&pe&7&&(W&&he.some(isModelListener)&&(ae=filterModelListeners(ae,W)),ce=cloneVNode(ce,ae))}return B.dirs&&(ce.dirs=ce.dirs?ce.dirs.concat(B.dirs):B.dirs),B.transition&&(ce.transition=B.transition),re=ce,setCurrentRenderingInstance(le),re}const getFunctionalFallthrough=F=>{let R;for(const B in F)(B==="class"||B==="style"||isOn(B))&&((R||(R={}))[B]=F[B]);return R},filterModelListeners=(F,R)=>{const B={};for(const D in F)(!isModelListener(D)||!(D.slice(9)in R))&&(B[D]=F[D]);return B};function shouldUpdateComponent(F,R,B){const{props:D,children:G,component:U}=F,{props:W,children:q,patchFlag:Y}=R,Q=U.emitsOptions;if(R.dirs||R.transition)return!0;if(B&&Y>=0){if(Y&1024)return!0;if(Y&16)return D?hasPropsChanged(D,W,Q):!!W;if(Y&8){const Z=R.dynamicProps;for(let K=0;KF.__isSuspense;function queueEffectWithSuspense(F,R){R&&R.pendingBranch?isArray$5(F)?R.effects.push(...F):R.effects.push(F):queuePostFlushCb(F)}function provide(F,R){if(currentInstance){let B=currentInstance.provides;const D=currentInstance.parent&¤tInstance.parent.provides;D===B&&(B=currentInstance.provides=Object.create(D)),B[F]=R}}function inject(F,R,B=!1){const D=currentInstance||currentRenderingInstance;if(D){const G=D.parent==null?D.vnode.appContext&&D.vnode.appContext.provides:D.parent.provides;if(G&&F in G)return G[F];if(arguments.length>1)return B&&isFunction$4(R)?R.call(D.proxy):R}}function watchEffect(F,R){return doWatch(F,null,R)}const INITIAL_WATCHER_VALUE={};function watch(F,R,B){return doWatch(F,R,B)}function doWatch(F,R,{immediate:B,deep:D,flush:G,onTrack:U,onTrigger:W}=EMPTY_OBJ){const q=currentInstance;let Y,Q=!1,Z=!1;if(isRef(F)?(Y=()=>F.value,Q=isShallow(F)):isReactive(F)?(Y=()=>F,D=!0):isArray$5(F)?(Z=!0,Q=F.some(isReactive),Y=()=>F.map(ae=>{if(isRef(ae))return ae.value;if(isReactive(ae))return traverse(ae);if(isFunction$4(ae))return callWithErrorHandling(ae,q,2)})):isFunction$4(F)?R?Y=()=>callWithErrorHandling(F,q,2):Y=()=>{if(!(q&&q.isUnmounted))return K&&K(),callWithAsyncErrorHandling(F,q,3,[ie])}:Y=NOOP,R&&D){const ae=Y;Y=()=>traverse(ae())}let K,ie=ae=>{K=re.onStop=()=>{callWithErrorHandling(ae,q,4)}};if(isInSSRComponentSetup)return ie=NOOP,R?B&&callWithAsyncErrorHandling(R,q,3,[Y(),Z?[]:void 0,ie]):Y(),NOOP;let te=Z?[]:INITIAL_WATCHER_VALUE;const ne=()=>{if(!!re.active)if(R){const ae=re.run();(D||Q||(Z?ae.some((le,ce)=>hasChanged(le,te[ce])):hasChanged(ae,te)))&&(K&&K(),callWithAsyncErrorHandling(R,q,3,[ae,te===INITIAL_WATCHER_VALUE?void 0:te,ie]),te=ae)}else re.run()};ne.allowRecurse=!!R;let se;G==="sync"?se=ne:G==="post"?se=()=>queuePostRenderEffect(ne,q&&q.suspense):se=()=>{!q||q.isMounted?queuePreFlushCb(ne):ne()};const re=new ReactiveEffect(Y,se);return R?B?ne():te=re.run():G==="post"?queuePostRenderEffect(re.run.bind(re),q&&q.suspense):re.run(),()=>{re.stop(),q&&q.scope&&remove$7(q.scope.effects,re)}}function instanceWatch(F,R,B){const D=this.proxy,G=isString(F)?F.includes(".")?createPathGetter(D,F):()=>D[F]:F.bind(D,D);let U;isFunction$4(R)?U=R:(U=R.handler,B=R);const W=currentInstance;setCurrentInstance(this);const q=doWatch(G,U.bind(D),B);return W?setCurrentInstance(W):unsetCurrentInstance(),q}function createPathGetter(F,R){const B=R.split(".");return()=>{let D=F;for(let G=0;G{traverse(B,R)});else if(isPlainObject$2(F))for(const B in F)traverse(F[B],R);return F}function useTransitionState(){const F={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return onMounted(()=>{F.isMounted=!0}),onBeforeUnmount(()=>{F.isUnmounting=!0}),F}const TransitionHookValidator=[Function,Array],BaseTransitionImpl={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},setup(F,{slots:R}){const B=getCurrentInstance(),D=useTransitionState();let G;return()=>{const U=R.default&&getTransitionRawChildren(R.default(),!0);if(!U||!U.length)return;let W=U[0];if(U.length>1){for(const se of U)if(se.type!==Comment){W=se;break}}const q=toRaw(F),{mode:Y}=q;if(D.isLeaving)return emptyPlaceholder(W);const Q=getKeepAliveChild(W);if(!Q)return emptyPlaceholder(W);const Z=resolveTransitionHooks(Q,q,D,B);setTransitionHooks(Q,Z);const K=B.subTree,ie=K&&getKeepAliveChild(K);let te=!1;const{getTransitionKey:ne}=Q.type;if(ne){const se=ne();G===void 0?G=se:se!==G&&(G=se,te=!0)}if(ie&&ie.type!==Comment&&(!isSameVNodeType(Q,ie)||te)){const se=resolveTransitionHooks(ie,q,D,B);if(setTransitionHooks(ie,se),Y==="out-in")return D.isLeaving=!0,se.afterLeave=()=>{D.isLeaving=!1,B.update()},emptyPlaceholder(W);Y==="in-out"&&Q.type!==Comment&&(se.delayLeave=(re,ae,le)=>{const ce=getLeavingNodesForType(D,ie);ce[String(ie.key)]=ie,re._leaveCb=()=>{ae(),re._leaveCb=void 0,delete Z.delayedLeave},Z.delayedLeave=le})}return W}}},BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(F,R){const{leavingVNodes:B}=F;let D=B.get(R.type);return D||(D=Object.create(null),B.set(R.type,D)),D}function resolveTransitionHooks(F,R,B,D){const{appear:G,mode:U,persisted:W=!1,onBeforeEnter:q,onEnter:Y,onAfterEnter:Q,onEnterCancelled:Z,onBeforeLeave:K,onLeave:ie,onAfterLeave:te,onLeaveCancelled:ne,onBeforeAppear:se,onAppear:re,onAfterAppear:ae,onAppearCancelled:le}=R,ce=String(F.key),he=getLeavingNodesForType(B,F),pe=(fe,ge)=>{fe&&callWithAsyncErrorHandling(fe,D,9,ge)},me={mode:U,persisted:W,beforeEnter(fe){let ge=q;if(!B.isMounted)if(G)ge=se||q;else return;fe._leaveCb&&fe._leaveCb(!0);const Se=he[ce];Se&&isSameVNodeType(F,Se)&&Se.el._leaveCb&&Se.el._leaveCb(),pe(ge,[fe])},enter(fe){let ge=Y,Se=Q,Ee=Z;if(!B.isMounted)if(G)ge=re||Y,Se=ae||Q,Ee=le||Z;else return;let ve=!1;const xe=fe._enterCb=Me=>{ve||(ve=!0,Me?pe(Ee,[fe]):pe(Se,[fe]),me.delayedLeave&&me.delayedLeave(),fe._enterCb=void 0)};ge?(ge(fe,xe),ge.length<=1&&xe()):xe()},leave(fe,ge){const Se=String(F.key);if(fe._enterCb&&fe._enterCb(!0),B.isUnmounting)return ge();pe(K,[fe]);let Ee=!1;const ve=fe._leaveCb=xe=>{Ee||(Ee=!0,ge(),xe?pe(ne,[fe]):pe(te,[fe]),fe._leaveCb=void 0,he[Se]===F&&delete he[Se])};he[Se]=F,ie?(ie(fe,ve),ie.length<=1&&ve()):ve()},clone(fe){return resolveTransitionHooks(fe,R,B,D)}};return me}function emptyPlaceholder(F){if(isKeepAlive(F))return F=cloneVNode(F),F.children=null,F}function getKeepAliveChild(F){return isKeepAlive(F)?F.children?F.children[0]:void 0:F}function setTransitionHooks(F,R){F.shapeFlag&6&&F.component?setTransitionHooks(F.component.subTree,R):F.shapeFlag&128?(F.ssContent.transition=R.clone(F.ssContent),F.ssFallback.transition=R.clone(F.ssFallback)):F.transition=R}function getTransitionRawChildren(F,R=!1,B){let D=[],G=0;for(let U=0;U1)for(let U=0;U!!F.type.__asyncLoader,isKeepAlive=F=>F.type.__isKeepAlive;function onActivated(F,R){registerKeepAliveHook(F,"a",R)}function onDeactivated(F,R){registerKeepAliveHook(F,"da",R)}function registerKeepAliveHook(F,R,B=currentInstance){const D=F.__wdc||(F.__wdc=()=>{let G=B;for(;G;){if(G.isDeactivated)return;G=G.parent}return F()});if(injectHook(R,D,B),B){let G=B.parent;for(;G&&G.parent;)isKeepAlive(G.parent.vnode)&&injectToKeepAliveRoot(D,R,B,G),G=G.parent}}function injectToKeepAliveRoot(F,R,B,D){const G=injectHook(R,F,D,!0);onUnmounted(()=>{remove$7(D[R],G)},B)}function injectHook(F,R,B=currentInstance,D=!1){if(B){const G=B[F]||(B[F]=[]),U=R.__weh||(R.__weh=(...W)=>{if(B.isUnmounted)return;pauseTracking(),setCurrentInstance(B);const q=callWithAsyncErrorHandling(R,B,F,W);return unsetCurrentInstance(),resetTracking(),q});return D?G.unshift(U):G.push(U),U}}const createHook=F=>(R,B=currentInstance)=>(!isInSSRComponentSetup||F==="sp")&&injectHook(F,R,B),onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(F,R=currentInstance){injectHook("ec",F,R)}let shouldCacheAccess=!0;function applyOptions(F){const R=resolveMergedOptions(F),B=F.proxy,D=F.ctx;shouldCacheAccess=!1,R.beforeCreate&&callHook$1(R.beforeCreate,F,"bc");const{data:G,computed:U,methods:W,watch:q,provide:Y,inject:Q,created:Z,beforeMount:K,mounted:ie,beforeUpdate:te,updated:ne,activated:se,deactivated:re,beforeDestroy:ae,beforeUnmount:le,destroyed:ce,unmounted:he,render:pe,renderTracked:me,renderTriggered:fe,errorCaptured:ge,serverPrefetch:Se,expose:Ee,inheritAttrs:ve,components:xe,directives:Me,filters:ye}=R;if(Q&&resolveInjections(Q,D,null,F.appContext.config.unwrapInjectedRef),W)for(const Pe in W){const Ae=W[Pe];isFunction$4(Ae)&&(D[Pe]=Ae.bind(B))}if(G){const Pe=G.call(B,B);isObject$4(Pe)&&(F.data=reactive(Pe))}if(shouldCacheAccess=!0,U)for(const Pe in U){const Ae=U[Pe],Le=isFunction$4(Ae)?Ae.bind(B,B):isFunction$4(Ae.get)?Ae.get.bind(B,B):NOOP,Ne=!isFunction$4(Ae)&&isFunction$4(Ae.set)?Ae.set.bind(B):NOOP,Ie=computed({get:Le,set:Ne});Object.defineProperty(D,Pe,{enumerable:!0,configurable:!0,get:()=>Ie.value,set:_e=>Ie.value=_e})}if(q)for(const Pe in q)createWatcher(q[Pe],D,B,Pe);if(Y){const Pe=isFunction$4(Y)?Y.call(B):Y;Reflect.ownKeys(Pe).forEach(Ae=>{provide(Ae,Pe[Ae])})}Z&&callHook$1(Z,F,"c");function Re(Pe,Ae){isArray$5(Ae)?Ae.forEach(Le=>Pe(Le.bind(B))):Ae&&Pe(Ae.bind(B))}if(Re(onBeforeMount,K),Re(onMounted,ie),Re(onBeforeUpdate,te),Re(onUpdated,ne),Re(onActivated,se),Re(onDeactivated,re),Re(onErrorCaptured,ge),Re(onRenderTracked,me),Re(onRenderTriggered,fe),Re(onBeforeUnmount,le),Re(onUnmounted,he),Re(onServerPrefetch,Se),isArray$5(Ee))if(Ee.length){const Pe=F.exposed||(F.exposed={});Ee.forEach(Ae=>{Object.defineProperty(Pe,Ae,{get:()=>B[Ae],set:Le=>B[Ae]=Le})})}else F.exposed||(F.exposed={});pe&&F.render===NOOP&&(F.render=pe),ve!=null&&(F.inheritAttrs=ve),xe&&(F.components=xe),Me&&(F.directives=Me)}function resolveInjections(F,R,B=NOOP,D=!1){isArray$5(F)&&(F=normalizeInject(F));for(const G in F){const U=F[G];let W;isObject$4(U)?"default"in U?W=inject(U.from||G,U.default,!0):W=inject(U.from||G):W=inject(U),isRef(W)&&D?Object.defineProperty(R,G,{enumerable:!0,configurable:!0,get:()=>W.value,set:q=>W.value=q}):R[G]=W}}function callHook$1(F,R,B){callWithAsyncErrorHandling(isArray$5(F)?F.map(D=>D.bind(R.proxy)):F.bind(R.proxy),R,B)}function createWatcher(F,R,B,D){const G=D.includes(".")?createPathGetter(B,D):()=>B[D];if(isString(F)){const U=R[F];isFunction$4(U)&&watch(G,U)}else if(isFunction$4(F))watch(G,F.bind(B));else if(isObject$4(F))if(isArray$5(F))F.forEach(U=>createWatcher(U,R,B,D));else{const U=isFunction$4(F.handler)?F.handler.bind(B):R[F.handler];isFunction$4(U)&&watch(G,U,F)}}function resolveMergedOptions(F){const R=F.type,{mixins:B,extends:D}=R,{mixins:G,optionsCache:U,config:{optionMergeStrategies:W}}=F.appContext,q=U.get(R);let Y;return q?Y=q:!G.length&&!B&&!D?Y=R:(Y={},G.length&&G.forEach(Q=>mergeOptions$1(Y,Q,W,!0)),mergeOptions$1(Y,R,W)),U.set(R,Y),Y}function mergeOptions$1(F,R,B,D=!1){const{mixins:G,extends:U}=R;U&&mergeOptions$1(F,U,B,!0),G&&G.forEach(W=>mergeOptions$1(F,W,B,!0));for(const W in R)if(!(D&&W==="expose")){const q=internalOptionMergeStrats[W]||B&&B[W];F[W]=q?q(F[W],R[W]):R[W]}return F}const internalOptionMergeStrats={data:mergeDataFn,props:mergeObjectOptions,emits:mergeObjectOptions,methods:mergeObjectOptions,computed:mergeObjectOptions,beforeCreate:mergeAsArray,created:mergeAsArray,beforeMount:mergeAsArray,mounted:mergeAsArray,beforeUpdate:mergeAsArray,updated:mergeAsArray,beforeDestroy:mergeAsArray,beforeUnmount:mergeAsArray,destroyed:mergeAsArray,unmounted:mergeAsArray,activated:mergeAsArray,deactivated:mergeAsArray,errorCaptured:mergeAsArray,serverPrefetch:mergeAsArray,components:mergeObjectOptions,directives:mergeObjectOptions,watch:mergeWatchOptions,provide:mergeDataFn,inject:mergeInject};function mergeDataFn(F,R){return R?F?function(){return extend$3(isFunction$4(F)?F.call(this,this):F,isFunction$4(R)?R.call(this,this):R)}:R:F}function mergeInject(F,R){return mergeObjectOptions(normalizeInject(F),normalizeInject(R))}function normalizeInject(F){if(isArray$5(F)){const R={};for(let B=0;B0)&&!(W&16)){if(W&8){const Z=F.vnode.dynamicProps;for(let K=0;K{Y=!0;const[ie,te]=normalizePropsOptions(K,R,!0);extend$3(W,ie),te&&q.push(...te)};!B&&R.mixins.length&&R.mixins.forEach(Z),F.extends&&Z(F.extends),F.mixins&&F.mixins.forEach(Z)}if(!U&&!Y)return D.set(F,EMPTY_ARR),EMPTY_ARR;if(isArray$5(U))for(let Z=0;Z-1,te[1]=se<0||ne-1||hasOwn(te,"default"))&&q.push(K)}}}const Q=[W,q];return D.set(F,Q),Q}function validatePropName(F){return F[0]!=="$"}function getType(F){const R=F&&F.toString().match(/^\s*function (\w+)/);return R?R[1]:F===null?"null":""}function isSameType(F,R){return getType(F)===getType(R)}function getTypeIndex(F,R){return isArray$5(R)?R.findIndex(B=>isSameType(B,F)):isFunction$4(R)&&isSameType(R,F)?0:-1}const isInternalKey=F=>F[0]==="_"||F==="$stable",normalizeSlotValue=F=>isArray$5(F)?F.map(normalizeVNode):[normalizeVNode(F)],normalizeSlot$1=(F,R,B)=>{const D=withCtx((...G)=>normalizeSlotValue(R(...G)),B);return D._c=!1,D},normalizeObjectSlots=(F,R,B)=>{const D=F._ctx;for(const G in F){if(isInternalKey(G))continue;const U=F[G];if(isFunction$4(U))R[G]=normalizeSlot$1(G,U,D);else if(U!=null){const W=normalizeSlotValue(U);R[G]=()=>W}}},normalizeVNodeSlots=(F,R)=>{const B=normalizeSlotValue(R);F.slots.default=()=>B},initSlots=(F,R)=>{if(F.vnode.shapeFlag&32){const B=R._;B?(F.slots=toRaw(R),def(R,"_",B)):normalizeObjectSlots(R,F.slots={})}else F.slots={},R&&normalizeVNodeSlots(F,R);def(F.slots,InternalObjectKey,1)},updateSlots=(F,R,B)=>{const{vnode:D,slots:G}=F;let U=!0,W=EMPTY_OBJ;if(D.shapeFlag&32){const q=R._;q?B&&q===1?U=!1:(extend$3(G,R),!B&&q===1&&delete G._):(U=!R.$stable,normalizeObjectSlots(R,G)),W=R}else R&&(normalizeVNodeSlots(F,R),W={default:1});if(U)for(const q in G)!isInternalKey(q)&&!(q in W)&&delete G[q]};function withDirectives(F,R){const B=currentRenderingInstance;if(B===null)return F;const D=getExposeProxy(B)||B.proxy,G=F.dirs||(F.dirs=[]);for(let U=0;UsetRef(ie,R&&(isArray$5(R)?R[te]:R),B,D,G));return}if(isAsyncWrapper(D)&&!G)return;const U=D.shapeFlag&4?getExposeProxy(D.component)||D.component.proxy:D.el,W=G?null:U,{i:q,r:Y}=F,Q=R&&R.r,Z=q.refs===EMPTY_OBJ?q.refs={}:q.refs,K=q.setupState;if(Q!=null&&Q!==Y&&(isString(Q)?(Z[Q]=null,hasOwn(K,Q)&&(K[Q]=null)):isRef(Q)&&(Q.value=null)),isFunction$4(Y))callWithErrorHandling(Y,q,12,[W,Z]);else{const ie=isString(Y),te=isRef(Y);if(ie||te){const ne=()=>{if(F.f){const se=ie?Z[Y]:Y.value;G?isArray$5(se)&&remove$7(se,U):isArray$5(se)?se.includes(U)||se.push(U):ie?(Z[Y]=[U],hasOwn(K,Y)&&(K[Y]=Z[Y])):(Y.value=[U],F.k&&(Z[F.k]=Y.value))}else ie?(Z[Y]=W,hasOwn(K,Y)&&(K[Y]=W)):isRef(Y)&&(Y.value=W,F.k&&(Z[F.k]=W))};W?(ne.id=-1,queuePostRenderEffect(ne,B)):ne()}}}const queuePostRenderEffect=queueEffectWithSuspense;function createRenderer(F){return baseCreateRenderer(F)}function baseCreateRenderer(F,R){const B=getGlobalThis();B.__VUE__=!0;const{insert:D,remove:G,patchProp:U,createElement:W,createText:q,createComment:Y,setText:Q,setElementText:Z,parentNode:K,nextSibling:ie,setScopeId:te=NOOP,cloneNode:ne,insertStaticContent:se}=F,re=(Fe,Te,je,Ke=null,Oe=null,De=null,et=!1,it=null,rt=!!Te.dynamicChildren)=>{if(Fe===Te)return;Fe&&!isSameVNodeType(Fe,Te)&&(Ke=We(Fe),Ve(Fe,Oe,De,!0),Fe=null),Te.patchFlag===-2&&(rt=!1,Te.dynamicChildren=null);const{type:Je,ref:ct,shapeFlag:dt}=Te;switch(Je){case Text:ae(Fe,Te,je,Ke);break;case Comment:le(Fe,Te,je,Ke);break;case Static:Fe==null&&ce(Te,je,Ke,et);break;case Fragment:Me(Fe,Te,je,Ke,Oe,De,et,it,rt);break;default:dt&1?me(Fe,Te,je,Ke,Oe,De,et,it,rt):dt&6?ye(Fe,Te,je,Ke,Oe,De,et,it,rt):(dt&64||dt&128)&&Je.process(Fe,Te,je,Ke,Oe,De,et,it,rt,lt)}ct!=null&&Oe&&setRef(ct,Fe&&Fe.ref,De,Te||Fe,!Te)},ae=(Fe,Te,je,Ke)=>{if(Fe==null)D(Te.el=q(Te.children),je,Ke);else{const Oe=Te.el=Fe.el;Te.children!==Fe.children&&Q(Oe,Te.children)}},le=(Fe,Te,je,Ke)=>{Fe==null?D(Te.el=Y(Te.children||""),je,Ke):Te.el=Fe.el},ce=(Fe,Te,je,Ke)=>{[Fe.el,Fe.anchor]=se(Fe.children,Te,je,Ke,Fe.el,Fe.anchor)},he=({el:Fe,anchor:Te},je,Ke)=>{let Oe;for(;Fe&&Fe!==Te;)Oe=ie(Fe),D(Fe,je,Ke),Fe=Oe;D(Te,je,Ke)},pe=({el:Fe,anchor:Te})=>{let je;for(;Fe&&Fe!==Te;)je=ie(Fe),G(Fe),Fe=je;G(Te)},me=(Fe,Te,je,Ke,Oe,De,et,it,rt)=>{et=et||Te.type==="svg",Fe==null?fe(Te,je,Ke,Oe,De,et,it,rt):Ee(Fe,Te,Oe,De,et,it,rt)},fe=(Fe,Te,je,Ke,Oe,De,et,it)=>{let rt,Je;const{type:ct,props:dt,shapeFlag:pt,transition:vt,patchFlag:wt,dirs:gt}=Fe;if(Fe.el&&ne!==void 0&&wt===-1)rt=Fe.el=ne(Fe.el);else{if(rt=Fe.el=W(Fe.type,De,dt&&dt.is,dt),pt&8?Z(rt,Fe.children):pt&16&&Se(Fe.children,rt,null,Ke,Oe,De&&ct!=="foreignObject",et,it),gt&&invokeDirectiveHook(Fe,null,Ke,"created"),dt){for(const Rt in dt)Rt!=="value"&&!isReservedProp(Rt)&&U(rt,Rt,null,dt[Rt],De,Fe.children,Ke,Oe,Qe);"value"in dt&&U(rt,"value",null,dt.value),(Je=dt.onVnodeBeforeMount)&&invokeVNodeHook(Je,Ke,Fe)}ge(rt,Fe,Fe.scopeId,et,Ke)}gt&&invokeDirectiveHook(Fe,null,Ke,"beforeMount");const Tt=(!Oe||Oe&&!Oe.pendingBranch)&&vt&&!vt.persisted;Tt&&vt.beforeEnter(rt),D(rt,Te,je),((Je=dt&&dt.onVnodeMounted)||Tt||gt)&&queuePostRenderEffect(()=>{Je&&invokeVNodeHook(Je,Ke,Fe),Tt&&vt.enter(rt),gt&&invokeDirectiveHook(Fe,null,Ke,"mounted")},Oe)},ge=(Fe,Te,je,Ke,Oe)=>{if(je&&te(Fe,je),Ke)for(let De=0;De{for(let Je=rt;Je{const it=Te.el=Fe.el;let{patchFlag:rt,dynamicChildren:Je,dirs:ct}=Te;rt|=Fe.patchFlag&16;const dt=Fe.props||EMPTY_OBJ,pt=Te.props||EMPTY_OBJ;let vt;je&&toggleRecurse(je,!1),(vt=pt.onVnodeBeforeUpdate)&&invokeVNodeHook(vt,je,Te,Fe),ct&&invokeDirectiveHook(Te,Fe,je,"beforeUpdate"),je&&toggleRecurse(je,!0);const wt=Oe&&Te.type!=="foreignObject";if(Je?ve(Fe.dynamicChildren,Je,it,je,Ke,wt,De):et||Le(Fe,Te,it,null,je,Ke,wt,De,!1),rt>0){if(rt&16)xe(it,Te,dt,pt,je,Ke,Oe);else if(rt&2&&dt.class!==pt.class&&U(it,"class",null,pt.class,Oe),rt&4&&U(it,"style",dt.style,pt.style,Oe),rt&8){const gt=Te.dynamicProps;for(let Tt=0;Tt{vt&&invokeVNodeHook(vt,je,Te,Fe),ct&&invokeDirectiveHook(Te,Fe,je,"updated")},Ke)},ve=(Fe,Te,je,Ke,Oe,De,et)=>{for(let it=0;it{if(je!==Ke){for(const it in Ke){if(isReservedProp(it))continue;const rt=Ke[it],Je=je[it];rt!==Je&&it!=="value"&&U(Fe,it,Je,rt,et,Te.children,Oe,De,Qe)}if(je!==EMPTY_OBJ)for(const it in je)!isReservedProp(it)&&!(it in Ke)&&U(Fe,it,je[it],null,et,Te.children,Oe,De,Qe);"value"in Ke&&U(Fe,"value",je.value,Ke.value)}},Me=(Fe,Te,je,Ke,Oe,De,et,it,rt)=>{const Je=Te.el=Fe?Fe.el:q(""),ct=Te.anchor=Fe?Fe.anchor:q("");let{patchFlag:dt,dynamicChildren:pt,slotScopeIds:vt}=Te;vt&&(it=it?it.concat(vt):vt),Fe==null?(D(Je,je,Ke),D(ct,je,Ke),Se(Te.children,je,ct,Oe,De,et,it,rt)):dt>0&&dt&64&&pt&&Fe.dynamicChildren?(ve(Fe.dynamicChildren,pt,je,Oe,De,et,it),(Te.key!=null||Oe&&Te===Oe.subTree)&&traverseStaticChildren(Fe,Te,!0)):Le(Fe,Te,je,ct,Oe,De,et,it,rt)},ye=(Fe,Te,je,Ke,Oe,De,et,it,rt)=>{Te.slotScopeIds=it,Fe==null?Te.shapeFlag&512?Oe.ctx.activate(Te,je,Ke,et,rt):we(Te,je,Ke,Oe,De,et,rt):Re(Fe,Te,rt)},we=(Fe,Te,je,Ke,Oe,De,et)=>{const it=Fe.component=createComponentInstance(Fe,Ke,Oe);if(isKeepAlive(Fe)&&(it.ctx.renderer=lt),setupComponent(it),it.asyncDep){if(Oe&&Oe.registerDep(it,Pe),!Fe.el){const rt=it.subTree=createVNode(Comment);le(null,rt,Te,je)}return}Pe(it,Fe,Te,je,Oe,De,et)},Re=(Fe,Te,je)=>{const Ke=Te.component=Fe.component;if(shouldUpdateComponent(Fe,Te,je))if(Ke.asyncDep&&!Ke.asyncResolved){Ae(Ke,Te,je);return}else Ke.next=Te,invalidateJob(Ke.update),Ke.update();else Te.component=Fe.component,Te.el=Fe.el,Ke.vnode=Te},Pe=(Fe,Te,je,Ke,Oe,De,et)=>{const it=()=>{if(Fe.isMounted){let{next:ct,bu:dt,u:pt,parent:vt,vnode:wt}=Fe,gt=ct,Tt;toggleRecurse(Fe,!1),ct?(ct.el=wt.el,Ae(Fe,ct,et)):ct=wt,dt&&invokeArrayFns(dt),(Tt=ct.props&&ct.props.onVnodeBeforeUpdate)&&invokeVNodeHook(Tt,vt,ct,wt),toggleRecurse(Fe,!0);const Rt=renderComponentRoot(Fe),Ht=Fe.subTree;Fe.subTree=Rt,re(Ht,Rt,K(Ht.el),We(Ht),Fe,Oe,De),ct.el=Rt.el,gt===null&&updateHOCHostEl(Fe,Rt.el),pt&&queuePostRenderEffect(pt,Oe),(Tt=ct.props&&ct.props.onVnodeUpdated)&&queuePostRenderEffect(()=>invokeVNodeHook(Tt,vt,ct,wt),Oe)}else{let ct;const{el:dt,props:pt}=Te,{bm:vt,m:wt,parent:gt}=Fe,Tt=isAsyncWrapper(Te);if(toggleRecurse(Fe,!1),vt&&invokeArrayFns(vt),!Tt&&(ct=pt&&pt.onVnodeBeforeMount)&&invokeVNodeHook(ct,gt,Te),toggleRecurse(Fe,!0),dt&&yt){const Rt=()=>{Fe.subTree=renderComponentRoot(Fe),yt(dt,Fe.subTree,Fe,Oe,null)};Tt?Te.type.__asyncLoader().then(()=>!Fe.isUnmounted&&Rt()):Rt()}else{const Rt=Fe.subTree=renderComponentRoot(Fe);re(null,Rt,je,Ke,Fe,Oe,De),Te.el=Rt.el}if(wt&&queuePostRenderEffect(wt,Oe),!Tt&&(ct=pt&&pt.onVnodeMounted)){const Rt=Te;queuePostRenderEffect(()=>invokeVNodeHook(ct,gt,Rt),Oe)}Te.shapeFlag&256&&Fe.a&&queuePostRenderEffect(Fe.a,Oe),Fe.isMounted=!0,Te=je=Ke=null}},rt=Fe.effect=new ReactiveEffect(it,()=>queueJob(Fe.update),Fe.scope),Je=Fe.update=rt.run.bind(rt);Je.id=Fe.uid,toggleRecurse(Fe,!0),Je()},Ae=(Fe,Te,je)=>{Te.component=Fe;const Ke=Fe.vnode.props;Fe.vnode=Te,Fe.next=null,updateProps(Fe,Te.props,Ke,je),updateSlots(Fe,Te.children,je),pauseTracking(),flushPreFlushCbs(void 0,Fe.update),resetTracking()},Le=(Fe,Te,je,Ke,Oe,De,et,it,rt=!1)=>{const Je=Fe&&Fe.children,ct=Fe?Fe.shapeFlag:0,dt=Te.children,{patchFlag:pt,shapeFlag:vt}=Te;if(pt>0){if(pt&128){Ie(Je,dt,je,Ke,Oe,De,et,it,rt);return}else if(pt&256){Ne(Je,dt,je,Ke,Oe,De,et,it,rt);return}}vt&8?(ct&16&&Qe(Je,Oe,De),dt!==Je&&Z(je,dt)):ct&16?vt&16?Ie(Je,dt,je,Ke,Oe,De,et,it,rt):Qe(Je,Oe,De,!0):(ct&8&&Z(je,""),vt&16&&Se(dt,je,Ke,Oe,De,et,it,rt))},Ne=(Fe,Te,je,Ke,Oe,De,et,it,rt)=>{Fe=Fe||EMPTY_ARR,Te=Te||EMPTY_ARR;const Je=Fe.length,ct=Te.length,dt=Math.min(Je,ct);let pt;for(pt=0;ptct?Qe(Fe,Oe,De,!0,!1,dt):Se(Te,je,Ke,Oe,De,et,it,rt,dt)},Ie=(Fe,Te,je,Ke,Oe,De,et,it,rt)=>{let Je=0;const ct=Te.length;let dt=Fe.length-1,pt=ct-1;for(;Je<=dt&&Je<=pt;){const vt=Fe[Je],wt=Te[Je]=rt?cloneIfMounted(Te[Je]):normalizeVNode(Te[Je]);if(isSameVNodeType(vt,wt))re(vt,wt,je,null,Oe,De,et,it,rt);else break;Je++}for(;Je<=dt&&Je<=pt;){const vt=Fe[dt],wt=Te[pt]=rt?cloneIfMounted(Te[pt]):normalizeVNode(Te[pt]);if(isSameVNodeType(vt,wt))re(vt,wt,je,null,Oe,De,et,it,rt);else break;dt--,pt--}if(Je>dt){if(Je<=pt){const vt=pt+1,wt=vtpt)for(;Je<=dt;)Ve(Fe[Je],Oe,De,!0),Je++;else{const vt=Je,wt=Je,gt=new Map;for(Je=wt;Je<=pt;Je++){const At=Te[Je]=rt?cloneIfMounted(Te[Je]):normalizeVNode(Te[Je]);At.key!=null&>.set(At.key,Je)}let Tt,Rt=0;const Ht=pt-wt+1;let mi=!1,Zt=0;const si=new Array(Ht);for(Je=0;Je=Ht){Ve(At,Oe,De,!0);continue}let oi;if(At.key!=null)oi=gt.get(At.key);else for(Tt=wt;Tt<=pt;Tt++)if(si[Tt-wt]===0&&isSameVNodeType(At,Te[Tt])){oi=Tt;break}oi===void 0?Ve(At,Oe,De,!0):(si[oi-wt]=Je+1,oi>=Zt?Zt=oi:mi=!0,re(At,Te[oi],je,null,Oe,De,et,it,rt),Rt++)}const vi=mi?getSequence(si):EMPTY_ARR;for(Tt=vi.length-1,Je=Ht-1;Je>=0;Je--){const At=wt+Je,oi=Te[At],Mi=At+1{const{el:De,type:et,transition:it,children:rt,shapeFlag:Je}=Fe;if(Je&6){_e(Fe.component.subTree,Te,je,Ke);return}if(Je&128){Fe.suspense.move(Te,je,Ke);return}if(Je&64){et.move(Fe,Te,je,lt);return}if(et===Fragment){D(De,Te,je);for(let dt=0;dtit.enter(De),Oe);else{const{leave:dt,delayLeave:pt,afterLeave:vt}=it,wt=()=>D(De,Te,je),gt=()=>{dt(De,()=>{wt(),vt&&vt()})};pt?pt(De,wt,gt):gt()}else D(De,Te,je)},Ve=(Fe,Te,je,Ke=!1,Oe=!1)=>{const{type:De,props:et,ref:it,children:rt,dynamicChildren:Je,shapeFlag:ct,patchFlag:dt,dirs:pt}=Fe;if(it!=null&&setRef(it,null,je,Fe,!0),ct&256){Te.ctx.deactivate(Fe);return}const vt=ct&1&&pt,wt=!isAsyncWrapper(Fe);let gt;if(wt&&(gt=et&&et.onVnodeBeforeUnmount)&&invokeVNodeHook(gt,Te,Fe),ct&6)He(Fe.component,je,Ke);else{if(ct&128){Fe.suspense.unmount(je,Ke);return}vt&&invokeDirectiveHook(Fe,null,Te,"beforeUnmount"),ct&64?Fe.type.remove(Fe,Te,je,Oe,lt,Ke):Je&&(De!==Fragment||dt>0&&dt&64)?Qe(Je,Te,je,!1,!0):(De===Fragment&&dt&384||!Oe&&ct&16)&&Qe(rt,Te,je),Ke&&qe(Fe)}(wt&&(gt=et&&et.onVnodeUnmounted)||vt)&&queuePostRenderEffect(()=>{gt&&invokeVNodeHook(gt,Te,Fe),vt&&invokeDirectiveHook(Fe,null,Te,"unmounted")},je)},qe=Fe=>{const{type:Te,el:je,anchor:Ke,transition:Oe}=Fe;if(Te===Fragment){Ge(je,Ke);return}if(Te===Static){pe(Fe);return}const De=()=>{G(je),Oe&&!Oe.persisted&&Oe.afterLeave&&Oe.afterLeave()};if(Fe.shapeFlag&1&&Oe&&!Oe.persisted){const{leave:et,delayLeave:it}=Oe,rt=()=>et(je,De);it?it(Fe.el,De,rt):rt()}else De()},Ge=(Fe,Te)=>{let je;for(;Fe!==Te;)je=ie(Fe),G(Fe),Fe=je;G(Te)},He=(Fe,Te,je)=>{const{bum:Ke,scope:Oe,update:De,subTree:et,um:it}=Fe;Ke&&invokeArrayFns(Ke),Oe.stop(),De&&(De.active=!1,Ve(et,Fe,Te,je)),it&&queuePostRenderEffect(it,Te),queuePostRenderEffect(()=>{Fe.isUnmounted=!0},Te),Te&&Te.pendingBranch&&!Te.isUnmounted&&Fe.asyncDep&&!Fe.asyncResolved&&Fe.suspenseId===Te.pendingId&&(Te.deps--,Te.deps===0&&Te.resolve())},Qe=(Fe,Te,je,Ke=!1,Oe=!1,De=0)=>{for(let et=De;etFe.shapeFlag&6?We(Fe.component.subTree):Fe.shapeFlag&128?Fe.suspense.next():ie(Fe.anchor||Fe.el),Ze=(Fe,Te,je)=>{Fe==null?Te._vnode&&Ve(Te._vnode,null,null,!0):re(Te._vnode||null,Fe,Te,null,null,null,je),flushPostFlushCbs(),Te._vnode=Fe},lt={p:re,um:Ve,m:_e,r:qe,mt:we,mc:Se,pc:Le,pbc:ve,n:We,o:F};let ht,yt;return R&&([ht,yt]=R(lt)),{render:Ze,hydrate:ht,createApp:createAppAPI(Ze,ht)}}function toggleRecurse({effect:F,update:R},B){F.allowRecurse=R.allowRecurse=B}function traverseStaticChildren(F,R,B=!1){const D=F.children,G=R.children;if(isArray$5(D)&&isArray$5(G))for(let U=0;U>1,F[B[q]]0&&(R[D]=B[U-1]),B[U]=D)}}for(U=B.length,W=B[U-1];U-- >0;)B[U]=W,W=R[W];return B}const isTeleport=F=>F.__isTeleport,isTeleportDisabled=F=>F&&(F.disabled||F.disabled===""),isTargetSVG=F=>typeof SVGElement!="undefined"&&F instanceof SVGElement,resolveTarget=(F,R)=>{const B=F&&F.to;return isString(B)?R?R(B):null:B},TeleportImpl={__isTeleport:!0,process(F,R,B,D,G,U,W,q,Y,Q){const{mc:Z,pc:K,pbc:ie,o:{insert:te,querySelector:ne,createText:se,createComment:re}}=Q,ae=isTeleportDisabled(R.props);let{shapeFlag:le,children:ce,dynamicChildren:he}=R;if(F==null){const pe=R.el=se(""),me=R.anchor=se("");te(pe,B,D),te(me,B,D);const fe=R.target=resolveTarget(R.props,ne),ge=R.targetAnchor=se("");fe&&(te(ge,fe),W=W||isTargetSVG(fe));const Se=(Ee,ve)=>{le&16&&Z(ce,Ee,ve,G,U,W,q,Y)};ae?Se(B,me):fe&&Se(fe,ge)}else{R.el=F.el;const pe=R.anchor=F.anchor,me=R.target=F.target,fe=R.targetAnchor=F.targetAnchor,ge=isTeleportDisabled(F.props),Se=ge?B:me,Ee=ge?pe:fe;if(W=W||isTargetSVG(me),he?(ie(F.dynamicChildren,he,Se,G,U,W,q),traverseStaticChildren(F,R,!0)):Y||K(F,R,Se,Ee,G,U,W,q,!1),ae)ge||moveTeleport(R,B,pe,Q,1);else if((R.props&&R.props.to)!==(F.props&&F.props.to)){const ve=R.target=resolveTarget(R.props,ne);ve&&moveTeleport(R,ve,null,Q,0)}else ge&&moveTeleport(R,me,fe,Q,1)}},remove(F,R,B,D,{um:G,o:{remove:U}},W){const{shapeFlag:q,children:Y,anchor:Q,targetAnchor:Z,target:K,props:ie}=F;if(K&&U(Z),(W||!isTeleportDisabled(ie))&&(U(Q),q&16))for(let te=0;te0?currentBlock||EMPTY_ARR:null,closeBlock(),isBlockTreeEnabled>0&¤tBlock&¤tBlock.push(F),F}function createElementBlock(F,R,B,D,G,U){return setupBlock(createBaseVNode(F,R,B,D,G,U,!0))}function isVNode(F){return F?F.__v_isVNode===!0:!1}function isSameVNodeType(F,R){return F.type===R.type&&F.key===R.key}const InternalObjectKey="__vInternal",normalizeKey=({key:F})=>F!=null?F:null,normalizeRef=({ref:F,ref_key:R,ref_for:B})=>F!=null?isString(F)||isRef(F)||isFunction$4(F)?{i:currentRenderingInstance,r:F,k:R,f:!!B}:F:null;function createBaseVNode(F,R=null,B=null,D=0,G=null,U=F===Fragment?0:1,W=!1,q=!1){const Y={__v_isVNode:!0,__v_skip:!0,type:F,props:R,key:R&&normalizeKey(R),ref:R&&normalizeRef(R),scopeId:currentScopeId,slotScopeIds:null,children:B,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:U,patchFlag:D,dynamicProps:G,dynamicChildren:null,appContext:null};return q?(normalizeChildren(Y,B),U&128&&F.normalize(Y)):B&&(Y.shapeFlag|=isString(B)?8:16),isBlockTreeEnabled>0&&!W&¤tBlock&&(Y.patchFlag>0||U&6)&&Y.patchFlag!==32&¤tBlock.push(Y),Y}const createVNode=_createVNode;function _createVNode(F,R=null,B=null,D=0,G=null,U=!1){if((!F||F===NULL_DYNAMIC_COMPONENT)&&(F=Comment),isVNode(F)){const q=cloneVNode(F,R,!0);return B&&normalizeChildren(q,B),q}if(isClassComponent(F)&&(F=F.__vccOpts),R){R=guardReactiveProps(R);let{class:q,style:Y}=R;q&&!isString(q)&&(R.class=normalizeClass(q)),isObject$4(Y)&&(isProxy(Y)&&!isArray$5(Y)&&(Y=extend$3({},Y)),R.style=normalizeStyle(Y))}const W=isString(F)?1:isSuspense(F)?128:isTeleport(F)?64:isObject$4(F)?4:isFunction$4(F)?2:0;return createBaseVNode(F,R,B,D,G,W,U,!0)}function guardReactiveProps(F){return F?isProxy(F)||InternalObjectKey in F?extend$3({},F):F:null}function cloneVNode(F,R,B=!1){const{props:D,ref:G,patchFlag:U,children:W}=F,q=R?mergeProps(D||{},R):D;return{__v_isVNode:!0,__v_skip:!0,type:F.type,props:q,key:q&&normalizeKey(q),ref:R&&R.ref?B&&G?isArray$5(G)?G.concat(normalizeRef(R)):[G,normalizeRef(R)]:normalizeRef(R):G,scopeId:F.scopeId,slotScopeIds:F.slotScopeIds,children:W,target:F.target,targetAnchor:F.targetAnchor,staticCount:F.staticCount,shapeFlag:F.shapeFlag,patchFlag:R&&F.type!==Fragment?U===-1?16:U|16:U,dynamicProps:F.dynamicProps,dynamicChildren:F.dynamicChildren,appContext:F.appContext,dirs:F.dirs,transition:F.transition,component:F.component,suspense:F.suspense,ssContent:F.ssContent&&cloneVNode(F.ssContent),ssFallback:F.ssFallback&&cloneVNode(F.ssFallback),el:F.el,anchor:F.anchor}}function createTextVNode(F=" ",R=0){return createVNode(Text,null,F,R)}function normalizeVNode(F){return F==null||typeof F=="boolean"?createVNode(Comment):isArray$5(F)?createVNode(Fragment,null,F.slice()):typeof F=="object"?cloneIfMounted(F):createVNode(Text,null,String(F))}function cloneIfMounted(F){return F.el===null||F.memo?F:cloneVNode(F)}function normalizeChildren(F,R){let B=0;const{shapeFlag:D}=F;if(R==null)R=null;else if(isArray$5(R))B=16;else if(typeof R=="object")if(D&65){const G=R.default;G&&(G._c&&(G._d=!1),normalizeChildren(F,G()),G._c&&(G._d=!0));return}else{B=32;const G=R._;!G&&!(InternalObjectKey in R)?R._ctx=currentRenderingInstance:G===3&¤tRenderingInstance&&(currentRenderingInstance.slots._===1?R._=1:(R._=2,F.patchFlag|=1024))}else isFunction$4(R)?(R={default:R,_ctx:currentRenderingInstance},B=32):(R=String(R),D&64?(B=16,R=[createTextVNode(R)]):B=8);F.children=R,F.shapeFlag|=B}function mergeProps(...F){const R={};for(let B=0;BF?isStatefulComponent(F)?getExposeProxy(F)||F.proxy:getPublicInstance(F.parent):null,publicPropertiesMap=extend$3(Object.create(null),{$:F=>F,$el:F=>F.vnode.el,$data:F=>F.data,$props:F=>F.props,$attrs:F=>F.attrs,$slots:F=>F.slots,$refs:F=>F.refs,$parent:F=>getPublicInstance(F.parent),$root:F=>getPublicInstance(F.root),$emit:F=>F.emit,$options:F=>resolveMergedOptions(F),$forceUpdate:F=>()=>queueJob(F.update),$nextTick:F=>nextTick.bind(F.proxy),$watch:F=>instanceWatch.bind(F)}),PublicInstanceProxyHandlers={get({_:F},R){const{ctx:B,setupState:D,data:G,props:U,accessCache:W,type:q,appContext:Y}=F;let Q;if(R[0]!=="$"){const te=W[R];if(te!==void 0)switch(te){case 1:return D[R];case 2:return G[R];case 4:return B[R];case 3:return U[R]}else{if(D!==EMPTY_OBJ&&hasOwn(D,R))return W[R]=1,D[R];if(G!==EMPTY_OBJ&&hasOwn(G,R))return W[R]=2,G[R];if((Q=F.propsOptions[0])&&hasOwn(Q,R))return W[R]=3,U[R];if(B!==EMPTY_OBJ&&hasOwn(B,R))return W[R]=4,B[R];shouldCacheAccess&&(W[R]=0)}}const Z=publicPropertiesMap[R];let K,ie;if(Z)return R==="$attrs"&&track(F,"get",R),Z(F);if((K=q.__cssModules)&&(K=K[R]))return K;if(B!==EMPTY_OBJ&&hasOwn(B,R))return W[R]=4,B[R];if(ie=Y.config.globalProperties,hasOwn(ie,R))return ie[R]},set({_:F},R,B){const{data:D,setupState:G,ctx:U}=F;return G!==EMPTY_OBJ&&hasOwn(G,R)?(G[R]=B,!0):D!==EMPTY_OBJ&&hasOwn(D,R)?(D[R]=B,!0):hasOwn(F.props,R)||R[0]==="$"&&R.slice(1)in F?!1:(U[R]=B,!0)},has({_:{data:F,setupState:R,accessCache:B,ctx:D,appContext:G,propsOptions:U}},W){let q;return!!B[W]||F!==EMPTY_OBJ&&hasOwn(F,W)||R!==EMPTY_OBJ&&hasOwn(R,W)||(q=U[0])&&hasOwn(q,W)||hasOwn(D,W)||hasOwn(publicPropertiesMap,W)||hasOwn(G.config.globalProperties,W)},defineProperty(F,R,B){return B.get!=null?F._.accessCache[R]=0:hasOwn(B,"value")&&this.set(F,R,B.value,null),Reflect.defineProperty(F,R,B)}},emptyAppContext=createAppContext();let uid$1=0;function createComponentInstance(F,R,B){const D=F.type,G=(R?R.appContext:F.appContext)||emptyAppContext,U={uid:uid$1++,vnode:F,type:D,parent:R,appContext:G,root:null,next:null,subTree:null,effect:null,update:null,scope:new EffectScope(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:R?R.provides:Object.create(G.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:normalizePropsOptions(D,G),emitsOptions:normalizeEmitsOptions(D,G),emit:null,emitted:null,propsDefaults:EMPTY_OBJ,inheritAttrs:D.inheritAttrs,ctx:EMPTY_OBJ,data:EMPTY_OBJ,props:EMPTY_OBJ,attrs:EMPTY_OBJ,slots:EMPTY_OBJ,refs:EMPTY_OBJ,setupState:EMPTY_OBJ,setupContext:null,suspense:B,suspenseId:B?B.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return U.ctx={_:U},U.root=R?R.root:U,U.emit=emit$1.bind(null,U),F.ce&&F.ce(U),U}let currentInstance=null;const getCurrentInstance=()=>currentInstance||currentRenderingInstance,setCurrentInstance=F=>{currentInstance=F,F.scope.on()},unsetCurrentInstance=()=>{currentInstance&¤tInstance.scope.off(),currentInstance=null};function isStatefulComponent(F){return F.vnode.shapeFlag&4}let isInSSRComponentSetup=!1;function setupComponent(F,R=!1){isInSSRComponentSetup=R;const{props:B,children:D}=F.vnode,G=isStatefulComponent(F);initProps(F,B,G,R),initSlots(F,D);const U=G?setupStatefulComponent(F,R):void 0;return isInSSRComponentSetup=!1,U}function setupStatefulComponent(F,R){const B=F.type;F.accessCache=Object.create(null),F.proxy=markRaw(new Proxy(F.ctx,PublicInstanceProxyHandlers));const{setup:D}=B;if(D){const G=F.setupContext=D.length>1?createSetupContext(F):null;setCurrentInstance(F),pauseTracking();const U=callWithErrorHandling(D,F,0,[F.props,G]);if(resetTracking(),unsetCurrentInstance(),isPromise$1(U)){if(U.then(unsetCurrentInstance,unsetCurrentInstance),R)return U.then(W=>{handleSetupResult(F,W,R)}).catch(W=>{handleError(W,F,0)});F.asyncDep=U}else handleSetupResult(F,U,R)}else finishComponentSetup(F,R)}function handleSetupResult(F,R,B){isFunction$4(R)?F.type.__ssrInlineRender?F.ssrRender=R:F.render=R:isObject$4(R)&&(F.setupState=proxyRefs(R)),finishComponentSetup(F,B)}let compile$1;function finishComponentSetup(F,R,B){const D=F.type;if(!F.render){if(!R&&compile$1&&!D.render){const G=D.template;if(G){const{isCustomElement:U,compilerOptions:W}=F.appContext.config,{delimiters:q,compilerOptions:Y}=D,Q=extend$3(extend$3({isCustomElement:U,delimiters:q},W),Y);D.render=compile$1(G,Q)}}F.render=D.render||NOOP}setCurrentInstance(F),pauseTracking(),applyOptions(F),resetTracking(),unsetCurrentInstance()}function createAttrsProxy(F){return new Proxy(F.attrs,{get(R,B){return track(F,"get","$attrs"),R[B]}})}function createSetupContext(F){const R=D=>{F.exposed=D||{}};let B;return{get attrs(){return B||(B=createAttrsProxy(F))},slots:F.slots,emit:F.emit,expose:R}}function getExposeProxy(F){if(F.exposed)return F.exposeProxy||(F.exposeProxy=new Proxy(proxyRefs(markRaw(F.exposed)),{get(R,B){if(B in R)return R[B];if(B in publicPropertiesMap)return publicPropertiesMap[B](F)}}))}function getComponentName(F){return isFunction$4(F)&&F.displayName||F.name}function isClassComponent(F){return isFunction$4(F)&&"__vccOpts"in F}const computed=(F,R)=>computed$1(F,R,isInSSRComponentSetup);function h$3(F,R,B){const D=arguments.length;return D===2?isObject$4(R)&&!isArray$5(R)?isVNode(R)?createVNode(F,null,[R]):createVNode(F,R):createVNode(F,null,R):(D>3?B=Array.prototype.slice.call(arguments,2):D===3&&isVNode(B)&&(B=[B]),createVNode(F,R,B))}const version="3.2.33",svgNS="http://www.w3.org/2000/svg",doc$2=typeof document!="undefined"?document:null,templateContainer=doc$2&&doc$2.createElement("template"),nodeOps={insert:(F,R,B)=>{R.insertBefore(F,B||null)},remove:F=>{const R=F.parentNode;R&&R.removeChild(F)},createElement:(F,R,B,D)=>{const G=R?doc$2.createElementNS(svgNS,F):doc$2.createElement(F,B?{is:B}:void 0);return F==="select"&&D&&D.multiple!=null&&G.setAttribute("multiple",D.multiple),G},createText:F=>doc$2.createTextNode(F),createComment:F=>doc$2.createComment(F),setText:(F,R)=>{F.nodeValue=R},setElementText:(F,R)=>{F.textContent=R},parentNode:F=>F.parentNode,nextSibling:F=>F.nextSibling,querySelector:F=>doc$2.querySelector(F),setScopeId(F,R){F.setAttribute(R,"")},cloneNode(F){const R=F.cloneNode(!0);return"_value"in F&&(R._value=F._value),R},insertStaticContent(F,R,B,D,G,U){const W=B?B.previousSibling:R.lastChild;if(G&&(G===U||G.nextSibling))for(;R.insertBefore(G.cloneNode(!0),B),!(G===U||!(G=G.nextSibling)););else{templateContainer.innerHTML=D?`${F}`:F;const q=templateContainer.content;if(D){const Y=q.firstChild;for(;Y.firstChild;)q.appendChild(Y.firstChild);q.removeChild(Y)}R.insertBefore(q,B)}return[W?W.nextSibling:R.firstChild,B?B.previousSibling:R.lastChild]}};function patchClass(F,R,B){const D=F._vtc;D&&(R=(R?[R,...D]:[...D]).join(" ")),R==null?F.removeAttribute("class"):B?F.setAttribute("class",R):F.className=R}function patchStyle(F,R,B){const D=F.style,G=isString(B);if(B&&!G){for(const U in B)setStyle(D,U,B[U]);if(R&&!isString(R))for(const U in R)B[U]==null&&setStyle(D,U,"")}else{const U=D.display;G?R!==B&&(D.cssText=B):R&&F.removeAttribute("style"),"_vod"in F&&(D.display=U)}}const importantRE=/\s*!important$/;function setStyle(F,R,B){if(isArray$5(B))B.forEach(D=>setStyle(F,R,D));else if(B==null&&(B=""),R.startsWith("--"))F.setProperty(R,B);else{const D=autoPrefix(F,R);importantRE.test(B)?F.setProperty(hyphenate(D),B.replace(importantRE,""),"important"):F[D]=B}}const prefixes=["Webkit","Moz","ms"],prefixCache={};function autoPrefix(F,R){const B=prefixCache[R];if(B)return B;let D=camelize$1(R);if(D!=="filter"&&D in F)return prefixCache[R]=D;D=capitalize(D);for(let G=0;G{let F=Date.now,R=!1;if(typeof window!="undefined"){Date.now()>document.createEvent("Event").timeStamp&&(F=()=>performance.now());const B=navigator.userAgent.match(/firefox\/(\d+)/i);R=!!(B&&Number(B[1])<=53)}return[F,R]})();let cachedNow=0;const p$2=Promise.resolve(),reset$1=()=>{cachedNow=0},getNow=()=>cachedNow||(p$2.then(reset$1),cachedNow=_getNow());function addEventListener(F,R,B,D){F.addEventListener(R,B,D)}function removeEventListener(F,R,B,D){F.removeEventListener(R,B,D)}function patchEvent(F,R,B,D,G=null){const U=F._vei||(F._vei={}),W=U[R];if(D&&W)W.value=D;else{const[q,Y]=parseName(R);if(D){const Q=U[R]=createInvoker(D,G);addEventListener(F,q,Q,Y)}else W&&(removeEventListener(F,q,W,Y),U[R]=void 0)}}const optionsModifierRE=/(?:Once|Passive|Capture)$/;function parseName(F){let R;if(optionsModifierRE.test(F)){R={};let B;for(;B=F.match(optionsModifierRE);)F=F.slice(0,F.length-B[0].length),R[B[0].toLowerCase()]=!0}return[hyphenate(F.slice(2)),R]}function createInvoker(F,R){const B=D=>{const G=D.timeStamp||_getNow();(skipTimestampCheck||G>=B.attached-1)&&callWithAsyncErrorHandling(patchStopImmediatePropagation(D,B.value),R,5,[D])};return B.value=F,B.attached=getNow(),B}function patchStopImmediatePropagation(F,R){if(isArray$5(R)){const B=F.stopImmediatePropagation;return F.stopImmediatePropagation=()=>{B.call(F),F._stopped=!0},R.map(D=>G=>!G._stopped&&D&&D(G))}else return R}const nativeOnRE=/^on[a-z]/,patchProp=(F,R,B,D,G=!1,U,W,q,Y)=>{R==="class"?patchClass(F,D,G):R==="style"?patchStyle(F,B,D):isOn(R)?isModelListener(R)||patchEvent(F,R,B,D,W):(R[0]==="."?(R=R.slice(1),!0):R[0]==="^"?(R=R.slice(1),!1):shouldSetAsProp(F,R,D,G))?patchDOMProp(F,R,D,U,W,q,Y):(R==="true-value"?F._trueValue=D:R==="false-value"&&(F._falseValue=D),patchAttr(F,R,D,G))};function shouldSetAsProp(F,R,B,D){return D?!!(R==="innerHTML"||R==="textContent"||R in F&&nativeOnRE.test(R)&&isFunction$4(B)):R==="spellcheck"||R==="draggable"||R==="translate"||R==="form"||R==="list"&&F.tagName==="INPUT"||R==="type"&&F.tagName==="TEXTAREA"||nativeOnRE.test(R)&&isString(B)?!1:R in F}const TRANSITION="transition",ANIMATION="animation",Transition=(F,{slots:R})=>h$3(BaseTransition,resolveTransitionProps(F),R);Transition.displayName="Transition";const DOMTransitionPropsValidators={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},TransitionPropsValidators=Transition.props=extend$3({},BaseTransition.props,DOMTransitionPropsValidators),callHook=(F,R=[])=>{isArray$5(F)?F.forEach(B=>B(...R)):F&&F(...R)},hasExplicitCallback=F=>F?isArray$5(F)?F.some(R=>R.length>1):F.length>1:!1;function resolveTransitionProps(F){const R={};for(const xe in F)xe in DOMTransitionPropsValidators||(R[xe]=F[xe]);if(F.css===!1)return R;const{name:B="v",type:D,duration:G,enterFromClass:U=`${B}-enter-from`,enterActiveClass:W=`${B}-enter-active`,enterToClass:q=`${B}-enter-to`,appearFromClass:Y=U,appearActiveClass:Q=W,appearToClass:Z=q,leaveFromClass:K=`${B}-leave-from`,leaveActiveClass:ie=`${B}-leave-active`,leaveToClass:te=`${B}-leave-to`}=F,ne=normalizeDuration(G),se=ne&&ne[0],re=ne&&ne[1],{onBeforeEnter:ae,onEnter:le,onEnterCancelled:ce,onLeave:he,onLeaveCancelled:pe,onBeforeAppear:me=ae,onAppear:fe=le,onAppearCancelled:ge=ce}=R,Se=(xe,Me,ye)=>{removeTransitionClass(xe,Me?Z:q),removeTransitionClass(xe,Me?Q:W),ye&&ye()},Ee=(xe,Me)=>{removeTransitionClass(xe,te),removeTransitionClass(xe,ie),Me&&Me()},ve=xe=>(Me,ye)=>{const we=xe?fe:le,Re=()=>Se(Me,xe,ye);callHook(we,[Me,Re]),nextFrame(()=>{removeTransitionClass(Me,xe?Y:U),addTransitionClass(Me,xe?Z:q),hasExplicitCallback(we)||whenTransitionEnds(Me,D,se,Re)})};return extend$3(R,{onBeforeEnter(xe){callHook(ae,[xe]),addTransitionClass(xe,U),addTransitionClass(xe,W)},onBeforeAppear(xe){callHook(me,[xe]),addTransitionClass(xe,Y),addTransitionClass(xe,Q)},onEnter:ve(!1),onAppear:ve(!0),onLeave(xe,Me){const ye=()=>Ee(xe,Me);addTransitionClass(xe,K),forceReflow(),addTransitionClass(xe,ie),nextFrame(()=>{removeTransitionClass(xe,K),addTransitionClass(xe,te),hasExplicitCallback(he)||whenTransitionEnds(xe,D,re,ye)}),callHook(he,[xe,ye])},onEnterCancelled(xe){Se(xe,!1),callHook(ce,[xe])},onAppearCancelled(xe){Se(xe,!0),callHook(ge,[xe])},onLeaveCancelled(xe){Ee(xe),callHook(pe,[xe])}})}function normalizeDuration(F){if(F==null)return null;if(isObject$4(F))return[NumberOf(F.enter),NumberOf(F.leave)];{const R=NumberOf(F);return[R,R]}}function NumberOf(F){return toNumber(F)}function addTransitionClass(F,R){R.split(/\s+/).forEach(B=>B&&F.classList.add(B)),(F._vtc||(F._vtc=new Set)).add(R)}function removeTransitionClass(F,R){R.split(/\s+/).forEach(D=>D&&F.classList.remove(D));const{_vtc:B}=F;B&&(B.delete(R),B.size||(F._vtc=void 0))}function nextFrame(F){requestAnimationFrame(()=>{requestAnimationFrame(F)})}let endId=0;function whenTransitionEnds(F,R,B,D){const G=F._endId=++endId,U=()=>{G===F._endId&&D()};if(B)return setTimeout(U,B);const{type:W,timeout:q,propCount:Y}=getTransitionInfo(F,R);if(!W)return D();const Q=W+"end";let Z=0;const K=()=>{F.removeEventListener(Q,ie),U()},ie=te=>{te.target===F&&++Z>=Y&&K()};setTimeout(()=>{Z(B[ne]||"").split(", "),G=D(TRANSITION+"Delay"),U=D(TRANSITION+"Duration"),W=getTimeout(G,U),q=D(ANIMATION+"Delay"),Y=D(ANIMATION+"Duration"),Q=getTimeout(q,Y);let Z=null,K=0,ie=0;R===TRANSITION?W>0&&(Z=TRANSITION,K=W,ie=U.length):R===ANIMATION?Q>0&&(Z=ANIMATION,K=Q,ie=Y.length):(K=Math.max(W,Q),Z=K>0?W>Q?TRANSITION:ANIMATION:null,ie=Z?Z===TRANSITION?U.length:Y.length:0);const te=Z===TRANSITION&&/\b(transform|all)(,|$)/.test(B[TRANSITION+"Property"]);return{type:Z,timeout:K,propCount:ie,hasTransform:te}}function getTimeout(F,R){for(;F.lengthtoMs(B)+toMs(F[D])))}function toMs(F){return Number(F.slice(0,-1).replace(",","."))*1e3}function forceReflow(){return document.body.offsetHeight}const positionMap=new WeakMap,newPositionMap=new WeakMap,TransitionGroupImpl={name:"TransitionGroup",props:extend$3({},TransitionPropsValidators,{tag:String,moveClass:String}),setup(F,{slots:R}){const B=getCurrentInstance(),D=useTransitionState();let G,U;return onUpdated(()=>{if(!G.length)return;const W=F.moveClass||`${F.name||"v"}-move`;if(!hasCSSTransform(G[0].el,B.vnode.el,W))return;G.forEach(callPendingCbs),G.forEach(recordPosition);const q=G.filter(applyTranslation);forceReflow(),q.forEach(Y=>{const Q=Y.el,Z=Q.style;addTransitionClass(Q,W),Z.transform=Z.webkitTransform=Z.transitionDuration="";const K=Q._moveCb=ie=>{ie&&ie.target!==Q||(!ie||/transform$/.test(ie.propertyName))&&(Q.removeEventListener("transitionend",K),Q._moveCb=null,removeTransitionClass(Q,W))};Q.addEventListener("transitionend",K)})}),()=>{const W=toRaw(F),q=resolveTransitionProps(W);let Y=W.tag||Fragment;G=U,U=R.default?getTransitionRawChildren(R.default()):[];for(let Q=0;Q{W.split(/\s+/).forEach(q=>q&&D.classList.remove(q))}),B.split(/\s+/).forEach(W=>W&&D.classList.add(W)),D.style.display="none";const G=R.nodeType===1?R:R.parentNode;G.appendChild(D);const{hasTransform:U}=getTransitionInfo(D);return G.removeChild(D),U}const vShow={beforeMount(F,{value:R},{transition:B}){F._vod=F.style.display==="none"?"":F.style.display,B&&R?B.beforeEnter(F):setDisplay(F,R)},mounted(F,{value:R},{transition:B}){B&&R&&B.enter(F)},updated(F,{value:R,oldValue:B},{transition:D}){!R!=!B&&(D?R?(D.beforeEnter(F),setDisplay(F,!0),D.enter(F)):D.leave(F,()=>{setDisplay(F,!1)}):setDisplay(F,R))},beforeUnmount(F,{value:R}){setDisplay(F,R)}};function setDisplay(F,R){F.style.display=R?F._vod:"none"}const rendererOptions=extend$3({patchProp},nodeOps);let renderer;function ensureRenderer(){return renderer||(renderer=createRenderer(rendererOptions))}const createApp=(...F)=>{const R=ensureRenderer().createApp(...F),{mount:B}=R;return R.mount=D=>{const G=normalizeContainer(D);if(!G)return;const U=R._component;!isFunction$4(U)&&!U.render&&!U.template&&(U.template=G.innerHTML),G.innerHTML="";const W=B(G,!1,G instanceof SVGElement);return G instanceof Element&&(G.removeAttribute("v-cloak"),G.setAttribute("data-v-app","")),W},R};function normalizeContainer(F){return isString(F)?document.querySelector(F):F}var commonjsGlobal$2=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function getAugmentedNamespace(F){if(F.__esModule)return F;var R=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(F).forEach(function(B){var D=Object.getOwnPropertyDescriptor(F,B);Object.defineProperty(R,B,D.get?D:{enumerable:!0,get:function(){return F[B]}})}),R}function commonjsRequire$1(F){throw new Error('Could not dynamically require "'+F+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var pMinDelay$2={exports:{}},yoctodelay=F=>new Promise(R=>setTimeout(R,F));const delay=yoctodelay,pMinDelay=async(F,R,B)=>{B={delayRejection:!0,...B};let D;B.delayRejection&&(F=F.catch(U=>{D=U}));const[G]=await Promise.all([F,delay(R)]);return D?Promise.reject(D):G};pMinDelay$2.exports=pMinDelay;pMinDelay$2.exports.default=pMinDelay;var pMinDelay$1=pMinDelay$2.exports;const el=document.getElementById("loading"),close$1=async()=>{var F;await pMinDelay$1(Promise.resolve(),300),el==null||el.classList.remove("show"),(F=document.getElementById("update"))==null||F.classList.remove("show")},open$1=()=>{el==null||el.classList.add("show")};var queryString={},strictUriEncode=F=>encodeURIComponent(F).replace(/[!'()*]/g,R=>`%${R.charCodeAt(0).toString(16).toUpperCase()}`),token="%[a-f0-9]{2}",singleMatcher=new RegExp(token,"gi"),multiMatcher=new RegExp("("+token+")+","gi");function decodeComponents(F,R){try{return decodeURIComponent(F.join(""))}catch{}if(F.length===1)return F;R=R||1;var B=F.slice(0,R),D=F.slice(R);return Array.prototype.concat.call([],decodeComponents(B),decodeComponents(D))}function decode$4(F){try{return decodeURIComponent(F)}catch{for(var R=F.match(singleMatcher),B=1;B{if(!(typeof F=="string"&&typeof R=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(R==="")return[F];const B=F.indexOf(R);return B===-1?[F]:[F.slice(0,B),F.slice(B+R.length)]},filterObj=function(F,R){for(var B={},D=Object.keys(F),G=Array.isArray(R),U=0;Uae==null;function W(ae){switch(ae.arrayFormat){case"index":return le=>(ce,he)=>{const pe=ce.length;return he===void 0||ae.skipNull&&he===null||ae.skipEmptyString&&he===""?ce:he===null?[...ce,[Q(le,ae),"[",pe,"]"].join("")]:[...ce,[Q(le,ae),"[",Q(pe,ae),"]=",Q(he,ae)].join("")]};case"bracket":return le=>(ce,he)=>he===void 0||ae.skipNull&&he===null||ae.skipEmptyString&&he===""?ce:he===null?[...ce,[Q(le,ae),"[]"].join("")]:[...ce,[Q(le,ae),"[]=",Q(he,ae)].join("")];case"comma":case"separator":return le=>(ce,he)=>he==null||he.length===0?ce:ce.length===0?[[Q(le,ae),"=",Q(he,ae)].join("")]:[[ce,Q(he,ae)].join(ae.arrayFormatSeparator)];default:return le=>(ce,he)=>he===void 0||ae.skipNull&&he===null||ae.skipEmptyString&&he===""?ce:he===null?[...ce,Q(le,ae)]:[...ce,[Q(le,ae),"=",Q(he,ae)].join("")]}}function q(ae){let le;switch(ae.arrayFormat){case"index":return(ce,he,pe)=>{if(le=/\[(\d*)\]$/.exec(ce),ce=ce.replace(/\[\d*\]$/,""),!le){pe[ce]=he;return}pe[ce]===void 0&&(pe[ce]={}),pe[ce][le[1]]=he};case"bracket":return(ce,he,pe)=>{if(le=/(\[\])$/.exec(ce),ce=ce.replace(/\[\]$/,""),!le){pe[ce]=he;return}if(pe[ce]===void 0){pe[ce]=[he];return}pe[ce]=[].concat(pe[ce],he)};case"comma":case"separator":return(ce,he,pe)=>{const me=typeof he=="string"&&he.includes(ae.arrayFormatSeparator),fe=typeof he=="string"&&!me&&Z(he,ae).includes(ae.arrayFormatSeparator);he=fe?Z(he,ae):he;const ge=me||fe?he.split(ae.arrayFormatSeparator).map(Se=>Z(Se,ae)):he===null?he:Z(he,ae);pe[ce]=ge};default:return(ce,he,pe)=>{if(pe[ce]===void 0){pe[ce]=he;return}pe[ce]=[].concat(pe[ce],he)}}}function Y(ae){if(typeof ae!="string"||ae.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function Q(ae,le){return le.encode?le.strict?R(ae):encodeURIComponent(ae):ae}function Z(ae,le){return le.decode?B(ae):ae}function K(ae){return Array.isArray(ae)?ae.sort():typeof ae=="object"?K(Object.keys(ae)).sort((le,ce)=>Number(le)-Number(ce)).map(le=>ae[le]):ae}function ie(ae){const le=ae.indexOf("#");return le!==-1&&(ae=ae.slice(0,le)),ae}function te(ae){let le="";const ce=ae.indexOf("#");return ce!==-1&&(le=ae.slice(ce)),le}function ne(ae){ae=ie(ae);const le=ae.indexOf("?");return le===-1?"":ae.slice(le+1)}function se(ae,le){return le.parseNumbers&&!Number.isNaN(Number(ae))&&typeof ae=="string"&&ae.trim()!==""?ae=Number(ae):le.parseBooleans&&ae!==null&&(ae.toLowerCase()==="true"||ae.toLowerCase()==="false")&&(ae=ae.toLowerCase()==="true"),ae}function re(ae,le){le=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},le),Y(le.arrayFormatSeparator);const ce=q(le),he=Object.create(null);if(typeof ae!="string"||(ae=ae.trim().replace(/^[?#&]/,""),!ae))return he;for(const pe of ae.split("&")){if(pe==="")continue;let[me,fe]=D(le.decode?pe.replace(/\+/g," "):pe,"=");fe=fe===void 0?null:["comma","separator"].includes(le.arrayFormat)?fe:Z(fe,le),ce(Z(me,le),fe,he)}for(const pe of Object.keys(he)){const me=he[pe];if(typeof me=="object"&&me!==null)for(const fe of Object.keys(me))me[fe]=se(me[fe],le);else he[pe]=se(me,le)}return le.sort===!1?he:(le.sort===!0?Object.keys(he).sort():Object.keys(he).sort(le.sort)).reduce((pe,me)=>{const fe=he[me];return Boolean(fe)&&typeof fe=="object"&&!Array.isArray(fe)?pe[me]=K(fe):pe[me]=fe,pe},Object.create(null))}F.extract=ne,F.parse=re,F.stringify=(ae,le)=>{if(!ae)return"";le=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},le),Y(le.arrayFormatSeparator);const ce=fe=>le.skipNull&&U(ae[fe])||le.skipEmptyString&&ae[fe]==="",he=W(le),pe={};for(const fe of Object.keys(ae))ce(fe)||(pe[fe]=ae[fe]);const me=Object.keys(pe);return le.sort!==!1&&me.sort(le.sort),me.map(fe=>{const ge=ae[fe];return ge===void 0?"":ge===null?Q(fe,le):Array.isArray(ge)?ge.reduce(he(fe),[]).join("&"):Q(fe,le)+"="+Q(ge,le)}).filter(fe=>fe.length>0).join("&")},F.parseUrl=(ae,le)=>{le=Object.assign({decode:!0},le);const[ce,he]=D(ae,"#");return Object.assign({url:ce.split("?")[0]||"",query:re(ne(ae),le)},le&&le.parseFragmentIdentifier&&he?{fragmentIdentifier:Z(he,le)}:{})},F.stringifyUrl=(ae,le)=>{le=Object.assign({encode:!0,strict:!0},le);const ce=ie(ae.url).split("?")[0]||"",he=F.extract(ae.url),pe=F.parse(he,{sort:!1}),me=Object.assign(pe,ae.query);let fe=F.stringify(me,le);fe&&(fe=`?${fe}`);let ge=te(ae.url);return ae.fragmentIdentifier&&(ge=`#${Q(ae.fragmentIdentifier,le)}`),`${ce}${fe}${ge}`},F.pick=(ae,le,ce)=>{ce=Object.assign({parseFragmentIdentifier:!0},ce);const{url:he,query:pe,fragmentIdentifier:me}=F.parseUrl(ae,ce);return F.stringifyUrl({url:he,query:G(pe,le),fragmentIdentifier:me},ce)},F.exclude=(ae,le,ce)=>{const he=Array.isArray(le)?pe=>!le.includes(pe):(pe,me)=>!le(pe,me);return F.pick(ae,he,ce)}})(queryString);const state$4=reactive({modular:{teaching:!1,follow:!1,fingering:!1,switch:!1,speed:!1,evaluating:!1,excerpts:!1,recording:!1},modularDetail:{teaching:{name:"\u5927\u96C5\u91D1\u5510\u6559\u6750",desc:"\u540C\u6B65\u4E50\u56E2\u5B66\u4E60\u6559\u6750\uFF0C\u8BA9\u5B69\u5B50\u5728\u4E13\u4E1A\u7CFB\u7EDF\u7684\u8BAD\u7EC3\u4E0B\u63D0\u5347\u6F14\u594F\u6C34\u5E73",images:["./static/teaching/1.jpg","./static/teaching/2.jpg","./static/teaching/3.jpg"]},follow:{name:"\u4E94\u7EBF\u8C31\u8DDF\u64AD",desc:"\u5C06\u6559\u6750\u8F6C\u5316\u6210\u4E94\u7EBF\u8C31\uFF0C\u5E76\u652F\u6301\u97F3\u7B26\u6839\u636E\u64AD\u653E\u8FDB\u5EA6\u9AD8\u4EAE\u663E\u793A\uFF0C\u589E\u5F3A\u5B69\u5B50\u6F14\u594F\u4E50\u611F",images:["./static/follow/1.jpg"]},fingering:{name:"\u6F14\u594F\u6307\u6CD5\u8DDF\u64AD",desc:"\u6839\u636E\u97F3\u7B26\u65F6\u503C\u5C55\u73B0\u6F14\u594F\u6307\u6CD5\uFF0C\u57F9\u517B\u5B69\u5B50\u826F\u597D\u7684\u6F14\u594F\u4E60\u60EF",images:["./static/fingering/1.jpg","./static/fingering/2.jpg","./static/fingering/3.jpg"]},switch:{name:"\u539F\u58F0/\u4F34\u594F\u5207\u6362",desc:"\u4E3A\u4E0D\u540C\u58F0\u90E8\u5B66\u5458\u63D0\u4F9B\u4E13\u4E1A\u4F34\u594F\uFF0C\u652F\u6301\u4F34\u594F\u4E0E\u539F\u97F3\u5207\u6362\uFF0C\u58F0\u4E34\u5176\u5883\u7684\u611F\u53D7\u4E50\u66F2",images:["./static/switch/1.jpg","./static/switch/2.jpg"]},speed:{name:"\u64AD\u653E\u901F\u5EA6\u8C03\u6574",desc:"\u64AD\u653E\u901F\u5EA6\u8BFE\u6839\u636E\u4E2A\u4EBA\u7EC3\u4E60\u60C5\u51B5\u8C03\u6574\uFF0C\u5FAA\u5E8F\u6E10\u8FDB\u7684\u638C\u63E1\u6BCF\u9996\u66F2\u76EE\u7684\u6F14\u594F",images:["./static/speed/1.jpg","./static/speed/2.jpg"]},evaluating:{name:"\u667A\u80FD\u8BC4\u6D4B",desc:"\u4E3A\u5B69\u5B50\u7684\u6F14\u594F\u63D0\u4F9B\u4E13\u4E1A\u3001\u6807\u51C6\u7684\u70B9\u8BC4",images:["./static/evaluating/1.jpg","./static/evaluating/2.jpg","./static/evaluating/3.jpg"]},excerpts:{name:"\u4E94\u7EBF\u8C31\u9009\u6BB5\u64AD\u653E",desc:"\u6839\u636E\u7EC3\u4E60\u60C5\u51B5\u9009\u62E9\u91CD\u96BE\u70B9\u5C0F\u8282\u5FAA\u73AF\u7EC3\u4E60\uFF0C\u5E2E\u52A9\u5B69\u5B50\u7A81\u7834\u96BE\u5173",images:["./static/excerpts/1.jpg"]},recording:{name:"\u8FB9\u5F55\u8FB9\u64AD",desc:"\u6253\u5F00\u6444\u50CF\u5934\uFF0C\u53EF\u4EE5\u5728\u7EC3\u4E60\u65F6\u770B\u5230\u81EA\u5DF1\u7684\u6F14\u594F\u72B6\u6001\uFF0C\u8FD8\u53EF\u4EE5\u5F55\u5236\u6F14\u594F\u7684\u89C6\u9891\u6216\u97F3\u9891",images:[]}},openKey:"",user:null,subjectId:0,subjectLoading:!1,origanSubjectId:0,subjectOptions:[{value:0,text:"\u5168\u90E8\u58F0\u90E8"}],chinesePartName:{},MusicalInstrumentClassification:{},tenantId:null,organId:null,extSubjectIds:[],clintNmae:"orchestra"});var assign$2=make_assign(),create$1=make_create(),trim$1=make_trim(),Global$5=typeof window!="undefined"?window:commonjsGlobal$2,util$h={assign:assign$2,create:create$1,trim:trim$1,bind:bind$1,slice:slice$2,each:each$8,map,pluck:pluck$1,isList:isList$1,isFunction:isFunction$3,isObject:isObject$3,Global:Global$5};function make_assign(){return Object.assign?Object.assign:function(R,B,D,G){for(var U=1;U=0;R--){var B=localStorage$1().key(R);F(read$6(B),B)}}function remove$6(F){return localStorage$1().removeItem(F)}function clearAll$5(){return localStorage$1().clear()}var util$e=util$h,Global$3=util$e.Global,oldFFGlobalStorage={name:"oldFF-globalStorage",read:read$5,write:write$5,each:each$5,remove:remove$5,clearAll:clearAll$4},globalStorage=Global$3.globalStorage;function read$5(F){return globalStorage[F]}function write$5(F,R){globalStorage[F]=R}function each$5(F){for(var R=globalStorage.length-1;R>=0;R--){var B=globalStorage.key(R);F(globalStorage[B],B)}}function remove$5(F){return globalStorage.removeItem(F)}function clearAll$4(){each$5(function(F,R){delete globalStorage[F]})}var util$d=util$h,Global$2=util$d.Global,oldIEUserDataStorage={name:"oldIE-userDataStorage",write:write$4,read:read$4,each:each$4,remove:remove$4,clearAll:clearAll$3},storageName="storejs",doc$1=Global$2.document,_withStorageEl=_makeIEStorageElFunction(),disable=(Global$2.navigator?Global$2.navigator.userAgent:"").match(/ (MSIE 8|MSIE 9|MSIE 10)\./);function write$4(F,R){if(!disable){var B=fixKey(F);_withStorageEl(function(D){D.setAttribute(B,R),D.save(storageName)})}}function read$4(F){if(!disable){var R=fixKey(F),B=null;return _withStorageEl(function(D){B=D.getAttribute(R)}),B}}function each$4(F){_withStorageEl(function(R){for(var B=R.XMLDocument.documentElement.attributes,D=B.length-1;D>=0;D--){var G=B[D];F(R.getAttribute(G.name),G.name)}})}function remove$4(F){var R=fixKey(F);_withStorageEl(function(B){B.removeAttribute(R),B.save(storageName)})}function clearAll$3(){_withStorageEl(function(F){var R=F.XMLDocument.documentElement.attributes;F.load(storageName);for(var B=R.length-1;B>=0;B--)F.removeAttribute(R[B].name);F.save(storageName)})}var forbiddenCharsRegex=new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]","g");function fixKey(F){return F.replace(/^\d/,"___$&").replace(forbiddenCharsRegex,"___")}function _makeIEStorageElFunction(){if(!doc$1||!doc$1.documentElement||!doc$1.documentElement.addBehavior)return null;var F="script",R,B,D;try{B=new ActiveXObject("htmlfile"),B.open(),B.write("<"+F+">document.w=window'),B.close(),R=B.w.frames[0].document,D=R.createElement("div")}catch{D=doc$1.createElement("div"),R=doc$1.body}return function(G){var U=[].slice.call(arguments,0);U.unshift(D),R.appendChild(D),D.addBehavior("#default#userData"),D.load(storageName),G.apply(this,U),R.removeChild(D)}}var util$c=util$h,Global$1=util$c.Global,trim=util$c.trim,cookieStorage={name:"cookieStorage",read:read$3,write:write$3,each:each$3,remove:remove$3,clearAll:clearAll$2},doc=Global$1.document;function read$3(F){if(!F||!_has(F))return null;var R="(?:^|.*;\\s*)"+escape(F).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*";return unescape(doc.cookie.replace(new RegExp(R),"$1"))}function each$3(F){for(var R=doc.cookie.split(/; ?/g),B=R.length-1;B>=0;B--)if(!!trim(R[B])){var D=R[B].split("="),G=unescape(D[0]),U=unescape(D[1]);F(U,G)}}function write$3(F,R){!F||(doc.cookie=escape(F)+"="+escape(R)+"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/")}function remove$3(F){!F||!_has(F)||(doc.cookie=escape(F)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/")}function clearAll$2(){each$3(function(F,R){remove$3(R)})}function _has(F){return new RegExp("(?:^|;\\s*)"+escape(F).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(doc.cookie)}var util$b=util$h,Global=util$b.Global,sessionStorage_1={name:"sessionStorage",read:read$2,write:write$2,each:each$2,remove:remove$2,clearAll:clearAll$1};function sessionStorage$1(){return Global.sessionStorage}function read$2(F){return sessionStorage$1().getItem(F)}function write$2(F,R){return sessionStorage$1().setItem(F,R)}function each$2(F){for(var R=sessionStorage$1().length-1;R>=0;R--){var B=sessionStorage$1().key(R);F(read$2(B),B)}}function remove$2(F){return sessionStorage$1().removeItem(F)}function clearAll$1(){return sessionStorage$1().clear()}var memoryStorage_1={name:"memoryStorage",read:read$1,write:write$1,each:each$1,remove:remove$1,clearAll},memoryStorage={};function read$1(F){return memoryStorage[F]}function write$1(F,R){memoryStorage[F]=R}function each$1(F){for(var R in memoryStorage)memoryStorage.hasOwnProperty(R)&&F(memoryStorage[R],R)}function remove$1(F){delete memoryStorage[F]}function clearAll(F){memoryStorage={}}var all=[localStorage_1,oldFFGlobalStorage,oldIEUserDataStorage,cookieStorage,sessionStorage_1,memoryStorage_1];typeof JSON!="object"&&(JSON={});(function(){var rx_one=/^[\],:{}\s]*$/,rx_two=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rx_three=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,rx_four=/(?:^|:|,)(?:\s*\[)+/g,rx_escapable=/[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,rx_dangerous=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;function f(F){return F<10?"0"+F:F}function this_value(){return this.valueOf()}typeof Date.prototype.toJSON!="function"&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},Boolean.prototype.toJSON=this_value,Number.prototype.toJSON=this_value,String.prototype.toJSON=this_value);var gap,indent,meta,rep;function quote(F){return rx_escapable.lastIndex=0,rx_escapable.test(F)?'"'+F.replace(rx_escapable,function(R){var B=meta[R];return typeof B=="string"?B:"\\u"+("0000"+R.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+F+'"'}function str(F,R){var B,D,G,U,W=gap,q,Y=R[F];switch(Y&&typeof Y=="object"&&typeof Y.toJSON=="function"&&(Y=Y.toJSON(F)),typeof rep=="function"&&(Y=rep.call(R,F,Y)),typeof Y){case"string":return quote(Y);case"number":return isFinite(Y)?String(Y):"null";case"boolean":case"null":return String(Y);case"object":if(!Y)return"null";if(gap+=indent,q=[],Object.prototype.toString.apply(Y)==="[object Array]"){for(U=Y.length,B=0;B{store_legacy.set("setting",state$3)});const addZero=F=>F<10?"0"+F:F,formatTime=F=>{const R=F%60,B=F/60;return addZero(Math.floor(B))+":"+addZero(Math.floor(R))},browser=()=>{var F=navigator.userAgent;return{trident:F.indexOf("Trident")>-1,presto:F.indexOf("Presto")>-1,webKit:F.indexOf("AppleWebKit")>-1,gecko:F.indexOf("Gecko")>-1&&F.indexOf("KHTML")==-1,mobile:!!F.match(/AppleWebKit.*Mobile.*/),ios:!!F.match(/Mac OS X/),android:F.indexOf("ORCHESTRAAPPA")>-1||F.indexOf("Adr")>-1,iPhone:F.indexOf("ORCHESTRAAPPI")>-1,isApp:F.indexOf("ORCHESTRAAPPI")>-1||F.indexOf("ORCHESTRAAPPA")>-1,isTeacher:F.indexOf("ORCHESTRATEACHER")>-1,isStudent:F.indexOf("ORCHESTRASTUDENT")>-1,isSchool:F.indexOf("ORCHESTRASCHOOL")>-1,iPad:F.indexOf("iPad")>-1,webApp:F.indexOf("Safari")==-1,weixin:F.indexOf("MicroMessenger")>-1,huawei:!!F.match(/huawei/i)||!!F.match(/honor/i),xiaomi:!!F.match(/mi\s/i)||!!F.match(/redmi/i)||!!F.match(/mix/i)}},getRequestHostname=()=>{let F="";try{F=queryString.parse(location.search)}catch{}if(F!=null&&F.client)return F.client==="student"?"/api-student":F.client==="teacher"?"/api-teacher":"/api-backend";const R=browser();return R.isStudent?"/api-student":R.isTeacher?"/api-teacher":"/api-backend"},getRandomKey=()=>""+new Date().getTime()+Math.floor(Math.random()*1e6),toNext=(F,R)=>{const B=W=>W?"?"+W:"",D=queryString.stringify({...queryString.parse(location.search),_t:new Date().getTime()}),G=queryString.stringify(R);return location.origin+location.pathname+B(D)+F+B(G)},noop$4=()=>{},setTongjiTag=F=>{window._czc&&window._czc.push(F)},getPlatform=()=>{const F=browser();return F.ios?"IOS":F.android?"ANDROID":"WEB"},formatZoom=(F=1)=>{const B={small:.5,middle:.7,large:1}[state$3.sett.scoreSize];return F*B},getVoiceChinesName=F=>{let R=F||"";if(F){const B=state$4.chinesePartName[F];if(B)R=B;else{const D=Object.keys(state$4.chinesePartName);for(const G of D)if(F.match(G)){R=F.replace(G,state$4.chinesePartName[G]);break}}}return R?F+(F!==R?" ("+R+")":""):""};var animate$2="",app="",base$3="";/*! * vue-router v4.0.4 * (c) 2021 Eduardo San Martin Morote * @license MIT */const hasSymbol=typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol",PolySymbol=F=>hasSymbol?Symbol(F):"_vr_"+F,matchedRouteKey=PolySymbol("rvlm"),viewDepthKey=PolySymbol("rvd"),routerKey=PolySymbol("r"),routeLocationKey=PolySymbol("rl"),routerViewLocationKey=PolySymbol("rvl"),isBrowser=typeof window!="undefined";function isESModule(F){return F.__esModule||hasSymbol&&F[Symbol.toStringTag]==="Module"}const assign$1=Object.assign;function applyToParams(F,R){const B={};for(const D in R){const G=R[D];B[D]=Array.isArray(G)?G.map(F):F(G)}return B}let noop$3=()=>{};const TRAILING_SLASH_RE=/\/$/,removeTrailingSlash=F=>F.replace(TRAILING_SLASH_RE,"");function parseURL(F,R,B="/"){let D,G={},U="",W="";const q=R.indexOf("?"),Y=R.indexOf("#",q>-1?q:0);return q>-1&&(D=R.slice(0,q),U=R.slice(q+1,Y>-1?Y:R.length),G=F(U)),Y>-1&&(D=D||R.slice(0,Y),W=R.slice(Y,R.length)),D=resolveRelativePath(D!=null?D:R,B),{fullPath:D+(U&&"?")+U+W,path:D,query:G,hash:W}}function stringifyURL(F,R){let B=R.query?F(R.query):"";return R.path+(B&&"?")+B+(R.hash||"")}function stripBase(F,R){return!R||F.toLowerCase().indexOf(R.toLowerCase())?F:F.slice(R.length)||"/"}function isSameRouteLocation(F,R,B){let D=R.matched.length-1,G=B.matched.length-1;return D>-1&&D===G&&isSameRouteRecord(R.matched[D],B.matched[G])&&isSameRouteLocationParams(R.params,B.params)&&F(R.query)===F(B.query)&&R.hash===B.hash}function isSameRouteRecord(F,R){return(F.aliasOf||F)===(R.aliasOf||R)}function isSameRouteLocationParams(F,R){if(Object.keys(F).length!==Object.keys(R).length)return!1;for(let B in F)if(!isSameRouteLocationParamsValue(F[B],R[B]))return!1;return!0}function isSameRouteLocationParamsValue(F,R){return Array.isArray(F)?isEquivalentArray(F,R):Array.isArray(R)?isEquivalentArray(R,F):F===R}function isEquivalentArray(F,R){return Array.isArray(R)?F.length===R.length&&F.every((B,D)=>B===R[D]):F.length===1&&F[0]===R}function resolveRelativePath(F,R){if(F.startsWith("/"))return F;if(!F)return R;const B=R.split("/"),D=F.split("/");let G=B.length-1,U,W;for(U=0;U({left:window.pageXOffset,top:window.pageYOffset});function scrollToPosition(F){let R;if("el"in F){let B=F.el;const D=typeof B=="string"&&B.startsWith("#"),G=typeof B=="string"?D?document.getElementById(B.slice(1)):document.querySelector(B):B;if(!G)return;R=getElementPosition(G,F)}else R=F;"scrollBehavior"in document.documentElement.style?window.scrollTo(R):window.scrollTo(R.left!=null?R.left:window.pageXOffset,R.top!=null?R.top:window.pageYOffset)}function getScrollKey(F,R){return(history.state?history.state.position-R:-1)+F}const scrollPositions=new Map;function saveScrollPosition(F,R){scrollPositions.set(F,R)}function getSavedScrollPosition(F){const R=scrollPositions.get(F);return scrollPositions.delete(F),R}let createBaseLocation=()=>location.protocol+"//"+location.host;function createCurrentLocation(F,R){const{pathname:B,search:D,hash:G}=R;if(F.indexOf("#")>-1){let q=G.slice(1);return q[0]!=="/"&&(q="/"+q),stripBase(q,"")}return stripBase(B,F)+D+G}function useHistoryListeners(F,R,B,D){let G=[],U=[],W=null;const q=({state:ie})=>{const te=createCurrentLocation(F,location),ne=B.value,se=R.value;let re=0;if(ie){if(B.value=te,R.value=ie,W&&W===ne){W=null;return}re=se?ie.position-se.position:0}else D(te);G.forEach(ae=>{ae(B.value,ne,{delta:re,type:NavigationType.pop,direction:re?re>0?NavigationDirection.forward:NavigationDirection.back:NavigationDirection.unknown})})};function Y(){W=B.value}function Q(ie){G.push(ie);const te=()=>{const ne=G.indexOf(ie);ne>-1&&G.splice(ne,1)};return U.push(te),te}function Z(){const{history:ie}=window;!ie.state||ie.replaceState(assign$1({},ie.state,{scroll:computeScrollPosition()}),"")}function K(){for(const ie of U)ie();U=[],window.removeEventListener("popstate",q),window.removeEventListener("beforeunload",Z)}return window.addEventListener("popstate",q),window.addEventListener("beforeunload",Z),{pauseListeners:Y,listen:Q,destroy:K}}function buildState(F,R,B,D=!1,G=!1){return{back:F,current:R,forward:B,replaced:D,position:window.history.length,scroll:G?computeScrollPosition():null}}function useHistoryStateNavigation(F){const{history:R,location:B}=window;let D={value:createCurrentLocation(F,B)},G={value:R.state};G.value||U(D.value,{back:null,current:D.value,forward:null,position:R.length-1,replaced:!0,scroll:null},!0);function U(Y,Q,Z){const K=F.indexOf("#"),ie=K>-1?(B.host&&document.querySelector("base")?F:F.slice(K))+Y:createBaseLocation()+F+Y;try{R[Z?"replaceState":"pushState"](Q,"",ie),G.value=Q}catch(te){console.error(te),B[Z?"replace":"assign"](ie)}}function W(Y,Q){const Z=assign$1({},R.state,buildState(G.value.back,Y,G.value.forward,!0),Q,{position:G.value.position});U(Y,Z,!0),D.value=Y}function q(Y,Q){const Z=assign$1({},G.value,R.state,{forward:Y,scroll:computeScrollPosition()});U(Z.current,Z,!0);const K=assign$1({},buildState(D.value,Y,null),{position:Z.position+1},Q);U(Y,K,!1),D.value=Y}return{location:D,state:G,push:q,replace:W}}function createWebHistory(F){F=normalizeBase(F);const R=useHistoryStateNavigation(F),B=useHistoryListeners(F,R.state,R.location,R.replace);function D(U,W=!0){W||B.pauseListeners(),history.go(U)}const G=assign$1({location:"",base:F,go:D,createHref:createHref.bind(null,F)},R,B);return Object.defineProperty(G,"location",{get:()=>R.location.value}),Object.defineProperty(G,"state",{get:()=>R.state.value}),G}function createWebHashHistory(F){return F=location.host?F||location.pathname+location.search:"",F.indexOf("#")<0&&(F+="#"),createWebHistory(F)}function isRouteLocation(F){return typeof F=="string"||F&&typeof F=="object"}function isRouteName(F){return typeof F=="string"||typeof F=="symbol"}const START_LOCATION_NORMALIZED={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},NavigationFailureSymbol=PolySymbol("nf");var NavigationFailureType;(function(F){F[F.aborted=4]="aborted",F[F.cancelled=8]="cancelled",F[F.duplicated=16]="duplicated"})(NavigationFailureType||(NavigationFailureType={}));function createRouterError(F,R){return assign$1(new Error,{type:F,[NavigationFailureSymbol]:!0},R)}function isNavigationFailure(F,R){return F instanceof Error&&NavigationFailureSymbol in F&&(R==null||!!(F.type&R))}const BASE_PARAM_PATTERN="[^/]+?",BASE_PATH_PARSER_OPTIONS={sensitive:!1,strict:!1,start:!0,end:!0},REGEX_CHARS_RE=/[.+*?^${}()[\]/\\]/g;function tokensToParser(F,R){const B=assign$1({},BASE_PATH_PARSER_OPTIONS,R);let D=[],G=B.start?"^":"";const U=[];for(const Q of F){const Z=Q.length?[]:[90];B.strict&&!Q.length&&(G+="/");for(let K=0;KR.length?R.length===1&&R[0]===40+40?1:-1:0}function comparePathParserScore(F,R){let B=0;const D=F.score,G=R.score;for(;B1&&(Y==="*"||Y==="+")&&R(`A repeatable param (${Q}) must be alone in its segment. eg: '/:ids+.`),U.push({type:1,value:Q,regexp:Z,repeatable:Y==="*"||Y==="+",optional:Y==="*"||Y==="?"})):R("Invalid state to consume buffer"),Q="")}function ie(){Q+=Y}for(;q{W(le)}:noop$3}function W(Z){if(isRouteName(Z)){const K=D.get(Z);K&&(D.delete(Z),B.splice(B.indexOf(K),1),K.children.forEach(W),K.alias.forEach(W))}else{let K=B.indexOf(Z);K>-1&&(B.splice(K,1),Z.record.name&&D.delete(Z.record.name),Z.children.forEach(W),Z.alias.forEach(W))}}function q(){return B}function Y(Z){let K=0;for(;K=0;)K++;B.splice(K,0,Z),Z.record.name&&!isAliasRecord(Z)&&D.set(Z.record.name,Z)}function Q(Z,K){let ie,te={},ne,se;if("name"in Z&&Z.name){if(ie=D.get(Z.name),!ie)throw createRouterError(1,{location:Z});se=ie.record.name,te=assign$1(paramsFromLocation(K.params,ie.keys.filter(le=>!le.optional).map(le=>le.name)),Z.params),ne=ie.stringify(te)}else if("path"in Z)ne=Z.path,ie=B.find(le=>le.re.test(ne)),ie&&(te=ie.parse(ne),se=ie.record.name);else{if(ie=K.name?D.get(K.name):B.find(le=>le.re.test(K.path)),!ie)throw createRouterError(1,{location:Z,currentLocation:K});se=ie.record.name,te=assign$1({},K.params,Z.params),ne=ie.stringify(te)}const re=[];let ae=ie;for(;ae;)re.unshift(ae.record),ae=ae.parent;return{name:se,path:ne,params:te,matched:re,meta:mergeMetaFields(re)}}return F.forEach(Z=>U(Z)),{addRoute:U,resolve:Q,removeRoute:W,getRoutes:q,getRecordMatcher:G}}function paramsFromLocation(F,R){let B={};for(let D of R)D in F&&(B[D]=F[D]);return B}function normalizeRouteRecord(F){return{path:F.path,redirect:F.redirect,name:F.name,meta:F.meta||{},aliasOf:void 0,beforeEnter:F.beforeEnter,props:normalizeRecordProps(F),children:F.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in F?F.components||{}:{default:F.component}}}function normalizeRecordProps(F){const R={},B=F.props||!1;if("component"in F)R.default=B;else for(let D in F.components)R[D]=typeof B=="boolean"?B:B[D];return R}function isAliasRecord(F){for(;F;){if(F.record.aliasOf)return!0;F=F.parent}return!1}function mergeMetaFields(F){return F.reduce((R,B)=>assign$1(R,B.meta),{})}function mergeOptions(F,R){let B={};for(let D in F)B[D]=D in R?R[D]:F[D];return B}const HASH_RE=/#/g,AMPERSAND_RE=/&/g,SLASH_RE=/\//g,EQUAL_RE=/=/g,IM_RE=/\?/g,PLUS_RE=/\+/g,ENC_BRACKET_OPEN_RE=/%5B/g,ENC_BRACKET_CLOSE_RE=/%5D/g,ENC_CARET_RE=/%5E/g,ENC_BACKTICK_RE=/%60/g,ENC_CURLY_OPEN_RE=/%7B/g,ENC_PIPE_RE=/%7C/g,ENC_CURLY_CLOSE_RE=/%7D/g,ENC_SPACE_RE=/%20/g;function commonEncode(F){return encodeURI(""+F).replace(ENC_PIPE_RE,"|").replace(ENC_BRACKET_OPEN_RE,"[").replace(ENC_BRACKET_CLOSE_RE,"]")}function encodeHash(F){return commonEncode(F).replace(ENC_CURLY_OPEN_RE,"{").replace(ENC_CURLY_CLOSE_RE,"}").replace(ENC_CARET_RE,"^")}function encodeQueryValue(F){return commonEncode(F).replace(PLUS_RE,"%2B").replace(ENC_SPACE_RE,"+").replace(HASH_RE,"%23").replace(AMPERSAND_RE,"%26").replace(ENC_BACKTICK_RE,"`").replace(ENC_CURLY_OPEN_RE,"{").replace(ENC_CURLY_CLOSE_RE,"}").replace(ENC_CARET_RE,"^")}function encodeQueryKey(F){return encodeQueryValue(F).replace(EQUAL_RE,"%3D")}function encodePath(F){return commonEncode(F).replace(HASH_RE,"%23").replace(IM_RE,"%3F")}function encodeParam(F){return encodePath(F).replace(SLASH_RE,"%2F")}function decode$3(F){try{return decodeURIComponent(""+F)}catch{}return""+F}function parseQuery(F){const R={};if(F===""||F==="?")return R;const D=(F[0]==="?"?F.slice(1):F).split("&");for(let G=0;GU&&encodeQueryValue(U)):[D&&encodeQueryValue(D)];for(let U=0;UG==null?null:""+G):D==null?D:""+D)}return R}function useCallbacks(){let F=[];function R(D){return F.push(D),()=>{const G=F.indexOf(D);G>-1&&F.splice(G,1)}}function B(){F=[]}return{add:R,list:()=>F,reset:B}}function guardToPromiseFn(F,R,B,D,G){const U=D&&(D.enterCallbacks[G]=D.enterCallbacks[G]||[]);return()=>new Promise((W,q)=>{const Y=K=>{K===!1?q(createRouterError(4,{from:B,to:R})):K instanceof Error?q(K):isRouteLocation(K)?q(createRouterError(2,{from:R,to:K})):(U&&D.enterCallbacks[G]===U&&typeof K=="function"&&U.push(K),W())},Q=F.call(D&&D.instances[G],R,B,Y);let Z=Promise.resolve(Q);F.length<3&&(Z=Z.then(Y)),Z.catch(K=>q(K))})}function extractComponentsGuards(F,R,B,D){const G=[];for(const U of F)for(const W in U.components){let q=U.components[W];if(!(R!=="beforeRouteEnter"&&!U.instances[W]))if(isRouteComponent(q)){const Q=(q.__vccOpts||q)[R];Q&&G.push(guardToPromiseFn(Q,B,D,U,W))}else{let Y=q();Y=Y.catch(console.error),G.push(()=>Y.then(Q=>{if(!Q)return Promise.reject(new Error(`Couldn't resolve component "${W}" at "${U.path}"`));const Z=isESModule(Q)?Q.default:Q;U.components[W]=Z;const ie=(Z.__vccOpts||Z)[R];return ie&&guardToPromiseFn(ie,B,D,U,W)()}))}}return G}function isRouteComponent(F){return typeof F=="object"||"displayName"in F||"props"in F||"__vccOpts"in F}function useLink(F){const R=inject(routerKey),B=inject(routeLocationKey),D=computed(()=>R.resolve(unref(F.to))),G=computed(()=>{let{matched:Y}=D.value,{length:Q}=Y;const Z=Y[Q-1];let K=B.matched;if(!Z||!K.length)return-1;let ie=K.findIndex(isSameRouteRecord.bind(null,Z));if(ie>-1)return ie;let te=getOriginalPath(Y[Q-2]);return Q>1&&getOriginalPath(Z)===te&&K[K.length-1].path!==te?K.findIndex(isSameRouteRecord.bind(null,Y[Q-2])):ie}),U=computed(()=>G.value>-1&&includesParams(B.params,D.value.params)),W=computed(()=>G.value>-1&&G.value===B.matched.length-1&&isSameRouteLocationParams(B.params,D.value.params));function q(Y={}){return guardEvent(Y)?R[unref(F.replace)?"replace":"push"](unref(F.to)):Promise.resolve()}return{route:D,href:computed(()=>D.value.href),isActive:U,isExactActive:W,navigate:q}}const RouterLinkImpl=defineComponent({name:"RouterLink",props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},setup(F,{slots:R,attrs:B}){const D=reactive(useLink(F)),{options:G}=inject(routerKey),U=computed(()=>({[getLinkClass(F.activeClass,G.linkActiveClass,"router-link-active")]:D.isActive,[getLinkClass(F.exactActiveClass,G.linkExactActiveClass,"router-link-exact-active")]:D.isExactActive}));return()=>{const W=R.default&&R.default(D);return F.custom?W:h$3("a",assign$1({"aria-current":D.isExactActive?F.ariaCurrentValue:null,onClick:D.navigate,href:D.href},B,{class:U.value}),W)}}}),RouterLink=RouterLinkImpl;function guardEvent(F){if(!(F.metaKey||F.altKey||F.ctrlKey||F.shiftKey)&&!F.defaultPrevented&&!(F.button!==void 0&&F.button!==0)){if(F.currentTarget&&F.currentTarget.getAttribute){const R=F.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(R))return}return F.preventDefault&&F.preventDefault(),!0}}function includesParams(F,R){for(let B in R){let D=R[B],G=F[B];if(typeof D=="string"){if(D!==G)return!1}else if(!Array.isArray(G)||G.length!==D.length||D.some((U,W)=>U!==G[W]))return!1}return!0}function getOriginalPath(F){return F?F.aliasOf?F.aliasOf.path:F.path:""}const getLinkClass=(F,R,B)=>F!=null?F:R!=null?R:B,RouterViewImpl=defineComponent({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},setup(F,{attrs:R,slots:B}){const D=inject(routerViewLocationKey),G=computed(()=>F.route||D.value),U=inject(viewDepthKey,0),W=computed(()=>G.value.matched[U]);provide(viewDepthKey,U+1),provide(matchedRouteKey,W),provide(routerViewLocationKey,G);const q=ref();return watch(()=>[q.value,W.value,F.name],([Y,Q,Z],[K,ie,te])=>{Q&&(Q.instances[Z]=Y,ie&&ie!==Q&&Y&&Y===K&&(Q.leaveGuards=ie.leaveGuards,Q.updateGuards=ie.updateGuards)),Y&&Q&&(!ie||!isSameRouteRecord(Q,ie)||!K)&&(Q.enterCallbacks[Z]||[]).forEach(ne=>ne(Y))},{flush:"post"}),()=>{const Y=G.value,Q=W.value,Z=Q&&Q.components[F.name],K=F.name;if(!Z)return normalizeSlot(B.default,{Component:Z,route:Y});const ie=Q.props[F.name],te=ie?ie===!0?Y.params:typeof ie=="function"?ie(Y):ie:null,se=h$3(Z,assign$1({},te,R,{onVnodeUnmounted:re=>{re.component.isUnmounted&&(Q.instances[K]=null)},ref:q}));return normalizeSlot(B.default,{Component:se,route:Y})||se}}});function normalizeSlot(F,R){if(!F)return null;const B=F(R);return B.length===1?B[0]:B}const RouterView=RouterViewImpl;function createRouter(F){const R=createRouterMatcher(F.routes,F);let B=F.parseQuery||parseQuery,D=F.stringifyQuery||stringifyQuery,G=F.history;const U=useCallbacks(),W=useCallbacks(),q=useCallbacks(),Y=shallowRef(START_LOCATION_NORMALIZED);let Q=START_LOCATION_NORMALIZED;isBrowser&&F.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const Z=applyToParams.bind(null,Ge=>""+Ge),K=applyToParams.bind(null,encodeParam),ie=applyToParams.bind(null,decode$3);function te(Ge,He){let Qe,We;return isRouteName(Ge)?(Qe=R.getRecordMatcher(Ge),We=He):We=Ge,R.addRoute(We,Qe)}function ne(Ge){let He=R.getRecordMatcher(Ge);He&&R.removeRoute(He)}function se(){return R.getRoutes().map(Ge=>Ge.record)}function re(Ge){return!!R.getRecordMatcher(Ge)}function ae(Ge,He){if(He=assign$1({},He||Y.value),typeof Ge=="string"){let yt=parseURL(B,Ge,He.path),Fe=R.resolve({path:yt.path},He),Te=G.createHref(yt.fullPath);return assign$1(yt,Fe,{params:ie(Fe.params),hash:decode$3(yt.hash),redirectedFrom:void 0,href:Te})}let Qe;"path"in Ge?Qe=assign$1({},Ge,{path:parseURL(B,Ge.path,He.path).path}):(Qe=assign$1({},Ge,{params:K(Ge.params)}),He.params=K(He.params));let We=R.resolve(Qe,He);const Ze=Ge.hash||"";We.params=Z(ie(We.params));const lt=stringifyURL(D,assign$1({},Ge,{hash:encodeHash(Ze),path:We.path}));let ht=G.createHref(lt);return assign$1({fullPath:lt,hash:Ze,query:D===stringifyQuery?normalizeQuery(Ge.query):Ge.query},We,{redirectedFrom:void 0,href:ht})}function le(Ge){return typeof Ge=="string"?parseURL(B,Ge,Y.value.path):assign$1({},Ge)}function ce(Ge,He){if(Q!==Ge)return createRouterError(8,{from:He,to:Ge})}function he(Ge){return fe(Ge)}function pe(Ge){return he(assign$1(le(Ge),{replace:!0}))}function me(Ge){const He=Ge.matched[Ge.matched.length-1];if(He&&He.redirect){const{redirect:Qe}=He;let We=typeof Qe=="function"?Qe(Ge):Qe;return typeof We=="string"&&(We=We.indexOf("?")>-1||We.indexOf("#")>-1?We=le(We):{path:We}),assign$1({query:Ge.query,hash:Ge.hash,params:Ge.params},We)}}function fe(Ge,He){const Qe=Q=ae(Ge),We=Y.value,Ze=Ge.state,lt=Ge.force,ht=Ge.replace===!0,yt=me(Qe);if(yt)return fe(assign$1(le(yt),{state:Ze,force:lt,replace:ht}),He||Qe);const Fe=Qe;Fe.redirectedFrom=He;let Te;return!lt&&isSameRouteLocation(D,We,Qe)&&(Te=createRouterError(16,{to:Fe,from:We}),Ne(We,We,!0,!1)),(Te?Promise.resolve(Te):Se(Fe,We)).catch(je=>isNavigationFailure(je)?je:Pe(je)).then(je=>{if(je){if(isNavigationFailure(je,2))return fe(assign$1(le(je.to),{state:Ze,force:lt,replace:ht}),He||Fe)}else je=ve(Fe,We,!0,ht,Ze);return Ee(Fe,We,je),je})}function ge(Ge,He){const Qe=ce(Ge,He);return Qe?Promise.reject(Qe):Promise.resolve()}function Se(Ge,He){let Qe;const[We,Ze,lt]=extractChangingRecords(Ge,He);Qe=extractComponentsGuards(We.reverse(),"beforeRouteLeave",Ge,He);for(const yt of We)yt.leaveGuards.forEach(Fe=>{Qe.push(guardToPromiseFn(Fe,Ge,He))});const ht=ge.bind(null,Ge,He);return Qe.push(ht),runGuardQueue(Qe).then(()=>{Qe=[];for(const yt of U.list())Qe.push(guardToPromiseFn(yt,Ge,He));return Qe.push(ht),runGuardQueue(Qe)}).then(()=>{Qe=extractComponentsGuards(Ze,"beforeRouteUpdate",Ge,He);for(const yt of Ze)yt.updateGuards.forEach(Fe=>{Qe.push(guardToPromiseFn(Fe,Ge,He))});return Qe.push(ht),runGuardQueue(Qe)}).then(()=>{Qe=[];for(const yt of Ge.matched)if(yt.beforeEnter&&He.matched.indexOf(yt)<0)if(Array.isArray(yt.beforeEnter))for(const Fe of yt.beforeEnter)Qe.push(guardToPromiseFn(Fe,Ge,He));else Qe.push(guardToPromiseFn(yt.beforeEnter,Ge,He));return Qe.push(ht),runGuardQueue(Qe)}).then(()=>(Ge.matched.forEach(yt=>yt.enterCallbacks={}),Qe=extractComponentsGuards(lt,"beforeRouteEnter",Ge,He),Qe.push(ht),runGuardQueue(Qe))).then(()=>{Qe=[];for(const yt of W.list())Qe.push(guardToPromiseFn(yt,Ge,He));return Qe.push(ht),runGuardQueue(Qe)}).catch(yt=>isNavigationFailure(yt,8)?yt:Promise.reject(yt))}function Ee(Ge,He,Qe){for(const We of q.list())We(Ge,He,Qe)}function ve(Ge,He,Qe,We,Ze){const lt=ce(Ge,He);if(lt)return lt;const ht=He===START_LOCATION_NORMALIZED,yt=isBrowser?history.state:{};Qe&&(We||ht?G.replace(Ge.fullPath,assign$1({scroll:ht&&yt&&yt.scroll},Ze)):G.push(Ge.fullPath,Ze)),Y.value=Ge,Ne(Ge,He,Qe,ht),Le()}let xe;function Me(){xe=G.listen((Ge,He,Qe)=>{let We=ae(Ge);const Ze=me(We);if(Ze){fe(assign$1(Ze,{replace:!0}),We).catch(noop$3);return}Q=We;const lt=Y.value;isBrowser&&saveScrollPosition(getScrollKey(lt.fullPath,Qe.delta),computeScrollPosition()),Se(We,lt).catch(ht=>isNavigationFailure(ht,12)?ht:isNavigationFailure(ht,2)?(fe(ht.to,We).catch(noop$3),Promise.reject()):(Qe.delta&&G.go(-Qe.delta,!1),Pe(ht))).then(ht=>{ht=ht||ve(We,lt,!1),ht&&Qe.delta&&G.go(-Qe.delta,!1),Ee(We,lt,ht)}).catch(noop$3)})}let ye=useCallbacks(),we=useCallbacks(),Re;function Pe(Ge){return Le(Ge),we.list().forEach(He=>He(Ge)),Promise.reject(Ge)}function Ae(){return Re&&Y.value!==START_LOCATION_NORMALIZED?Promise.resolve():new Promise((Ge,He)=>{ye.add([Ge,He])})}function Le(Ge){Re||(Re=!0,Me(),ye.list().forEach(([He,Qe])=>Ge?Qe(Ge):He()),ye.reset())}function Ne(Ge,He,Qe,We){const{scrollBehavior:Ze}=F;if(!isBrowser||!Ze)return Promise.resolve();let lt=!Qe&&getSavedScrollPosition(getScrollKey(Ge.fullPath,0))||(We||!Qe)&&history.state&&history.state.scroll||null;return nextTick().then(()=>Ze(Ge,He,lt)).then(ht=>ht&&scrollToPosition(ht)).catch(Pe)}const Ie=Ge=>G.go(Ge);let _e;const Ve=new Set;return{currentRoute:Y,addRoute:te,removeRoute:ne,hasRoute:re,getRoutes:se,resolve:ae,options:F,push:he,replace:pe,go:Ie,back:()=>Ie(-1),forward:()=>Ie(1),beforeEach:U.add,beforeResolve:W.add,afterEach:q.add,onError:we.add,isReady:Ae,install(Ge){const He=this;Ge.component("RouterLink",RouterLink),Ge.component("RouterView",RouterView),Ge.config.globalProperties.$router=He,Object.defineProperty(Ge.config.globalProperties,"$route",{get:()=>unref(Y)}),isBrowser&&!_e&&Y.value===START_LOCATION_NORMALIZED&&(_e=!0,he(G.location).catch(Ze=>{}));const Qe={};for(let Ze in START_LOCATION_NORMALIZED)Qe[Ze]=computed(()=>Y.value[Ze]);Ge.provide(routerKey,He),Ge.provide(routeLocationKey,reactive(Qe)),Ge.provide(routerViewLocationKey,Y);let We=Ge.unmount;Ve.add(Ge),Ge.unmount=function(){Ve.delete(Ge),Ve.size<1&&(xe(),Y.value=START_LOCATION_NORMALIZED,_e=!1,Re=!1),We.call(this,arguments)}}}}function runGuardQueue(F){return F.reduce((R,B)=>R.then(()=>B()),Promise.resolve())}function extractChangingRecords(F,R){const B=[],D=[],G=[],U=Math.max(R.matched.length,F.matched.length);for(let W=0;W{const F={};for(const R of state$2.times)R.id&&(F[R.id]=R);state$2.timesById=F,state$2.subjectId>0&&(state$2.isPercussion=state$2.subjectId==23||state$2.subjectId==113),state$2.renderLoading});function noop$2(){}var extend$2=Object.assign,inBrowser$1=typeof window!="undefined",unknownProp=null,truthProp={type:Boolean,default:!0};function get(F,R){var B=R.split("."),D=F;return B.forEach(G=>{var U;D=(U=D[G])!=null?U:""}),D}function pick(F,R,B){return R.reduce((D,G)=>((!B||F[G]!==void 0)&&(D[G]=F[G]),D),{})}function gen(F,R){return R?typeof R=="string"?" "+F+"--"+R:Array.isArray(R)?R.reduce((B,D)=>B+gen(F,D),""):Object.keys(R).reduce((B,D)=>B+(R[D]?gen(F,D):""),""):""}function createBEM(F){return function(R,B){return R&&typeof R!="string"&&(B=R,R=""),R=R?F+"__"+R:F,""+R+gen(R,B)}}var camelizeRE=/-(\w)/g;function camelize(F){return F.replace(camelizeRE,(R,B)=>B.toUpperCase())}function isDef$1(F){return F!=null}function isFunction$1(F){return typeof F=="function"}function isObject$1(F){return F!==null&&typeof F=="object"}function isPromise(F){return isObject$1(F)&&isFunction$1(F.then)&&isFunction$1(F.catch)}function isNumeric(F){return typeof F=="number"||/^\d+(\.\d+)?$/.test(F)}function isIOS$1(){return inBrowser$1?/ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase()):!1}var{hasOwnProperty:hasOwnProperty$1}=Object.prototype;function assignKey(F,R,B){var D=R[B];!isDef$1(D)||(!hasOwnProperty$1.call(F,B)||!isObject$1(D)?F[B]=D:F[B]=deepAssign(Object(F[B]),R[B]))}function deepAssign(F,R){return Object.keys(R).forEach(B=>{assignKey(F,R,B)}),F}var defaultMessages={name:"\u59D3\u540D",tel:"\u7535\u8BDD",save:"\u4FDD\u5B58",confirm:"\u786E\u8BA4",cancel:"\u53D6\u6D88",delete:"\u5220\u9664",complete:"\u5B8C\u6210",loading:"\u52A0\u8F7D\u4E2D...",telEmpty:"\u8BF7\u586B\u5199\u7535\u8BDD",nameEmpty:"\u8BF7\u586B\u5199\u59D3\u540D",nameInvalid:"\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u59D3\u540D",confirmDelete:"\u786E\u5B9A\u8981\u5220\u9664\u5417",telInvalid:"\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7",vanCalendar:{end:"\u7ED3\u675F",start:"\u5F00\u59CB",title:"\u65E5\u671F\u9009\u62E9",confirm:"\u786E\u5B9A",startEnd:"\u5F00\u59CB/\u7ED3\u675F",weekdays:["\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"],monthTitle:(F,R)=>F+"\u5E74"+R+"\u6708",rangePrompt:F=>"\u9009\u62E9\u5929\u6570\u4E0D\u80FD\u8D85\u8FC7 "+F+" \u5929"},vanCascader:{select:"\u8BF7\u9009\u62E9"},vanContactCard:{addText:"\u6DFB\u52A0\u8054\u7CFB\u4EBA"},vanContactList:{addText:"\u65B0\u5EFA\u8054\u7CFB\u4EBA"},vanPagination:{prev:"\u4E0A\u4E00\u9875",next:"\u4E0B\u4E00\u9875"},vanPullRefresh:{pulling:"\u4E0B\u62C9\u5373\u53EF\u5237\u65B0...",loosing:"\u91CA\u653E\u5373\u53EF\u5237\u65B0..."},vanSubmitBar:{label:"\u5408\u8BA1\uFF1A"},vanCoupon:{unlimited:"\u65E0\u4F7F\u7528\u95E8\u69DB",discount:F=>F+"\u6298",condition:F=>"\u6EE1"+F+"\u5143\u53EF\u7528"},vanCouponCell:{title:"\u4F18\u60E0\u5238",tips:"\u6682\u65E0\u53EF\u7528",count:F=>F+"\u5F20\u53EF\u7528"},vanCouponList:{empty:"\u6682\u65E0\u4F18\u60E0\u5238",exchange:"\u5151\u6362",close:"\u4E0D\u4F7F\u7528\u4F18\u60E0\u5238",enable:"\u53EF\u7528",disabled:"\u4E0D\u53EF\u7528",placeholder:"\u8BF7\u8F93\u5165\u4F18\u60E0\u7801"},vanAddressEdit:{area:"\u5730\u533A",postal:"\u90AE\u653F\u7F16\u7801",areaEmpty:"\u8BF7\u9009\u62E9\u5730\u533A",addressEmpty:"\u8BF7\u586B\u5199\u8BE6\u7EC6\u5730\u5740",postalEmpty:"\u90AE\u653F\u7F16\u7801\u683C\u5F0F\u4E0D\u6B63\u786E",defaultAddress:"\u8BBE\u4E3A\u9ED8\u8BA4\u6536\u8D27\u5730\u5740",telPlaceholder:"\u6536\u8D27\u4EBA\u624B\u673A\u53F7",namePlaceholder:"\u6536\u8D27\u4EBA\u59D3\u540D",areaPlaceholder:"\u9009\u62E9\u7701 / \u5E02 / \u533A"},vanAddressEditDetail:{label:"\u8BE6\u7EC6\u5730\u5740",placeholder:"\u8857\u9053\u95E8\u724C\u3001\u697C\u5C42\u623F\u95F4\u53F7\u7B49\u4FE1\u606F"},vanAddressList:{add:"\u65B0\u589E\u5730\u5740"}},lang=ref("zh-CN"),messages=reactive({"zh-CN":defaultMessages}),Locale={messages(){return messages[lang.value]},use(F,R){lang.value=F,this.add({[F]:R})},add(F={}){deepAssign(messages,F)}},locale=Locale;function createTranslate(F){var R=camelize(F)+".";return function(B,...D){var G=locale.messages(),U=get(G,R+B)||get(G,B);return isFunction$1(U)?U(...D):U}}function createNamespace(F){var R="van-"+F;return[R,createBEM(R),createTranslate(R)]}function withInstall(F){return F.install=R=>{var{name:B}=F;R.component(B,F),R.component(camelize("-"+B),F)},F}function addUnit(F){if(!!isDef$1(F))return isNumeric(F)?F+"px":String(F)}function getSizeStyle(F){if(isDef$1(F)){var R=addUnit(F);return{width:R,height:R}}}function getZIndexStyle(F){var R={};return F!==void 0&&(R.zIndex=+F),R}var rootFontSize;function getRootFontSize(){if(!rootFontSize){var F=document.documentElement,R=F.style.fontSize||window.getComputedStyle(F).fontSize;rootFontSize=parseFloat(R)}return rootFontSize}function convertRem(F){return F=F.replace(/rem/g,""),+F*getRootFontSize()}function convertVw(F){return F=F.replace(/vw/g,""),+F*window.innerWidth/100}function convertVh(F){return F=F.replace(/vh/g,""),+F*window.innerHeight/100}function unitToPx(F){if(typeof F=="number")return F;if(inBrowser$1){if(F.includes("rem"))return convertRem(F);if(F.includes("vw"))return convertVw(F);if(F.includes("vh"))return convertVh(F)}return parseFloat(F)}function clamp(F,R,B){return Math.min(Math.max(F,R),B)}function trimExtraChar(F,R,B){var D=F.indexOf(R);return D===-1?F:R==="-"&&D!==0?F.slice(0,D):F.slice(0,D+1)+F.slice(D).replace(B,"")}function formatNumber(F,R=!0,B=!0){R?F=trimExtraChar(F,".",/\./g):F=F.split(".")[0],B?F=trimExtraChar(F,"-",/-/g):F=F.replace(/-/,"");var D=R?/[^-0-9.]/g:/[^-0-9]/g;return F.replace(D,"")}function addNumber(F,R){var B=Math.pow(10,10);return Math.round((F+R)*B)/B}function isHidden(F){var R=unref(F);if(!R)return!1;var B=window.getComputedStyle(R),D=B.display==="none",G=R.offsetParent===null&&B.position!=="fixed";return D||G}function stopPropagation(F){F.stopPropagation()}function preventDefault(F,R){(typeof F.cancelable!="boolean"||F.cancelable)&&F.preventDefault(),R&&stopPropagation(F)}function trigger(F,R){var B=document.createEvent("HTMLEvents");B.initEvent(R,!0,!0),F.dispatchEvent(B)}function isWindow$1(F){return F===window}function getScrollTop(F){var R="scrollTop"in F?F.scrollTop:F.pageYOffset;return Math.max(R,0)}function setScrollTop(F,R){"scrollTop"in F?F.scrollTop=R:F.scrollTo(F.scrollX,R)}function getRootScrollTop(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0}function setRootScrollTop(F){setScrollTop(window,F),setScrollTop(document.body,F)}function getElementTop(F,R){if(isWindow$1(F))return 0;var B=R?getScrollTop(R):getRootScrollTop();return F.getBoundingClientRect().top+B}function getVisibleHeight(F){return isWindow$1(F)?F.innerHeight:F.getBoundingClientRect().height}function getVisibleTop(F){return isWindow$1(F)?0:F.getBoundingClientRect().top}var isIOS=isIOS$1();function resetScroll(){isIOS&&setRootScrollTop(getRootScrollTop())}const inBrowser=typeof window!="undefined";function raf$2(F){return inBrowser?requestAnimationFrame(F):-1}function cancelRaf(F){inBrowser&&cancelAnimationFrame(F)}function doubleRaf(F){raf$2(()=>raf$2(F))}const isWindow=F=>F===window,makeDOMRect=(F,R)=>({top:0,left:0,right:F,bottom:R,width:F,height:R}),useRect=F=>{const R=unref(F);if(isWindow(R)){const B=R.innerWidth,D=R.innerHeight;return makeDOMRect(B,D)}return R!=null&&R.getBoundingClientRect?R.getBoundingClientRect():makeDOMRect(0,0)};function useToggle(F=!1){const R=ref(F);return[R,(D=!R.value)=>{R.value=D}]}function useParent(F){const R=inject(F,null);if(R){const B=getCurrentInstance(),{link:D,unlink:G,internalChildren:U}=R;D(B),onUnmounted(()=>G(B));const W=computed(()=>U.indexOf(B));return{parent:R,index:W}}return{parent:null,index:ref(-1)}}function flattenVNodes(F){const R=[],B=D=>{Array.isArray(D)&&D.forEach(G=>{var U;isVNode(G)&&(R.push(G),(U=G.component)!=null&&U.subTree&&B(G.component.subTree.children),G.children&&B(G.children))})};return B(F),R}function sortChildren(F,R,B){const D=flattenVNodes(F.subTree.children);B.sort((U,W)=>D.indexOf(U.vnode)-D.indexOf(W.vnode));const G=B.map(U=>U.proxy);R.sort((U,W)=>{const q=G.indexOf(U),Y=G.indexOf(W);return q-Y})}function useChildren(F){const R=reactive([]),B=reactive([]),D=getCurrentInstance();return{children:R,linkChildren:U=>{provide(F,Object.assign({link:Y=>{Y.proxy&&(B.push(Y),R.push(Y.proxy),sortChildren(D,R,B))},unlink:Y=>{const Q=B.indexOf(Y);R.splice(Q,1),B.splice(Q,1)},children:R,internalChildren:B},U))}}}function onMountedOrActivated(F){let R;onMounted(()=>{F(),nextTick(()=>{R=!0})}),onActivated(()=>{R&&F()})}function useEventListener(F,R,B={}){if(!inBrowser)return;const{target:D=window,passive:G=!1,capture:U=!1}=B;let W;const q=Q=>{const Z=unref(Q);Z&&!W&&(Z.addEventListener(F,R,{capture:U,passive:G}),W=!0)},Y=Q=>{const Z=unref(Q);Z&&W&&(Z.removeEventListener(F,R,U),W=!1)};onUnmounted(()=>Y(D)),onDeactivated(()=>Y(D)),onMountedOrActivated(()=>q(D)),isRef(D)&&watch(D,(Q,Z)=>{Y(Z),q(Q)})}function useClickAway(F,R,B={}){if(!inBrowser)return;const{eventName:D="click"}=B;useEventListener(D,U=>{const W=unref(F);W&&!W.contains(U.target)&&R(U)},{target:document})}let width,height;function useWindowSize(){if(!width&&(width=ref(0),height=ref(0),inBrowser)){const F=()=>{width.value=window.innerWidth,height.value=window.innerHeight};F(),window.addEventListener("resize",F,{passive:!0}),window.addEventListener("orientationchange",F,{passive:!0})}return{width,height}}const overflowScrollReg=/scroll|auto/i,defaultRoot=inBrowser?window:void 0;function isElement$1(F){return F.tagName!=="HTML"&&F.tagName!=="BODY"&&F.nodeType===1}function getScrollParent$1(F,R=defaultRoot){let B=F;for(;B&&B!==R&&isElement$1(B);){const{overflowY:D}=window.getComputedStyle(B);if(overflowScrollReg.test(D))return B;B=B.parentNode}return R}function useScrollParent(F,R=defaultRoot){const B=ref();return onMounted(()=>{F.value&&(B.value=getScrollParent$1(F.value,R))}),B}let visibility;function usePageVisibility(){if(!visibility&&(visibility=ref("visible"),inBrowser)){const F=()=>{visibility.value=document.hidden?"hidden":"visible"};F(),window.addEventListener("visibilitychange",F)}return visibility}var[name$u,bem$u]=createNamespace("action-bar"),ACTION_BAR_KEY=Symbol(name$u),_ActionBar=defineComponent({name:name$u,props:{safeAreaInsetBottom:truthProp},setup(F,{slots:R}){var{linkChildren:B}=useChildren(ACTION_BAR_KEY);return B(),()=>createVNode("div",{class:bem$u({unfit:!F.safeAreaInsetBottom})},[R.default==null?void 0:R.default()])}}),ActionBar=withInstall(_ActionBar);function useExpose(F){var R=getCurrentInstance();R&&extend$2(R.proxy,F)}var routeProps={to:[String,Object],url:String,replace:Boolean};function route(F){var R=F.$router,{to:B,url:D,replace:G}=F;B&&R?R[G?"replace":"push"](B):D&&(G?location.replace(D):location.href=D)}function useRoute(){var F=getCurrentInstance().proxy;return()=>route(F)}var BORDER="van-hairline",BORDER_TOP=BORDER+"--top",BORDER_LEFT=BORDER+"--left",BORDER_BOTTOM=BORDER+"--bottom",BORDER_SURROUND=BORDER+"--surround",BORDER_TOP_BOTTOM=BORDER+"--top-bottom",BORDER_UNSET_TOP_BOTTOM=BORDER+"-unset--top-bottom",[name$t,bem$t]=createNamespace("badge"),_Badge=defineComponent({name:name$t,props:{dot:Boolean,max:[Number,String],color:String,offset:Array,content:[Number,String],showZero:truthProp,tag:{type:String,default:"div"}},setup(F,{slots:R}){var B=()=>{if(R.content)return!0;var{content:U,showZero:W}=F;return isDef$1(U)&&U!==""&&(W||U!==0)},D=()=>{var{dot:U,max:W,content:q}=F;if(!U&&B())return R.content?R.content():isDef$1(W)&&isNumeric(q)&&+q>W?W+"+":q},G=()=>{if(B()||F.dot){var U={background:F.color};if(F.offset){var[W,q]=F.offset;R.default?(U.top=addUnit(q),U.right="-"+addUnit(W)):(U.marginTop=addUnit(q),U.marginLeft=addUnit(W))}return createVNode("div",{class:bem$t({dot:F.dot,fixed:!!R.default}),style:U},[D()])}};return()=>{if(R.default){var{tag:U}=F;return createVNode(U,{class:bem$t("wrapper")},{default:()=>[R.default(),G()]})}return G()}}}),Badge=withInstall(_Badge),[name$s,bem$s]=createNamespace("icon");function isImage(F){return F?F.includes("/"):!1}var _Icon=defineComponent({name:name$s,props:{dot:Boolean,name:String,size:[Number,String],badge:[Number,String],color:String,tag:{type:String,default:"i"},classPrefix:{type:String,default:bem$s()}},setup(F,{slots:R}){return()=>{var{tag:B,dot:D,name:G,size:U,badge:W,color:q,classPrefix:Y}=F,Q=isImage(G);return createVNode(Badge,{dot:D,tag:B,content:W,class:[Y,Q?"":Y+"-"+G],style:{color:q,fontSize:addUnit(U)}},{default:()=>[R.default==null?void 0:R.default(),Q&&createVNode("img",{class:bem$s("image"),src:G},null)]})}}}),Icon=withInstall(_Icon),[name$r,bem$r]=createNamespace("loading"),SpinIcon=Array(12).fill(createVNode("i",null,null)),CircularIcon=createVNode("svg",{class:bem$r("circular"),viewBox:"25 25 50 50"},[createVNode("circle",{cx:"50",cy:"50",r:"20",fill:"none"},null)]),_Loading=defineComponent({name:name$r,props:{size:[Number,String],color:String,vertical:Boolean,textSize:[Number,String],textColor:String,type:{type:String,default:"circular"}},setup(F,{slots:R}){var B=computed(()=>extend$2({color:F.color},getSizeStyle(F.size))),D=()=>{if(R.default){var G;return createVNode("span",{class:bem$r("text"),style:{fontSize:addUnit(F.textSize),color:(G=F.textColor)!=null?G:F.color}},[R.default()])}};return()=>{var{type:G,vertical:U}=F;return createVNode("div",{class:bem$r([G,{vertical:U}])},[createVNode("span",{class:bem$r("spinner",G),style:B.value},[G==="spinner"?SpinIcon:CircularIcon]),D()])}}}),Loading=withInstall(_Loading),[name$q,bem$q]=createNamespace("button"),_Button=defineComponent({name:name$q,props:extend$2({},routeProps,{text:String,icon:String,color:String,block:Boolean,plain:Boolean,round:Boolean,square:Boolean,loading:Boolean,hairline:Boolean,disabled:Boolean,iconPrefix:String,loadingSize:String,loadingText:String,loadingType:String,tag:{type:String,default:"button"},type:{type:String,default:"default"},size:{type:String,default:"normal"},nativeType:{type:String,default:"button"},iconPosition:{type:String,default:"left"}}),emits:["click"],setup(F,{emit:R,slots:B}){var D=useRoute(),G=()=>B.loading?B.loading():createVNode(Loading,{size:F.loadingSize,type:F.loadingType,class:bem$q("loading")},null),U=()=>{if(F.loading)return G();if(B.icon)return createVNode("div",{class:bem$q("icon")},[B.icon()]);if(F.icon)return createVNode(Icon,{name:F.icon,class:bem$q("icon"),classPrefix:F.iconPrefix},null)},W=()=>{var Q;if(F.loading?Q=F.loadingText:Q=B.default?B.default():F.text,Q)return createVNode("span",{class:bem$q("text")},[Q])},q=()=>{var{color:Q,plain:Z}=F;if(Q){var K={color:Z?Q:"white"};return Z||(K.background=Q),Q.includes("gradient")?K.border=0:K.borderColor=Q,K}},Y=Q=>{F.loading?Q.preventDefault():F.disabled||(R("click",Q),D())};return()=>{var{tag:Q,type:Z,size:K,block:ie,round:te,plain:ne,square:se,loading:re,disabled:ae,hairline:le,nativeType:ce,iconPosition:he}=F,pe=[bem$q([Z,K,{plain:ne,block:ie,round:te,square:se,loading:re,disabled:ae,hairline:le}]),{[BORDER_SURROUND]:le}];return createVNode(Q,{type:ce,class:pe,style:q(),disabled:ae,onClick:Y},{default:()=>[createVNode("div",{class:bem$q("content")},[he==="left"&&U(),W(),he==="right"&&U()])]})}}}),Button=withInstall(_Button),[name$p,bem$p]=createNamespace("action-bar-button"),_ActionBarButton=defineComponent({name:name$p,props:extend$2({},routeProps,{type:String,text:String,icon:String,color:String,loading:Boolean,disabled:Boolean}),setup(F,{slots:R}){var B=useRoute(),{parent:D,index:G}=useParent(ACTION_BAR_KEY),U=computed(()=>{if(D){var q=D.children[G.value-1];return!(q&&"isButton"in q)}}),W=computed(()=>{if(D){var q=D.children[G.value+1];return!(q&&"isButton"in q)}});return useExpose({isButton:!0}),()=>{var{type:q,icon:Y,text:Q,color:Z,loading:K,disabled:ie}=F;return createVNode(Button,{class:bem$p([q,{last:W.value,first:U.value}]),size:"large",type:q,icon:Y,color:Z,loading:K,disabled:ie,onClick:B},{default:()=>[R.default?R.default():Q]})}}}),ActionBarButton=withInstall(_ActionBarButton),popupSharedProps={show:Boolean,zIndex:[Number,String],overlay:truthProp,duration:[Number,String],teleport:[String,Object],lockScroll:truthProp,lazyRender:truthProp,overlayStyle:Object,overlayClass:unknownProp,transitionAppear:Boolean,closeOnClickOverlay:truthProp},popupSharedPropKeys=Object.keys(popupSharedProps),MIN_DISTANCE=10;function getDirection(F,R){return F>R&&F>MIN_DISTANCE?"horizontal":R>F&&R>MIN_DISTANCE?"vertical":""}function useTouch(){var F=ref(0),R=ref(0),B=ref(0),D=ref(0),G=ref(0),U=ref(0),W=ref(""),q=()=>W.value==="vertical",Y=()=>W.value==="horizontal",Q=()=>{B.value=0,D.value=0,G.value=0,U.value=0,W.value=""},Z=ie=>{Q(),F.value=ie.touches[0].clientX,R.value=ie.touches[0].clientY},K=ie=>{var te=ie.touches[0];B.value=te.clientX<0?0:te.clientX-F.value,D.value=te.clientY-R.value,G.value=Math.abs(B.value),U.value=Math.abs(D.value),W.value||(W.value=getDirection(G.value,U.value))};return{move:K,start:Z,reset:Q,startX:F,startY:R,deltaX:B,deltaY:D,offsetX:G,offsetY:U,direction:W,isVertical:q,isHorizontal:Y}}var totalLockCount=0,BODY_LOCK_CLASS="van-overflow-hidden";function useLockScroll(F,R){var B=useTouch(),D=Y=>{B.move(Y);var Q=B.deltaY.value>0?"10":"01",Z=getScrollParent$1(Y.target,F.value),{scrollHeight:K,offsetHeight:ie,scrollTop:te}=Z,ne="11";te===0?ne=ie>=K?"00":"01":te+ie>=K&&(ne="10"),ne!=="11"&&B.isVertical()&&!(parseInt(ne,2)&parseInt(Q,2))&&preventDefault(Y,!0)},G=()=>{document.addEventListener("touchstart",B.start),document.addEventListener("touchmove",D,{passive:!1}),totalLockCount||document.body.classList.add(BODY_LOCK_CLASS),totalLockCount++},U=()=>{totalLockCount&&(document.removeEventListener("touchstart",B.start),document.removeEventListener("touchmove",D),totalLockCount--,totalLockCount||document.body.classList.remove(BODY_LOCK_CLASS))},W=()=>{R()&&G()},q=()=>{R()&&U()};onMountedOrActivated(W),onDeactivated(q),onBeforeUnmount(q),watch(R,Y=>{Y?G():U()})}function useLazyRender(F){var R=ref(!1);return watch(F,B=>{B&&(R.value=B)},{immediate:!0}),B=>()=>R.value?B():null}var POPUP_TOGGLE_KEY=Symbol();function onPopupReopen(F){var R=inject(POPUP_TOGGLE_KEY,null);R&&watch(R,B=>{B&&F()})}var[name$o,bem$o]=createNamespace("overlay"),_Overlay=defineComponent({name:name$o,props:{show:Boolean,zIndex:[Number,String],duration:[Number,String],className:unknownProp,lockScroll:truthProp,customStyle:Object},setup(F,{slots:R}){var B=useLazyRender(()=>F.show),D=U=>{preventDefault(U,!0)},G=B(()=>{var U=extend$2(getZIndexStyle(F.zIndex),F.customStyle);return isDef$1(F.duration)&&(U.animationDuration=F.duration+"s"),withDirectives(createVNode("div",{style:U,class:[bem$o(),F.className],onTouchmove:F.lockScroll?D:noop$2},[R.default==null?void 0:R.default()]),[[vShow,F.show]])});return()=>createVNode(Transition,{name:"van-fade"},{default:()=>[G()]})}}),Overlay=withInstall(_Overlay),[name$n,bem$n]=createNamespace("popup"),globalZIndex=2e3,_Popup=defineComponent({name:name$n,inheritAttrs:!1,props:extend$2({},popupSharedProps,{round:Boolean,closeable:Boolean,transition:String,iconPrefix:String,closeOnPopstate:Boolean,safeAreaInsetBottom:Boolean,position:{type:String,default:"center"},closeIcon:{type:String,default:"cross"},closeIconPosition:{type:String,default:"top-right"}}),emits:["open","close","click","opened","closed","update:show","click-overlay","click-close-icon"],setup(F,{emit:R,attrs:B,slots:D}){var G,U,W=ref(),q=ref(),Y=useLazyRender(()=>F.show||!F.lazyRender),Q=computed(()=>{var pe={zIndex:W.value};if(isDef$1(F.duration)){var me=F.position==="center"?"animationDuration":"transitionDuration";pe[me]=F.duration+"s"}return pe}),Z=()=>{G||(F.zIndex!==void 0&&(globalZIndex=+F.zIndex),G=!0,W.value=++globalZIndex)},K=()=>{G&&(G=!1,R("update:show",!1))},ie=pe=>{R("click-overlay",pe),F.closeOnClickOverlay&&K()},te=()=>{if(F.overlay)return createVNode(Overlay,{show:F.show,class:F.overlayClass,zIndex:W.value,duration:F.duration,customStyle:F.overlayStyle,onClick:ie},{default:D["overlay-content"]})},ne=pe=>{R("click-close-icon",pe),K()},se=()=>{if(F.closeable)return createVNode(Icon,{role:"button",tabindex:0,name:F.closeIcon,class:bem$n("close-icon",F.closeIconPosition),classPrefix:F.iconPrefix,onClick:ne},null)},re=pe=>R("click",pe),ae=()=>R("opened"),le=()=>R("closed"),ce=Y(()=>{var{round:pe,position:me,safeAreaInsetBottom:fe}=F;return withDirectives(createVNode("div",mergeProps({ref:q,style:Q.value,class:bem$n({round:pe,[me]:me,"safe-area-inset-bottom":fe}),onClick:re},B),[D.default==null?void 0:D.default(),se()]),[[vShow,F.show]])}),he=()=>{var{position:pe,transition:me,transitionAppear:fe}=F,ge=pe==="center"?"van-fade":"van-popup-slide-"+pe;return createVNode(Transition,{name:me||ge,appear:fe,onAfterEnter:ae,onAfterLeave:le},{default:()=>[ce()]})};return watch(()=>F.show,pe=>{pe?(Z(),R("open")):(K(),R("close"))}),useExpose({popupRef:q}),useLockScroll(q,()=>F.show&&F.lockScroll),useEventListener("popstate",()=>{F.closeOnPopstate&&(K(),U=!1)}),onMounted(()=>{F.show&&Z()}),onActivated(()=>{U&&(R("update:show",!0),U=!1)}),onDeactivated(()=>{F.show&&(K(),U=!0)}),provide(POPUP_TOGGLE_KEY,()=>F.show),()=>F.teleport?createVNode(Teleport,{to:F.teleport},{default:()=>[te(),he()]}):createVNode(Fragment,null,[te(),he()])}}),Popup=withInstall(_Popup),[name$m,bem$m]=createNamespace("cell"),cellProps={icon:String,size:String,title:[Number,String],value:[Number,String],label:[Number,String],center:Boolean,isLink:Boolean,border:truthProp,required:Boolean,iconPrefix:String,valueClass:unknownProp,labelClass:unknownProp,titleClass:unknownProp,titleStyle:null,arrowDirection:String,clickable:{type:Boolean,default:null}},_Cell=defineComponent({name:name$m,props:extend$2({},cellProps,routeProps),setup(F,{slots:R}){var B=useRoute(),D=()=>{var Y=R.label||isDef$1(F.label);if(Y)return createVNode("div",{class:[bem$m("label"),F.labelClass]},[R.label?R.label():F.label])},G=()=>{if(R.title||isDef$1(F.title))return createVNode("div",{class:[bem$m("title"),F.titleClass],style:F.titleStyle},[R.title?R.title():createVNode("span",null,[F.title]),D()])},U=()=>{var Y=R.default||isDef$1(F.value);if(Y){var Q=R.title||isDef$1(F.title);return createVNode("div",{class:[bem$m("value",{alone:!Q}),F.valueClass]},[R.default?R.default():createVNode("span",null,[F.value])])}},W=()=>{if(R.icon)return R.icon();if(F.icon)return createVNode(Icon,{name:F.icon,class:bem$m("left-icon"),classPrefix:F.iconPrefix},null)},q=()=>{if(R["right-icon"])return R["right-icon"]();if(F.isLink){var Y=F.arrowDirection?"arrow-"+F.arrowDirection:"arrow";return createVNode(Icon,{name:Y,class:bem$m("right-icon")},null)}};return()=>{var Y,{size:Q,center:Z,border:K,isLink:ie,required:te}=F,ne=(Y=F.clickable)!=null?Y:ie,se={center:Z,required:te,clickable:ne,borderless:!K};return Q&&(se[Q]=!!Q),createVNode("div",{class:bem$m(se),role:ne?"button":void 0,tabindex:ne?0:void 0,onClick:B},[W(),G(),U(),q(),R.extra==null?void 0:R.extra()])}}}),Cell=withInstall(_Cell);function isEmptyValue(F){return Array.isArray(F)?!F.length:F===0?!1:!F}function runSyncRule(F,R){return!(R.required&&isEmptyValue(F)||R.pattern&&!R.pattern.test(String(F)))}function runRuleValidator(F,R){return new Promise(B=>{var D=R.validator(F,R);if(isPromise(D))return D.then(B);B(D)})}function getRuleMessage(F,R){var{message:B}=R;return isFunction$1(B)?B(F,R):B||""}function startComposing(F){F.target.composing=!0}function endComposing(F){var{target:R}=F;R.composing&&(R.composing=!1,trigger(R,"input"))}function resizeTextarea(F,R){F.style.height="auto";var B=F.scrollHeight;if(isObject$1(R)){var{maxHeight:D,minHeight:G}=R;D!==void 0&&(B=Math.min(B,D)),G!==void 0&&(B=Math.max(B,G))}B&&(F.style.height=B+"px")}function mapInputType(F){return F==="number"?{type:"text",inputmode:"decimal"}:F==="digit"?{type:"tel",inputmode:"numeric"}:{type:F}}var FORM_KEY=Symbol("van-form"),FIELD_KEY=Symbol("van-field");function useLinkField(F){var R=inject(FIELD_KEY,null);R&&!R.childFieldValue.value&&(R.childFieldValue.value=F,watch(F,()=>{R.resetValidation(),R.validateWithTrigger("onChange")}))}var[name$l,bem$l]=createNamespace("field"),fieldProps={formatter:Function,leftIcon:String,rightIcon:String,autofocus:Boolean,clearable:Boolean,maxlength:[Number,String],inputAlign:String,placeholder:String,errorMessage:String,error:{type:Boolean,default:null},disabled:{type:Boolean,default:null},readonly:{type:Boolean,default:null},clearIcon:{type:String,default:"clear"},modelValue:{type:[Number,String],default:""},clearTrigger:{type:String,default:"focus"},formatTrigger:{type:String,default:"onChange"}},_Field=defineComponent({name:name$l,props:extend$2({},cellProps,fieldProps,{rows:[Number,String],name:String,rules:Array,autosize:[Boolean,Object],labelWidth:[Number,String],labelClass:unknownProp,labelAlign:String,autocomplete:String,showWordLimit:Boolean,errorMessageAlign:String,type:{type:String,default:"text"},colon:{type:Boolean,default:null}}),emits:["blur","focus","clear","keypress","click-input","click-left-icon","click-right-icon","update:modelValue"],setup(F,{emit:R,slots:B}){var D=reactive({focused:!1,validateFailed:!1,validateMessage:""}),G=ref(),U=ref(),{parent:W}=useParent(FORM_KEY),q=()=>{var Ne;return String((Ne=F.modelValue)!=null?Ne:"")},Y=Ne=>{if(isDef$1(F[Ne]))return F[Ne];if(W&&isDef$1(W.props[Ne]))return W.props[Ne]},Q=computed(()=>{var Ne=Y("readonly");if(F.clearable&&!Ne){var Ie=q()!=="",_e=F.clearTrigger==="always"||F.clearTrigger==="focus"&&D.focused;return Ie&&_e}return!1}),Z=computed(()=>U.value&&B.input?U.value():F.modelValue),K=Ne=>Ne.reduce((Ie,_e)=>Ie.then(()=>{if(!D.validateFailed){var{value:Ve}=Z;if(_e.formatter&&(Ve=_e.formatter(Ve,_e)),!runSyncRule(Ve,_e)){D.validateFailed=!0,D.validateMessage=getRuleMessage(Ve,_e);return}if(_e.validator)return runRuleValidator(Ve,_e).then(qe=>{qe&&typeof qe=="string"?(D.validateFailed=!0,D.validateMessage=qe):qe===!1&&(D.validateFailed=!0,D.validateMessage=getRuleMessage(Ve,_e))})}}),Promise.resolve()),ie=()=>{D.validateFailed&&(D.validateFailed=!1,D.validateMessage="")},te=(Ne=F.rules)=>new Promise(Ie=>{ie(),Ne?K(Ne).then(()=>{D.validateFailed?Ie({name:F.name,message:D.validateMessage}):Ie()}):Ie()}),ne=Ne=>{if(W&&F.rules){var Ie=W.props.validateTrigger===Ne,_e=F.rules.filter(Ve=>Ve.trigger?Ve.trigger===Ne:Ie);_e.length&&te(_e)}},se=Ne=>{var{maxlength:Ie}=F;if(isDef$1(Ie)&&Ne.length>Ie){var _e=q();return _e&&_e.length===+Ie?_e:Ne.slice(0,+Ie)}return Ne},re=(Ne,Ie="onChange")=>{if(Ne=se(Ne),F.type==="number"||F.type==="digit"){var _e=F.type==="number";Ne=formatNumber(Ne,_e,_e)}F.formatter&&Ie===F.formatTrigger&&(Ne=F.formatter(Ne)),G.value&&G.value.value!==Ne&&(G.value.value=Ne),Ne!==F.modelValue&&R("update:modelValue",Ne)},ae=Ne=>{Ne.target.composing||re(Ne.target.value)},le=()=>{var Ne;return(Ne=G.value)==null?void 0:Ne.blur()},ce=()=>{var Ne;return(Ne=G.value)==null?void 0:Ne.focus()},he=Ne=>{D.focused=!0,R("focus",Ne);var Ie=Y("readonly");Ie&&le()},pe=Ne=>{D.focused=!1,re(q(),"onBlur"),R("blur",Ne),ne("onBlur"),resetScroll()},me=Ne=>R("click-input",Ne),fe=Ne=>R("click-left-icon",Ne),ge=Ne=>R("click-right-icon",Ne),Se=Ne=>{preventDefault(Ne),R("update:modelValue",""),R("clear",Ne)},Ee=computed(()=>{if(typeof F.error=="boolean")return F.error;if(W&&W.props.showError&&D.validateFailed)return!0}),ve=computed(()=>{var Ne=Y("labelWidth");if(Ne)return{width:addUnit(Ne)}}),xe=Ne=>{var Ie=13;if(Ne.keyCode===Ie){var _e=W&&W.props.submitOnEnter;!_e&&F.type!=="textarea"&&preventDefault(Ne),F.type==="search"&&le()}R("keypress",Ne)},Me=()=>{var Ne=G.value;F.type==="textarea"&&F.autosize&&Ne&&resizeTextarea(Ne,F.autosize)},ye=()=>{var Ne=Y("inputAlign");if(B.input)return createVNode("div",{class:bem$l("control",[Ne,"custom"]),onClick:me},[B.input()]);var Ie={ref:G,name:F.name,rows:F.rows!==void 0?+F.rows:void 0,class:bem$l("control",Ne),value:F.modelValue,disabled:Y("disabled"),readonly:Y("readonly"),autofocus:F.autofocus,placeholder:F.placeholder,autocomplete:F.autocomplete,onBlur:pe,onFocus:he,onInput:ae,onClick:me,onChange:endComposing,onKeypress:xe,onCompositionend:endComposing,onCompositionstart:startComposing};return F.type==="textarea"?createVNode("textarea",Ie,null):createVNode("input",mergeProps(mapInputType(F.type),Ie),null)},we=()=>{var Ne=B["left-icon"];if(F.leftIcon||Ne)return createVNode("div",{class:bem$l("left-icon"),onClick:fe},[Ne?Ne():createVNode(Icon,{name:F.leftIcon,classPrefix:F.iconPrefix},null)])},Re=()=>{var Ne=B["right-icon"];if(F.rightIcon||Ne)return createVNode("div",{class:bem$l("right-icon"),onClick:ge},[Ne?Ne():createVNode(Icon,{name:F.rightIcon,classPrefix:F.iconPrefix},null)])},Pe=()=>{if(F.showWordLimit&&F.maxlength){var Ne=q().length;return createVNode("div",{class:bem$l("word-limit")},[createVNode("span",{class:bem$l("word-num")},[Ne]),createTextVNode("/"),F.maxlength])}},Ae=()=>{if(!(W&&W.props.showErrorMessage===!1)){var Ne=F.errorMessage||D.validateMessage;if(Ne){var Ie=Y("errorMessageAlign");return createVNode("div",{class:bem$l("error-message",Ie)},[Ne])}}},Le=()=>{var Ne=Y("colon")?":":"";if(B.label)return[B.label(),Ne];if(F.label)return createVNode("span",null,[F.label+Ne])};return useExpose({blur:le,focus:ce,validate:te,formValue:Z,resetValidation:ie}),provide(FIELD_KEY,{childFieldValue:U,resetValidation:ie,validateWithTrigger:ne}),watch(()=>F.modelValue,()=>{re(q()),ie(),ne("onChange"),nextTick(Me)}),onMounted(()=>{re(q(),F.formatTrigger),nextTick(Me)}),()=>{var Ne=Y("disabled"),Ie=Y("labelAlign"),_e=Le(),Ve=we();return createVNode(Cell,{size:F.size,icon:F.leftIcon,class:bem$l({error:Ee.value,disabled:Ne,["label-"+Ie]:Ie,"min-height":F.type==="textarea"&&!F.autosize}),center:F.center,border:F.border,isLink:F.isLink,required:F.required,clickable:F.clickable,titleStyle:ve.value,valueClass:bem$l("value"),titleClass:[bem$l("label",Ie),F.labelClass],arrowDirection:F.arrowDirection},{default:()=>[createVNode("div",{class:bem$l("body")},[ye(),Q.value&&createVNode(Icon,{name:F.clearIcon,class:bem$l("clear"),onTouchstart:Se},null),Re(),B.button&&createVNode("div",{class:bem$l("button")},[B.button()])]),Pe(),Ae()],icon:Ve?()=>Ve:null,title:_e?()=>_e:null,extra:B.extra})}}}),Field=withInstall(_Field);function usePopupState(){var F=reactive({show:!1}),R=G=>{F.show=G},B=G=>{extend$2(F,G),nextTick(()=>R(!0))},D=()=>R(!1);return useExpose({open:B,close:D,toggle:R}),{open:B,close:D,state:F,toggle:R}}function mountComponent(F){var R=createApp(F),B=document.createElement("div");return document.body.appendChild(B),{instance:R.mount(B),unmount(){R.unmount(),document.body.removeChild(B)}}}var lockCount=0;function lockClick(F){F?(lockCount||document.body.classList.add("van-toast--unclickable"),lockCount++):lockCount&&(lockCount--,lockCount||document.body.classList.remove("van-toast--unclickable"))}var[name$k,bem$k]=createNamespace("toast"),VanToast=defineComponent({name:name$k,props:{icon:String,show:Boolean,overlay:Boolean,message:[Number,String],iconSize:[Number,String],className:unknownProp,iconPrefix:String,loadingType:String,forbidClick:Boolean,overlayClass:unknownProp,overlayStyle:Object,closeOnClick:Boolean,closeOnClickOverlay:Boolean,type:{type:String,default:"text"},duration:{type:Number,default:2e3},position:{type:String,default:"middle"},transition:{type:String,default:"van-fade"}},emits:["update:show"],setup(F,{emit:R}){var B,D=!1,G=()=>{var Z=F.show&&F.forbidClick;D!==Z&&(D=Z,lockClick(D))},U=Z=>R("update:show",Z),W=()=>{F.closeOnClick&&U(!1)},q=()=>{clearTimeout(B)},Y=()=>{var{icon:Z,type:K,iconSize:ie,iconPrefix:te,loadingType:ne}=F,se=Z||K==="success"||K==="fail";if(se)return createVNode(Icon,{name:Z||K,size:ie,class:bem$k("icon"),classPrefix:te},null);if(K==="loading")return createVNode(Loading,{class:bem$k("loading"),size:ie,type:ne},null)},Q=()=>{var{type:Z,message:K}=F;if(isDef$1(K)&&K!=="")return Z==="html"?createVNode("div",{class:bem$k("text"),innerHTML:String(K)},null):createVNode("div",{class:bem$k("text")},[K])};return watch(()=>[F.show,F.forbidClick],G),watch(()=>[F.show,F.type,F.message,F.duration],()=>{q(),F.show&&F.duration>0&&(B=setTimeout(()=>{U(!1)},F.duration))}),onMounted(G),onUnmounted(G),()=>createVNode(Popup,mergeProps({show:F.show,class:[bem$k([F.position,{[F.type]:!F.icon}]),F.className],overlay:F.overlay,lockScroll:!1,transition:F.transition,overlayClass:F.overlayClass,overlayStyle:F.overlayStyle,closeOnClickOverlay:F.closeOnClickOverlay,onClick:W,onClosed:q},{"onUpdate:show":U}),{default:()=>[Y(),Q()]})}}),defaultOptions={icon:"",type:"text",message:"",className:"",overlay:!1,onClose:void 0,onOpened:void 0,duration:2e3,teleport:"body",iconSize:void 0,iconPrefix:void 0,position:"middle",transition:"van-fade",forbidClick:!1,loadingType:void 0,overlayClass:"",overlayStyle:void 0,closeOnClick:!1,closeOnClickOverlay:!1},queue$1=[],allowMultiple=!1,currentOptions=extend$2({},defaultOptions),defaultOptionsMap={};function parseOptions(F){return isObject$1(F)?F:{message:F}}function createInstance(){var{instance:F,unmount:R}=mountComponent({setup(){var B=ref(""),{open:D,state:G,close:U,toggle:W}=usePopupState(),q=()=>{allowMultiple&&(queue$1=queue$1.filter(Q=>Q!==F),R())},Y=()=>{var Q={onClosed:q,"onUpdate:show":W};return B.value&&(Q.message=B.value),createVNode(VanToast,mergeProps(G,Q),null)};return getCurrentInstance().render=Y,{open:D,clear:U,message:B}}});return F}function getInstance(){if(!queue$1.length||allowMultiple){var F=createInstance();queue$1.push(F)}return queue$1[queue$1.length-1]}function Toast(F={}){if(!inBrowser$1)return{};var R=getInstance(),B=parseOptions(F);return R.open(extend$2({},currentOptions,defaultOptionsMap[B.type||currentOptions.type],B)),R}var createMethod=F=>R=>Toast(extend$2({type:F},parseOptions(R)));Toast.loading=createMethod("loading");Toast.success=createMethod("success");Toast.fail=createMethod("fail");Toast.clear=F=>{queue$1.length&&(F?(queue$1.forEach(R=>{R.clear()}),queue$1=[]):allowMultiple?queue$1.shift().clear():queue$1[0].clear())};function setDefaultOptions(F,R){typeof F=="string"?defaultOptionsMap[F]=R:extend$2(currentOptions,F)}Toast.setDefaultOptions=setDefaultOptions;Toast.resetDefaultOptions=F=>{typeof F=="string"?defaultOptionsMap[F]=null:(currentOptions=extend$2({},defaultOptions),defaultOptionsMap={})};Toast.allowMultiple=(F=!0)=>{allowMultiple=F};Toast.install=F=>{F.use(withInstall(VanToast)),F.config.globalProperties.$toast=Toast};function callInterceptor(F){var{interceptor:R,args:B,done:D,canceled:G}=F;if(R){var U=R.apply(null,B||[]);isPromise(U)?U.then(W=>{W?D():G&&G()}).catch(noop$2):U?D():G&&G()}else D()}var[name$j,bem$j,t$1]=createNamespace("dialog"),popupKeys=[...popupSharedPropKeys,"transition","closeOnPopstate"],VanDialog=defineComponent({name:name$j,props:extend$2({},popupSharedProps,{title:String,theme:String,width:[Number,String],message:[String,Function],callback:Function,allowHtml:Boolean,className:unknownProp,beforeClose:Function,messageAlign:String,closeOnPopstate:truthProp,showCancelButton:Boolean,cancelButtonText:String,cancelButtonColor:String,confirmButtonText:String,confirmButtonColor:String,showConfirmButton:truthProp,closeOnClickOverlay:Boolean,transition:{type:String,default:"van-dialog-bounce"}}),emits:["confirm","cancel","update:show"],setup(F,{emit:R,slots:B}){var D=reactive({confirm:!1,cancel:!1}),G=se=>R("update:show",se),U=se=>{G(!1),F.callback&&F.callback(se)},W=se=>()=>{!F.show||(R(se),F.beforeClose?(D[se]=!0,callInterceptor({interceptor:F.beforeClose,args:[se],done(){U(se),D[se]=!1},canceled(){D[se]=!1}})):U(se))},q=W("cancel"),Y=W("confirm"),Q=()=>{var se=B.title?B.title():F.title;if(se)return createVNode("div",{class:bem$j("header",{isolated:!F.message&&!B.default})},[se])},Z=se=>{var{message:re,allowHtml:ae,messageAlign:le}=F,ce=bem$j("message",{"has-title":se,[le]:le}),he=isFunction$1(re)?re():re;return ae&&typeof he=="string"?createVNode("div",{class:ce,innerHTML:he},null):createVNode("div",{class:ce},[he])},K=()=>{if(B.default)return createVNode("div",{class:bem$j("content")},[B.default()]);var{title:se,message:re,allowHtml:ae}=F;if(re){var le=!!(se||B.title);return createVNode("div",{key:ae?1:0,class:bem$j("content",{isolated:!le})},[Z(le)])}},ie=()=>createVNode("div",{class:[BORDER_TOP,bem$j("footer")]},[F.showCancelButton&&createVNode(Button,{size:"large",text:F.cancelButtonText||t$1("cancel"),class:bem$j("cancel"),style:{color:F.cancelButtonColor},loading:D.cancel,onClick:q},null),F.showConfirmButton&&createVNode(Button,{size:"large",text:F.confirmButtonText||t$1("confirm"),class:[bem$j("confirm"),{[BORDER_LEFT]:F.showCancelButton}],style:{color:F.confirmButtonColor},loading:D.confirm,onClick:Y},null)]),te=()=>createVNode(ActionBar,{class:bem$j("footer")},{default:()=>[F.showCancelButton&&createVNode(ActionBarButton,{type:"warning",text:F.cancelButtonText||t$1("cancel"),class:bem$j("cancel"),color:F.cancelButtonColor,loading:D.cancel,onClick:q},null),F.showConfirmButton&&createVNode(ActionBarButton,{type:"danger",text:F.confirmButtonText||t$1("confirm"),class:bem$j("confirm"),color:F.confirmButtonColor,loading:D.confirm,onClick:Y},null)]}),ne=()=>B.footer?B.footer():F.theme==="round-button"?te():ie();return()=>{var{width:se,title:re,theme:ae,message:le,className:ce}=F;return createVNode(Popup,mergeProps({role:"dialog",class:[bem$j([ae]),ce],style:{width:addUnit(se)},"aria-labelledby":re||le},pick(F,popupKeys),{"onUpdate:show":G}),{default:()=>[Q(),K(),ne()]})}}}),instance$1;function initInstance(){var F={setup(){var{state:R,toggle:B}=usePopupState();return()=>createVNode(VanDialog,mergeProps(R,{"onUpdate:show":B}),null)}};({instance:instance$1}=mountComponent(F))}function Dialog(F){return inBrowser$1?new Promise((R,B)=>{instance$1||initInstance(),instance$1.open(extend$2({},Dialog.currentOptions,F,{callback:D=>{(D==="confirm"?R:B)(D)}}))}):Promise.resolve()}Dialog.defaultOptions={title:"",width:"",theme:null,message:"",overlay:!0,callback:null,teleport:"body",className:"",allowHtml:!1,lockScroll:!0,transition:"van-dialog-bounce",beforeClose:null,overlayClass:"",overlayStyle:void 0,messageAlign:"",cancelButtonText:"",cancelButtonColor:null,confirmButtonText:"",confirmButtonColor:null,showConfirmButton:!0,showCancelButton:!1,closeOnPopstate:!0,closeOnClickOverlay:!1};Dialog.currentOptions=extend$2({},Dialog.defaultOptions);Dialog.alert=Dialog;Dialog.confirm=F=>Dialog(extend$2({showCancelButton:!0},F));Dialog.close=()=>{instance$1&&instance$1.toggle(!1)};Dialog.setDefaultOptions=F=>{extend$2(Dialog.currentOptions,F)};Dialog.resetDefaultOptions=()=>{Dialog.currentOptions=extend$2({},Dialog.defaultOptions)};Dialog.install=F=>{F.use(withInstall(VanDialog)),F.config.globalProperties.$dialog=Dialog};Dialog.Component=withInstall(VanDialog);var[name$i,bem$i]=createNamespace("switch"),_Switch=defineComponent({name:name$i,props:{size:[Number,String],loading:Boolean,disabled:Boolean,modelValue:unknownProp,activeColor:String,inactiveColor:String,activeValue:{type:unknownProp,default:!0},inactiveValue:{type:unknownProp,default:!1}},emits:["change","update:modelValue"],setup(F,{emit:R}){var B=()=>F.modelValue===F.activeValue,D=()=>{if(!F.disabled&&!F.loading){var U=B()?F.inactiveValue:F.activeValue;R("update:modelValue",U),R("change",U)}},G=()=>{if(F.loading){var U=B()?F.activeColor:F.inactiveColor;return createVNode(Loading,{class:bem$i("loading"),color:U},null)}};return useLinkField(()=>F.modelValue),()=>{var{size:U,loading:W,disabled:q,activeColor:Y,inactiveColor:Q}=F,Z=B(),K={fontSize:addUnit(U),backgroundColor:Z?Y:Q};return createVNode("div",{role:"switch",class:bem$i({on:Z,loading:W,disabled:q}),style:K,"aria-checked":Z,onClick:D},[createVNode("div",{class:bem$i("node")},[G()])])}}}),Switch=withInstall(_Switch),[name$h,bem$h]=createNamespace("radio-group"),RADIO_KEY=Symbol(name$h),props$4={disabled:Boolean,iconSize:[Number,String],direction:String,modelValue:unknownProp,checkedColor:String},_RadioGroup=defineComponent({name:name$h,props:props$4,emits:["change","update:modelValue"],setup(F,{emit:R,slots:B}){var{linkChildren:D}=useChildren(RADIO_KEY),G=U=>R("update:modelValue",U);return watch(()=>F.modelValue,U=>R("change",U)),D({props:F,updateValue:G}),useLinkField(()=>F.modelValue),()=>createVNode("div",{class:bem$h([F.direction]),role:"radiogroup"},[B.default==null?void 0:B.default()])}}),RadioGroup=withInstall(_RadioGroup),checkerProps={name:unknownProp,disabled:Boolean,iconSize:[Number,String],modelValue:unknownProp,checkedColor:String,labelPosition:String,labelDisabled:Boolean,shape:{type:String,default:"round"}},Checker=defineComponent({props:extend$2({},checkerProps,{role:String,parent:Object,checked:Boolean,bindGroup:truthProp,bem:{type:Function,required:!0}}),emits:["click","toggle"],setup(F,{emit:R,slots:B}){var D=ref(),G=K=>{if(F.parent&&F.bindGroup)return F.parent.props[K]},U=computed(()=>G("disabled")||F.disabled),W=computed(()=>G("direction")),q=computed(()=>{var K=F.checkedColor||G("checkedColor");if(K&&F.checked&&!U.value)return{borderColor:K,backgroundColor:K}}),Y=K=>{var{target:ie}=K,te=D.value,ne=te===ie||te.contains(ie);!U.value&&(ne||!F.labelDisabled)&&R("toggle"),R("click",K)},Q=()=>{var{bem:K,shape:ie,checked:te}=F,ne=F.iconSize||G("iconSize");return createVNode("div",{ref:D,class:K("icon",[ie,{disabled:U.value,checked:te}]),style:{fontSize:addUnit(ne)}},[B.icon?B.icon({checked:te,disabled:U.value}):createVNode(Icon,{name:"success",style:q.value},null)])},Z=()=>{if(B.default)return createVNode("span",{class:F.bem("label",[F.labelPosition,{disabled:U.value}])},[B.default()])};return()=>{var K=[Q()];return F.labelPosition==="left"?K.unshift(Z()):K.push(Z()),createVNode("div",{role:F.role,class:F.bem([{disabled:U.value,"label-disabled":F.labelDisabled},W.value]),tabindex:U.value?-1:0,"aria-checked":F.checked,onClick:Y},[K])}}}),[name$g,bem$g]=createNamespace("radio"),_Radio=defineComponent({name:name$g,props:checkerProps,emits:["update:modelValue"],setup(F,{emit:R,slots:B}){var{parent:D}=useParent(RADIO_KEY),G=()=>{var W=D?D.props.modelValue:F.modelValue;return W===F.name},U=()=>{D?D.updateValue(F.name):R("update:modelValue",F.name)};return()=>createVNode(Checker,mergeProps({bem:bem$g,role:"radio",parent:D,checked:G(),onToggle:U},F),pick(B,["default","icon"]))}}),Radio=withInstall(_Radio);function useRefs(){var F=ref([]);onBeforeUpdate(()=>{F.value=[]});var R=B=>D=>{F.value[B]=D};return[F,R]}var rafId;function scrollLeftTo(F,R,B){cancelRaf(rafId);var D=0,G=F.scrollLeft,U=B===0?1:Math.round(B*1e3/16);function W(){F.scrollLeft+=(R-G)/U,++DR||!U&&GR?raf$2(Y):D&&raf$2(D)}Y()}function useVisibilityChange(F,R){if(!(!inBrowser$1||!window.IntersectionObserver)){var B=new IntersectionObserver(U=>{R(U[0].intersectionRatio>0)},{root:document.body}),D=()=>{F.value&&B.observe(F.value)},G=()=>{F.value&&B.unobserve(F.value)};onDeactivated(G),onBeforeUnmount(G),onMountedOrActivated(D)}}var[name$f,bem$f]=createNamespace("sticky"),_Sticky=defineComponent({name:name$f,props:{zIndex:[Number,String],container:Object,offsetTop:{type:[Number,String],default:0},offsetBottom:{type:[Number,String],default:0},position:{type:String,default:"top"}},emits:["scroll","change"],setup(F,{emit:R,slots:B}){var D=ref(),G=useScrollParent(D),U=reactive({fixed:!1,width:0,height:0,transform:0}),W=computed(()=>unitToPx(F.position==="top"?F.offsetTop:F.offsetBottom)),q=computed(()=>{var{fixed:K,height:ie,width:te}=U;if(K)return{width:te+"px",height:ie+"px"}}),Y=computed(()=>{if(!!U.fixed){var K=extend$2(getZIndexStyle(F.zIndex),{width:U.width+"px",height:U.height+"px",[F.position]:W.value+"px"});return U.transform&&(K.transform="translate3d(0, "+U.transform+"px, 0)"),K}}),Q=K=>R("scroll",{scrollTop:K,isFixed:U.fixed}),Z=()=>{if(!(!D.value||isHidden(D))){var{container:K,position:ie}=F,te=useRect(D),ne=getScrollTop(window);if(U.width=te.width,U.height=te.height,ie==="top")if(K){var se=useRect(K),re=se.bottom-W.value-U.height;U.fixed=W.value>te.top&&se.bottom>0,U.transform=re<0?re:0}else U.fixed=W.value>te.top;else{var{clientHeight:ae}=document.documentElement;if(K){var le=useRect(K),ce=ae-le.top-W.value-U.height;U.fixed=ae-W.valuele.top,U.transform=ce<0?-ce:0}else U.fixed=ae-W.valueU.fixed,K=>R("change",K)),useEventListener("scroll",Z,{target:G}),useVisibilityChange(D,Z),()=>createVNode("div",{ref:D,style:q.value},[createVNode("div",{class:bem$f({fixed:U.fixed}),style:Y.value},[B.default==null?void 0:B.default()])])}}),Sticky=withInstall(_Sticky),[name$e,bem$e]=createNamespace("tab"),TabsTitle=defineComponent({name:name$e,props:{dot:Boolean,type:String,color:String,title:String,badge:[Number,String],isActive:Boolean,disabled:Boolean,scrollable:Boolean,activeColor:String,renderTitle:Function,inactiveColor:String},setup(F){var R=computed(()=>{var D={},{type:G,color:U,disabled:W,isActive:q,activeColor:Y,inactiveColor:Q}=F,Z=G==="card";U&&Z&&(D.borderColor=U,W||(q?D.backgroundColor=U:D.color=U));var K=q?Y:Q;return K&&(D.color=K),D}),B=()=>{var D=createVNode("span",{class:bem$e("text",{ellipsis:!F.scrollable})},[F.renderTitle?F.renderTitle():F.title]);return F.dot||isDef$1(F.badge)&&F.badge!==""?createVNode(Badge,{dot:F.dot,content:F.badge},{default:()=>[D]}):D};return()=>createVNode("div",{role:"tab",class:[bem$e({active:F.isActive,disabled:F.disabled})],style:R.value,"aria-selected":F.isActive},[B()])}}),[name$d,bem$d]=createNamespace("swipe"),SWIPE_KEY=Symbol(name$d),props$3={loop:truthProp,width:[Number,String],height:[Number,String],vertical:Boolean,touchable:truthProp,lazyRender:Boolean,indicatorColor:String,showIndicators:truthProp,stopPropagation:truthProp,autoplay:{type:[Number,String],default:0},duration:{type:[Number,String],default:500},initialSwipe:{type:[Number,String],default:0}},_Swipe=defineComponent({name:name$d,props:props$3,emits:["change"],setup(F,{emit:R,slots:B}){var D=ref(),G=reactive({rect:null,width:0,height:0,offset:0,active:0,swiping:!1}),U=useTouch(),W=useWindowSize(),{children:q,linkChildren:Y}=useChildren(SWIPE_KEY),Q=computed(()=>q.length),Z=computed(()=>G[F.vertical?"height":"width"]),K=computed(()=>F.vertical?U.deltaY.value:U.deltaX.value),ie=computed(()=>{if(G.rect){var Ne=F.vertical?G.rect.height:G.rect.width;return Ne-Z.value*Q.value}return 0}),te=computed(()=>Math.ceil(Math.abs(ie.value)/Z.value)),ne=computed(()=>Q.value*Z.value),se=computed(()=>(G.active+Q.value)%Q.value),re=computed(()=>{var Ne=F.vertical?"vertical":"horizontal";return U.direction.value===Ne}),ae=computed(()=>{var Ne={transitionDuration:(G.swiping?0:F.duration)+"ms",transform:"translate"+(F.vertical?"Y":"X")+"("+G.offset+"px)"};if(Z.value){var Ie=F.vertical?"height":"width",_e=F.vertical?"width":"height";Ne[Ie]=ne.value+"px",Ne[_e]=F[_e]?F[_e]+"px":""}return Ne}),le=Ne=>{var{active:Ie}=G;return Ne?F.loop?clamp(Ie+Ne,-1,Q.value):clamp(Ie+Ne,0,te.value):Ie},ce=(Ne,Ie=0)=>{var _e=Ne*Z.value;F.loop||(_e=Math.min(_e,-ie.value));var Ve=Ie-_e;return F.loop||(Ve=clamp(Ve,ie.value,0)),Ve},he=({pace:Ne=0,offset:Ie=0,emitChange:_e})=>{if(!(Q.value<=1)){var{active:Ve}=G,qe=le(Ne),Ge=ce(qe,Ie);if(F.loop){if(q[0]&&Ge!==ie.value){var He=Ge0;q[Q.value-1].setOffset(Qe?-ne.value:0)}}G.active=qe,G.offset=Ge,_e&&qe!==Ve&&R("change",se.value)}},pe=()=>{G.swiping=!0,G.active<=-1?he({pace:Q.value}):G.active>=Q.value&&he({pace:-Q.value})},me=()=>{pe(),U.reset(),doubleRaf(()=>{G.swiping=!1,he({pace:-1,emitChange:!0})})},fe=()=>{pe(),U.reset(),doubleRaf(()=>{G.swiping=!1,he({pace:1,emitChange:!0})})},ge,Se=()=>clearTimeout(ge),Ee=()=>{Se(),F.autoplay>0&&Q.value>1&&(ge=setTimeout(()=>{fe(),Ee()},+F.autoplay))},ve=(Ne=+F.initialSwipe)=>{if(!!D.value){if(!isHidden(D)){var Ie,_e,Ve={width:D.value.offsetWidth,height:D.value.offsetHeight};G.rect=Ve,G.width=+((Ie=F.width)!=null?Ie:Ve.width),G.height=+((_e=F.height)!=null?_e:Ve.height)}Q.value&&(Ne=Math.min(Q.value-1,Ne)),G.active=Ne,G.swiping=!0,G.offset=ce(Ne),q.forEach(qe=>{qe.setOffset(0)})}},xe=()=>ve(G.active),Me,ye=Ne=>{!F.touchable||(U.start(Ne),Me=Date.now(),Se(),pe())},we=Ne=>{F.touchable&&G.swiping&&(U.move(Ne),re.value&&(preventDefault(Ne,F.stopPropagation),he({offset:K.value})))},Re=()=>{if(!(!F.touchable||!G.swiping)){var Ne=Date.now()-Me,Ie=K.value/Ne,_e=Math.abs(Ie)>.25||Math.abs(K.value)>Z.value/2;if(_e&&re.value){var Ve=F.vertical?U.offsetY.value:U.offsetX.value,qe=0;F.loop?qe=Ve>0?K.value>0?-1:1:0:qe=-Math[K.value>0?"ceil":"floor"](K.value/Z.value),he({pace:qe,emitChange:!0})}else K.value&&he({pace:0});G.swiping=!1,Ee()}},Pe=(Ne,Ie={})=>{pe(),U.reset(),doubleRaf(()=>{var _e;F.loop&&Ne===Q.value?_e=G.active===0?0:Ne:_e=Ne%Q.value,Ie.immediate?doubleRaf(()=>{G.swiping=!1}):G.swiping=!1,he({pace:_e-G.active,emitChange:!0})})},Ae=(Ne,Ie)=>{var _e=Ie===se.value,Ve=_e?{backgroundColor:F.indicatorColor}:void 0;return createVNode("i",{style:Ve,class:bem$d("indicator",{active:_e})},null)},Le=()=>{if(B.indicator)return B.indicator({active:se.value});if(F.showIndicators&&Q.value>1)return createVNode("div",{class:bem$d("indicators",{vertical:F.vertical})},[Array(Q.value).fill("").map(Ae)])};return useExpose({prev:me,next:fe,state:G,resize:xe,swipeTo:Pe}),Y({size:Z,props:F,count:Q,activeIndicator:se}),watch(()=>F.initialSwipe,Ne=>ve(+Ne)),watch(Q,()=>ve(G.active)),watch([Q,()=>F.autoplay],Ee),watch([W.width,W.height],xe),watch(usePageVisibility(),Ne=>{Ne==="visible"?Ee():Se()}),onMounted(ve),onActivated(()=>ve(G.active)),onPopupReopen(()=>ve(G.active)),onDeactivated(Se),onBeforeUnmount(Se),()=>createVNode("div",{ref:D,class:bem$d()},[createVNode("div",{style:ae.value,class:bem$d("track",{vertical:F.vertical}),onTouchstart:ye,onTouchmove:we,onTouchend:Re,onTouchcancel:Re},[B.default==null?void 0:B.default()]),Le()])}}),Swipe=withInstall(_Swipe),[name$c,bem$c]=createNamespace("tabs"),TabsContent=defineComponent({name:name$c,props:{inited:Boolean,animated:Boolean,swipeable:Boolean,lazyRender:Boolean,count:{type:Number,required:!0},duration:{type:[Number,String],required:!0},currentIndex:{type:Number,required:!0}},emits:["change"],setup(F,{emit:R,slots:B}){var D=ref(),G=q=>R("change",q),U=()=>{var q=B.default==null?void 0:B.default();return F.animated||F.swipeable?createVNode(Swipe,{ref:D,loop:!1,class:bem$c("track"),duration:+F.duration*1e3,touchable:F.swipeable,lazyRender:F.lazyRender,showIndicators:!1,onChange:G},{default:()=>[q]}):q},W=q=>{var Y=D.value;Y&&Y.state.active!==q&&Y.swipeTo(q,{immediate:!F.inited})};return watch(()=>F.currentIndex,W),onMounted(()=>{W(F.currentIndex)}),()=>createVNode("div",{class:bem$c("content",{animated:F.animated||F.swipeable})},[U()])}}),[name$b,bem$b]=createNamespace("tabs"),TABS_KEY=Symbol(name$b),props$2={color:String,border:Boolean,sticky:Boolean,animated:Boolean,ellipsis:truthProp,swipeable:Boolean,scrollspy:Boolean,background:String,lazyRender:truthProp,lineWidth:[Number,String],lineHeight:[Number,String],beforeChange:Function,titleActiveColor:String,titleInactiveColor:String,type:{type:String,default:"line"},active:{type:[Number,String],default:0},duration:{type:[Number,String],default:.3},offsetTop:{type:[Number,String],default:0},swipeThreshold:{type:[Number,String],default:5}},_Tabs=defineComponent({name:name$b,props:props$2,emits:["click","change","scroll","disabled","rendered","update:active"],setup(F,{emit:R,slots:B}){var D,G,U,W=ref(),q=ref(),Y=ref(),Q=useWindowSize(),Z=useScrollParent(W),[K,ie]=useRefs(),{children:te,linkChildren:ne}=useChildren(TABS_KEY),se=reactive({inited:!1,position:"",lineStyle:{},currentIndex:-1}),re=computed(()=>te.length>F.swipeThreshold||!F.ellipsis),ae=computed(()=>({borderColor:F.color,background:F.background})),le=(Ie,_e)=>{var Ve;return(Ve=Ie.name)!=null?Ve:_e},ce=computed(()=>{var Ie=te[se.currentIndex];if(Ie)return le(Ie,se.currentIndex)}),he=computed(()=>unitToPx(F.offsetTop)),pe=computed(()=>F.sticky?he.value+D:0),me=Ie=>{var _e=q.value,Ve=K.value;if(!(!re.value||!_e||!Ve||!Ve[se.currentIndex])){var qe=Ve[se.currentIndex].$el,Ge=qe.offsetLeft-(_e.offsetWidth-qe.offsetWidth)/2;scrollLeftTo(_e,Ge,Ie?0:+F.duration)}},fe=()=>{var Ie=se.inited;nextTick(()=>{var _e=K.value;if(!(!_e||!_e[se.currentIndex]||F.type!=="line"||isHidden(W.value))){var Ve=_e[se.currentIndex].$el,{lineWidth:qe,lineHeight:Ge}=F,He=Ve.offsetLeft+Ve.offsetWidth/2,Qe={width:addUnit(qe),backgroundColor:F.color,transform:"translateX("+He+"px) translateX(-50%)"};if(Ie&&(Qe.transitionDuration=F.duration+"s"),isDef$1(Ge)){var We=addUnit(Ge);Qe.height=We,Qe.borderRadius=We}se.lineStyle=Qe}})},ge=Ie=>{for(var _e=Ie=0&&Ie{var _e=ge(Ie);if(!!isDef$1(_e)){var Ve=te[_e],qe=le(Ve,_e),Ge=se.currentIndex!==null;se.currentIndex=_e,qe!==F.active&&(R("update:active",qe),Ge&&R("change",qe,Ve.title))}},Ee=Ie=>{var _e=te.find((qe,Ge)=>le(qe,Ge)===Ie),Ve=_e?te.indexOf(_e):0;Se(Ve)},ve=(Ie=!1)=>{if(F.scrollspy){var _e=te[se.currentIndex].$el;if(_e&&Z.value){var Ve=getElementTop(_e,Z.value)-pe.value;G=!0,scrollTopTo(Z.value,Ve,Ie?0:+F.duration,()=>{G=!1})}}},xe=(Ie,_e)=>{var{title:Ve,disabled:qe}=te[_e],Ge=le(te[_e],_e);qe?R("disabled",Ge,Ve):(callInterceptor({interceptor:F.beforeChange,args:[Ge],done:()=>{Se(_e),ve()}}),R("click",Ge,Ve),route(Ie))},Me=Ie=>{U=Ie.isFixed,R("scroll",Ie)},ye=Ie=>{nextTick(()=>{Ee(Ie),ve(!0)})},we=()=>{for(var Ie=0;Iepe.value)return Ie===0?0:Ie-1}return te.length-1},Re=()=>{if(F.scrollspy&&!G){var Ie=we();Se(Ie)}},Pe=()=>te.map((Ie,_e)=>createVNode(TabsTitle,{ref:ie(_e),dot:Ie.dot,type:F.type,badge:Ie.badge,title:Ie.title,color:F.color,style:Ie.titleStyle,class:Ie.titleClass,isActive:_e===se.currentIndex,disabled:Ie.disabled,scrollable:re.value,renderTitle:Ie.$slots.title,activeColor:F.titleActiveColor,inactiveColor:F.titleInactiveColor,onClick:()=>{xe(Ie,_e)}},null)),Ae=()=>{var Ie,_e,{type:Ve,border:qe}=F;return createVNode("div",{ref:Y,class:[bem$b("wrap",{scrollable:re.value}),{[BORDER_TOP_BOTTOM]:Ve==="line"&&qe}]},[createVNode("div",{ref:q,role:"tablist",class:bem$b("nav",[Ve,{complete:re.value}]),style:ae.value},[(Ie=B["nav-left"])==null?void 0:Ie.call(B),Pe(),Ve==="line"&&createVNode("div",{class:bem$b("line"),style:se.lineStyle},null),(_e=B["nav-right"])==null?void 0:_e.call(B)])])};watch([()=>F.color,Q.width],fe),watch(()=>F.active,Ie=>{Ie!==ce.value&&Ee(Ie)}),watch(()=>te.length,()=>{se.inited&&(Ee(F.active),fe(),nextTick(()=>{me(!0)}))}),watch(()=>se.currentIndex,()=>{me(),fe(),U&&!F.scrollspy&&setRootScrollTop(Math.ceil(getElementTop(W.value)-he.value))});var Le=()=>{Ee(F.active),nextTick(()=>{se.inited=!0,D=getVisibleHeight(Y.value),me(!0)})},Ne=(Ie,_e)=>R("rendered",Ie,_e);return useExpose({resize:fe,scrollTo:ye}),onActivated(fe),onPopupReopen(fe),onMountedOrActivated(Le),useEventListener("scroll",Re,{target:Z}),ne({props:F,setLine:fe,onRendered:Ne,currentName:ce,scrollIntoView:me}),()=>createVNode("div",{ref:W,class:bem$b([F.type])},[F.sticky?createVNode(Sticky,{container:W.value,offsetTop:he.value,onScroll:Me},{default:()=>[Ae()]}):Ae(),createVNode(TabsContent,{count:te.length,inited:se.inited,animated:F.animated,duration:F.duration,swipeable:F.swipeable,lazyRender:F.lazyRender,currentIndex:se.currentIndex,onChange:Se},{default:()=>[B.default==null?void 0:B.default()]})])}}),TAB_STATUS_KEY=Symbol();function useTabStatus(){return inject(TAB_STATUS_KEY,null)}var[name$a,bem$a]=createNamespace("swipe-item"),_SwipeItem=defineComponent({name:name$a,setup(F,{slots:R}){var B,D=reactive({offset:0,inited:!1,mounted:!1}),{parent:G,index:U}=useParent(SWIPE_KEY);if(!!G){var W=computed(()=>{var Q={},{vertical:Z}=G.props;return G.size.value&&(Q[Z?"height":"width"]=G.size.value+"px"),D.offset&&(Q.transform="translate"+(Z?"Y":"X")+"("+D.offset+"px)"),Q}),q=computed(()=>{var{loop:Q,lazyRender:Z}=G.props;if(!Z||B)return!0;if(!D.mounted)return!1;var K=G.activeIndicator.value,ie=G.count.value-1,te=K===0&&Q?ie:K-1,ne=K===ie&&Q?0:K+1;return B=U.value===K||U.value===te||U.value===ne,B}),Y=Q=>{D.offset=Q};return onMounted(()=>{nextTick(()=>{D.mounted=!0})}),useExpose({setOffset:Y}),()=>createVNode("div",{class:bem$a(),style:W.value},[q.value?R.default==null?void 0:R.default():null])}}}),SwipeItem=withInstall(_SwipeItem),[name$9,bem$9]=createNamespace("tab"),_Tab=defineComponent({name:name$9,props:extend$2({},routeProps,{dot:Boolean,name:[Number,String],badge:[Number,String],title:String,disabled:Boolean,titleClass:unknownProp,titleStyle:[String,Object]}),setup(F,{slots:R}){var B=ref(!1),{parent:D,index:G}=useParent(TABS_KEY);if(!!D){var U=()=>{var Y;return(Y=F.name)!=null?Y:G.value},W=()=>{B.value=!0,D.props.lazyRender&&nextTick(()=>{D.onRendered(U(),F.title)})},q=computed(()=>{var Y=U()===D.currentName.value;return Y&&!B.value&&W(),Y});return watch(()=>F.title,()=>{D.setLine(),D.scrollIntoView()}),provide(TAB_STATUS_KEY,q),()=>{var{animated:Y,swipeable:Q,scrollspy:Z,lazyRender:K}=D.props;if(!(!R.default&&!Y)){var ie=Z||q.value;if(Y||Q)return createVNode(SwipeItem,{role:"tabpanel","aria-hidden":!q.value,class:bem$9("pane-wrapper",{inactive:!q.value})},{default:()=>[createVNode("div",{class:bem$9("pane")},[R.default==null?void 0:R.default()])]});var te=B.value||Z||!K,ne=te?R.default==null?void 0:R.default():null;return withDirectives(createVNode("div",{role:"tabpanel",class:bem$9("pane")},[ne]),[[vShow,ie]])}}}}}),Tab=withInstall(_Tab),Tabs=withInstall(_Tabs),[name$8,bem$8]=createNamespace("cell-group"),_CellGroup=defineComponent({name:name$8,inheritAttrs:!1,props:{title:String,inset:Boolean,border:truthProp},setup(F,{slots:R,attrs:B}){var D=()=>createVNode("div",mergeProps({class:[bem$8({inset:F.inset}),{[BORDER_TOP_BOTTOM]:F.border&&!F.inset}]},B),[R.default==null?void 0:R.default()]),G=()=>createVNode("div",{class:bem$8("title",{inset:F.inset})},[R.title?R.title():F.title]);return()=>F.title||R.title?createVNode(Fragment,null,[G(),D()]):D()}}),CellGroup=withInstall(_CellGroup),[name$7,bem$7]=createNamespace("row"),ROW_KEY=Symbol(name$7),_Row=defineComponent({name:name$7,props:{wrap:truthProp,align:String,justify:String,tag:{type:String,default:"div"},gutter:{type:[Number,String],default:0}},setup(F,{slots:R}){var{children:B,linkChildren:D}=useChildren(ROW_KEY),G=computed(()=>{var W=[[]],q=0;return B.forEach((Y,Q)=>{q+=Number(Y.span),q>24?(W.push([Q]),q-=24):W[W.length-1].push(Q)}),W}),U=computed(()=>{var W=Number(F.gutter),q=[];return W&&G.value.forEach(Y=>{var Q=W*(Y.length-1)/Y.length;Y.forEach((Z,K)=>{if(K===0)q.push({right:Q});else{var ie=W-q[Z-1].right,te=Q-ie;q.push({left:ie,right:te})}})}),q});return D({spaces:U}),()=>{var{tag:W,wrap:q,align:Y,justify:Q}=F;return createVNode(W,{class:bem$7({["align-"+Y]:Y,["justify-"+Q]:Q,nowrap:!q})},{default:()=>[R.default==null?void 0:R.default()]})}}}),[name$6,bem$6]=createNamespace("col"),_Col=defineComponent({name:name$6,props:{offset:[Number,String],tag:{type:String,default:"div"},span:{type:[Number,String],default:0}},setup(F,{slots:R}){var{parent:B,index:D}=useParent(ROW_KEY),G=computed(()=>{if(!!B){var{spaces:U}=B;if(U&&U.value&&U.value[D.value]){var{left:W,right:q}=U.value[D.value];return{paddingLeft:W?W+"px":null,paddingRight:q?q+"px":null}}}});return()=>{var{tag:U,span:W,offset:q}=F;return createVNode(U,{style:G.value,class:bem$6({[W]:W,["offset-"+q]:q})},{default:()=>[R.default==null?void 0:R.default()]})}}}),Col=withInstall(_Col),[name$5,bem$5]=createNamespace("divider"),_Divider=defineComponent({name:name$5,props:{dashed:Boolean,hairline:truthProp,contentPosition:{type:String,default:"center"}},setup(F,{slots:R}){return()=>createVNode("div",{role:"separator",class:bem$5({dashed:F.dashed,hairline:F.hairline,["content-"+F.contentPosition]:!!R.default})},[R.default==null?void 0:R.default()])}}),Divider=withInstall(_Divider),[name$4,bem$4]=createNamespace("grid"),GRID_KEY=Symbol(name$4),props$1={square:Boolean,center:truthProp,border:truthProp,gutter:[Number,String],reverse:Boolean,iconSize:[Number,String],direction:String,clickable:Boolean,columnNum:{type:[Number,String],default:4}},_Grid=defineComponent({name:name$4,props:props$1,setup(F,{slots:R}){var{linkChildren:B}=useChildren(GRID_KEY);return B({props:F}),()=>createVNode("div",{style:{paddingLeft:addUnit(F.gutter)},class:[bem$4(),{[BORDER_TOP]:F.border&&!F.gutter}]},[R.default==null?void 0:R.default()])}}),Grid=withInstall(_Grid),[name$3,bem$3]=createNamespace("grid-item"),_GridItem=defineComponent({name:name$3,props:extend$2({},routeProps,{dot:Boolean,text:String,icon:String,badge:[Number,String],iconPrefix:String,iconColor:String}),setup(F,{slots:R}){var{parent:B,index:D}=useParent(GRID_KEY),G=useRoute();if(!!B){var U=computed(()=>{var{square:Z,gutter:K,columnNum:ie}=B.props,te=100/+ie+"%",ne={flexBasis:te};if(Z)ne.paddingTop=te;else if(K){var se=addUnit(K);ne.paddingRight=se,D.value>=ie&&(ne.marginTop=se)}return ne}),W=computed(()=>{var{square:Z,gutter:K}=B.props;if(Z&&K){var ie=addUnit(K);return{right:ie,bottom:ie,height:"auto"}}}),q=()=>{if(R.icon)return createVNode(Badge,{dot:F.dot,content:F.badge},{default:()=>[R.icon()]});if(F.icon)return createVNode(Icon,{dot:F.dot,name:F.icon,size:B.props.iconSize,badge:F.badge,class:bem$3("icon"),classPrefix:F.iconPrefix,color:F.iconColor},null)},Y=()=>{if(R.text)return R.text();if(F.text)return createVNode("span",{class:bem$3("text")},[F.text])},Q=()=>R.default?R.default():[q(),Y()];return()=>{var{center:Z,border:K,square:ie,gutter:te,reverse:ne,direction:se,clickable:re}=B.props,ae=[bem$3("content",[se,{center:Z,square:ie,reverse:ne,clickable:re,surround:K&&te}]),{[BORDER]:K}];return createVNode("div",{class:[bem$3({square:ie})],style:U.value},[createVNode("div",{role:re?"button":void 0,class:ae,style:W.value,tabindex:re?0:void 0,onClick:G},[Q()])])}}}}),GridItem=withInstall(_GridItem),[name$2,bem$2]=createNamespace("notice-bar"),_NoticeBar=defineComponent({name:name$2,props:{text:String,mode:String,color:String,leftIcon:String,wrapable:Boolean,background:String,scrollable:{type:Boolean,default:null},delay:{type:[Number,String],default:1},speed:{type:[Number,String],default:60}},emits:["close","replay"],setup(F,{emit:R,slots:B}){var D=0,G=0,U,W=ref(),q=ref(),Y=reactive({show:!0,offset:0,duration:0}),Q=()=>{if(B["left-icon"])return B["left-icon"]();if(F.leftIcon)return createVNode(Icon,{class:bem$2("left-icon"),name:F.leftIcon},null)},Z=()=>{if(F.mode==="closeable")return"cross";if(F.mode==="link")return"arrow"},K=ae=>{F.mode==="closeable"&&(Y.show=!1,R("close",ae))},ie=()=>{if(B["right-icon"])return B["right-icon"]();var ae=Z();if(ae)return createVNode(Icon,{name:ae,class:bem$2("right-icon"),onClick:K},null)},te=()=>{Y.offset=D,Y.duration=0,raf$2(()=>{doubleRaf(()=>{Y.offset=-G,Y.duration=(G+D)/+F.speed,R("replay")})})},ne=()=>{var ae=F.scrollable===!1&&!F.wrapable,le={transform:Y.offset?"translateX("+Y.offset+"px)":"",transitionDuration:Y.duration+"s"};return createVNode("div",{ref:W,role:"marquee",class:bem$2("wrap")},[createVNode("div",{ref:q,style:le,class:[bem$2("content"),{"van-ellipsis":ae}],onTransitionend:te},[B.default?B.default():F.text])])},se=()=>{D=0,G=0,Y.offset=0,Y.duration=0},re=()=>{var{delay:ae,speed:le,scrollable:ce}=F,he=isDef$1(ae)?+ae*1e3:0;se(),clearTimeout(U),U=setTimeout(()=>{if(!(!W.value||!q.value||ce===!1)){var pe=useRect(W).width,me=useRect(q).width;(ce||me>pe)&&doubleRaf(()=>{D=pe,G=me,Y.offset=-G,Y.duration=G/+le})}},he)};return onPopupReopen(re),onMountedOrActivated(re),useEventListener("pageshow",re),watch(()=>[F.text,F.scrollable],re),()=>{var{color:ae,wrapable:le,background:ce}=F;return withDirectives(createVNode("div",{role:"alert",class:bem$2({wrapable:le}),style:{color:ae,background:ce}},[Q(),ne(),ie()]),[[vShow,Y.show]])}}}),NoticeBar=withInstall(_NoticeBar);function getBoundingClientRect(F){var R=F.getBoundingClientRect();return{width:R.width,height:R.height,top:R.top,right:R.right,bottom:R.bottom,left:R.left,x:R.left,y:R.top}}function getWindow(F){if(F==null)return window;if(F.toString()!=="[object Window]"){var R=F.ownerDocument;return R&&R.defaultView||window}return F}function getWindowScroll(F){var R=getWindow(F),B=R.pageXOffset,D=R.pageYOffset;return{scrollLeft:B,scrollTop:D}}function isElement(F){var R=getWindow(F).Element;return F instanceof R||F instanceof Element}function isHTMLElement(F){var R=getWindow(F).HTMLElement;return F instanceof R||F instanceof HTMLElement}function isShadowRoot(F){if(typeof ShadowRoot=="undefined")return!1;var R=getWindow(F).ShadowRoot;return F instanceof R||F instanceof ShadowRoot}function getHTMLElementScroll(F){return{scrollLeft:F.scrollLeft,scrollTop:F.scrollTop}}function getNodeScroll(F){return F===getWindow(F)||!isHTMLElement(F)?getWindowScroll(F):getHTMLElementScroll(F)}function getNodeName(F){return F?(F.nodeName||"").toLowerCase():null}function getDocumentElement(F){return((isElement(F)?F.ownerDocument:F.document)||window.document).documentElement}function getWindowScrollBarX(F){return getBoundingClientRect(getDocumentElement(F)).left+getWindowScroll(F).scrollLeft}function getComputedStyle(F){return getWindow(F).getComputedStyle(F)}function isScrollParent(F){var R=getComputedStyle(F),B=R.overflow,D=R.overflowX,G=R.overflowY;return/auto|scroll|overlay|hidden/.test(B+G+D)}function getCompositeRect(F,R,B){B===void 0&&(B=!1);var D=getDocumentElement(R),G=getBoundingClientRect(F),U=isHTMLElement(R),W={scrollLeft:0,scrollTop:0},q={x:0,y:0};return(U||!U&&!B)&&((getNodeName(R)!=="body"||isScrollParent(D))&&(W=getNodeScroll(R)),isHTMLElement(R)?(q=getBoundingClientRect(R),q.x+=R.clientLeft,q.y+=R.clientTop):D&&(q.x=getWindowScrollBarX(D))),{x:G.left+W.scrollLeft-q.x,y:G.top+W.scrollTop-q.y,width:G.width,height:G.height}}function getLayoutRect(F){var R=getBoundingClientRect(F),B=F.offsetWidth,D=F.offsetHeight;return Math.abs(R.width-B)<=1&&(B=R.width),Math.abs(R.height-D)<=1&&(D=R.height),{x:F.offsetLeft,y:F.offsetTop,width:B,height:D}}function getParentNode(F){return getNodeName(F)==="html"?F:F.assignedSlot||F.parentNode||(isShadowRoot(F)?F.host:null)||getDocumentElement(F)}function getScrollParent(F){return["html","body","#document"].indexOf(getNodeName(F))>=0?F.ownerDocument.body:isHTMLElement(F)&&isScrollParent(F)?F:getScrollParent(getParentNode(F))}function listScrollParents(F,R){var B;R===void 0&&(R=[]);var D=getScrollParent(F),G=D===((B=F.ownerDocument)==null?void 0:B.body),U=getWindow(D),W=G?[U].concat(U.visualViewport||[],isScrollParent(D)?D:[]):D,q=R.concat(W);return G?q:q.concat(listScrollParents(getParentNode(W)))}function isTableElement(F){return["table","td","th"].indexOf(getNodeName(F))>=0}function getTrueOffsetParent(F){return!isHTMLElement(F)||getComputedStyle(F).position==="fixed"?null:F.offsetParent}function getContainingBlock(F){var R=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,B=navigator.userAgent.indexOf("Trident")!==-1;if(B&&isHTMLElement(F)){var D=getComputedStyle(F);if(D.position==="fixed")return null}for(var G=getParentNode(F);isHTMLElement(G)&&["html","body"].indexOf(getNodeName(G))<0;){var U=getComputedStyle(G);if(U.transform!=="none"||U.perspective!=="none"||U.contain==="paint"||["transform","perspective"].indexOf(U.willChange)!==-1||R&&U.willChange==="filter"||R&&U.filter&&U.filter!=="none")return G;G=G.parentNode}return null}function getOffsetParent(F){for(var R=getWindow(F),B=getTrueOffsetParent(F);B&&isTableElement(B)&&getComputedStyle(B).position==="static";)B=getTrueOffsetParent(B);return B&&(getNodeName(B)==="html"||getNodeName(B)==="body"&&getComputedStyle(B).position==="static")?R:B||getContainingBlock(F)||R}var top$1="top",bottom$1="bottom",right="right",left$1="left",auto="auto",basePlacements=[top$1,bottom$1,right,left$1],start$3="start",end="end",placements=[].concat(basePlacements,[auto]).reduce(function(F,R){return F.concat([R,R+"-"+start$3,R+"-"+end])},[]),beforeRead="beforeRead",read="read",afterRead="afterRead",beforeMain="beforeMain",main="main",afterMain="afterMain",beforeWrite="beforeWrite",write="write",afterWrite="afterWrite",modifierPhases=[beforeRead,read,afterRead,beforeMain,main,afterMain,beforeWrite,write,afterWrite];function order(F){var R=new Map,B=new Set,D=[];F.forEach(function(U){R.set(U.name,U)});function G(U){B.add(U.name);var W=[].concat(U.requires||[],U.requiresIfExists||[]);W.forEach(function(q){if(!B.has(q)){var Y=R.get(q);Y&&G(Y)}}),D.push(U)}return F.forEach(function(U){B.has(U.name)||G(U)}),D}function orderModifiers(F){var R=order(F);return modifierPhases.reduce(function(B,D){return B.concat(R.filter(function(G){return G.phase===D}))},[])}function debounce(F){var R;return function(){return R||(R=new Promise(function(B){Promise.resolve().then(function(){R=void 0,B(F())})})),R}}function getBasePlacement(F){return F.split("-")[0]}function mergeByName(F){var R=F.reduce(function(B,D){var G=B[D.name];return B[D.name]=G?Object.assign({},G,D,{options:Object.assign({},G.options,D.options),data:Object.assign({},G.data,D.data)}):D,B},{});return Object.keys(R).map(function(B){return R[B]})}var round=Math.round;function getVariation(F){return F.split("-")[1]}function getMainAxisFromPlacement(F){return["top","bottom"].indexOf(F)>=0?"x":"y"}function computeOffsets(F){var R=F.reference,B=F.element,D=F.placement,G=D?getBasePlacement(D):null,U=D?getVariation(D):null,W=R.x+R.width/2-B.width/2,q=R.y+R.height/2-B.height/2,Y;switch(G){case top$1:Y={x:W,y:R.y-B.height};break;case bottom$1:Y={x:W,y:R.y+R.height};break;case right:Y={x:R.x+R.width,y:q};break;case left$1:Y={x:R.x-B.width,y:q};break;default:Y={x:R.x,y:R.y}}var Q=G?getMainAxisFromPlacement(G):null;if(Q!=null){var Z=Q==="y"?"height":"width";switch(U){case start$3:Y[Q]=Y[Q]-(R[Z]/2-B[Z]/2);break;case end:Y[Q]=Y[Q]+(R[Z]/2-B[Z]/2);break}}return Y}var DEFAULT_OPTIONS={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var F=arguments.length,R=new Array(F),B=0;B=0?-1:1,U=typeof B=="function"?B(Object.assign({},R,{placement:F})):B,W=U[0],q=U[1];return W=W||0,q=(q||0)*G,[left$1,right].indexOf(D)>=0?{x:q,y:W}:{x:W,y:q}}function offset(F){var R=F.state,B=F.options,D=F.name,G=B.offset,U=G===void 0?[0,0]:G,W=placements.reduce(function(Z,K){return Z[K]=distanceAndSkiddingToXY(K,R.rects,U),Z},{}),q=W[R.placement],Y=q.x,Q=q.y;R.modifiersData.popperOffsets!=null&&(R.modifiersData.popperOffsets.x+=Y,R.modifiersData.popperOffsets.y+=Q),R.modifiersData[D]=W}var offset$1={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset},[name$1,bem$1]=createNamespace("popover"),popupProps=["show","overlay","duration","teleport","overlayStyle","overlayClass","closeOnClickOverlay"],_Popover=defineComponent({name:name$1,props:{show:Boolean,overlay:Boolean,duration:[Number,String],iconPrefix:String,overlayClass:unknownProp,overlayStyle:Object,closeOnClickAction:truthProp,closeOnClickOverlay:truthProp,closeOnClickOutside:truthProp,offset:{type:Array,default:()=>[0,8]},theme:{type:String,default:"light"},trigger:{type:String,default:"click"},actions:{type:Array,default:()=>[]},placement:{type:String,default:"bottom"},teleport:{type:[String,Object],default:"body"}},emits:["select","touchstart","update:show"],setup(F,{emit:R,slots:B,attrs:D}){var G,U=ref(),W=ref(),q=()=>createPopper(U.value,W.value.popupRef.value,{placement:F.placement,modifiers:[{name:"computeStyles",options:{adaptive:!1,gpuAcceleration:!1}},extend$2({},offset$1,{options:{offset:F.offset}})]}),Y=()=>{nextTick(()=>{!F.show||(G?G.setOptions({placement:F.placement}):G=q())})},Q=se=>R("update:show",se),Z=()=>{F.trigger==="click"&&Q(!F.show)},K=se=>{se.stopPropagation(),R("touchstart",se)},ie=(se,re)=>{se.disabled||(R("select",se,re),F.closeOnClickAction&&Q(!1))},te=()=>{F.closeOnClickOutside&&(!F.overlay||F.closeOnClickOverlay)&&Q(!1)},ne=(se,re)=>{var{icon:ae,text:le,color:ce,disabled:he,className:pe}=se;return createVNode("div",{role:"menuitem",class:[bem$1("action",{disabled:he,"with-icon":ae}),pe],style:{color:ce},onClick:()=>ie(se,re)},[ae&&createVNode(Icon,{name:ae,classPrefix:F.iconPrefix,class:bem$1("action-icon")},null),createVNode("div",{class:[bem$1("action-text"),BORDER_BOTTOM]},[le])])};return onMounted(Y),onBeforeUnmount(()=>{G&&(G.destroy(),G=null)}),watch(()=>[F.show,F.placement],Y),useClickAway(U,te,{eventName:"touchstart"}),()=>createVNode(Fragment,null,[createVNode("span",{ref:U,class:bem$1("wrapper"),onClick:Z},[B.reference==null?void 0:B.reference()]),createVNode(Popup,mergeProps({ref:W,class:bem$1([F.theme]),position:"",transition:"van-popover-zoom",lockScroll:!1,onTouchstart:K},D,pick(F,popupProps),{"onUpdate:show":Q}),{default:()=>[createVNode("div",{class:bem$1("arrow")},null),createVNode("div",{role:"menu",class:bem$1("content")},[B.default?B.default():F.actions.map(ne)])]})])}}),Popover=withInstall(_Popover),Row=withInstall(_Row),[name,bem]=createNamespace("slider"),_Slider=defineComponent({name,props:{range:Boolean,disabled:Boolean,readonly:Boolean,vertical:Boolean,barHeight:[Number,String],buttonSize:[Number,String],activeColor:String,inactiveColor:String,min:{type:[Number,String],default:0},max:{type:[Number,String],default:100},step:{type:[Number,String],default:1},modelValue:{type:[Number,Array],default:0}},emits:["change","drag-end","drag-start","update:modelValue"],setup(F,{emit:R,slots:B}){var D,G,U,W=ref(),q=ref(),Y=useTouch(),Q=computed(()=>Number(F.max)-Number(F.min)),Z=computed(()=>{var ge=F.vertical?"width":"height";return{background:F.inactiveColor,[ge]:addUnit(F.barHeight)}}),K=ge=>!!F.range&&Array.isArray(ge),ie=()=>{var{modelValue:ge,min:Se}=F;return K(ge)?(ge[1]-ge[0])*100/Q.value+"%":(ge-Number(Se))*100/Q.value+"%"},te=()=>{var{modelValue:ge,min:Se}=F;return K(ge)?(ge[0]-Number(Se))*100/Q.value+"%":"0%"},ne=computed(()=>{var ge=F.vertical?"height":"width";return{[ge]:ie(),left:F.vertical?void 0:te(),top:F.vertical?te():void 0,background:F.activeColor,transition:q.value?"none":void 0}}),se=ge=>{var Se=+F.min,Ee=+F.max,ve=+F.step;ge=clamp(ge,Se,Ee);var xe=Math.round((ge-Se)/ve)*ve;return addNumber(Se,xe)},re=(ge,Se)=>JSON.stringify(ge)===JSON.stringify(Se),ae=ge=>ge[0]>ge[1]?ge.slice(0).reverse():ge,le=(ge,Se)=>{K(ge)?ge=ae(ge).map(se):ge=se(ge),re(ge,F.modelValue)||R("update:modelValue",ge),Se&&!re(ge,G)&&R("change",ge)},ce=ge=>{if(ge.stopPropagation(),!(F.disabled||F.readonly)){var{min:Se,vertical:Ee,modelValue:ve}=F,xe=useRect(W),Me=Ee?ge.clientY-xe.top:ge.clientX-xe.left,ye=Ee?xe.height:xe.width,we=Number(Se)+Me/ye*Q.value;if(K(ve)){var[Re,Pe]=ve,Ae=(Re+Pe)/2;we<=Ae?le([we,Pe],!0):le([Re,we],!0)}else le(we,!0)}},he=ge=>{F.disabled||F.readonly||(Y.start(ge),U=F.modelValue,K(U)?G=U.map(se):G=se(U),q.value="start")},pe=ge=>{if(!(F.disabled||F.readonly)){q.value==="start"&&R("drag-start"),preventDefault(ge,!0),Y.move(ge),q.value="draging";var Se=useRect(W),Ee=F.vertical?Y.deltaY.value:Y.deltaX.value,ve=F.vertical?Se.height:Se.width,xe=Ee/ve*Q.value;K(G)?U[D]=G[D]+xe:U=G+xe,le(U)}},me=()=>{F.disabled||F.readonly||(q.value==="draging"&&(le(U,!0),R("drag-end")),q.value="")},fe=ge=>{var Se=()=>{if(typeof ge=="number"){var ve=["left","right"];return"button-wrapper-"+ve[ge]}return"button-wrapper"},Ee=typeof ge=="number"?F.modelValue[ge]:F.modelValue;return createVNode("div",{role:"slider",class:bem(Se()),tabindex:F.disabled||F.readonly?-1:0,"aria-valuemin":+F.min,"aria-valuenow":Ee,"aria-valuemax":+F.max,"aria-orientation":F.vertical?"vertical":"horizontal",onTouchstart:ve=>{typeof ge=="number"&&(D=ge),he(ve)},onTouchmove:pe,onTouchend:me,onTouchcancel:me,onClick:stopPropagation},[B.button?B.button():createVNode("div",{class:bem("button"),style:getSizeStyle(F.buttonSize)},null)])};return le(F.modelValue),useLinkField(()=>F.modelValue),()=>createVNode("div",{ref:W,style:Z.value,class:bem({vertical:F.vertical,disabled:F.disabled}),onClick:ce},[createVNode("div",{class:bem("bar"),style:ne.value},[F.range?[fe(0),fe(1)]:fe()])])}}),Slider=withInstall(_Slider),lodash$1={exports:{}};/** * @license * Lodash * Copyright OpenJS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */(function(F,R){(function(){var B,D="4.17.21",G=200,U="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",W="Expected a function",q="Invalid `variable` option passed into `_.template`",Y="__lodash_hash_undefined__",Q=500,Z="__lodash_placeholder__",K=1,ie=2,te=4,ne=1,se=2,re=1,ae=2,le=4,ce=8,he=16,pe=32,me=64,fe=128,ge=256,Se=512,Ee=30,ve="...",xe=800,Me=16,ye=1,we=2,Re=3,Pe=1/0,Ae=9007199254740991,Le=17976931348623157e292,Ne=0/0,Ie=4294967295,_e=Ie-1,Ve=Ie>>>1,qe=[["ary",fe],["bind",re],["bindKey",ae],["curry",ce],["curryRight",he],["flip",Se],["partial",pe],["partialRight",me],["rearg",ge]],Ge="[object Arguments]",He="[object Array]",Qe="[object AsyncFunction]",We="[object Boolean]",Ze="[object Date]",lt="[object DOMException]",ht="[object Error]",yt="[object Function]",Fe="[object GeneratorFunction]",Te="[object Map]",je="[object Number]",Ke="[object Null]",Oe="[object Object]",De="[object Promise]",et="[object Proxy]",it="[object RegExp]",rt="[object Set]",Je="[object String]",ct="[object Symbol]",dt="[object Undefined]",pt="[object WeakMap]",vt="[object WeakSet]",wt="[object ArrayBuffer]",gt="[object DataView]",Tt="[object Float32Array]",Rt="[object Float64Array]",Ht="[object Int8Array]",mi="[object Int16Array]",Zt="[object Int32Array]",si="[object Uint8Array]",vi="[object Uint8ClampedArray]",At="[object Uint16Array]",oi="[object Uint32Array]",Mi=/\b__p \+= '';/g,Ai=/\b(__p \+=) '' \+/g,En=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Yi=/&(?:amp|lt|gt|quot|#39);/g,fi=/[&<>"']/g,er=RegExp(Yi.source),Ur=RegExp(fi.source),yr=/<%-([\s\S]+?)%>/g,Hr=/<%([\s\S]+?)%>/g,Gn=/<%=([\s\S]+?)%>/g,Mn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,vr=/^\w*$/,ji=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,tr=/[\\^$.*+?()[\]{}|]/g,ss=RegExp(tr.source),Wr=/^\s+/,Is=/\s/,Qi=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,an=/\{\n\/\* \[wrapped with (.+)\] \*/,Ls=/,? & /,_n=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ei=/[()=,{}\[\]\/\s]/,Rs=/\\(\\)?/g,qr=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ks=/\w*$/,ma=/^[-+]0x[0-9a-f]+$/i,wn=/^0b[01]+$/i,ga=/^\[object .+?Constructor\]$/,yl=/^0o[0-7]+$/i,vl=/^(?:0|[1-9]\d*)$/,Ns=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Bs=/($^)/,pn=/['\n\r\u2028\u2029\\]/g,Fs="\\ud800-\\udfff",bl="\\u0300-\\u036f",Sl="\\ufe20-\\ufe2f",ho="\\u20d0-\\u20ff",ya=bl+Sl+ho,Xr="\\u2700-\\u27bf",fo="a-z\\xdf-\\xf6\\xf8-\\xff",xl="\\xac\\xb1\\xd7\\xf7",zn="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Al="\\u2000-\\u206f",po=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",va="A-Z\\xc0-\\xd6\\xd8-\\xde",ba="\\ufe0e\\ufe0f",Ds=xl+zn+Al+po,Sa="['\u2019]",as="["+Fs+"]",os="["+Ds+"]",ls="["+ya+"]",mo="\\d+",xa="["+Xr+"]",Aa="["+fo+"]",Os="[^"+Fs+Ds+mo+Xr+fo+va+"]",us="\\ud83c[\\udffb-\\udfff]",go="(?:"+ls+"|"+us+")",Vs="[^"+Fs+"]",cs="(?:\\ud83c[\\udde6-\\uddff]){2}",ir="[\\ud800-\\udbff][\\udc00-\\udfff]",br="["+va+"]",Ea="\\u200d",yo="(?:"+Aa+"|"+Os+")",vo="(?:"+br+"|"+Os+")",wa="(?:"+Sa+"(?:d|ll|m|re|s|t|ve))?",Pa="(?:"+Sa+"(?:D|LL|M|RE|S|T|VE))?",Gs=go+"?",bo="["+ba+"]?",So="(?:"+Ea+"(?:"+[Vs,cs,ir].join("|")+")"+bo+Gs+")*",El="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",xo="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",hs=bo+Gs+So,wl="(?:"+[xa,cs,ir].join("|")+")"+hs,Yr="(?:"+[Vs+ls+"?",ls,cs,ir,as].join("|")+")",nr=RegExp(Sa,"g"),Ta=RegExp(ls,"g"),zs=RegExp(us+"(?="+us+")|"+Yr+hs,"g"),Us=RegExp([br+"?"+Aa+"+"+wa+"(?="+[os,br,"$"].join("|")+")",vo+"+"+Pa+"(?="+[os,br+yo,"$"].join("|")+")",br+"?"+yo+"+"+wa,br+"+"+Pa,xo,El,mo,wl].join("|"),"g"),Pl=RegExp("["+Ea+Fs+ya+ba+"]"),Tl=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Cl=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],gi=-1,Vt={};Vt[Tt]=Vt[Rt]=Vt[Ht]=Vt[mi]=Vt[Zt]=Vt[si]=Vt[vi]=Vt[At]=Vt[oi]=!0,Vt[Ge]=Vt[He]=Vt[wt]=Vt[We]=Vt[gt]=Vt[Ze]=Vt[ht]=Vt[yt]=Vt[Te]=Vt[je]=Vt[Oe]=Vt[it]=Vt[rt]=Vt[Je]=Vt[pt]=!1;var yi={};yi[Ge]=yi[He]=yi[wt]=yi[gt]=yi[We]=yi[Ze]=yi[Tt]=yi[Rt]=yi[Ht]=yi[mi]=yi[Zt]=yi[Te]=yi[je]=yi[Oe]=yi[it]=yi[rt]=yi[Je]=yi[ct]=yi[si]=yi[vi]=yi[At]=yi[oi]=!0,yi[ht]=yi[yt]=yi[pt]=!1;var Hs={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Sr={"&":"&","<":"<",">":">",'"':""","'":"'"},Ca={"&":"&","<":"<",">":">",""":'"',"'":"'"},Ao={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Eo=parseFloat,In=parseInt,Ma=typeof commonjsGlobal$2=="object"&&commonjsGlobal$2&&commonjsGlobal$2.Object===Object&&commonjsGlobal$2,Ri=typeof self=="object"&&self&&self.Object===Object&&self,Ei=Ma||Ri||Function("return this")(),Pn=R&&!R.nodeType&&R,on=Pn&&!0&&F&&!F.nodeType&&F,xr=on&&on.exports===Pn,Oi=xr&&Ma.process,Ki=function(){try{var $e=on&&on.require&&on.require("util").types;return $e||Oi&&Oi.binding&&Oi.binding("util")}catch{}}(),_a=Ki&&Ki.isArrayBuffer,Ia=Ki&&Ki.isDate,La=Ki&&Ki.isMap,jr=Ki&&Ki.isRegExp,Ra=Ki&&Ki.isSet,Zi=Ki&&Ki.isTypedArray;function ln($e,nt,ut){switch(ut.length){case 0:return $e.call(nt);case 1:return $e.call(nt,ut[0]);case 2:return $e.call(nt,ut[0],ut[1]);case 3:return $e.call(nt,ut[0],ut[1],ut[2])}return $e.apply(nt,ut)}function Ue($e,nt,ut,xt){for(var It=-1,Gt=$e==null?0:$e.length;++It-1}function Bt($e,nt,ut){for(var xt=-1,It=$e==null?0:$e.length;++xt-1;);return ut}function Yu($e,nt){for(var ut=$e.length;ut--&&yn(nt,$e[ut],0)>-1;);return ut}function dh($e,nt){for(var ut=$e.length,xt=0;ut--;)$e[ut]===nt&&++xt;return xt}var ph=wo(Hs),mh=wo(Sr);function gh($e){return"\\"+Ao[$e]}function qs($e,nt){return $e==null?B:$e[nt]}function Xs($e){return Pl.test($e)}function yh($e){return Tl.test($e)}function Ll($e){for(var nt,ut=[];!(nt=$e.next()).done;)ut.push(nt.value);return ut}function Po($e){var nt=-1,ut=Array($e.size);return $e.forEach(function(xt,It){ut[++nt]=[It,xt]}),ut}function Er($e,nt){return function(ut){return $e(nt(ut))}}function Un($e,nt){for(var ut=-1,xt=$e.length,It=0,Gt=[];++ut-1}function Ir(J,oe){var de=this.__data__,be=ko(de,J);return be<0?(++this.size,de.push([J,oe])):de[be][1]=oe,this}_r.prototype.clear=Gh,_r.prototype.delete=zh,_r.prototype.get=Uh,_r.prototype.has=Hh,_r.prototype.set=Ir;function Lr(J){var oe=-1,de=J==null?0:J.length;for(this.clear();++oe=oe?J:oe)),J}function kn(J,oe,de,be,Ce,ke){var Be,ze=oe&K,tt=oe&ie,at=oe&te;if(de&&(Be=Ce?de(J,be,Ce,ke):de(J)),Be!==B)return Be;if(!Yt(J))return J;var ot=jt(J);if(ot){if(Be=_c(J),!ze)return wi(J,Be)}else{var mt=tn(J),St=mt==yt||mt==Fe;if(rs(J))return Qo(J,ze);if(mt==Oe||mt==Ge||St&&!Ce){if(Be=tt||St?{}:Ic(J),!ze)return tt?Ko(J,Rr(Be,J)):hf(J,nc(Be,J))}else{if(!yi[mt])return Ce?J:{};Be=pf(J,mt,ze)}}ke||(ke=new Yn);var Et=ke.get(J);if(Et)return Et;ke.set(J,Be),lo(J)?J.forEach(function(_t){Be.add(kn(_t,oe,de,_t,J,ke))}):Kc(J)&&J.forEach(function(_t,Lt){Be.set(Lt,kn(_t,oe,de,Lt,J,ke))});var Ct=at?tt?no:io:tt?xn:li,Mt=ot?B:Ct(J);return st(Mt||J,function(_t,Lt){Mt&&(Lt=_t,_t=J[Lt]),$r(Be,Lt,kn(_t,oe,de,Lt,J,ke))}),Be}function rc(J){var oe=li(J);return function(de){return Ol(de,J,oe)}}function Ol(J,oe,de){var be=de.length;if(J==null)return!be;for(J=di(J);be--;){var Ce=de[be],ke=oe[Ce],Be=J[Ce];if(Be===B&&!(Ce in J)||!ke(Be))return!1}return!0}function ea(J,oe,de){if(typeof J!="function")throw new hn(W);return Ps(function(){J.apply(B,de)},oe)}function Nn(J,oe,de,be){var Ce=-1,ke=kt,Be=!0,ze=J.length,tt=[],at=oe.length;if(!ze)return tt;de&&(oe=Nt(oe,cn(de))),be?(ke=Bt,Be=!1):oe.length>=G&&(ke=Ws,Be=!1,oe=new Ss(oe));e:for(;++CeCe?0:Ce+de),be=be===B||be>Ce?Ce:Qt(be),be<0&&(be+=Ce),be=de>be?0:Tn(be);de0&&de(ze)?oe>1?Fi(ze,oe-1,de,be,Ce):ti(Ce,ze):be||(Ce[Ce.length]=ze)}return Ce}var Fo=bc(),Qn=bc(!0);function Bn(J,oe){return J&&Fo(J,oe,li)}function ta(J,oe){return J&&Qn(J,oe,li)}function ar(J,oe){return Ft(oe,function(de){return pr(J[de])})}function es(J,oe){oe=ts(oe,J);for(var de=0,be=oe.length;J!=null&&deoe}function ef(J,oe){return J!=null&&pi.call(J,oe)}function tf(J,oe){return J!=null&&oe in di(J)}function Gl(J,oe,de){return J>=$i(oe,de)&&J=120&&ot.length>=120)?new Ss(Be&&ot):B}ot=J[0];var mt=-1,St=ze[0];e:for(;++mt-1;)ze!==J&&za.call(ze,tt,1),za.call(J,tt,1);return J}function Uo(J,oe){for(var de=J?oe.length:0,be=de-1;de--;){var Ce=oe[de];if(de==be||Ce!==ke){var ke=Ce;Pi(Ce)?za.call(J,Ce,1):qo(J,Ce)}}return J}function Ql(J,oe){return J+Zs($u()*(oe-J+1))}function Kl(J,oe,de,be){for(var Ce=-1,ke=ii(ps((oe-J)/(de||1)),0),Be=ut(ke);ke--;)Be[be?ke:++Ce]=J,J+=de;return Be}function Kt(J,oe){var de="";if(!J||oe<1||oe>Ae)return de;do oe%2&&(de+=J),oe=Zs(oe/2),oe&&(J+=J);while(oe);return de}function Jt(J,oe){return il(hu(J,oe,sn),J+"")}function of(J){return tc(pa(J))}function Xa(J,oe){var de=pa(J);return ao(de,Gi(oe,0,de.length))}function na(J,oe,de,be){if(!Yt(J))return J;oe=ts(oe,J);for(var Ce=-1,ke=oe.length,Be=ke-1,ze=J;ze!=null&&++CeCe?0:Ce+oe),de=de>Ce?Ce:de,de<0&&(de+=Ce),Ce=oe>de?0:de-oe>>>0,oe>>>=0;for(var ke=ut(Ce);++be>>1,Be=J[ke];Be!==null&&!Ui(Be)&&(de?Be<=oe:Be=G){var at=oe?null:Ec(J);if(at)return To(at);Be=!1,Ce=Ws,tt=new Ss}else tt=oe?[]:ze;e:for(;++be=be?J:Dn(J,oe,de)}var Jl=Th||function(J){return Ei.clearTimeout(J)};function Qo(J,oe){if(oe)return J.slice();var de=J.length,be=Oa?Oa(de):new J.constructor(de);return J.copy(be),be}function $l(J){var oe=new J.constructor(J.byteLength);return new Da(oe).set(new Da(J)),oe}function uf(J,oe){var de=oe?$l(J.buffer):J.buffer;return new J.constructor(de,J.byteOffset,J.byteLength)}function cf(J){var oe=new J.constructor(J.source,ks.exec(J));return oe.lastIndex=J.lastIndex,oe}function gc(J){return $s?di($s.call(J)):{}}function eu(J,oe){var de=oe?$l(J.buffer):J.buffer;return new J.constructor(de,J.byteOffset,J.length)}function yc(J,oe){if(J!==oe){var de=J!==B,be=J===null,Ce=J===J,ke=Ui(J),Be=oe!==B,ze=oe===null,tt=oe===oe,at=Ui(oe);if(!ze&&!at&&!ke&&J>oe||ke&&Be&&tt&&!ze&&!at||be&&Be&&tt||!de&&tt||!Ce)return 1;if(!be&&!ke&&!at&&J=ze)return tt;var at=de[be];return tt*(at=="desc"?-1:1)}}return J.index-oe.index}function tu(J,oe,de,be){for(var Ce=-1,ke=J.length,Be=de.length,ze=-1,tt=oe.length,at=ii(ke-Be,0),ot=ut(tt+at),mt=!be;++ze1?de[Ce-1]:B,Be=Ce>2?de[2]:B;for(ke=J.length>3&&typeof ke=="function"?(Ce--,ke):B,Be&&Xi(de[0],de[1],Be)&&(ke=Ce<3?B:ke,Ce=1),oe=di(oe);++be-1?Ce[ke?oe[Be]:Be]:B}}function Za(J){return Kn(function(oe){var de=oe.length,be=de,Ce=Wt.prototype.thru;for(J&&oe.reverse();be--;){var ke=oe[be];if(typeof ke!="function")throw new hn(W);if(Ce&&!Be&&Or(ke)=="wrapper")var Be=new Wt([],!0)}for(be=Be?be:de;++be1&&qt.reverse(),ot&&ttze))return!1;var at=ke.get(J),ot=ke.get(oe);if(at&&ot)return at==oe&&ot==J;var mt=-1,St=!0,Et=de&se?new Ss:B;for(ke.set(J,oe),ke.set(oe,J);++mt1?"& ":"")+oe[be],oe=oe.join(de>2?", ":" "),J.replace(Qi,`{ /* [wrapped with `+oe+`] */ `)}function Gr(J){return jt(J)||zt(J)||!!(Ks&&J&&J[Ks])}function Pi(J,oe){var de=typeof J;return oe=oe==null?Ae:oe,!!oe&&(de=="number"||de!="symbol"&&vl.test(J))&&J>-1&&J%1==0&&J0){if(++oe>=xe)return arguments[0]}else oe=0;return J.apply(B,arguments)}}function ao(J,oe){var de=-1,be=J.length,Ce=be-1;for(oe=oe===B?be:oe;++de1?J[oe-1]:B;return de=typeof de=="function"?(J.pop(),de):B,Uc(J,de)});function Wc(J){var oe=Xe(J);return oe.__chain__=!0,oe}function rl(J,oe){return oe(J),J}function sl(J,oe){return oe(J)}var md=Kn(function(J){var oe=J.length,de=oe?J[0]:0,be=this.__wrapped__,Ce=function(ke){return kr(ke,J)};return oe>1||this.__actions__.length||!(be instanceof $t)||!Pi(de)?this.thru(Ce):(be=be.slice(de,+de+(oe?1:0)),be.__actions__.push({func:sl,args:[Ce],thisArg:B}),new Wt(be,this.__chain__).thru(function(ke){return oe&&!ke.length&&ke.push(B),ke}))});function gd(){return Wc(this)}function yd(){return new Wt(this.value(),this.__chain__)}function vd(){this.__values__===B&&(this.__values__=mr(this.value()));var J=this.__index__>=this.__values__.length,oe=J?B:this.__values__[this.__index__++];return{done:J,value:oe}}function bd(){return this}function Sd(J){for(var oe,de=this;de instanceof fn;){var be=Bc(de);be.__index__=0,be.__values__=B,oe?Ce.__wrapped__=be:oe=be;var Ce=be;de=de.__wrapped__}return Ce.__wrapped__=J,oe}function xd(){var J=this.__wrapped__;if(J instanceof $t){var oe=J;return this.__actions__.length&&(oe=new $t(this)),oe=oe.reverse(),oe.__actions__.push({func:sl,args:[yu],thisArg:B}),new Wt(oe,this.__chain__)}return this.thru(yu)}function Ad(){return Xo(this.__wrapped__,this.__actions__)}var Ed=Fr(function(J,oe,de){pi.call(J,de)?++J[de]:jn(J,de,1)});function wd(J,oe,de){var be=jt(J)?Pt:No;return de&&Xi(J,oe,de)&&(oe=B),be(J,Ot(oe,3))}function Pd(J,oe){var de=jt(J)?Ft:zi;return de(J,Ot(oe,3))}var Td=nu(pu),Cd=nu(mu);function Md(J,oe){return Fi(ol(J,oe),1)}function _d(J,oe){return Fi(ol(J,oe),Pe)}function qc(J,oe,de){return de=de===B?1:Qt(de),Fi(ol(J,oe),de)}function bu(J,oe){var de=jt(J)?st:Nr;return de(J,Ot(oe,3))}function Xc(J,oe){var de=jt(J)?bt:sc;return de(J,Ot(oe,3))}var Id=Fr(function(J,oe,de){pi.call(J,de)?J[de].push(oe):jn(J,de,[oe])});function Ld(J,oe,de,be){J=ni(J)?J:pa(J),de=de&&!be?Qt(de):0;var Ce=J.length;return de<0&&(de=ii(Ce+de,0)),rn(J)?de<=Ce&&J.indexOf(oe,de)>-1:!!Ce&&yn(J,oe,de)>-1}var Rd=Jt(function(J,oe,de){var be=-1,Ce=typeof oe=="function",ke=ni(J)?ut(J.length):[];return Nr(J,function(Be){ke[++be]=Ce?ln(oe,Be,de):ia(Be,oe,de)}),ke}),al=Fr(function(J,oe,de){jn(J,de,oe)});function ol(J,oe){var de=jt(J)?Nt:ql;return de(J,Ot(oe,3))}function kd(J,oe,de,be){return J==null?[]:(jt(oe)||(oe=oe==null?[]:[oe]),de=be?B:de,jt(de)||(de=de==null?[]:[de]),hc(J,oe,de))}var Nd=Fr(function(J,oe,de){J[de?0:1].push(oe)},function(){return[[],[]]});function Bd(J,oe,de){var be=jt(J)?Ci:qu,Ce=arguments.length<3;return be(J,Ot(oe,4),de,Ce,Nr)}function Fd(J,oe,de){var be=jt(J)?ki:qu,Ce=arguments.length<3;return be(J,Ot(oe,4),de,Ce,sc)}function Dd(J,oe){var de=jt(J)?Ft:zi;return de(J,dl(Ot(oe,3)))}function Od(J){var oe=jt(J)?tc:of;return oe(J)}function Vd(J,oe,de){(de?Xi(J,oe,de):oe===B)?oe=1:oe=Qt(oe);var be=jt(J)?$h:Xa;return be(J,oe)}function Gd(J){var oe=jt(J)?Dl:Fn;return oe(J)}function zd(J){if(J==null)return 0;if(ni(J))return rn(J)?Ji(J):J.length;var oe=tn(J);return oe==Te||oe==rt?J.size:Hl(J).length}function Ud(J,oe,de){var be=jt(J)?Vi:Ho;return de&&Xi(J,oe,de)&&(oe=B),be(J,Ot(oe,3))}var ll=Jt(function(J,oe){if(J==null)return[];var de=oe.length;return de>1&&Xi(J,oe[0],oe[1])?oe=[]:de>2&&Xi(oe[0],oe[1],oe[2])&&(oe=[oe[0]]),hc(J,Fi(oe,1),[])}),ul=Ch||function(){return Ei.Date.now()};function Yc(J,oe){if(typeof oe!="function")throw new hn(W);return J=Qt(J),function(){if(--J<1)return oe.apply(this,arguments)}}function Su(J,oe,de){return oe=de?B:oe,oe=J&&oe==null?J.length:oe,dr(J,fe,B,B,B,B,oe)}function cl(J,oe){var de;if(typeof oe!="function")throw new hn(W);return J=Qt(J),function(){return--J>0&&(de=oe.apply(this,arguments)),J<=1&&(oe=B),de}}var hl=Jt(function(J,oe,de){var be=re;if(de.length){var Ce=Un(de,Dt(hl));be|=pe}return dr(J,be,oe,de,Ce)}),xu=Jt(function(J,oe,de){var be=re|ae;if(de.length){var Ce=Un(de,Dt(xu));be|=pe}return dr(oe,be,J,de,Ce)});function Au(J,oe,de){oe=de?B:oe;var be=dr(J,ce,B,B,B,B,B,oe);return be.placeholder=Au.placeholder,be}function Eu(J,oe,de){oe=de?B:oe;var be=dr(J,he,B,B,B,B,B,oe);return be.placeholder=Eu.placeholder,be}function jc(J,oe,de){var be,Ce,ke,Be,ze,tt,at=0,ot=!1,mt=!1,St=!0;if(typeof J!="function")throw new hn(W);oe=Cn(oe)||0,Yt(de)&&(ot=!!de.leading,mt="maxWait"in de,ke=mt?ii(Cn(de.maxWait)||0,oe):ke,St="trailing"in de?!!de.trailing:St);function Et(ui){var Di=be,gr=Ce;return be=Ce=B,at=ui,Be=J.apply(gr,Di),Be}function Ct(ui){return at=ui,ze=Ps(Lt,oe),ot?Et(ui):Be}function Mt(ui){var Di=ui-tt,gr=ui-at,Qm=oe-Di;return mt?$i(Qm,ke-gr):Qm}function _t(ui){var Di=ui-tt,gr=ui-at;return tt===B||Di>=oe||Di<0||mt&&gr>=ke}function Lt(){var ui=ul();if(_t(ui))return qt(ui);ze=Ps(Lt,Mt(ui))}function qt(ui){return ze=B,St&&be?Et(ui):(be=Ce=B,Be)}function bi(){ze!==B&&Jl(ze),at=0,be=tt=Ce=ze=B}function Si(){return ze===B?Be:qt(ul())}function ri(){var ui=ul(),Di=_t(ui);if(be=arguments,Ce=this,tt=ui,Di){if(ze===B)return Ct(tt);if(mt)return Jl(ze),ze=Ps(Lt,oe),Et(tt)}return ze===B&&(ze=Ps(Lt,oe)),Be}return ri.cancel=bi,ri.flush=Si,ri}var Hd=Jt(function(J,oe){return ea(J,1,oe)}),Wd=Jt(function(J,oe,de){return ea(J,Cn(oe)||0,de)});function fl(J){return dr(J,Se)}function Cs(J,oe){if(typeof J!="function"||oe!=null&&typeof oe!="function")throw new hn(W);var de=function(){var be=arguments,Ce=oe?oe.apply(this,be):be[0],ke=de.cache;if(ke.has(Ce))return ke.get(Ce);var Be=J.apply(this,be);return de.cache=ke.set(Ce,Be)||ke,Be};return de.cache=new(Cs.Cache||Lr),de}Cs.Cache=Lr;function dl(J){if(typeof J!="function")throw new hn(W);return function(){var oe=arguments;switch(oe.length){case 0:return!J.call(this);case 1:return!J.call(this,oe[0]);case 2:return!J.call(this,oe[0],oe[1]);case 3:return!J.call(this,oe[0],oe[1],oe[2])}return!J.apply(this,oe)}}function qd(J){return cl(2,J)}var wu=is(function(J,oe){oe=oe.length==1&&jt(oe[0])?Nt(oe[0],cn(Ot())):Nt(Fi(oe,1),cn(Ot()));var de=oe.length;return Jt(function(be){for(var Ce=-1,ke=$i(be.length,de);++Ce=oe}),zt=oc(function(){return arguments}())?oc:function(J){return Ti(J)&&pi.call(J,"callee")&&!Ga.call(J,"callee")},jt=ut.isArray,Sn=_a?cn(_a):nf;function ni(J){return J!=null&&xi(J.length)&&!pr(J)}function _i(J){return Ti(J)&&ni(J)}function ns(J){return J===!0||J===!1||Ti(J)&&Wi(J)==We}var rs=Ku||Wu,sp=Ia?cn(Ia):Ha;function ap(J){return Ti(J)&&J.nodeType===1&&!_s(J)}function lp(J){if(J==null)return!0;if(ni(J)&&(jt(J)||typeof J=="string"||typeof J.splice=="function"||rs(J)||fa(J)||zt(J)))return!J.length;var oe=tn(J);if(oe==Te||oe==rt)return!J.size;if(ua(J))return!Hl(J).length;for(var de in J)if(pi.call(J,de))return!1;return!0}function up(J,oe){return Wa(J,oe)}function Pu(J,oe,de){de=typeof de=="function"?de:B;var be=de?de(J,oe):B;return be===B?Wa(J,oe,B,de):!!be}function Tu(J){if(!Ti(J))return!1;var oe=Wi(J);return oe==ht||oe==lt||typeof J.message=="string"&&typeof J.name=="string"&&!_s(J)}function zr(J){return typeof J=="number"&&Zu(J)}function pr(J){if(!Yt(J))return!1;var oe=Wi(J);return oe==yt||oe==Fe||oe==Qe||oe==et}function oo(J){return typeof J=="number"&&J==Qt(J)}function xi(J){return typeof J=="number"&&J>-1&&J%1==0&&J<=Ae}function Yt(J){var oe=typeof J;return J!=null&&(oe=="object"||oe=="function")}function Ti(J){return J!=null&&typeof J=="object"}var Kc=La?cn(La):Ul;function cp(J,oe){return J===oe||Do(J,oe,Vr(oe))}function hp(J,oe,de){return de=typeof de=="function"?de:B,Do(J,oe,Vr(oe),de)}function fp(J){return ha(J)&&J!=+J}function dp(J){if(ro(J))throw new It(U);return lc(J)}function pp(J){return J===null}function Zc(J){return J==null}function ha(J){return typeof J=="number"||Ti(J)&&Wi(J)==je}function _s(J){if(!Ti(J)||Wi(J)!=Oe)return!1;var oe=Va(J);if(oe===null)return!0;var de=pi.call(oe,"constructor")&&oe.constructor;return typeof de=="function"&&de instanceof de&&ai.call(de)==wh}var Cu=jr?cn(jr):sf;function Jc(J){return oo(J)&&J>=-Ae&&J<=Ae}var lo=Ra?cn(Ra):af;function rn(J){return typeof J=="string"||!jt(J)&&Ti(J)&&Wi(J)==Je}function Ui(J){return typeof J=="symbol"||Ti(J)&&Wi(J)==ct}var fa=Zi?cn(Zi):uc;function mp(J){return J===B}function gp(J){return Ti(J)&&tn(J)==pt}function yp(J){return Ti(J)&&Wi(J)==vt}var vp=to(Vo),$c=to(function(J,oe){return J<=oe});function mr(J){if(!J)return[];if(ni(J))return rn(J)?Ln(J):wi(J);if(qn&&J[qn])return Ll(J[qn]());var oe=tn(J),de=oe==Te?Po:oe==rt?To:pa;return de(J)}function Ut(J){if(!J)return J===0?J:0;if(J=Cn(J),J===Pe||J===-Pe){var oe=J<0?-1:1;return oe*Le}return J===J?J:0}function Qt(J){var oe=Ut(J),de=oe%1;return oe===oe?de?oe-de:oe:0}function Tn(J){return J?Gi(Qt(J),0,Ie):0}function Cn(J){if(typeof J=="number")return J;if(Ui(J))return Ne;if(Yt(J)){var oe=typeof J.valueOf=="function"?J.valueOf():J;J=Yt(oe)?oe+"":oe}if(typeof J!="string")return J===0?J:+J;J=vn(J);var de=wn.test(J);return de||yl.test(J)?In(J.slice(2),de?2:8):ma.test(J)?Ne:+J}function eh(J){return ur(J,xn(J))}function ci(J){return J?Gi(Qt(J),-Ae,Ae):J===0?J:0}function hi(J){return J==null?"":Li(J)}var th=As(function(J,oe){if(ua(oe)||ni(oe)){ur(oe,li(oe),J);return}for(var de in oe)pi.call(oe,de)&&$r(J,de,oe[de])}),uo=As(function(J,oe){ur(oe,xn(oe),J)}),ml=As(function(J,oe,de,be){ur(oe,xn(oe),J,be)}),bp=As(function(J,oe,de,be){ur(oe,li(oe),J,be)}),Sp=Kn(kr);function xp(J,oe){var de=Cr(J);return oe==null?de:nc(de,oe)}var Ap=Jt(function(J,oe){J=di(J);var de=-1,be=oe.length,Ce=be>2?oe[2]:B;for(Ce&&Xi(oe[0],oe[1],Ce)&&(be=1);++de1),ke}),ur(J,no(J),de),be&&(de=kn(de,K|ie|te,Pc));for(var Ce=oe.length;Ce--;)qo(de,oe[Ce]);return de});function Fp(J,oe){return sh(J,dl(Ot(oe)))}var rh=Kn(function(J,oe){return J==null?{}:fc(J,oe)});function sh(J,oe){if(J==null)return{};var de=Nt(no(J),function(be){return[be]});return oe=Ot(oe),dc(J,de,function(be,Ce){return oe(be,Ce[0])})}function Dp(J,oe,de){oe=ts(oe,J);var be=-1,Ce=oe.length;for(Ce||(Ce=1,J=B);++beoe){var be=J;J=oe,oe=be}if(de||J%1||oe%1){var Ce=$u();return $i(J+Ce*(oe-J+Eo("1e-"+((Ce+"").length-1))),oe)}return Ql(J,oe)}var lh=cr(function(J,oe,de){return oe=oe.toLowerCase(),J+(de?ku(oe):oe)});function ku(J){return gl(hi(J).toLowerCase())}function uh(J){return J=hi(J),J&&J.replace(Ns,ph).replace(Ta,"")}function Xp(J,oe,de){J=hi(J),oe=Li(oe);var be=J.length;de=de===B?be:Gi(Qt(de),0,be);var Ce=de;return de-=oe.length,de>=0&&J.slice(de,Ce)==oe}function Yp(J){return J=hi(J),J&&Ur.test(J)?J.replace(fi,mh):J}function jp(J){return J=hi(J),J&&ss.test(J)?J.replace(tr,"\\$&"):J}var Qp=cr(function(J,oe,de){return J+(de?"-":"")+oe.toLowerCase()}),Kp=cr(function(J,oe,de){return J+(de?" ":"")+oe.toLowerCase()}),Zp=Es("toLowerCase");function Jp(J,oe,de){J=hi(J),oe=Qt(oe);var be=oe?Ji(J):0;if(!oe||be>=oe)return J;var Ce=(oe-be)/2;return Zo(Zs(Ce),de)+J+Zo(ps(Ce),de)}function $p(J,oe,de){J=hi(J),oe=Qt(oe);var be=oe?Ji(J):0;return oe&&be>>0,de?(J=hi(J),J&&(typeof oe=="string"||oe!=null&&!Cu(oe))&&(oe=Li(oe),!oe&&Xs(J))?Br(Ln(J),0,de):J.split(oe,de)):[]}var om=cr(function(J,oe,de){return J+(de?" ":"")+gl(oe)});function lm(J,oe,de){return J=hi(J),de=de==null?0:Gi(Qt(de),0,J.length),oe=Li(oe),J.slice(de,de+oe.length)==oe}function um(J,oe,de){var be=Xe.templateSettings;de&&Xi(J,oe,de)&&(oe=B),J=hi(J),oe=ml({},oe,be,su);var Ce=ml({},oe.imports,be.imports,su),ke=li(Ce),Be=fs(Ce,ke),ze,tt,at=0,ot=oe.interpolate||Bs,mt="__p += '",St=Rl((oe.escape||Bs).source+"|"+ot.source+"|"+(ot===Gn?qr:Bs).source+"|"+(oe.evaluate||Bs).source+"|$","g"),Et="//# sourceURL="+(pi.call(oe,"sourceURL")?(oe.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++gi+"]")+` `;J.replace(St,function(_t,Lt,qt,bi,Si,ri){return qt||(qt=bi),mt+=J.slice(at,ri).replace(pn,gh),Lt&&(ze=!0,mt+=`' + __e(`+Lt+`) + '`),Si&&(tt=!0,mt+=`'; `+Si+`; __p += '`),qt&&(mt+=`' + ((__t = (`+qt+`)) == null ? '' : __t) + '`),at=ri+_t.length,_t}),mt+=`'; `;var Ct=pi.call(oe,"variable")&&oe.variable;if(!Ct)mt=`with (obj) { `+mt+` } `;else if(ei.test(Ct))throw new It(q);mt=(tt?mt.replace(Mi,""):mt).replace(Ai,"$1").replace(En,"$1;"),mt="function("+(Ct||"obj")+`) { `+(Ct?"":`obj || (obj = {}); `)+"var __t, __p = ''"+(ze?", __e = _.escape":"")+(tt?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; `)+mt+`return __p }`;var Mt=ch(function(){return Gt(ke,Et+"return "+mt).apply(B,Be)});if(Mt.source=mt,Tu(Mt))throw Mt;return Mt}function cm(J){return hi(J).toLowerCase()}function hm(J){return hi(J).toUpperCase()}function fm(J,oe,de){if(J=hi(J),J&&(de||oe===B))return vn(J);if(!J||!(oe=Li(oe)))return J;var be=Ln(J),Ce=Ln(oe),ke=Il(be,Ce),Be=Yu(be,Ce)+1;return Br(be,ke,Be).join("")}function dm(J,oe,de){if(J=hi(J),J&&(de||oe===B))return J.slice(0,ju(J)+1);if(!J||!(oe=Li(oe)))return J;var be=Ln(J),Ce=Yu(be,Ln(oe))+1;return Br(be,0,Ce).join("")}function pm(J,oe,de){if(J=hi(J),J&&(de||oe===B))return J.replace(Wr,"");if(!J||!(oe=Li(oe)))return J;var be=Ln(J),Ce=Il(be,Ln(oe));return Br(be,Ce).join("")}function mm(J,oe){var de=Ee,be=ve;if(Yt(oe)){var Ce="separator"in oe?oe.separator:Ce;de="length"in oe?Qt(oe.length):de,be="omission"in oe?Li(oe.omission):be}J=hi(J);var ke=J.length;if(Xs(J)){var Be=Ln(J);ke=Be.length}if(de>=ke)return J;var ze=de-Ji(be);if(ze<1)return be;var tt=Be?Br(Be,0,ze).join(""):J.slice(0,ze);if(Ce===B)return tt+be;if(Be&&(ze+=tt.length-ze),Cu(Ce)){if(J.slice(ze).search(Ce)){var at,ot=tt;for(Ce.global||(Ce=Rl(Ce.source,hi(ks.exec(Ce))+"g")),Ce.lastIndex=0;at=Ce.exec(ot);)var mt=at.index;tt=tt.slice(0,mt===B?ze:mt)}}else if(J.indexOf(Li(Ce),ze)!=ze){var St=tt.lastIndexOf(Ce);St>-1&&(tt=tt.slice(0,St))}return tt+be}function gm(J){return J=hi(J),J&&er.test(J)?J.replace(Yi,Sh):J}var Nu=cr(function(J,oe,de){return J+(de?" ":"")+oe.toUpperCase()}),gl=Es("toUpperCase");function Bu(J,oe,de){return J=hi(J),oe=de?B:oe,oe===B?yh(J)?Eh(J):un(J):J.match(oe)||[]}var ch=Jt(function(J,oe){try{return ln(J,B,oe)}catch(de){return Tu(de)?de:new It(de)}}),ym=Kn(function(J,oe){return st(oe,function(de){de=nn(de),jn(J,de,hl(J[de],J))}),J});function vm(J){var oe=J==null?0:J.length,de=Ot();return J=oe?Nt(J,function(be){if(typeof be[1]!="function")throw new hn(W);return[de(be[0]),be[1]]}):[],Jt(function(be){for(var Ce=-1;++CeAe)return[];var de=Ie,be=$i(J,Ie);oe=Ot(oe),J-=Ie;for(var Ce=_l(be,oe);++de0||oe<0)?new $t(de):(J<0?de=de.takeRight(-J):J&&(de=de.drop(J)),oe!==B&&(oe=Qt(oe),de=oe<0?de.dropRight(-oe):de.take(oe-J)),de)},$t.prototype.takeRightWhile=function(J){return this.reverse().takeWhile(J).reverse()},$t.prototype.toArray=function(){return this.take(Ie)},Bn($t.prototype,function(J,oe){var de=/^(?:filter|find|map|reject)|While$/.test(oe),be=/^(?:head|last)$/.test(oe),Ce=Xe[be?"take"+(oe=="last"?"Right":""):oe],ke=be||/^find/.test(oe);!Ce||(Xe.prototype[oe]=function(){var Be=this.__wrapped__,ze=be?[1]:arguments,tt=Be instanceof $t,at=ze[0],ot=tt||jt(Be),mt=function(Lt){var qt=Ce.apply(Xe,ti([Lt],ze));return be&&St?qt[0]:qt};ot&&de&&typeof at=="function"&&at.length!=1&&(tt=ot=!1);var St=this.__chain__,Et=!!this.__actions__.length,Ct=ke&&!St,Mt=tt&&!Et;if(!ke&&ot){Be=Mt?Be:new $t(this);var _t=J.apply(Be,ze);return _t.__actions__.push({func:sl,args:[mt],thisArg:B}),new Wt(_t,St)}return Ct&&Mt?J.apply(this,ze):(_t=this.thru(mt),Ct?be?_t.value()[0]:_t.value():_t)})}),st(["pop","push","shift","sort","splice","unshift"],function(J){var oe=Co[J],de=/^(?:push|sort|unshift)$/.test(J)?"tap":"thru",be=/^(?:pop|shift)$/.test(J);Xe.prototype[J]=function(){var Ce=arguments;if(be&&!this.__chain__){var ke=this.value();return oe.apply(jt(ke)?ke:[],Ce)}return this[de](function(Be){return oe.apply(jt(Be)?Be:[],Ce)})}}),Bn($t.prototype,function(J,oe){var de=Xe[oe];if(de){var be=de.name+"";pi.call(Js,be)||(Js[be]=[]),Js[be].push({name:oe,func:de})}}),Js[Ja(B,ae).name]=[{name:"wrapper",func:B}],$t.prototype.clone=Nh,$t.prototype.reverse=Bh,$t.prototype.value=ys,Xe.prototype.at=md,Xe.prototype.chain=gd,Xe.prototype.commit=yd,Xe.prototype.next=vd,Xe.prototype.plant=Sd,Xe.prototype.reverse=xd,Xe.prototype.toJSON=Xe.prototype.valueOf=Xe.prototype.value=Ad,Xe.prototype.first=Xe.prototype.head,qn&&(Xe.prototype[qn]=bd),Xe},ft=js();on?((on.exports=ft)._=ft,Pn._=ft):Ei._=ft}).call(commonjsGlobal$2)})(lodash$1,lodash$1.exports);class SectionHint{constructor(){this.currentNote=null,this.el=document.createElement("div"),this.span=document.createElement("span"),this.init()}init(){this.el.id="section-hint"+Math.floor(Math.random()*1e5),this.hide()}showForElement(R){var G;if(this.currentNote===R)return;this.el||(this.el=document.createElement("div"),this.init(),this.show()),this.currentNote=R;const B=getBoundingBoxByverticalNote(R),D=document.querySelector("#osmdSvgPage1");if(B){const{x:U,y:W,width:q,height:Y}=B;this.el.id="custom-cursor-bg-hint",this.el.style.position="absolute",this.el.style.top=formatZoom(W)+"px",this.el.style.left=formatZoom(U)+"px",this.el.style.width=formatZoom(q)+"px",this.el.style.height=formatZoom(Y)+"px",this.el.style.zIndex="-1",(G=D==null?void 0:D.parentNode)==null||G.appendChild(this.el)}}hide(){this.el.style.display="none"}show(){this.el.style.display=""}destroy(){this.currentNote=null,this.hide()}}const scriptRel="modulepreload",seen={},base$2="/orchestra-music-score/",__vitePreload=function F(R,B){return!B||B.length===0?R():Promise.all(B.map(D=>{if(D=`${base$2}${D}`,D in seen)return;seen[D]=!0;const G=D.endsWith(".css"),U=G?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${D}"]${U}`))return;const W=document.createElement("link");if(W.rel=G?"stylesheet":scriptRel,G||(W.as="script",W.crossOrigin=""),W.href=D,document.head.appendChild(W),G)return new Promise((q,Y)=>{W.addEventListener("load",q),W.addEventListener("error",()=>Y(new Error(`Unable to preload CSS for ${D}`)))})})).then(()=>R())};function __variableDynamicImportRuntime0__(F){switch(F){case"../src/pages/baseClass/index.tsx":return __vitePreload(()=>import("./index.24c1f12b.js"),["assets/index.24c1f12b.js","assets/index.4b7cbd62.css","assets/index.d6f7c7a0.js","assets/index.3a4d82e3.js"]);case"../src/pages/classify/index.tsx":return __vitePreload(()=>import("./index.45fb9fae.js"),["assets/index.45fb9fae.js","assets/index.f442919d.css","assets/index.d6f7c7a0.js"]);case"../src/pages/detail/index.tsx":return __vitePreload(()=>import("./index.d6d55861.js"),["assets/index.d6d55861.js","assets/index.b8ab8b80.css","assets/index.7e3d71d9.js","assets/index.d6f7c7a0.js","assets/index.bc681c42.js","assets/index.020a6c9c.css","assets/index.46ac49e7.js","assets/index.06f6a16d.css","assets/music.b35eb5be.js","assets/state.9e8c7c98.js","assets/vip.af291391.js","assets/vip.838f4afe.css","assets/index.82a2b611.js","assets/index.a2c8a823.js","assets/index.3a4d82e3.js"]);case"../src/pages/list/index.tsx":return __vitePreload(()=>import("./index.9f96d371.js"),["assets/index.9f96d371.js","assets/index.be7ceb5d.css","assets/state.9e8c7c98.js","assets/vip.af291391.js","assets/vip.838f4afe.css","assets/music.b35eb5be.js","assets/index.82a2b611.js","assets/index.3a4d82e3.js"]);case"../src/pages/notfund/index.tsx":return __vitePreload(()=>import("./index.b9c4e169.js"),["assets/index.b9c4e169.js","assets/index.3a4d82e3.js"]);case"../src/pages/render-test/index.tsx":return __vitePreload(()=>import("./index.8ea72a66.js"),[]);case"../src/pages/report/index.tsx":return __vitePreload(()=>import("./index.455a1c8a.js").then(function(R){return R.i}),["assets/index.455a1c8a.js","assets/index.007e2b62.css","assets/index.46ac49e7.js","assets/index.06f6a16d.css","assets/music.b35eb5be.js","assets/index.4d5773da.js","assets/index.fba0bdd7.css","assets/index.7e3d71d9.js","assets/index.3a4d82e3.js","assets/index.a2c8a823.js"]);default:return new Promise(function(R,B){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(B.bind(null,new Error("Unknown variable dynamic import: "+F)))})}}const getRouterComponent=F=>async()=>{const R=setTimeout(()=>{open$1()},300);let B=Promise.resolve(null);try{B=await __variableDynamicImportRuntime0__(`../src/pages/${F}/index.tsx`)}catch{B=Promise.reject()}return clearTimeout(R),close$1(),B};var routes=[{path:"/",component:getRouterComponent("baseClass")},{path:"/classify",component:getRouterComponent("classify")},{path:"/list/:id",component:getRouterComponent("list"),meta:{keepAlive:!0}},{path:"/detail/:id",component:getRouterComponent("detail")},{path:"/evaluating/:id",component:getRouterComponent("detail")},{path:"/report",component:getRouterComponent("report")},{path:"/report/:id",component:getRouterComponent("report")},{path:"/render-test",component:getRouterComponent("render-test")},{path:"/vexflow-test",component:__vitePreload(()=>import("./index.96442aba.js"),[])},{path:"/:pathMatch(.*)*",component:getRouterComponent("notfund"),meta:{title:"404 Not Fund"}}];createRouter({history:createWebHashHistory(),routes});const tock="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",tick="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",b64toBlob=(F,R="",B=512)=>{const D=atob(F),G=[];for(let W=0;W=0&&K<=1){if(ie._volume=K,ie._muted)return ie;ie.usingWebAudio&&ie.masterGain.gain.setValueAtTime(K,B.ctx.currentTime);for(var te=0;te=0;ie--)K._howls[ie].unload();return K.usingWebAudio&&K.ctx&&typeof K.ctx.close!="undefined"&&(K.ctx.close(),K.ctx=null,Z()),K},codecs:function(K){return(this||B)._codecs[K.replace(/^x-/,"")]},_setup:function(){var K=this||B;if(K.state=K.ctx&&K.ctx.state||"suspended",K._autoSuspend(),!K.usingWebAudio)if(typeof Audio!="undefined")try{var ie=new Audio;typeof ie.oncanplaythrough=="undefined"&&(K._canPlayEvent="canplay")}catch{K.noAudio=!0}else K.noAudio=!0;try{var ie=new Audio;ie.muted&&(K.noAudio=!0)}catch{}return K.noAudio||K._setupCodecs(),K},_setupCodecs:function(){var K=this||B,ie=null;try{ie=typeof Audio!="undefined"?new Audio:null}catch{return K}if(!ie||typeof ie.canPlayType!="function")return K;var te=ie.canPlayType("audio/mpeg;").replace(/^no$/,""),ne=K._navigator?K._navigator.userAgent:"",se=ne.match(/OPR\/([0-6].)/g),re=se&&parseInt(se[0].split("/")[1],10)<33,ae=ne.indexOf("Safari")!==-1&&ne.indexOf("Chrome")===-1,le=ne.match(/Version\/(.*?) /),ce=ae&&le&&parseInt(le[1],10)<15;return K._codecs={mp3:!!(!re&&(te||ie.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!te,opus:!!ie.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!ie.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!ie.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(ie.canPlayType('audio/wav; codecs="1"')||ie.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!ie.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!ie.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(ie.canPlayType("audio/x-m4a;")||ie.canPlayType("audio/m4a;")||ie.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(ie.canPlayType("audio/x-m4b;")||ie.canPlayType("audio/m4b;")||ie.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(ie.canPlayType("audio/x-mp4;")||ie.canPlayType("audio/mp4;")||ie.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!ce&&ie.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!ce&&ie.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!ie.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(ie.canPlayType("audio/x-flac;")||ie.canPlayType("audio/flac;")).replace(/^no$/,"")},K},_unlockAudio:function(){var K=this||B;if(!(K._audioUnlocked||!K.ctx)){K._audioUnlocked=!1,K.autoUnlock=!1,!K._mobileUnloaded&&K.ctx.sampleRate!==44100&&(K._mobileUnloaded=!0,K.unload()),K._scratchBuffer=K.ctx.createBuffer(1,1,22050);var ie=function(te){for(;K._html5AudioPool.length0?ae._seek:te._sprite[K][0]/1e3),he=Math.max(0,(te._sprite[K][0]+te._sprite[K][1])/1e3-ce),pe=he*1e3/Math.abs(ae._rate),me=te._sprite[K][0]/1e3,fe=(te._sprite[K][0]+te._sprite[K][1])/1e3;ae._sprite=K,ae._ended=!1;var ge=function(){ae._paused=!1,ae._seek=ce,ae._start=me,ae._stop=fe,ae._loop=!!(ae._loop||te._sprite[K][2])};if(ce>=fe){te._ended(ae);return}var Se=ae._node;if(te._webAudio){var Ee=function(){te._playLock=!1,ge(),te._refreshBuffer(ae);var ye=ae._muted||te._muted?0:ae._volume;Se.gain.setValueAtTime(ye,B.ctx.currentTime),ae._playStart=B.ctx.currentTime,typeof Se.bufferSource.start=="undefined"?ae._loop?Se.bufferSource.noteGrainOn(0,ce,86400):Se.bufferSource.noteGrainOn(0,ce,he):ae._loop?Se.bufferSource.start(0,ce,86400):Se.bufferSource.start(0,ce,he),pe!==1/0&&(te._endTimers[ae._id]=setTimeout(te._ended.bind(te,ae),pe)),ie||setTimeout(function(){te._emit("play",ae._id),te._loadQueue()},0)};B.state==="running"&&B.ctx.state!=="interrupted"?Ee():(te._playLock=!0,te.once("resume",Ee),te._clearTimer(ae._id))}else{var ve=function(){Se.currentTime=ce,Se.muted=ae._muted||te._muted||B._muted||Se.muted,Se.volume=ae._volume*B.volume(),Se.playbackRate=ae._rate;try{var ye=Se.play();if(ye&&typeof Promise!="undefined"&&(ye instanceof Promise||typeof ye.then=="function")?(te._playLock=!0,ge(),ye.then(function(){te._playLock=!1,Se._unlocked=!0,ie?te._loadQueue():te._emit("play",ae._id)}).catch(function(){te._playLock=!1,te._emit("playerror",ae._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),ae._ended=!0,ae._paused=!0})):ie||(te._playLock=!1,ge(),te._emit("play",ae._id)),Se.playbackRate=ae._rate,Se.paused){te._emit("playerror",ae._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}K!=="__default"||ae._loop?te._endTimers[ae._id]=setTimeout(te._ended.bind(te,ae),pe):(te._endTimers[ae._id]=function(){te._ended(ae),Se.removeEventListener("ended",te._endTimers[ae._id],!1)},Se.addEventListener("ended",te._endTimers[ae._id],!1))}catch(we){te._emit("playerror",ae._id,we)}};Se.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(Se.src=te._src,Se.load());var xe=window&&window.ejecta||!Se.readyState&&B._navigator.isCocoonJS;if(Se.readyState>=3||xe)ve();else{te._playLock=!0,te._state="loading";var Me=function(){te._state="loaded",ve(),Se.removeEventListener(B._canPlayEvent,Me,!1)};Se.addEventListener(B._canPlayEvent,Me,!1),te._clearTimer(ae._id)}}return ae._id},pause:function(K){var ie=this;if(ie._state!=="loaded"||ie._playLock)return ie._queue.push({event:"pause",action:function(){ie.pause(K)}}),ie;for(var te=ie._getSoundIds(K),ne=0;ne=0?ne=parseInt(ie[0],10):te=parseFloat(ie[0])}else ie.length>=2&&(te=parseFloat(ie[0]),ne=parseInt(ie[1],10));var ae;if(typeof te!="undefined"&&te>=0&&te<=1){if(K._state!=="loaded"||K._playLock)return K._queue.push({event:"volume",action:function(){K.volume.apply(K,ie)}}),K;typeof ne=="undefined"&&(K._volume=te),ne=K._getSoundIds(ne);for(var le=0;le0?ne/he:ne),me=Date.now();K._fadeTo=te,K._interval=setInterval(function(){var fe=(Date.now()-me)/ne;me=Date.now(),le+=ce*fe,le=Math.round(le*100)/100,ce<0?le=Math.max(te,le):le=Math.min(te,le),ae._webAudio?K._volume=le:ae.volume(le,K._id,!0),re&&(ae._volume=le),(teie&&le>=te)&&(clearInterval(K._interval),K._interval=null,K._fadeTo=null,ae.volume(te,K._id),ae._emit("fade",K._id))},pe)},_stopFade:function(K){var ie=this,te=ie._soundById(K);return te&&te._interval&&(ie._webAudio&&te._node.gain.cancelScheduledValues(B.ctx.currentTime),clearInterval(te._interval),te._interval=null,ie.volume(te._fadeTo,K),te._fadeTo=null,ie._emit("fade",K)),ie},loop:function(){var K=this,ie=arguments,te,ne,se;if(ie.length===0)return K._loop;if(ie.length===1)if(typeof ie[0]=="boolean")te=ie[0],K._loop=te;else return se=K._soundById(parseInt(ie[0],10)),se?se._loop:!1;else ie.length===2&&(te=ie[0],ne=parseInt(ie[1],10));for(var re=K._getSoundIds(ne),ae=0;ae=0?ne=parseInt(ie[0],10):te=parseFloat(ie[0])}else ie.length===2&&(te=parseFloat(ie[0]),ne=parseInt(ie[1],10));var ae;if(typeof te=="number"){if(K._state!=="loaded"||K._playLock)return K._queue.push({event:"rate",action:function(){K.rate.apply(K,ie)}}),K;typeof ne=="undefined"&&(K._rate=te),ne=K._getSoundIds(ne);for(var le=0;le=0?ne=parseInt(ie[0],10):K._sounds.length&&(ne=K._sounds[0]._id,te=parseFloat(ie[0]))}else ie.length===2&&(te=parseFloat(ie[0]),ne=parseInt(ie[1],10));if(typeof ne=="undefined")return 0;if(typeof te=="number"&&(K._state!=="loaded"||K._playLock))return K._queue.push({event:"seek",action:function(){K.seek.apply(K,ie)}}),K;var ae=K._soundById(ne);if(ae)if(typeof te=="number"&&te>=0){var le=K.playing(ne);le&&K.pause(ne,!0),ae._seek=te,ae._ended=!1,K._clearTimer(ne),!K._webAudio&&ae._node&&!isNaN(ae._node.duration)&&(ae._node.currentTime=te);var ce=function(){le&&K.play(ne,!0),K._emit("seek",ne)};if(le&&!K._webAudio){var he=function(){K._playLock?setTimeout(he,0):ce()};setTimeout(he,0)}else ce()}else if(K._webAudio){var pe=K.playing(ne)?B.ctx.currentTime-ae._playStart:0,me=ae._rateSeek?ae._rateSeek-ae._seek:0;return ae._seek+(me+pe*Math.abs(ae._rate))}else return ae._node.currentTime;return K},playing:function(K){var ie=this;if(typeof K=="number"){var te=ie._soundById(K);return te?!te._paused:!1}for(var ne=0;ne=0&&B._howls.splice(ne,1);var se=!0;for(te=0;te=0){se=!1;break}return U&&se&&delete U[K._src],B.noAudio=!1,K._state="unloaded",K._sounds=[],K=null,null},on:function(K,ie,te,ne){var se=this,re=se["_on"+K];return typeof ie=="function"&&re.push(ne?{id:te,fn:ie,once:ne}:{id:te,fn:ie}),se},off:function(K,ie,te){var ne=this,se=ne["_on"+K],re=0;if(typeof ie=="number"&&(te=ie,ie=null),ie||te)for(re=0;re=0;re--)(!se[re].id||se[re].id===ie||K==="load")&&(setTimeout(function(ae){ae.call(this,ie,te)}.bind(ne,se[re].fn),0),se[re].once&&ne.off(K,se[re].fn,se[re].id));return ne._loadQueue(K),ne},_loadQueue:function(K){var ie=this;if(ie._queue.length>0){var te=ie._queue[0];te.event===K&&(ie._queue.shift(),ie._loadQueue()),K||te.action()}return ie},_ended:function(K){var ie=this,te=K._sprite;if(!ie._webAudio&&K._node&&!K._node.paused&&!K._node.ended&&K._node.currentTime=0;ne--){if(te<=ie)return;K._sounds[ne]._ended&&(K._webAudio&&K._sounds[ne]._node&&K._sounds[ne]._node.disconnect(0),K._sounds.splice(ne,1),te--)}}},_getSoundIds:function(K){var ie=this;if(typeof K=="undefined"){for(var te=[],ne=0;ne=0;if(B._scratchBuffer&&K.bufferSource&&(K.bufferSource.onended=null,K.bufferSource.disconnect(0),te))try{K.bufferSource.buffer=B._scratchBuffer}catch{}return K.bufferSource=null,ie},_clearSound:function(K){var ie=/MSIE |Trident\//.test(B._navigator&&B._navigator.userAgent);ie||(K.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var G=function(K){this._parent=K,this.init()};G.prototype={init:function(){var K=this,ie=K._parent;return K._muted=ie._muted,K._loop=ie._loop,K._volume=ie._volume,K._rate=ie._rate,K._seek=0,K._paused=!0,K._ended=!0,K._sprite="__default",K._id=++B._counter,ie._sounds.push(K),K.create(),K},create:function(){var K=this,ie=K._parent,te=B._muted||K._muted||K._parent._muted?0:K._volume;return ie._webAudio?(K._node=typeof B.ctx.createGain=="undefined"?B.ctx.createGainNode():B.ctx.createGain(),K._node.gain.setValueAtTime(te,B.ctx.currentTime),K._node.paused=!0,K._node.connect(B.masterGain)):B.noAudio||(K._node=B._obtainHtml5Audio(),K._errorFn=K._errorListener.bind(K),K._node.addEventListener("error",K._errorFn,!1),K._loadFn=K._loadListener.bind(K),K._node.addEventListener(B._canPlayEvent,K._loadFn,!1),K._endFn=K._endListener.bind(K),K._node.addEventListener("ended",K._endFn,!1),K._node.src=ie._src,K._node.preload=ie._preload===!0?"auto":ie._preload,K._node.volume=te*B.volume(),K._node.load()),K},reset:function(){var K=this,ie=K._parent;return K._muted=ie._muted,K._loop=ie._loop,K._volume=ie._volume,K._rate=ie._rate,K._seek=0,K._rateSeek=0,K._paused=!0,K._ended=!0,K._sprite="__default",K._id=++B._counter,K},_errorListener:function(){var K=this;K._parent._emit("loaderror",K._id,K._node.error?K._node.error.code:0),K._node.removeEventListener("error",K._errorFn,!1)},_loadListener:function(){var K=this,ie=K._parent;ie._duration=Math.ceil(K._node.duration*10)/10,Object.keys(ie._sprite).length===0&&(ie._sprite={__default:[0,ie._duration*1e3]}),ie._state!=="loaded"&&(ie._state="loaded",ie._emit("load"),ie._loadQueue()),K._node.removeEventListener(B._canPlayEvent,K._loadFn,!1)},_endListener:function(){var K=this,ie=K._parent;ie._duration===1/0&&(ie._duration=Math.ceil(K._node.duration*10)/10,ie._sprite.__default[1]===1/0&&(ie._sprite.__default[1]=ie._duration*1e3),ie._ended(K)),K._node.removeEventListener("ended",K._endFn,!1)}};var U={},W=function(K){var ie=K._src;if(U[ie]){K._duration=U[ie].duration,Q(K);return}if(/^data:[^;]+;base64,/.test(ie)){for(var te=atob(ie.split(",")[1]),ne=new Uint8Array(te.length),se=0;se0?(U[ie._src]=se,Q(ie,se)):te()};typeof Promise!="undefined"&&B.ctx.decodeAudioData.length===1?B.ctx.decodeAudioData(K).then(ne).catch(te):B.ctx.decodeAudioData(K,ne,te)},Q=function(K,ie){ie&&!K._duration&&(K._duration=ie.duration),Object.keys(K._sprite).length===0&&(K._sprite={__default:[0,K._duration*1e3]}),K._state!=="loaded"&&(K._state="loaded",K._emit("load"),K._loadQueue())},Z=function(){if(!!B.usingWebAudio){try{typeof AudioContext!="undefined"?B.ctx=new AudioContext:typeof webkitAudioContext!="undefined"?B.ctx=new webkitAudioContext:B.usingWebAudio=!1}catch{B.usingWebAudio=!1}B.ctx||(B.usingWebAudio=!1);var K=/iP(hone|od|ad)/.test(B._navigator&&B._navigator.platform),ie=B._navigator&&B._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),te=ie?parseInt(ie[1],10):null;if(K&&te&&te<9){var ne=/safari/.test(B._navigator&&B._navigator.userAgent.toLowerCase());B._navigator&&!ne&&(B.usingWebAudio=!1)}B.usingWebAudio&&(B.masterGain=typeof B.ctx.createGain=="undefined"?B.ctx.createGainNode():B.ctx.createGain(),B.masterGain.gain.setValueAtTime(B._muted?0:B._volume,B.ctx.currentTime),B.masterGain.connect(B.ctx.destination)),B._setup()}};F.Howler=B,F.Howl=D,typeof commonjsGlobal$2!="undefined"?(commonjsGlobal$2.HowlerGlobal=R,commonjsGlobal$2.Howler=B,commonjsGlobal$2.Howl=D,commonjsGlobal$2.Sound=G):typeof window!="undefined"&&(window.HowlerGlobal=R,window.Howler=B,window.Howl=D,window.Sound=G)})();/*! * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported. * * howler.js v2.2.3 * howlerjs.com * * (c) 2013-2020, James Simpson of GoldFire Studios * goldfirestudios.com * * MIT License */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(B){var D=this;if(!D.ctx||!D.ctx.listener)return D;for(var G=D._howls.length-1;G>=0;G--)D._howls[G].stereo(B);return D},HowlerGlobal.prototype.pos=function(B,D,G){var U=this;if(!U.ctx||!U.ctx.listener)return U;if(D=typeof D!="number"?U._pos[1]:D,G=typeof G!="number"?U._pos[2]:G,typeof B=="number")U._pos=[B,D,G],typeof U.ctx.listener.positionX!="undefined"?(U.ctx.listener.positionX.setTargetAtTime(U._pos[0],Howler.ctx.currentTime,.1),U.ctx.listener.positionY.setTargetAtTime(U._pos[1],Howler.ctx.currentTime,.1),U.ctx.listener.positionZ.setTargetAtTime(U._pos[2],Howler.ctx.currentTime,.1)):U.ctx.listener.setPosition(U._pos[0],U._pos[1],U._pos[2]);else return U._pos;return U},HowlerGlobal.prototype.orientation=function(B,D,G,U,W,q){var Y=this;if(!Y.ctx||!Y.ctx.listener)return Y;var Q=Y._orientation;if(D=typeof D!="number"?Q[1]:D,G=typeof G!="number"?Q[2]:G,U=typeof U!="number"?Q[3]:U,W=typeof W!="number"?Q[4]:W,q=typeof q!="number"?Q[5]:q,typeof B=="number")Y._orientation=[B,D,G,U,W,q],typeof Y.ctx.listener.forwardX!="undefined"?(Y.ctx.listener.forwardX.setTargetAtTime(B,Howler.ctx.currentTime,.1),Y.ctx.listener.forwardY.setTargetAtTime(D,Howler.ctx.currentTime,.1),Y.ctx.listener.forwardZ.setTargetAtTime(G,Howler.ctx.currentTime,.1),Y.ctx.listener.upX.setTargetAtTime(U,Howler.ctx.currentTime,.1),Y.ctx.listener.upY.setTargetAtTime(W,Howler.ctx.currentTime,.1),Y.ctx.listener.upZ.setTargetAtTime(q,Howler.ctx.currentTime,.1)):Y.ctx.listener.setOrientation(B,D,G,U,W,q);else return Q;return Y},Howl.prototype.init=function(B){return function(D){var G=this;return G._orientation=D.orientation||[1,0,0],G._stereo=D.stereo||null,G._pos=D.pos||null,G._pannerAttr={coneInnerAngle:typeof D.coneInnerAngle!="undefined"?D.coneInnerAngle:360,coneOuterAngle:typeof D.coneOuterAngle!="undefined"?D.coneOuterAngle:360,coneOuterGain:typeof D.coneOuterGain!="undefined"?D.coneOuterGain:0,distanceModel:typeof D.distanceModel!="undefined"?D.distanceModel:"inverse",maxDistance:typeof D.maxDistance!="undefined"?D.maxDistance:1e4,panningModel:typeof D.panningModel!="undefined"?D.panningModel:"HRTF",refDistance:typeof D.refDistance!="undefined"?D.refDistance:1,rolloffFactor:typeof D.rolloffFactor!="undefined"?D.rolloffFactor:1},G._onstereo=D.onstereo?[{fn:D.onstereo}]:[],G._onpos=D.onpos?[{fn:D.onpos}]:[],G._onorientation=D.onorientation?[{fn:D.onorientation}]:[],B.call(this,D)}}(Howl.prototype.init),Howl.prototype.stereo=function(B,D){var G=this;if(!G._webAudio)return G;if(G._state!=="loaded")return G._queue.push({event:"stereo",action:function(){G.stereo(B,D)}}),G;var U=typeof Howler.ctx.createStereoPanner=="undefined"?"spatial":"stereo";if(typeof D=="undefined")if(typeof B=="number")G._stereo=B,G._pos=[B,0,0];else return G._stereo;for(var W=G._getSoundIds(D),q=0;q(browserInfo$6.huawei?.2:.1)/F*1e3;let htick=new howler.Howl({src:tickUrl,format:["mp3"]}),htock=new howler.Howl({src:tockUrl,format:["mp3"]});class Player{constructor(R,B){this.ticks=[],this.event=new EventEmitter,this.isRuning=!1,this.isNeedStop=!1,this.getTickByDots=(D,G)=>Array.from(Array(D)).map((U,W)=>({time:`0:${(G+W)*1.4}`,note:W===0?"C5":"c4",velocity:1,index:W+G})),this.formatTick=(D,G)=>{const U=[];for(let W=0;W{const Y=U%R.length===0?htick:htock;this.isNeedStop||(Y.play(),console.log(Y)),U{var Q;this.isRuning=!1,this.event.emit("stop"),console.log("tick stop"),(Q=this.part)==null||Q.clear()},450/B),U++},q=()=>{this.isNeedStop||setTimeout(()=>{try{W()}catch(Y){console.log("timeTickError",Y)}},700/B)};W()}async setAudioMode(R,B,D=1){if(await nextTick(),this.isRuning)return;this.isRuning=!0;const G=this.formatTick(R,D);this.startTick(G,B,R,D)}async start(R,B,D=1){this.isNeedStop=!1,this.setAudioMode(R,B,D)}destroy(){this.ticks=[],this.event.emit("destroy"),console.log("destroy"),state$2.activeTick=-1,state$2.activeTickRepeat=1,this.event.removeAllListeners(),this.isRuning=!1,this.isNeedStop=!0,this.part&&(this.part.clear(),this.part=null)}}const originalPostMessage=window.postMessage;window.postMessage=F=>{originalPostMessage(F,"*")};const loop=()=>{},calls={},browserInfo$5=browser();browserInfo$5.isApp&&window.addEventListener("message",F=>{var R,B,D;try{console.log("message",F.data);const G=F.data?typeof F.data=="object"?F.data:JSON.parse(F.data):{},U=((R=G.content)==null?void 0:R.uuid)||G.uuid;try{G.content&&(G.content=JSON.parse(G.content))}catch{}if((B=G==null?void 0:G.content)!=null&&B.uuid,!U){const Y=Object.keys(calls).filter(Q=>Q.indexOf(G.api)===0);for(const Q of Y){const Z=calls[Q]||loop;typeof Z=="function"&&Z(G),Array.isArray(Z)&&Z.forEach(K=>{typeof K=="function"&&K(G)})}return}const W=((D=G.content)==null?void 0:D.uuid)||G.uuid||G.api+G.uuid,q=calls[W]||loop;typeof q=="function"&&q(G)}catch{}});var Km,Zm;const instance=window.ORCHESTRA||((Zm=(Km=window.webkit)==null?void 0:Km.messageHandlers)==null?void 0:Zm.ORCHESTRA),postMessage=(F,R)=>{if(browserInfo$5.isApp){const B=getRandomKey();calls[B]=R||loop,F.content=F.content?{...F.content,uuid:B}:{uuid:B},console.log("send:",JSON.stringify(F)),instance.postMessage(JSON.stringify(F))}},listenerMessage=(F,R)=>{if(browserInfo$5.isApp){const B=F;calls[B]||(calls[B]=[]),calls[B].push(R||loop)}},removeListenerMessage=(F,R)=>{if(browserInfo$5.isApp){const B=F;if(Array.isArray(calls[B])){const D=calls[B].indexOf(R);calls[B].splice(D,1)}}},promisefiyPostMessage=F=>new Promise(R=>{postMessage(F,B=>R(B))});function _taggedTemplateLiteral(F,R){return R||(R=F.slice(0)),Object.freeze(Object.defineProperties(F,{raw:{value:Object.freeze(R)}}))}function __decorate(F,R,B,D){var G,U=arguments.length,W=U<3?R:D===null?D=Object.getOwnPropertyDescriptor(R,B):D;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")W=Reflect.decorate(F,R,B,D);else for(var q=F.length-1;q>=0;q--)(G=F[q])&&(W=(U<3?G(W):U>3?G(R,B,W):G(R,B))||W);return U>3&&W&&Object.defineProperty(R,B,W),W}/** * @license * Copyright 2019 Google LLC * SPDX-License-Identifier: BSD-3-Clause */const t$3=window.ShadowRoot&&(window.ShadyCSS===void 0||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,e$8=Symbol(),n$5=new Map;class s$3{constructor(R,B){if(this._$cssResult$=!0,B!==e$8)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=R}get styleSheet(){let R=n$5.get(this.cssText);return t$3&&R===void 0&&(n$5.set(this.cssText,R=new CSSStyleSheet),R.replaceSync(this.cssText)),R}toString(){return this.cssText}}const o$5=F=>new s$3(typeof F=="string"?F:F+"",e$8),r$3=(F,...R)=>{const B=F.length===1?F[0]:R.reduce((D,G,U)=>D+(W=>{if(W._$cssResult$===!0)return W.cssText;if(typeof W=="number")return W;throw Error("Value passed to 'css' function must be a 'css' function result: "+W+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(G)+F[U+1],F[0]);return new s$3(B,e$8)},i$3=(F,R)=>{t$3?F.adoptedStyleSheets=R.map(B=>B instanceof CSSStyleSheet?B:B.styleSheet):R.forEach(B=>{const D=document.createElement("style"),G=window.litNonce;G!==void 0&&D.setAttribute("nonce",G),D.textContent=B.cssText,F.appendChild(D)})},S$1=t$3?F=>F:F=>F instanceof CSSStyleSheet?(R=>{let B="";for(const D of R.cssRules)B+=D.cssText;return o$5(B)})(F):F;var s$2;const e$7=window.trustedTypes,r$2=e$7?e$7.emptyScript:"",h$2$1=window.reactiveElementPolyfillSupport,o$4={toAttribute(F,R){switch(R){case Boolean:F=F?r$2:null;break;case Object:case Array:F=F==null?F:JSON.stringify(F)}return F},fromAttribute(F,R){let B=F;switch(R){case Boolean:B=F!==null;break;case Number:B=F===null?null:Number(F);break;case Object:case Array:try{B=JSON.parse(F)}catch{B=null}}return B}},n$4=(F,R)=>R!==F&&(R==R||F==F),l$3={attribute:!0,type:String,converter:o$4,reflect:!1,hasChanged:n$4};class a$1 extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(R){var B;(B=this.l)!==null&&B!==void 0||(this.l=[]),this.l.push(R)}static get observedAttributes(){this.finalize();const R=[];return this.elementProperties.forEach((B,D)=>{const G=this._$Eh(D,B);G!==void 0&&(this._$Eu.set(G,D),R.push(G))}),R}static createProperty(R,B=l$3){if(B.state&&(B.attribute=!1),this.finalize(),this.elementProperties.set(R,B),!B.noAccessor&&!this.prototype.hasOwnProperty(R)){const D=typeof R=="symbol"?Symbol():"__"+R,G=this.getPropertyDescriptor(R,D,B);G!==void 0&&Object.defineProperty(this.prototype,R,G)}}static getPropertyDescriptor(R,B,D){return{get(){return this[B]},set(G){const U=this[R];this[B]=G,this.requestUpdate(R,U,D)},configurable:!0,enumerable:!0}}static getPropertyOptions(R){return this.elementProperties.get(R)||l$3}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const R=Object.getPrototypeOf(this);if(R.finalize(),this.elementProperties=new Map(R.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const B=this.properties,D=[...Object.getOwnPropertyNames(B),...Object.getOwnPropertySymbols(B)];for(const G of D)this.createProperty(G,B[G])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(R){const B=[];if(Array.isArray(R)){const D=new Set(R.flat(1/0).reverse());for(const G of D)B.unshift(S$1(G))}else R!==void 0&&B.push(S$1(R));return B}static _$Eh(R,B){const D=B.attribute;return D===!1?void 0:typeof D=="string"?D:typeof R=="string"?R.toLowerCase():void 0}o(){var R;this._$Ep=new Promise(B=>this.enableUpdating=B),this._$AL=new Map,this._$Em(),this.requestUpdate(),(R=this.constructor.l)===null||R===void 0||R.forEach(B=>B(this))}addController(R){var B,D;((B=this._$Eg)!==null&&B!==void 0?B:this._$Eg=[]).push(R),this.renderRoot!==void 0&&this.isConnected&&((D=R.hostConnected)===null||D===void 0||D.call(R))}removeController(R){var B;(B=this._$Eg)===null||B===void 0||B.splice(this._$Eg.indexOf(R)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach((R,B)=>{this.hasOwnProperty(B)&&(this._$Et.set(B,this[B]),delete this[B])})}createRenderRoot(){var R;const B=(R=this.shadowRoot)!==null&&R!==void 0?R:this.attachShadow(this.constructor.shadowRootOptions);return i$3(B,this.constructor.elementStyles),B}connectedCallback(){var R;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(R=this._$Eg)===null||R===void 0||R.forEach(B=>{var D;return(D=B.hostConnected)===null||D===void 0?void 0:D.call(B)})}enableUpdating(R){}disconnectedCallback(){var R;(R=this._$Eg)===null||R===void 0||R.forEach(B=>{var D;return(D=B.hostDisconnected)===null||D===void 0?void 0:D.call(B)})}attributeChangedCallback(R,B,D){this._$AK(R,D)}_$ES(R,B,D=l$3){var G,U;const W=this.constructor._$Eh(R,D);if(W!==void 0&&D.reflect===!0){const q=((U=(G=D.converter)===null||G===void 0?void 0:G.toAttribute)!==null&&U!==void 0?U:o$4.toAttribute)(B,D.type);this._$Ei=R,q==null?this.removeAttribute(W):this.setAttribute(W,q),this._$Ei=null}}_$AK(R,B){var D,G,U;const W=this.constructor,q=W._$Eu.get(R);if(q!==void 0&&this._$Ei!==q){const Y=W.getPropertyOptions(q),Q=Y.converter,Z=(U=(G=(D=Q)===null||D===void 0?void 0:D.fromAttribute)!==null&&G!==void 0?G:typeof Q=="function"?Q:null)!==null&&U!==void 0?U:o$4.fromAttribute;this._$Ei=q,this[q]=Z(B,Y.type),this._$Ei=null}}requestUpdate(R,B,D){let G=!0;R!==void 0&&(((D=D||this.constructor.getPropertyOptions(R)).hasChanged||n$4)(this[R],B)?(this._$AL.has(R)||this._$AL.set(R,B),D.reflect===!0&&this._$Ei!==R&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(R,D))):G=!1),!this.isUpdatePending&&G&&(this._$Ep=this._$E_())}async _$E_(){this.isUpdatePending=!0;try{await this._$Ep}catch(B){Promise.reject(B)}const R=this.scheduleUpdate();return R!=null&&await R,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var R;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach((G,U)=>this[U]=G),this._$Et=void 0);let B=!1;const D=this._$AL;try{B=this.shouldUpdate(D),B?(this.willUpdate(D),(R=this._$Eg)===null||R===void 0||R.forEach(G=>{var U;return(U=G.hostUpdate)===null||U===void 0?void 0:U.call(G)}),this.update(D)):this._$EU()}catch(G){throw B=!1,this._$EU(),G}B&&this._$AE(D)}willUpdate(R){}_$AE(R){var B;(B=this._$Eg)===null||B===void 0||B.forEach(D=>{var G;return(G=D.hostUpdated)===null||G===void 0?void 0:G.call(D)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(R)),this.updated(R)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(R){return!0}update(R){this._$EC!==void 0&&(this._$EC.forEach((B,D)=>this._$ES(D,this[D],B)),this._$EC=void 0),this._$EU()}updated(R){}firstUpdated(R){}}/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */var t$2;a$1.finalized=!0,a$1.elementProperties=new Map,a$1.elementStyles=[],a$1.shadowRootOptions={mode:"open"},h$2$1==null||h$2$1({ReactiveElement:a$1}),((s$2=globalThis.reactiveElementVersions)!==null&&s$2!==void 0?s$2:globalThis.reactiveElementVersions=[]).push("1.3.1");const i$2=globalThis.trustedTypes,s$1=i$2?i$2.createPolicy("lit-html",{createHTML:F=>F}):void 0,e$6=`lit$${(Math.random()+"").slice(9)}$`,o$3="?"+e$6,n$3=`<${o$3}>`,l$2=document,h$1$1=(F="")=>l$2.createComment(F),r$1=F=>F===null||typeof F!="object"&&typeof F!="function",d=Array.isArray,u$1=F=>{var R;return d(F)||typeof((R=F)===null||R===void 0?void 0:R[Symbol.iterator])=="function"},c$2=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,v$3=/-->/g,a$2=/>/g,f$1=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,_$1=/'/g,m$2=/"/g,g=/^(?:script|style|textarea|title)$/i,p$1=F=>(R,...B)=>({_$litType$:F,strings:R,values:B}),$=p$1(1),b=Symbol.for("lit-noChange"),w$2=Symbol.for("lit-nothing"),T$1=new WeakMap,x=(F,R,B)=>{var D,G;const U=(D=B==null?void 0:B.renderBefore)!==null&&D!==void 0?D:R;let W=U._$litPart$;if(W===void 0){const q=(G=B==null?void 0:B.renderBefore)!==null&&G!==void 0?G:null;U._$litPart$=W=new N$1(R.insertBefore(h$1$1(),q),q,void 0,B!=null?B:{})}return W._$AI(F),W},A=l$2.createTreeWalker(l$2,129,null,!1),C=(F,R)=>{const B=F.length-1,D=[];let G,U=R===2?"":"",W=c$2;for(let Y=0;Y"?(W=G!=null?G:c$2,ie=-1):K[1]===void 0?ie=-2:(ie=W.lastIndex-K[2].length,Z=K[1],W=K[3]===void 0?f$1:K[3]==='"'?m$2:_$1):W===m$2||W===_$1?W=f$1:W===v$3||W===a$2?W=c$2:(W=f$1,G=void 0);const ne=W===f$1&&F[Y+1].startsWith("/>")?" ":"";U+=W===c$2?Q+n$3:ie>=0?(D.push(Z),Q.slice(0,ie)+"$lit$"+Q.slice(ie)+e$6+ne):Q+e$6+(ie===-2?(D.push(void 0),Y):ne)}const q=U+(F[B]||"")+(R===2?"":"");if(!Array.isArray(F)||!F.hasOwnProperty("raw"))throw Error("invalid template strings array");return[s$1!==void 0?s$1.createHTML(q):q,D]};class E{constructor({strings:R,_$litType$:B},D){let G;this.parts=[];let U=0,W=0;const q=R.length-1,Y=this.parts,[Q,Z]=C(R,B);if(this.el=E.createElement(Q,D),A.currentNode=this.el.content,B===2){const K=this.el.content,ie=K.firstChild;ie.remove(),K.append(...ie.childNodes)}for(;(G=A.nextNode())!==null&&Y.length0){G.textContent=i$2?i$2.emptyScript:"";for(let te=0;te2||D[0]!==""||D[1]!==""?(this._$AH=Array(D.length-1).fill(new String),this.strings=D):this._$AH=w$2}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(R,B=this,D,G){const U=this.strings;let W=!1;if(U===void 0)R=P(this,R,B,0),W=!r$1(R)||R!==this._$AH&&R!==b,W&&(this._$AH=R);else{const q=R;let Y,Q;for(R=U[0],Y=0;YR=>typeof R=="function"?((B,D)=>(window.customElements.define(B,D),D))(F,R):((B,D)=>{const{kind:G,elements:U}=D;return{kind:G,elements:U,finisher(W){window.customElements.define(B,W)}}})(F,R),i$1$1=(F,R)=>R.kind==="method"&&R.descriptor&&!("value"in R.descriptor)?{...R,finisher(B){B.createProperty(R.key,F)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:R.key,initializer(){typeof R.initializer=="function"&&(this[R.key]=R.initializer.call(this))},finisher(B){B.createProperty(R.key,F)}};function e$5(F){return(R,B)=>B!==void 0?((D,G,U)=>{G.constructor.createProperty(U,D)})(F,R,B):i$1$1(F,R);/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */}/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */const o$1=({finisher:F,descriptor:R})=>(B,D)=>{var G;if(D===void 0){const U=(G=B.originalKey)!==null&&G!==void 0?G:B.key,W=R!=null?{kind:"method",placement:"prototype",key:U,descriptor:R(B.key)}:{...B,key:U};return F!=null&&(W.finisher=function(q){F(q,U)}),W}{const U=B.constructor;R!==void 0&&Object.defineProperty(B,D,R(D)),F==null||F(U,D)}};/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */function i$4(F,R){return o$1({descriptor:B=>{const D={get(){var G,U;return(U=(G=this.renderRoot)===null||G===void 0?void 0:G.querySelector(F))!==null&&U!==void 0?U:null},enumerable:!0,configurable:!0};if(R){const G=typeof B=="symbol"?Symbol():"__"+B;D.get=function(){var U,W;return this[G]===void 0&&(this[G]=(W=(U=this.renderRoot)===null||U===void 0?void 0:U.querySelector(F))!==null&&W!==void 0?W:null),this[G]}}return D}})}/** * @license * Copyright 2021 Google LLC * SPDX-License-Identifier: BSD-3-Clause */var n$6;((n$6=window.HTMLSlotElement)===null||n$6===void 0?void 0:n$6.prototype.assignedElements)!=null;var commonjsGlobal$1=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function createCommonjsModule$1(F,R,B){return F(B={path:R,exports:{},require:function(D,G){return commonjsRequire(D,G==null?B.path:G)}},B.exports),B.exports}function commonjsRequire(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var lottie_svg=createCommonjsModule$1(function(module,exports){typeof navigator!="undefined"&&function(F,R){module.exports=R()}(0,function(){var svgNS="http://www.w3.org/2000/svg",locationHref="",_useWebWorker=!1,initialDefaultFrame=-999999,setWebWorker=function(F){_useWebWorker=!!F},getWebWorker=function(){return _useWebWorker},setLocationHref=function(F){locationHref=F},getLocationHref=function(){return locationHref};function createTag(F){return document.createElement(F)}function extendPrototype(F,R){var B,D,G=F.length;for(B=0;B1?B[1]=1:B[1]<=0&&(B[1]=0),HSVtoRGB(B[0],B[1],B[2])}function addBrightnessToRGB(F,R){var B=RGBtoHSV(255*F[0],255*F[1],255*F[2]);return B[2]+=R,B[2]>1?B[2]=1:B[2]<0&&(B[2]=0),HSVtoRGB(B[0],B[1],B[2])}function addHueToRGB(F,R){var B=RGBtoHSV(255*F[0],255*F[1],255*F[2]);return B[0]+=R/360,B[0]>1?B[0]-=1:B[0]<0&&(B[0]+=1),HSVtoRGB(B[0],B[1],B[2])}var rgbToHex=function(){var F,R,B=[];for(F=0;F<256;F+=1)R=F.toString(16),B[F]=R.length===1?"0"+R:R;return function(D,G,U){return D<0&&(D=0),G<0&&(G=0),U<0&&(U=0),"#"+B[D]+B[G]+B[U]}}(),setSubframeEnabled=function(F){subframeEnabled=!!F},getSubframeEnabled=function(){return subframeEnabled},setExpressionsPlugin=function(F){expressionsPlugin=F},getExpressionsPlugin=function(){return expressionsPlugin},setDefaultCurveSegments=function(F){defaultCurveSegments=F},getDefaultCurveSegments=function(){return defaultCurveSegments},setIdPrefix=function(F){idPrefix=F};function createNS(F){return document.createElementNS(svgNS,F)}function _typeof$5(F){return(_typeof$5=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(R){return typeof R}:function(R){return R&&typeof Symbol=="function"&&R.constructor===Symbol&&R!==Symbol.prototype?"symbol":typeof R})(F)}var dataManager=function(){var F,R,B=1,D=[],G={onmessage:function(){},postMessage:function(Y){F({data:Y})}},U={postMessage:function(Y){G.onmessage({data:Y})}};function W(){R||((R=function(Y){if(window.Worker&&window.Blob&&getWebWorker()){var Q=new Blob(["var _workerSelf = self; self.onmessage = ",Y.toString()],{type:"text/javascript"}),Z=URL.createObjectURL(Q);return new Worker(Z)}return F=Y,G}(function(Y){if(U.dataManager||(U.dataManager=function(){function Z(fe,ge){var Se,Ee,ve,xe,Me,ye,we=fe.length;for(Ee=0;Ee=0;ge-=1)if(fe[ge].ty==="sh")if(fe[ge].ks.k.i)te(fe[ge].ks.k);else for(Ee=fe[ge].ks.k.length,Se=0;SeSe[0]||!(Se[0]>fe[0])&&(fe[1]>Se[1]||!(Se[1]>fe[1])&&(fe[2]>Se[2]||!(Se[2]>fe[2])&&null))}var se,re=function(){var fe=[4,4,14];function ge(Se){var Ee,ve,xe,Me=Se.length;for(Ee=0;Ee=0;ve-=1)if(Ee[ve].ty==="sh")if(Ee[ve].ks.k.i)Ee[ve].ks.k.c=Ee[ve].closed;else for(Me=Ee[ve].ks.k.length,xe=0;xe500)&&(this._imageLoaded(),clearInterval(Q)),Y+=1}.bind(this),50)}function U(q){var Y={assetData:q},Q=D(q,this.assetsPath,this.path);return dataManager.loadData(Q,function(Z){Y.img=Z,this._footageLoaded()}.bind(this),function(){Y.img={},this._footageLoaded()}.bind(this)),Y}function W(){this._imageLoaded=R.bind(this),this._footageLoaded=B.bind(this),this.testImageLoaded=G.bind(this),this.createFootageData=U.bind(this),this.assetsPath="",this.path="",this.totalImages=0,this.totalFootages=0,this.loadedAssets=0,this.loadedFootagesCount=0,this.imagesLoadedCb=null,this.images=[]}return W.prototype={loadAssets:function(q,Y){var Q;this.imagesLoadedCb=Y;var Z=q.length;for(Q=0;Qthis.animationData.op&&(this.animationData.op=F.op,this.totalFrames=Math.floor(F.op-this.animationData.ip));var R,B,D=this.animationData.layers,G=D.length,U=F.layers,W=U.length;for(B=0;Bthis.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame(),this.trigger("drawnFrame")},AnimationItem.prototype.renderFrame=function(){if(this.isLoaded!==!1&&this.renderer)try{this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(F){this.triggerRenderFrameError(F)}},AnimationItem.prototype.play=function(F){F&&this.name!==F||this.isPaused===!0&&(this.isPaused=!1,this.audioController.resume(),this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(F){F&&this.name!==F||this.isPaused===!1&&(this.isPaused=!0,this._idle=!0,this.trigger("_idle"),this.audioController.pause())},AnimationItem.prototype.togglePause=function(F){F&&this.name!==F||(this.isPaused===!0?this.play():this.pause())},AnimationItem.prototype.stop=function(F){F&&this.name!==F||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.getMarkerData=function(F){for(var R,B=0;B=this.totalFrames-1&&this.frameModifier>0?this.loop&&this.playCount!==this.loop?R>=this.totalFrames?(this.playCount+=1,this.checkSegments(R%this.totalFrames)||(this.setCurrentRawFrameValue(R%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(R):this.checkSegments(R>this.totalFrames?R%this.totalFrames:0)||(B=!0,R=this.totalFrames-1):R<0?this.checkSegments(R%this.totalFrames)||(!this.loop||this.playCount--<=0&&this.loop!==!0?(B=!0,R=0):(this.setCurrentRawFrameValue(this.totalFrames+R%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0)):this.setCurrentRawFrameValue(R),B&&(this.setCurrentRawFrameValue(R),this.pause(),this.trigger("complete"))}},AnimationItem.prototype.adjustSegment=function(F,R){this.playCount=0,F[1]0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.totalFrames=F[0]-F[1],this.timeCompleted=this.totalFrames,this.firstFrame=F[1],this.setCurrentRawFrameValue(this.totalFrames-.001-R)):F[1]>F[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.totalFrames=F[1]-F[0],this.timeCompleted=this.totalFrames,this.firstFrame=F[0],this.setCurrentRawFrameValue(.001+R)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(F,R){var B=-1;this.isPaused&&(this.currentRawFrame+this.firstFrameR&&(B=R-F)),this.firstFrame=F,this.totalFrames=R-F,this.timeCompleted=this.totalFrames,B!==-1&&this.goToAndStop(B,!0)},AnimationItem.prototype.playSegments=function(F,R){if(R&&(this.segments.length=0),_typeof$4(F[0])==="object"){var B,D=F.length;for(B=0;B=0;re-=1)R[re].animation.destroy(se)},F.freeze=function(){W=!0},F.unfreeze=function(){W=!1,ne()},F.setVolume=function(se,re){var ae;for(ae=0;ae=.001?function(ae,le,ce,he){for(var pe=0;pe<4;++pe){var me=q(le,ce,he);if(me===0)return le;le-=(W(le,ce,he)-ae)/me}return le}(Q,se,Z,K):re===0?se:function(ae,le,ce,he,pe){var me,fe,ge=0;do(me=W(fe=le+(ce-le)/2,he,pe)-ae)>0?ce=fe:le=fe;while(Math.abs(me)>1e-7&&++ge<10);return fe}(Q,te,te+.1,Z,K)}},F}(),pooling={double:function(F){return F.concat(createSizedArray(F.length))}},poolFactory=function(F,R,B){var D=0,G=F,U=createSizedArray(G);return{newElement:function(){return D?U[D-=1]:R()},release:function(W){D===G&&(U=pooling.double(U),G*=2),B&&B(W),U[D]=W,D+=1}}},bezierLengthPool=poolFactory(8,function(){return{addedLength:0,percents:createTypedArray("float32",getDefaultCurveSegments()),lengths:createTypedArray("float32",getDefaultCurveSegments())}}),segmentsLengthPool=poolFactory(8,function(){return{lengths:[],totalLength:0}},function(F){var R,B=F.lengths.length;for(R=0;R-.001&&se<.001}var B=function(Q,Z,K,ie){var te,ne,se,re,ae,le,ce=getDefaultCurveSegments(),he=0,pe=[],me=[],fe=bezierLengthPool.newElement();for(se=K.length,te=0;tese?-1:1,le=!0;le;)if(ie[ne]<=se&&ie[ne+1]>se?(re=(se-ie[ne])/(ie[ne+1]-ie[ne]),le=!1):ne+=ae,ne<0||ne>=te-1){if(ne===te-1)return K[ne];le=!1}return K[ne]+(K[ne+1]-K[ne])*re}var Y=createTypedArray("float32",8);return{getSegmentsLength:function(Q){var Z,K=segmentsLengthPool.newElement(),ie=Q.c,te=Q.v,ne=Q.o,se=Q.i,re=Q._length,ae=K.lengths,le=0;for(Z=0;Z1&&(te=1);var re,ae=q(te,se),le=q(ne=ne>1?1:ne,se),ce=Q.length,he=1-ae,pe=1-le,me=he*he*he,fe=ae*he*he*3,ge=ae*ae*he*3,Se=ae*ae*ae,Ee=he*he*pe,ve=ae*he*pe+he*ae*pe+he*he*le,xe=ae*ae*pe+he*ae*le+ae*he*le,Me=ae*ae*le,ye=he*pe*pe,we=ae*pe*pe+he*le*pe+he*pe*le,Re=ae*le*pe+he*le*le+ae*pe*le,Pe=ae*le*le,Ae=pe*pe*pe,Le=le*pe*pe+pe*le*pe+pe*pe*le,Ne=le*le*pe+pe*le*le+le*pe*le,Ie=le*le*le;for(re=0;rehe?ce>pe?ce-he-pe:pe-he-ce:pe>he?pe-he-ce:he-ce-pe)>-1e-4&&le<1e-4}}}var bez=bezFunction(),PropertyFactory=function(){var F=initialDefaultFrame,R=Math.abs;function B(ie,te){var ne,se=this.offsetTime;this.propType==="multidimensional"&&(ne=createTypedArray("float32",this.pv.length));for(var re,ae,le,ce,he,pe,me,fe,ge,Se=te.lastIndex,Ee=Se,ve=this.keyframes.length-1,xe=!0;xe;){if(re=this.keyframes[Ee],ae=this.keyframes[Ee+1],Ee===ve-1&&ie>=ae.t-se){re.h&&(re=ae),Se=0;break}if(ae.t-se>ie){Se=Ee;break}Ee=ye||ie=ye?Re.points.length-1:0;for(he=Re.points[Pe].point.length,ce=0;ce=Ne&&Le=ye?(ne[0]=Me[0],ne[1]=Me[1],ne[2]=Me[2]):ie<=we?(ne[0]=re.s[0],ne[1]=re.s[1],ne[2]=re.s[2]):function(He,Qe){var We=Qe[0],Ze=Qe[1],lt=Qe[2],ht=Qe[3],yt=Math.atan2(2*Ze*ht-2*We*lt,1-2*Ze*Ze-2*lt*lt),Fe=Math.asin(2*We*Ze+2*lt*ht),Te=Math.atan2(2*We*ht-2*Ze*lt,1-2*We*We-2*lt*lt);He[0]=yt/degToRads,He[1]=Fe/degToRads,He[2]=Te/degToRads}(ne,function(He,Qe,We){var Ze,lt,ht,yt,Fe,Te=[],je=He[0],Ke=He[1],Oe=He[2],De=He[3],et=Qe[0],it=Qe[1],rt=Qe[2],Je=Qe[3];return(lt=je*et+Ke*it+Oe*rt+De*Je)<0&&(lt=-lt,et=-et,it=-it,rt=-rt,Je=-Je),1-lt>1e-6?(Ze=Math.acos(lt),ht=Math.sin(Ze),yt=Math.sin((1-We)*Ze)/ht,Fe=Math.sin(We*Ze)/ht):(yt=1-We,Fe=We),Te[0]=yt*je+Fe*et,Te[1]=yt*Ke+Fe*it,Te[2]=yt*Oe+Fe*rt,Te[3]=yt*De+Fe*Je,Te}(D(re.s),D(Me),(ie-we)/(ye-we)));else for(Ee=0;Ee=ye?pe=1:ie=ne&&ie>=ne||this._caching.lastFrame=ie&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var se=this.interpolateValue(ie,this._caching);this.pv=se}return this._caching.lastFrame=ie,this.pv}function U(ie){var te;if(this.propType==="unidimensional")te=ie*this.mult,R(this.v-te)>1e-5&&(this.v=te,this._mdf=!0);else for(var ne=0,se=this.v.length;ne1e-5&&(this.v[ne]=te,this._mdf=!0),ne+=1}function W(){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{var ie;this.lock=!0,this._mdf=this._isFirstFrame;var te=this.effectsSequence.length,ne=this.kf?this.pv:this.data.k;for(ie=0;ie=this._maxLength&&this.doubleArrayLength(),B){case"v":U=this.v;break;case"i":U=this.i;break;case"o":U=this.o;break;default:U=[]}(!U[D]||U[D]&&!G)&&(U[D]=pointPool.newElement()),U[D][0]=F,U[D][1]=R},ShapePath.prototype.setTripleAt=function(F,R,B,D,G,U,W,q){this.setXYAt(F,R,"v",W,q),this.setXYAt(B,D,"o",W,q),this.setXYAt(G,U,"i",W,q)},ShapePath.prototype.reverse=function(){var F=new ShapePath;F.setPathData(this.c,this._length);var R=this.v,B=this.o,D=this.i,G=0;this.c&&(F.setTripleAt(R[0][0],R[0][1],D[0][0],D[0][1],B[0][0],B[0][1],0,!1),G=1);var U,W=this._length-1,q=this._length;for(U=G;U=Se[Se.length-1].t-this.offsetTime)se=Se[Se.length-1].s?Se[Se.length-1].s[0]:Se[Se.length-2].e[0],ae=!0;else{for(var Ee,ve,xe,Me=ge,ye=Se.length-1,we=!0;we&&(Ee=Se[Me],!((ve=Se[Me+1]).t-this.offsetTime>ie));)Me=ve.t-this.offsetTime)me=1;else if(iene&&ie>ne)||(this._caching.lastIndex=se0||Pe>-1e-6&&Pe<0?D(1e4*Pe)/1e4:Pe}function Re(){var Pe=this.props;return"matrix("+we(Pe[0])+","+we(Pe[1])+","+we(Pe[4])+","+we(Pe[5])+","+we(Pe[12])+","+we(Pe[13])+")"}return function(){this.reset=G,this.rotate=U,this.rotateX=W,this.rotateY=q,this.rotateZ=Y,this.skew=Z,this.skewFromAxis=K,this.shear=Q,this.scale=ie,this.setTransform=te,this.translate=ne,this.transform=se,this.applyToPoint=he,this.applyToX=pe,this.applyToY=me,this.applyToZ=fe,this.applyToPointArray=xe,this.applyToTriplePoints=ve,this.applyToPointStringified=Me,this.toCSS=ye,this.to2dCSS=Re,this.clone=le,this.cloneFromProps=ce,this.equals=ae,this.inversePoints=Ee,this.inversePoint=Se,this.getInverseMatrix=ge,this._t=this.transform,this.isIdentity=re,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray("float32",16),this.reset()}}();function _typeof$3(F){return(_typeof$3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(R){return typeof R}:function(R){return R&&typeof Symbol=="function"&&R.constructor===Symbol&&R!==Symbol.prototype?"symbol":typeof R})(F)}var lottie={},standalone="__[STANDALONE]__",queryString;function setLocation(F){setLocationHref(F)}function searchAnimations(){animationManager.searchAnimations()}function setSubframeRendering(F){setSubframeEnabled(F)}function setPrefix(F){setIdPrefix(F)}function loadAnimation(F){return animationManager.loadAnimation(F)}function setQuality(F){if(typeof F=="string")switch(F){case"high":setDefaultCurveSegments(200);break;default:case"medium":setDefaultCurveSegments(50);break;case"low":setDefaultCurveSegments(10)}else!isNaN(F)&&F>1&&setDefaultCurveSegments(F)}function inBrowser(){return typeof navigator!="undefined"}function installPlugin(F,R){F==="expressions"&&setExpressionsPlugin(R)}function getFactory(F){switch(F){case"propertyFactory":return PropertyFactory;case"shapePropertyFactory":return ShapePropertyFactory;case"matrix":return Matrix;default:return null}}function checkReady(){document.readyState==="complete"&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(F){for(var R=queryString.split("&"),B=0;B=1?U.push({s:F-1,e:R-1}):(U.push({s:F,e:1}),U.push({s:0,e:R-1}));var W,q,Y=[],Q=U.length;for(W=0;WD+B||(Z=q.s*G<=D?0:(q.s*G-D)/B,K=q.e*G>=D+B?1:(q.e*G-D)/B,Y.push([Z,K]))}return Y.length||Y.push([0,0]),Y},TrimModifier.prototype.releasePathsData=function(F){var R,B=F.length;for(R=0;R1?1+U:this.s.v<0?0+U:this.s.v+U)>(B=this.e.v>1?1+U:this.e.v<0?0+U:this.e.v+U)){var W=R;R=B,B=W}R=1e-4*Math.round(1e4*R),B=1e-4*Math.round(1e4*B),this.sValue=R,this.eValue=B}else R=this.sValue,B=this.eValue;var q,Y,Q,Z,K,ie=this.shapes.length,te=0;if(B===R)for(G=0;G=0;G-=1)if((ne=this.shapes[G]).shape._mdf){for((se=ne.localShapeCollection).releaseShapes(),this.m===2&&ie>1?(ae=this.calculateShapeEdges(R,B,ne.totalShapeLength,he,te),he+=ne.totalShapeLength):ae=[[le,ce]],Y=ae.length,q=0;q=1?re.push({s:ne.totalShapeLength*(le-1),e:ne.totalShapeLength*(ce-1)}):(re.push({s:ne.totalShapeLength*le,e:ne.totalShapeLength}),re.push({s:0,e:ne.totalShapeLength*(ce-1)}));var pe=this.addShapes(ne,re[0]);if(re[0].s!==re[0].e){if(re.length>1)if(ne.shape.paths.shapes[ne.shape.paths._length-1].c){var me=pe.pop();this.addPaths(pe,se),pe=this.addShapes(ne,re[1],me)}else this.addPaths(pe,se),pe=this.addShapes(ne,re[1]);this.addPaths(pe,se)}}ne.shape.paths=se}}},TrimModifier.prototype.addPaths=function(F,R){var B,D=F.length;for(B=0;BR.e){B.c=!1;break}R.s<=ne&&R.e>=ne+W.addedLength?(this.addSegment(ie[D].v[G-1],ie[D].o[G-1],ie[D].i[G],ie[D].v[G],B,q,re),re=!1):(Q=bez.getNewSegment(ie[D].v[G-1],ie[D].v[G],ie[D].o[G-1],ie[D].i[G],(R.s-ne)/W.addedLength,(R.e-ne)/W.addedLength,Y[G-1]),this.addSegmentFromArray(Q,B,q,re),re=!1,B.c=!1),ne+=W.addedLength,q+=1}if(ie[D].c&&Y.length){if(W=Y[G-1],ne<=R.e){var ae=Y[G-1].addedLength;R.s<=ne&&R.e>=ne+ae?(this.addSegment(ie[D].v[G-1],ie[D].o[G-1],ie[D].i[0],ie[D].v[0],B,q,re),re=!1):(Q=bez.getNewSegment(ie[D].v[G-1],ie[D].v[0],ie[D].o[G-1],ie[D].i[0],(R.s-ne)/ae,(R.e-ne)/ae,Y[G-1]),this.addSegmentFromArray(Q,B,q,re),re=!1,B.c=!1)}else B.c=!1;ne+=W.addedLength,q+=1}if(B._length&&(B.setXYAt(B.v[Z][0],B.v[Z][1],"i",Z),B.setXYAt(B.v[B._length-1][0],B.v[B._length-1][1],"o",B._length-1)),ne>R.e)break;D=this.p.keyframes[this.p.keyframes.length-1].t?(G=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/D,0),U=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.05)/D,0)):(G=this.p.pv,U=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/D,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){G=[],U=[];var W=this.px,q=this.py;W._caching.lastFrame+W.offsetTime<=W.keyframes[0].t?(G[0]=W.getValueAtTime((W.keyframes[0].t+.01)/D,0),G[1]=q.getValueAtTime((q.keyframes[0].t+.01)/D,0),U[0]=W.getValueAtTime(W.keyframes[0].t/D,0),U[1]=q.getValueAtTime(q.keyframes[0].t/D,0)):W._caching.lastFrame+W.offsetTime>=W.keyframes[W.keyframes.length-1].t?(G[0]=W.getValueAtTime(W.keyframes[W.keyframes.length-1].t/D,0),G[1]=q.getValueAtTime(q.keyframes[q.keyframes.length-1].t/D,0),U[0]=W.getValueAtTime((W.keyframes[W.keyframes.length-1].t-.01)/D,0),U[1]=q.getValueAtTime((q.keyframes[q.keyframes.length-1].t-.01)/D,0)):(G=[W.pv,q.pv],U[0]=W.getValueAtTime((W._caching.lastFrame+W.offsetTime-.01)/D,W.offsetTime),U[1]=q.getValueAtTime((q._caching.lastFrame+q.offsetTime-.01)/D,q.offsetTime))}else G=U=F;this.v.rotate(-Math.atan2(G[1]-U[1],G[0]-U[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}},precalculateMatrix:function(){if(!this.a.k&&(this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1,!this.s.effectsSequence.length)){if(this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2,this.sk){if(this.sk.effectsSequence.length||this.sa.effectsSequence.length)return;this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3}this.r?this.r.effectsSequence.length||(this.pre.rotate(-this.r.v),this.appliedTransformations=4):this.rz.effectsSequence.length||this.ry.effectsSequence.length||this.rx.effectsSequence.length||this.or.effectsSequence.length||(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}},autoOrient:function(){}},extendPrototype([DynamicPropertyContainer],R),R.prototype.addDynamicProperty=function(B){this._addDynamicProperty(B),this.elem.addDynamicProperty(B),this._isDirty=!0},R.prototype._addDynamicProperty=DynamicPropertyContainer.prototype.addDynamicProperty,{getTransformProperty:function(B,D,G){return new R(B,D,G)}}}();function RepeaterModifier(){}function RoundCornersModifier(){}function getFontProperties(F){for(var R=F.fStyle?F.fStyle.split(" "):[],B="normal",D="normal",G=R.length,U=0;U0;)B-=1,this._elements.unshift(R[B]);this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(F){var R,B=F.length;for(R=0;R0?Math.floor(ie):Math.ceil(ie),se=this.pMatrix.props,re=this.rMatrix.props,ae=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var le,ce,he=0;if(ie>0){for(;hene;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),he-=1;te&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-te,!0),he-=te)}for(D=this.data.m===1?0:this._currentCopies-1,G=this.data.m===1?1:-1,U=this._currentCopies;U;){if(ce=(B=(R=this.elemsData[D].it)[R.length-1].transform.mProps.v.props).length,R[R.length-1].transform.mProps._mdf=!0,R[R.length-1].transform.op._mdf=!0,R[R.length-1].transform.op.v=this._currentCopies===1?this.so.v:this.so.v+(this.eo.v-this.so.v)*(D/(this._currentCopies-1)),he!==0){for((D!==0&&G===1||D!==this._currentCopies-1&&G===-1)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(re[0],re[1],re[2],re[3],re[4],re[5],re[6],re[7],re[8],re[9],re[10],re[11],re[12],re[13],re[14],re[15]),this.matrix.transform(ae[0],ae[1],ae[2],ae[3],ae[4],ae[5],ae[6],ae[7],ae[8],ae[9],ae[10],ae[11],ae[12],ae[13],ae[14],ae[15]),this.matrix.transform(se[0],se[1],se[2],se[3],se[4],se[5],se[6],se[7],se[8],se[9],se[10],se[11],se[12],se[13],se[14],se[15]),le=0;le0&&(se=!1),se){var re=createTag("style");re.setAttribute("f-forigin",Z[Q].fOrigin),re.setAttribute("f-origin",Z[Q].origin),re.setAttribute("f-family",Z[Q].fFamily),re.type="text/css",re.innerText="@font-face {font-family: "+Z[Q].fFamily+"; font-style: normal; src: url('"+Z[Q].fPath+"');}",Y.appendChild(re)}}else if(Z[Q].fOrigin==="g"||Z[Q].origin===1){for(te=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),ne=0;neF?this.isInRange!==!0&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):this.isInRange!==!1&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var F,R=this.renderableComponents.length;for(F=0;F0&&(this.maskElement.setAttribute("id",re),this.element.maskedElement.setAttribute(le,"url("+getLocationHref()+"#"+re+")"),U.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}FootageElement.prototype.prepareFrame=function(){},extendPrototype([RenderableElement,BaseElement,FrameElement],FootageElement),FootageElement.prototype.getBaseElement=function(){return null},FootageElement.prototype.renderFrame=function(){},FootageElement.prototype.destroy=function(){},FootageElement.prototype.initExpressions=function(){this.layerInterface=FootageInterface(this)},FootageElement.prototype.getFootageData=function(){return this.footageData},AudioElement.prototype.prepareFrame=function(F){if(this.prepareRenderableFrame(F,!0),this.prepareProperties(F,!0),this.tm._placeholder)this._currentTime=F/this.data.sr;else{var R=this.tm.v;this._currentTime=R}},extendPrototype([RenderableElement,BaseElement,FrameElement],AudioElement),AudioElement.prototype.renderFrame=function(){this.isInRange&&this._canPlay&&(this._isPlaying?(!this.audio.playing()||Math.abs(this._currentTime/this.globalData.frameRate-this.audio.seek())>.1)&&this.audio.seek(this._currentTime/this.globalData.frameRate):(this.audio.play(),this.audio.seek(this._currentTime/this.globalData.frameRate),this._isPlaying=!0))},AudioElement.prototype.show=function(){},AudioElement.prototype.hide=function(){this.audio.pause(),this._isPlaying=!1},AudioElement.prototype.pause=function(){this.audio.pause(),this._isPlaying=!1,this._canPlay=!1},AudioElement.prototype.resume=function(){this._canPlay=!0},AudioElement.prototype.setRate=function(F){this.audio.rate(F)},AudioElement.prototype.volume=function(F){this.audio.volume(F)},AudioElement.prototype.getBaseElement=function(){return null},AudioElement.prototype.destroy=function(){},AudioElement.prototype.sourceRectAtTime=function(){},AudioElement.prototype.initExpressions=function(){},BaseRenderer.prototype.checkLayers=function(F){var R,B,D=this.layers.length;for(this.completeLayers=!0,R=D-1;R>=0;R-=1)this.elements[R]||(B=this.layers[R]).ip-B.st<=F-this.layers[R].st&&B.op-B.st>F-this.layers[R].st&&this.buildItem(R),this.completeLayers=!!this.elements[R]&&this.completeLayers;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(F){switch(F.ty){case 2:return this.createImage(F);case 0:return this.createComp(F);case 1:return this.createSolid(F);case 3:return this.createNull(F);case 4:return this.createShape(F);case 5:return this.createText(F);case 6:return this.createAudio(F);case 13:return this.createCamera(F);case 15:return this.createFootage(F);default:return this.createNull(F)}},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.createAudio=function(F){return new AudioElement(F,this.globalData,this)},BaseRenderer.prototype.createFootage=function(F){return new FootageElement(F,this.globalData,this)},BaseRenderer.prototype.buildAllItems=function(){var F,R=this.layers.length;for(F=0;F1&&(U+=" C"+R.o[D-1][0]+","+R.o[D-1][1]+" "+R.i[0][0]+","+R.i[0][1]+" "+R.v[0][0]+","+R.v[0][1]),B.lastPath!==U){var W="";B.elem&&(R.c&&(W=F.inv?this.solidPath+U:U),B.elem.setAttribute("d",W)),B.lastPath=U}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null};var filtersFactory=function(){var F={};return F.createFilter=function(R,B){var D=createNS("filter");return D.setAttribute("id",R),B!==!0&&(D.setAttribute("filterUnits","objectBoundingBox"),D.setAttribute("x","0%"),D.setAttribute("y","0%"),D.setAttribute("width","100%"),D.setAttribute("height","100%")),D},F.createAlphaToLuminanceFilter=function(){var R=createNS("feColorMatrix");return R.setAttribute("type","matrix"),R.setAttribute("color-interpolation-filters","sRGB"),R.setAttribute("values","0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1"),R},F}(),featureSupport=function(){var F={maskType:!0};return(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(F.maskType=!1),F}();function SVGTintFilter(F,R){this.filterManager=R;var B=createNS("feColorMatrix");if(B.setAttribute("type","matrix"),B.setAttribute("color-interpolation-filters","linearRGB"),B.setAttribute("values","0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0"),B.setAttribute("result","f1"),F.appendChild(B),(B=createNS("feColorMatrix")).setAttribute("type","matrix"),B.setAttribute("color-interpolation-filters","sRGB"),B.setAttribute("values","1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"),B.setAttribute("result","f2"),F.appendChild(B),this.matrixFilter=B,R.effectElements[2].p.v!==100||R.effectElements[2].p.k){var D,G=createNS("feMerge");F.appendChild(G),(D=createNS("feMergeNode")).setAttribute("in","SourceGraphic"),G.appendChild(D),(D=createNS("feMergeNode")).setAttribute("in","f2"),G.appendChild(D)}}function SVGFillFilter(F,R){this.filterManager=R;var B=createNS("feColorMatrix");B.setAttribute("type","matrix"),B.setAttribute("color-interpolation-filters","sRGB"),B.setAttribute("values","1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"),F.appendChild(B),this.matrixFilter=B}function SVGStrokeEffect(F,R){this.initialized=!1,this.filterManager=R,this.elem=F,this.paths=[]}function SVGTritoneFilter(F,R){this.filterManager=R;var B=createNS("feColorMatrix");B.setAttribute("type","matrix"),B.setAttribute("color-interpolation-filters","linearRGB"),B.setAttribute("values","0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0"),B.setAttribute("result","f1"),F.appendChild(B);var D=createNS("feComponentTransfer");D.setAttribute("color-interpolation-filters","sRGB"),F.appendChild(D),this.matrixFilter=D;var G=createNS("feFuncR");G.setAttribute("type","table"),D.appendChild(G),this.feFuncR=G;var U=createNS("feFuncG");U.setAttribute("type","table"),D.appendChild(U),this.feFuncG=U;var W=createNS("feFuncB");W.setAttribute("type","table"),D.appendChild(W),this.feFuncB=W}function SVGProLevelsFilter(F,R){this.filterManager=R;var B=this.filterManager.effectElements,D=createNS("feComponentTransfer");(B[10].p.k||B[10].p.v!==0||B[11].p.k||B[11].p.v!==1||B[12].p.k||B[12].p.v!==1||B[13].p.k||B[13].p.v!==0||B[14].p.k||B[14].p.v!==1)&&(this.feFuncR=this.createFeFunc("feFuncR",D)),(B[17].p.k||B[17].p.v!==0||B[18].p.k||B[18].p.v!==1||B[19].p.k||B[19].p.v!==1||B[20].p.k||B[20].p.v!==0||B[21].p.k||B[21].p.v!==1)&&(this.feFuncG=this.createFeFunc("feFuncG",D)),(B[24].p.k||B[24].p.v!==0||B[25].p.k||B[25].p.v!==1||B[26].p.k||B[26].p.v!==1||B[27].p.k||B[27].p.v!==0||B[28].p.k||B[28].p.v!==1)&&(this.feFuncB=this.createFeFunc("feFuncB",D)),(B[31].p.k||B[31].p.v!==0||B[32].p.k||B[32].p.v!==1||B[33].p.k||B[33].p.v!==1||B[34].p.k||B[34].p.v!==0||B[35].p.k||B[35].p.v!==1)&&(this.feFuncA=this.createFeFunc("feFuncA",D)),(this.feFuncR||this.feFuncG||this.feFuncB||this.feFuncA)&&(D.setAttribute("color-interpolation-filters","sRGB"),F.appendChild(D),D=createNS("feComponentTransfer")),(B[3].p.k||B[3].p.v!==0||B[4].p.k||B[4].p.v!==1||B[5].p.k||B[5].p.v!==1||B[6].p.k||B[6].p.v!==0||B[7].p.k||B[7].p.v!==1)&&(D.setAttribute("color-interpolation-filters","sRGB"),F.appendChild(D),this.feFuncRComposed=this.createFeFunc("feFuncR",D),this.feFuncGComposed=this.createFeFunc("feFuncG",D),this.feFuncBComposed=this.createFeFunc("feFuncB",D))}function SVGDropShadowEffect(F,R){var B=R.container.globalData.renderConfig.filterSize;F.setAttribute("x",B.x),F.setAttribute("y",B.y),F.setAttribute("width",B.width),F.setAttribute("height",B.height),this.filterManager=R;var D=createNS("feGaussianBlur");D.setAttribute("in","SourceAlpha"),D.setAttribute("result","drop_shadow_1"),D.setAttribute("stdDeviation","0"),this.feGaussianBlur=D,F.appendChild(D);var G=createNS("feOffset");G.setAttribute("dx","25"),G.setAttribute("dy","0"),G.setAttribute("in","drop_shadow_1"),G.setAttribute("result","drop_shadow_2"),this.feOffset=G,F.appendChild(G);var U=createNS("feFlood");U.setAttribute("flood-color","#00ff00"),U.setAttribute("flood-opacity","1"),U.setAttribute("result","drop_shadow_3"),this.feFlood=U,F.appendChild(U);var W=createNS("feComposite");W.setAttribute("in","drop_shadow_3"),W.setAttribute("in2","drop_shadow_2"),W.setAttribute("operator","in"),W.setAttribute("result","drop_shadow_4"),F.appendChild(W);var q,Y=createNS("feMerge");F.appendChild(Y),q=createNS("feMergeNode"),Y.appendChild(q),(q=createNS("feMergeNode")).setAttribute("in","SourceGraphic"),this.feMergeNode=q,this.feMerge=Y,this.originalNodeAdded=!1,Y.appendChild(q)}SVGTintFilter.prototype.renderFrame=function(F){if(F||this.filterManager._mdf){var R=this.filterManager.effectElements[0].p.v,B=this.filterManager.effectElements[1].p.v,D=this.filterManager.effectElements[2].p.v/100;this.matrixFilter.setAttribute("values",B[0]-R[0]+" 0 0 0 "+R[0]+" "+(B[1]-R[1])+" 0 0 0 "+R[1]+" "+(B[2]-R[2])+" 0 0 0 "+R[2]+" 0 0 0 "+D+" 0")}},SVGFillFilter.prototype.renderFrame=function(F){if(F||this.filterManager._mdf){var R=this.filterManager.effectElements[2].p.v,B=this.filterManager.effectElements[6].p.v;this.matrixFilter.setAttribute("values","0 0 0 0 "+R[0]+" 0 0 0 0 "+R[1]+" 0 0 0 0 "+R[2]+" 0 0 0 "+B+" 0")}},SVGStrokeEffect.prototype.initialize=function(){var F,R,B,D,G=this.elem.layerElement.children||this.elem.layerElement.childNodes;for(this.filterManager.effectElements[1].p.v===1?(D=this.elem.maskManager.masksProperties.length,B=0):D=(B=this.filterManager.effectElements[0].p.v-1)+1,(R=createNS("g")).setAttribute("fill","none"),R.setAttribute("stroke-linecap","round"),R.setAttribute("stroke-dashoffset",1);B=Q?te<0?D:G:D+ie*Math.pow((U-F)/te,1/B),Z[K]=W,K+=1,q+=256/255;return Z.join(" ")},SVGProLevelsFilter.prototype.renderFrame=function(F){if(F||this.filterManager._mdf){var R,B=this.filterManager.effectElements;this.feFuncRComposed&&(F||B[3].p._mdf||B[4].p._mdf||B[5].p._mdf||B[6].p._mdf||B[7].p._mdf)&&(R=this.getTableValue(B[3].p.v,B[4].p.v,B[5].p.v,B[6].p.v,B[7].p.v),this.feFuncRComposed.setAttribute("tableValues",R),this.feFuncGComposed.setAttribute("tableValues",R),this.feFuncBComposed.setAttribute("tableValues",R)),this.feFuncR&&(F||B[10].p._mdf||B[11].p._mdf||B[12].p._mdf||B[13].p._mdf||B[14].p._mdf)&&(R=this.getTableValue(B[10].p.v,B[11].p.v,B[12].p.v,B[13].p.v,B[14].p.v),this.feFuncR.setAttribute("tableValues",R)),this.feFuncG&&(F||B[17].p._mdf||B[18].p._mdf||B[19].p._mdf||B[20].p._mdf||B[21].p._mdf)&&(R=this.getTableValue(B[17].p.v,B[18].p.v,B[19].p.v,B[20].p.v,B[21].p.v),this.feFuncG.setAttribute("tableValues",R)),this.feFuncB&&(F||B[24].p._mdf||B[25].p._mdf||B[26].p._mdf||B[27].p._mdf||B[28].p._mdf)&&(R=this.getTableValue(B[24].p.v,B[25].p.v,B[26].p.v,B[27].p.v,B[28].p.v),this.feFuncB.setAttribute("tableValues",R)),this.feFuncA&&(F||B[31].p._mdf||B[32].p._mdf||B[33].p._mdf||B[34].p._mdf||B[35].p._mdf)&&(R=this.getTableValue(B[31].p.v,B[32].p.v,B[33].p.v,B[34].p.v,B[35].p.v),this.feFuncA.setAttribute("tableValues",R))}},SVGDropShadowEffect.prototype.renderFrame=function(F){if(F||this.filterManager._mdf){if((F||this.filterManager.effectElements[4].p._mdf)&&this.feGaussianBlur.setAttribute("stdDeviation",this.filterManager.effectElements[4].p.v/4),F||this.filterManager.effectElements[0].p._mdf){var R=this.filterManager.effectElements[0].p.v;this.feFlood.setAttribute("flood-color",rgbToHex(Math.round(255*R[0]),Math.round(255*R[1]),Math.round(255*R[2])))}if((F||this.filterManager.effectElements[1].p._mdf)&&this.feFlood.setAttribute("flood-opacity",this.filterManager.effectElements[1].p.v/255),F||this.filterManager.effectElements[2].p._mdf||this.filterManager.effectElements[3].p._mdf){var B=this.filterManager.effectElements[3].p.v,D=(this.filterManager.effectElements[2].p.v-90)*degToRads,G=B*Math.cos(D),U=B*Math.sin(D);this.feOffset.setAttribute("dx",G),this.feOffset.setAttribute("dy",U)}}};var _svgMatteSymbols=[];function SVGMatte3Effect(F,R,B){this.initialized=!1,this.filterManager=R,this.filterElem=F,this.elem=B,B.matteElement=createNS("g"),B.matteElement.appendChild(B.layerElement),B.matteElement.appendChild(B.transformedElement),B.baseElement=B.matteElement}function SVGGaussianBlurEffect(F,R){F.setAttribute("x","-100%"),F.setAttribute("y","-100%"),F.setAttribute("width","300%"),F.setAttribute("height","300%"),this.filterManager=R;var B=createNS("feGaussianBlur");F.appendChild(B),this.feGaussianBlur=B}SVGMatte3Effect.prototype.findSymbol=function(F){for(var R=0,B=_svgMatteSymbols.length;R=0&&!this.shapeModifiers[F].processShapes(this._isFirstFrame);F-=1);}},searchProcessedElement:function(F){for(var R=this.processedElements,B=0,D=R.length;B.01)return!1;B+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!=this.c.length/4)return!1;if(this.data.k.k[0].s)for(var F=0,R=this.data.k.k.length;F0;)se=Z.transformers[me].mProps._mdf||se,pe-=1,me-=1;if(se)for(pe=ge-Z.styles[ae].lvl,me=Z.transformers.length-1;pe>0;)he=Z.transformers[me].mProps.v.props,ce.transform(he[0],he[1],he[2],he[3],he[4],he[5],he[6],he[7],he[8],he[9],he[10],he[11],he[12],he[13],he[14],he[15]),pe-=1,me-=1}else ce=F;if(te=(le=Z.sh.paths)._length,se){for(ne="",ie=0;ie=1?ve=.99:ve<=-1&&(ve=-.99);var xe=re*ve,Me=Math.cos(Ee+Z.a.v)*xe+ce[0],ye=Math.sin(Ee+Z.a.v)*xe+ce[1];ae.setAttribute("fx",Me),ae.setAttribute("fy",ye),le&&!Z.g._collapsable&&(Z.of.setAttribute("fx",Me),Z.of.setAttribute("fy",ye))}}function Y(Q,Z,K){var ie=Z.style,te=Z.d;te&&(te._mdf||K)&&te.dashStr&&(ie.pElem.setAttribute("stroke-dasharray",te.dashStr),ie.pElem.setAttribute("stroke-dashoffset",te.dashoffset[0])),Z.c&&(Z.c._mdf||K)&&ie.pElem.setAttribute("stroke","rgb("+bmFloor(Z.c.v[0])+","+bmFloor(Z.c.v[1])+","+bmFloor(Z.c.v[2])+")"),(Z.o._mdf||K)&&ie.pElem.setAttribute("stroke-opacity",Z.o.v),(Z.w._mdf||K)&&(ie.pElem.setAttribute("stroke-width",Z.w.v),ie.msElem&&ie.msElem.setAttribute("stroke-width",Z.w.v))}return{createRenderFunction:function(Q){switch(Q.ty){case"fl":return U;case"gf":return q;case"gs":return W;case"st":return Y;case"sh":case"el":case"rc":case"sr":return G;case"tr":return B;case"no":return D;default:return null}}}}();function SVGShapeElement(F,R,B){this.shapes=[],this.shapesData=F.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(F,R,B),this.prevViewData=[]}function LetterProps(F,R,B,D,G,U){this.o=F,this.sw=R,this.sc=B,this.fc=D,this.m=G,this.p=U,this._mdf={o:!0,sw:!!R,sc:!!B,fc:!!D,m:!0,p:!0}}function TextProperty(F,R){this._frameId=initialDefaultFrame,this.pv="",this.v="",this.kf=!1,this._isFirstFrame=!0,this._mdf=!1,this.data=R,this.elem=F,this.comp=this.elem.comp,this.keysIndex=0,this.canResize=!1,this.minimumFontSize=1,this.effectsSequence=[],this.currentData={ascent:0,boxWidth:this.defaultBoxWidth,f:"",fStyle:"",fWeight:"",fc:"",j:"",justifyOffset:"",l:[],lh:0,lineWidths:[],ls:"",of:"",s:"",sc:"",sw:0,t:0,tr:0,sz:0,ps:null,fillColorAnim:!1,strokeColorAnim:!1,strokeWidthAnim:!1,yOffset:0,finalSize:0,finalText:[],finalLineHeight:0,__complete:!1},this.copyData(this.currentData,this.data.d.k[0].s),this.searchProperty()||this.completeTextData(this.currentData)}extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var F,R,B,D,G=this.shapes.length,U=this.stylesList.length,W=[],q=!1;for(B=0;B1&&q&&this.setShapesAsAnimated(W)}},SVGShapeElement.prototype.setShapesAsAnimated=function(F){var R,B=F.length;for(R=0;R=0;q-=1){if((ie=this.searchProcessedElement(F[q]))?R[q]=B[ie-1]:F[q]._render=W,F[q].ty==="fl"||F[q].ty==="st"||F[q].ty==="gf"||F[q].ty==="gs"||F[q].ty==="no")ie?R[q].style.closed=!1:R[q]=this.createStyleElement(F[q],G),F[q]._render&&R[q].style.pElem.parentNode!==D&&D.appendChild(R[q].style.pElem),se.push(R[q].style);else if(F[q].ty==="gr"){if(ie)for(Q=R[q].it.length,Y=0;Y1,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(F){this.effectsSequence.push(F),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(F){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length||F){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var R=this.currentData,B=this.keysIndex;if(this.lock)this.setCurrentData(this.currentData);else{var D;this.lock=!0,this._mdf=!1;var G=this.effectsSequence.length,U=F||this.data.d.k[this.keysIndex].s;for(D=0;DR);)B+=1;return this.keysIndex!==B&&(this.keysIndex=B),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(F){for(var R,B,D=[],G=0,U=F.length,W=!1;G=55296&&R<=56319?(B=F.charCodeAt(G+1))>=56320&&B<=57343?(W||FontManager.isModifier(R,B)?(D[D.length-1]+=F.substr(G,2),W=!1):D.push(F.substr(G,2)),G+=1):D.push(F.charAt(G)):R>56319?(B=F.charCodeAt(G+1),FontManager.isZeroWidthJoiner(R,B)?(W=!0,D[D.length-1]+=F.substr(G,2),G+=1):D.push(F.charAt(G))):FontManager.isZeroWidthJoiner(R)?(D[D.length-1]+=F.charAt(G),W=!0):D.push(F.charAt(G)),G+=1;return D},TextProperty.prototype.completeTextData=function(F){F.__complete=!0;var R,B,D,G,U,W,q,Y=this.elem.globalData.fontManager,Q=this.data,Z=[],K=0,ie=Q.m.g,te=0,ne=0,se=0,re=[],ae=0,le=0,ce=Y.getFontByName(F.f),he=0,pe=getFontProperties(ce);F.fWeight=pe.weight,F.fStyle=pe.style,F.finalSize=F.s,F.finalText=this.buildFinalText(F.t),B=F.finalText.length,F.finalLineHeight=F.lh;var me,fe=F.tr/1e3*F.finalSize;if(F.sz)for(var ge,Se,Ee=!0,ve=F.sz[0],xe=F.sz[1];Ee;){ge=0,ae=0,B=(Se=this.buildFinalText(F.t)).length,fe=F.tr/1e3*F.finalSize;var Me=-1;for(R=0;Rve&&Se[R]!==" "?(Me===-1?B+=1:R=Me,ge+=F.finalLineHeight||1.2*F.finalSize,Se.splice(R,Me===R?1:0,"\r"),Me=-1,ae=0):(ae+=he,ae+=fe);ge+=ce.ascent*F.finalSize/100,this.canResize&&F.finalSize>this.minimumFontSize&&xele?ae:le,ae=-2*fe,G="",D=!0,se+=1):G=ye,Y.chars?(q=Y.getCharData(ye,ce.fStyle,Y.getFontByName(F.f).fFamily),he=D?0:q.w*F.finalSize/100):he=Y.measureText(G,F.f,F.finalSize),ye===" "?we+=he+fe:(ae+=he+fe+we,we=0),Z.push({l:he,an:he,add:te,n:D,anIndexes:[],val:G,line:se,animatorJustifyOffset:0}),ie==2){if(te+=he,G===""||G===" "||R===B-1){for(G!==""&&G!==" "||(te-=he);ne<=R;)Z[ne].an=te,Z[ne].ind=K,Z[ne].extra=he,ne+=1;K+=1,te=0}}else if(ie==3){if(te+=he,G===""||R===B-1){for(G===""&&(te-=he);ne<=R;)Z[ne].an=te,Z[ne].ind=K,Z[ne].extra=he,ne+=1;te=0,K+=1}}else Z[K].ind=K,Z[K].extra=0,K+=1;if(F.l=Z,le=ae>le?ae:le,re.push(ae),F.sz)F.boxWidth=F.sz[0],F.justifyOffset=0;else switch(F.boxWidth=le,F.j){case 1:F.justifyOffset=-F.boxWidth;break;case 2:F.justifyOffset=-F.boxWidth/2;break;default:F.justifyOffset=0}F.lineWidths=re;var Re,Pe,Ae,Le,Ne=Q.a;W=Ne.length;var Ie=[];for(U=0;U0?U=this.ne.v/100:W=-this.ne.v/100,this.xe.v>0?q=1-this.xe.v/100:Y=1+this.xe.v/100;var Q=BezierFactory.getBezierEasing(U,W,q,Y).get,Z=0,K=this.finalS,ie=this.finalE,te=this.data.sh;if(te===2)Z=Q(Z=ie===K?G>=ie?1:0:F(0,R(.5/(ie-K)+(G-K)/(ie-K),1)));else if(te===3)Z=Q(Z=ie===K?G>=ie?0:1:1-F(0,R(.5/(ie-K)+(G-K)/(ie-K),1)));else if(te===4)ie===K?Z=0:(Z=F(0,R(.5/(ie-K)+(G-K)/(ie-K),1)))<.5?Z*=2:Z=1-2*(Z-.5),Z=Q(Z);else if(te===5){if(ie===K)Z=0;else{var ne=ie-K,se=-ne/2+(G=R(F(0,G+.5-K),ie-K)),re=ne/2;Z=Math.sqrt(1-se*se/(re*re))}Z=Q(Z)}else te===6?(ie===K?Z=0:(G=R(F(0,G+.5-K),ie-K),Z=(1+Math.cos(Math.PI+2*Math.PI*G/(ie-K)))/2),Z=Q(Z)):(G>=B(K)&&(Z=F(0,R(G-K<0?R(ie,1)-(K-G):ie-G,1))),Z=Q(Z));if(this.sm.v!==100){var ae=.01*this.sm.v;ae===0&&(ae=1e-8);var le=.5-.5*ae;Z1&&(Z=1)}return Z*this.a.v},getValue:function(G){this.iterateDynamicProperties(),this._mdf=G||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,G&&this.data.r===2&&(this.e.v=this._currentTextLength);var U=this.data.r===2?1:100/this.data.totalChars,W=this.o.v/U,q=this.s.v/U+W,Y=this.e.v/U+W;if(q>Y){var Q=q;q=Y,Y=Q}this.finalS=q,this.finalE=Y}},extendPrototype([DynamicPropertyContainer],D),{getTextSelectorProp:function(G,U,W){return new D(G,U)}}}();function TextAnimatorDataProperty(F,R,B){var D={propType:!1},G=PropertyFactory.getProp,U=R.a;this.a={r:U.r?G(F,U.r,0,degToRads,B):D,rx:U.rx?G(F,U.rx,0,degToRads,B):D,ry:U.ry?G(F,U.ry,0,degToRads,B):D,sk:U.sk?G(F,U.sk,0,degToRads,B):D,sa:U.sa?G(F,U.sa,0,degToRads,B):D,s:U.s?G(F,U.s,1,.01,B):D,a:U.a?G(F,U.a,1,0,B):D,o:U.o?G(F,U.o,0,.01,B):D,p:U.p?G(F,U.p,1,0,B):D,sw:U.sw?G(F,U.sw,0,0,B):D,sc:U.sc?G(F,U.sc,1,0,B):D,fc:U.fc?G(F,U.fc,1,0,B):D,fh:U.fh?G(F,U.fh,0,0,B):D,fs:U.fs?G(F,U.fs,0,.01,B):D,fb:U.fb?G(F,U.fb,0,.01,B):D,t:U.t?G(F,U.t,0,0,B):D},this.s=TextSelectorProp.getTextSelectorProp(F,R.s,B),this.s.t=R.s.t}function TextAnimatorProperty(F,R,B){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=F,this._renderType=R,this._elem=B,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(B)}function ITextElement(){}TextAnimatorProperty.prototype.searchProperties=function(){var F,R,B=this._textData.a.length,D=PropertyFactory.getProp;for(F=0;F=q+pt||!ne?(le=(q+pt-Q)/Y.partialLength,_e=te.point[0]+(Y.point[0]-te.point[0])*le,Ve=te.point[1]+(Y.point[1]-te.point[1])*le,ge.translate(-pe[0]*ve[G].an*.005,-pe[1]*Le*.01),Z=!1):ne&&(Q+=Y.partialLength,(K+=1)>=ne.length&&(K=0,se[ie+=1]?ne=se[ie].points:he.v.c?(K=0,ne=se[ie=0].points):(Q-=Y.partialLength,ne=null)),ne&&(te=Y,re=(Y=ne[K]).partialLength));Ie=ve[G].an/2-ve[G].add,ge.translate(-Ie,0,0)}else Ie=ve[G].an/2-ve[G].add,ge.translate(-Ie,0,0),ge.translate(-pe[0]*ve[G].an*.005,-pe[1]*Le*.01,0);for(we=0;weF?this.textSpans[F].span:createNS(Y?"g":"text"),re<=F){if(W.setAttribute("stroke-linecap","butt"),W.setAttribute("stroke-linejoin","round"),W.setAttribute("stroke-miterlimit","4"),this.textSpans[F].span=W,Y){var ae=createNS("g");W.appendChild(ae),this.textSpans[F].childSpan=ae}this.textSpans[F].span=W,this.layerElement.appendChild(W)}W.style.display="inherit"}if(Q.reset(),Q.scale(B.finalSize/100,B.finalSize/100),Z&&(q[F].n&&(K=-ne,ie+=B.yOffset,ie+=te?1:0,te=!1),this.applyTextPropertiesToMatrix(B,Q,q[F].line,K,ie),K+=q[F].l||0,K+=ne),Y){var le;if((se=this.globalData.fontManager.getCharData(B.finalText[F],D.fStyle,this.globalData.fontManager.getFontByName(B.f).fFamily)).t===1)le=new SVGCompElement(se.data,this.globalData,this);else{var ce=emptyShapeData;se.data&&se.data.shapes&&(ce=se.data),le=new SVGShapeElement(ce,this.globalData,this)}this.textSpans[F].glyph=le,le._debug=!0,le.prepareFrame(0),le.renderFrame(),this.textSpans[F].childSpan.appendChild(le.layerElement),this.textSpans[F].childSpan.setAttribute("transform","scale("+B.finalSize/100+","+B.finalSize/100+")")}else Z&&W.setAttribute("transform","translate("+Q.props[12]+","+Q.props[13]+")"),W.textContent=q[F].val,W.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve")}Z&&W&&W.setAttribute("d","")}else{var he=this.textContainer,pe="start";switch(B.j){case 1:pe="end";break;case 2:pe="middle";break;default:pe="start"}he.setAttribute("text-anchor",pe),he.setAttribute("letter-spacing",ne);var me=this.buildTextContents(B.finalText);for(R=me.length,ie=B.ps?B.ps[1]+B.ascent:0,F=0;F=0;R-=1)(this.completeLayers||this.elements[R])&&this.elements[R].prepareFrame(F-this.layers[R].st);if(this.globalData._mdf)for(R=0;R=0;B-=1)(this.completeLayers||this.elements[B])&&(this.elements[B].prepareFrame(this.renderedFrame-this.layers[B].st),this.elements[B]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var F,R=this.layers.length;for(F=0;F=U;)ae/=2,le/=2,ce>>>=1;return(ae+ce)/le};return re.int32=function(){return 0|se.g(4)},re.quick=function(){return se.g(4)/4294967296},re.double=re,Y(Q(se.S),F),(K.pass||ie||function(ae,le,ce,he){return he&&(he.S&&q(he,se),ae.state=function(){return q(se,{})}),ce?(R.random=ae,le):ae})(re,ne,"global"in K?K.global:this==R,K.state)},Y(R.random(),F)}function initialize$2(F){seedRandom([],F)}var propTypes={SHAPE:"shape"};function _typeof(F){return(_typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(R){return typeof R}:function(R){return R&&typeof Symbol=="function"&&R.constructor===Symbol&&R!==Symbol.prototype?"symbol":typeof R})(F)}var ExpressionManager=function(){var ob={},Math=BMMath,window=null,document=null,XMLHttpRequest=null,fetch=null,frames=null;function $bm_isInstanceOfArray(F){return F.constructor===Array||F.constructor===Float32Array}function isNumerable(F,R){return F==="number"||F==="boolean"||F==="string"||R instanceof Number}function $bm_neg(F){var R=_typeof(F);if(R==="number"||R==="boolean"||F instanceof Number)return-F;if($bm_isInstanceOfArray(F)){var B,D=F.length,G=[];for(B=0;BB){var D=B;B=R,R=D}return Math.min(Math.max(F,R),B)}function radiansToDegrees(F){return F/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(F){return F*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(F,R){if(typeof F=="number"||F instanceof Number)return R=R||0,Math.abs(F-R);var B;R||(R=helperLengthArray);var D=Math.min(F.length,R.length),G=0;for(B=0;B.5?Q/(2-W-q):Q/(W+q),W){case D:R=(G-U)/Q+(G1&&(B-=1),B<1/6?F+6*(R-F)*B:B<.5?R:B<2/3?F+(R-F)*(2/3-B)*6:F}function hslToRgb(F){var R,B,D,G=F[0],U=F[1],W=F[2];if(U===0)R=W,D=W,B=W;else{var q=W<.5?W*(1+U):W+U-W*U,Y=2*W-q;R=hue2rgb(Y,q,G+1/3),B=hue2rgb(Y,q,G),D=hue2rgb(Y,q,G-1/3)}return[R,B,D,F[3]]}function linear(F,R,B,D,G){if(D!==void 0&&G!==void 0||(D=R,G=B,R=0,B=1),B=B)return G;var W,q=B===R?0:(F-R)/(B-R);if(!D.length)return D+(G-D)*q;var Y=D.length,Q=createTypedArray("float32",Y);for(W=0;W1){for(D=0;D1?R=1:R<0&&(R=0);var W=F(R);if($bm_isInstanceOfArray(G)){var q,Y=G.length,Q=createTypedArray("float32",Y);for(q=0;qdata.k[R].t&&Fdata.k[R+1].t-F?(B=R+2,D=data.k[R+1].t):(B=R+1,D=data.k[R].t);break}}B===-1&&(B=R+1,D=data.k[R].t)}else B=0,D=0;var U={};return U.index=B,U.time=D/elem.comp.globalData.frameRate,U}function key(F){var R,B,D;if(!data.k.length||typeof data.k[0]=="number")throw new Error("The property has no keyframe at index "+F);F-=1,R={time:data.k[F].t/elem.comp.globalData.frameRate,value:[]};var G=Object.prototype.hasOwnProperty.call(data.k[F],"s")?data.k[F].s:data.k[F-1].e;for(D=G.length,B=0;Bhe.length-1)&&(ie=he.length-1),ne=pe-(se=he[he.length-1-ie].t)),K==="pingpong"){if(Math.floor((ce-se)/ne)%2!=0)return this.getValueAtTime((ne-(ce-se)%ne+se)/this.comp.globalData.frameRate,0)}else{if(K==="offset"){var me=this.getValueAtTime(se/this.comp.globalData.frameRate,0),fe=this.getValueAtTime(pe/this.comp.globalData.frameRate,0),ge=this.getValueAtTime(((ce-se)%ne+se)/this.comp.globalData.frameRate,0),Se=Math.floor((ce-se)/ne);if(this.pv.length){for(ae=(le=new Array(me.length)).length,re=0;re=pe)return this.pv;if(te?se=pe+(ne=ie?Math.abs(this.elem.comp.globalData.frameRate*ie):Math.max(0,this.elem.data.op-pe)):((!ie||ie>he.length-1)&&(ie=he.length-1),ne=(se=he[ie].t)-pe),K==="pingpong"){if(Math.floor((pe-ce)/ne)%2==0)return this.getValueAtTime(((pe-ce)%ne+pe)/this.comp.globalData.frameRate,0)}else{if(K==="offset"){var me=this.getValueAtTime(pe/this.comp.globalData.frameRate,0),fe=this.getValueAtTime(se/this.comp.globalData.frameRate,0),ge=this.getValueAtTime((ne-(pe-ce)%ne+pe)/this.comp.globalData.frameRate,0),Se=Math.floor((pe-ce)/ne)+1;if(this.pv.length){for(ae=(le=new Array(me.length)).length,re=0;re1?(se+K-re)/(ie-1):1,le=0,ce=0;for(te=this.pv.length?createTypedArray("float32",this.pv.length):0;leae){var pe=le,me=te.c&&le===ce-1?0:le+1,fe=(ae-he)/re[le].addedLength;ne=bez.getPointInSegment(te.v[pe],te.v[me],te.o[pe],te.i[me],fe,re[le]);break}he+=re[le].addedLength,le+=1}return ne||(ne=te.c?[te.v[0][0],te.v[0][1]]:[te.v[te._length-1][0],te.v[te._length-1][1]]),ne},vectorOnPath:function(K,ie,te){K==1?K=this.v.c:K==0&&(K=.999);var ne=this.pointOnPath(K,ie),se=this.pointOnPath(K+.001,ie),re=se[0]-ne[0],ae=se[1]-ne[1],le=Math.sqrt(Math.pow(re,2)+Math.pow(ae,2));return le===0?[0,0]:te==="tangent"?[re/le,ae/le]:[-ae/le,re/le]},tangentOnPath:function(K,ie){return this.vectorOnPath(K,ie,"tangent")},normalOnPath:function(K,ie){return this.vectorOnPath(K,ie,"normal")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([Q],q),extendPrototype([Q],Y),Y.prototype.getValueAtTime=function(K){return this._cachingAtTime||(this._cachingAtTime={shapeValue:shapePool.clone(this.pv),lastIndex:0,lastTime:initialDefaultFrame}),K*=this.elem.globalData.frameRate,(K-=this.offsetTime)!==this._cachingAtTime.lastTime&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastTime (c) 2009-2016 Stuart Knightley Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. JSZip uses the library pako released under the MIT license : https://github.com/nodeca/pako/blob/main/LICENSE */(function(B){F.exports=B()})(function(){return function B(D,G,U){function W(Q,Z){if(!G[Q]){if(!D[Q]){var K=typeof commonjsRequire=="function"&&commonjsRequire;if(!Z&&K)return K(Q,!0);if(q)return q(Q,!0);var ie=new Error("Cannot find module '"+Q+"'");throw ie.code="MODULE_NOT_FOUND",ie}var te=G[Q]={exports:{}};D[Q][0].call(te.exports,function(ne){var se=D[Q][1][ne];return W(se||ne)},te,te.exports,B,D,G,U)}return G[Q].exports}for(var q=typeof commonjsRequire=="function"&&commonjsRequire,Y=0;Y>2,te=(3&Q)<<4|Z>>4,ne=ce>1?(15&Z)<<2|K>>6:64,se=ce>2?63&K:64,re.push(q.charAt(ie)+q.charAt(te)+q.charAt(ne)+q.charAt(se));return re.join("")},G.decode=function(Y){var Q,Z,K,ie,te,ne,se=0,re=0;if(Y.substr(0,5)==="data:")throw new Error("Invalid base64 input, it looks like a data url.");var ae,le=3*(Y=Y.replace(/[^A-Za-z0-9\+\/\=]/g,"")).length/4;if(Y.charAt(Y.length-1)===q.charAt(64)&&le--,Y.charAt(Y.length-2)===q.charAt(64)&&le--,le%1!=0)throw new Error("Invalid base64 input, bad content length.");for(ae=W.uint8array?new Uint8Array(0|le):new Array(0|le);se>4,Z=(15&ie)<<4|(te=q.indexOf(Y.charAt(se++)))>>2,K=(3&te)<<6|(ne=q.indexOf(Y.charAt(se++))),ae[re++]=Q,te!==64&&(ae[re++]=Z),ne!==64&&(ae[re++]=K);return ae}},{"./support":30,"./utils":32}],2:[function(B,D,G){var U=B("./external"),W=B("./stream/DataWorker"),q=B("./stream/Crc32Probe"),Y=B("./stream/DataLengthProbe");function Q(Z,K,ie,te,ne){this.compressedSize=Z,this.uncompressedSize=K,this.crc32=ie,this.compression=te,this.compressedContent=ne}Q.prototype={getContentWorker:function(){var Z=new W(U.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new Y("data_length")),K=this;return Z.on("end",function(){if(this.streamInfo.data_length!==K.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),Z},getCompressedWorker:function(){return new W(U.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},Q.createWorkerFrom=function(Z,K,ie){return Z.pipe(new q).pipe(new Y("uncompressedSize")).pipe(K.compressWorker(ie)).pipe(new Y("compressedSize")).withStreamInfo("compression",K)},D.exports=Q},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(B,D,G){var U=B("./stream/GenericWorker");G.STORE={magic:"\0\0",compressWorker:function(W){return new U("STORE compression")},uncompressWorker:function(){return new U("STORE decompression")}},G.DEFLATE=B("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(B,D,G){var U=B("./utils"),W=function(){for(var q,Y=[],Q=0;Q<256;Q++){q=Q;for(var Z=0;Z<8;Z++)q=1&q?3988292384^q>>>1:q>>>1;Y[Q]=q}return Y}();D.exports=function(q,Y){return q!==void 0&&q.length?U.getTypeOf(q)!=="string"?function(Q,Z,K,ie){var te=W,ne=ie+K;Q^=-1;for(var se=ie;se>>8^te[255&(Q^Z[se])];return-1^Q}(0|Y,q,q.length,0):function(Q,Z,K,ie){var te=W,ne=ie+K;Q^=-1;for(var se=ie;se>>8^te[255&(Q^Z.charCodeAt(se))];return-1^Q}(0|Y,q,q.length,0):0}},{"./utils":32}],5:[function(B,D,G){G.base64=!1,G.binary=!1,G.dir=!1,G.createFolders=!0,G.date=null,G.compression=null,G.compressionOptions=null,G.comment=null,G.unixPermissions=null,G.dosPermissions=null},{}],6:[function(B,D,G){var U=null;U=typeof Promise!="undefined"?Promise:B("lie"),D.exports={Promise:U}},{lie:37}],7:[function(B,D,G){var U=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",W=B("pako"),q=B("./utils"),Y=B("./stream/GenericWorker"),Q=U?"uint8array":"array";function Z(K,ie){Y.call(this,"FlateWorker/"+K),this._pako=null,this._pakoAction=K,this._pakoOptions=ie,this.meta={}}G.magic="\b\0",q.inherits(Z,Y),Z.prototype.processChunk=function(K){this.meta=K.meta,this._pako===null&&this._createPako(),this._pako.push(q.transformTo(Q,K.data),!1)},Z.prototype.flush=function(){Y.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},Z.prototype.cleanUp=function(){Y.prototype.cleanUp.call(this),this._pako=null},Z.prototype._createPako=function(){this._pako=new W[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var K=this;this._pako.onData=function(ie){K.push({data:ie,meta:K.meta})}},G.compressWorker=function(K){return new Z("Deflate",K)},G.uncompressWorker=function(){return new Z("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(B,D,G){var U=B("../utils"),W=B("../stream/GenericWorker"),q=B("../utf8"),Y=B("../crc32"),Q=B("../signature"),Z=function(ne,se){var re,ae="";for(re=0;re>>=8;return ae},K=function(ne,se,re,ae,le,ce){var he,pe,me=ne.file,fe=ne.compression,ge=ce!==q.utf8encode,Se=U.transformTo("string",ce(me.name)),Ee=U.transformTo("string",q.utf8encode(me.name)),ve=me.comment,xe=U.transformTo("string",ce(ve)),Me=U.transformTo("string",q.utf8encode(ve)),ye=Ee.length!==me.name.length,we=Me.length!==ve.length,Re="",Pe="",Ae="",Le=me.dir,Ne=me.date,Ie={crc32:0,compressedSize:0,uncompressedSize:0};se&&!re||(Ie.crc32=ne.crc32,Ie.compressedSize=ne.compressedSize,Ie.uncompressedSize=ne.uncompressedSize);var _e=0;se&&(_e|=8),ge||!ye&&!we||(_e|=2048);var Ve,qe,Ge,He=0,Qe=0;Le&&(He|=16),le==="UNIX"?(Qe=798,He|=(Ve=me.unixPermissions,qe=Le,Ge=Ve,Ve||(Ge=qe?16893:33204),(65535&Ge)<<16)):(Qe=20,He|=63&(me.dosPermissions||0)),he=Ne.getUTCHours(),he<<=6,he|=Ne.getUTCMinutes(),he<<=5,he|=Ne.getUTCSeconds()/2,pe=Ne.getUTCFullYear()-1980,pe<<=4,pe|=Ne.getUTCMonth()+1,pe<<=5,pe|=Ne.getUTCDate(),ye&&(Pe=Z(1,1)+Z(Y(Se),4)+Ee,Re+="up"+Z(Pe.length,2)+Pe),we&&(Ae=Z(1,1)+Z(Y(xe),4)+Me,Re+="uc"+Z(Ae.length,2)+Ae);var We="";return We+=` \0`,We+=Z(_e,2),We+=fe.magic,We+=Z(he,2),We+=Z(pe,2),We+=Z(Ie.crc32,4),We+=Z(Ie.compressedSize,4),We+=Z(Ie.uncompressedSize,4),We+=Z(Se.length,2),We+=Z(Re.length,2),{fileRecord:Q.LOCAL_FILE_HEADER+We+Se+Re,dirRecord:Q.CENTRAL_FILE_HEADER+Z(Qe,2)+We+Z(xe.length,2)+"\0\0\0\0"+Z(He,4)+Z(ae,4)+Se+Re+xe}},ie=function(ne){return Q.DATA_DESCRIPTOR+Z(ne.crc32,4)+Z(ne.compressedSize,4)+Z(ne.uncompressedSize,4)};function te(ne,se,re,ae){W.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=se,this.zipPlatform=re,this.encodeFileName=ae,this.streamFiles=ne,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}U.inherits(te,W),te.prototype.push=function(ne){var se=ne.meta.percent||0,re=this.entriesCount,ae=this._sources.length;this.accumulate?this.contentBuffer.push(ne):(this.bytesWritten+=ne.data.length,W.prototype.push.call(this,{data:ne.data,meta:{currentFile:this.currentFile,percent:re?(se+100*(re-ae-1))/re:100}}))},te.prototype.openedSource=function(ne){this.currentSourceOffset=this.bytesWritten,this.currentFile=ne.file.name;var se=this.streamFiles&&!ne.file.dir;if(se){var re=K(ne,se,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:re.fileRecord,meta:{percent:0}})}else this.accumulate=!0},te.prototype.closedSource=function(ne){this.accumulate=!1;var se=this.streamFiles&&!ne.file.dir,re=K(ne,se,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(re.dirRecord),se)this.push({data:ie(ne),meta:{percent:100}});else for(this.push({data:re.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},te.prototype.flush=function(){for(var ne=this.bytesWritten,se=0;se0?pe.substring(0,me):""},ae=function(pe){return pe.slice(-1)!=="/"&&(pe+="/"),pe},le=function(pe,me){return me=me!==void 0?me:Q.createFolders,pe=ae(pe),this.files[pe]||se.call(this,pe,null,{dir:!0,createFolders:me}),this.files[pe]};function ce(pe){return Object.prototype.toString.call(pe)==="[object RegExp]"}var he={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(pe){var me,fe,ge;for(me in this.files)ge=this.files[me],(fe=me.slice(this.root.length,me.length))&&me.slice(0,this.root.length)===this.root&&pe(fe,ge)},filter:function(pe){var me=[];return this.forEach(function(fe,ge){pe(fe,ge)&&me.push(ge)}),me},file:function(pe,me,fe){if(arguments.length===1){if(ce(pe)){var ge=pe;return this.filter(function(Ee,ve){return!ve.dir&&ge.test(Ee)})}var Se=this.files[this.root+pe];return Se&&!Se.dir?Se:null}return pe=this.root+pe,se.call(this,pe,me,fe),this},folder:function(pe){if(!pe)return this;if(ce(pe))return this.filter(function(Se,Ee){return Ee.dir&&pe.test(Se)});var me=this.root+pe,fe=le.call(this,me),ge=this.clone();return ge.root=fe.name,ge},remove:function(pe){pe=this.root+pe;var me=this.files[pe];if(me||(pe.slice(-1)!=="/"&&(pe+="/"),me=this.files[pe]),me&&!me.dir)delete this.files[pe];else for(var fe=this.filter(function(Se,Ee){return Ee.name.slice(0,pe.length)===pe}),ge=0;ge=0;--ie)if(this.data[ie]===Y&&this.data[ie+1]===Q&&this.data[ie+2]===Z&&this.data[ie+3]===K)return ie-this.zero;return-1},W.prototype.readAndCheckSignature=function(q){var Y=q.charCodeAt(0),Q=q.charCodeAt(1),Z=q.charCodeAt(2),K=q.charCodeAt(3),ie=this.readData(4);return Y===ie[0]&&Q===ie[1]&&Z===ie[2]&&K===ie[3]},W.prototype.readData=function(q){if(this.checkOffset(q),q===0)return[];var Y=this.data.slice(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./DataReader":18}],18:[function(B,D,G){var U=B("../utils");function W(q){this.data=q,this.length=q.length,this.index=0,this.zero=0}W.prototype={checkOffset:function(q){this.checkIndex(this.index+q)},checkIndex:function(q){if(this.length=this.index;Y--)Q=(Q<<8)+this.byteAt(Y);return this.index+=q,Q},readString:function(q){return U.transformTo("string",this.readData(q))},readData:function(q){},lastIndexOfSignature:function(q){},readAndCheckSignature:function(q){},readDate:function(){var q=this.readInt(4);return new Date(Date.UTC(1980+(q>>25&127),(q>>21&15)-1,q>>16&31,q>>11&31,q>>5&63,(31&q)<<1))}},D.exports=W},{"../utils":32}],19:[function(B,D,G){var U=B("./Uint8ArrayReader");function W(q){U.call(this,q)}B("../utils").inherits(W,U),W.prototype.readData=function(q){this.checkOffset(q);var Y=this.data.slice(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(B,D,G){var U=B("./DataReader");function W(q){U.call(this,q)}B("../utils").inherits(W,U),W.prototype.byteAt=function(q){return this.data.charCodeAt(this.zero+q)},W.prototype.lastIndexOfSignature=function(q){return this.data.lastIndexOf(q)-this.zero},W.prototype.readAndCheckSignature=function(q){return q===this.readData(4)},W.prototype.readData=function(q){this.checkOffset(q);var Y=this.data.slice(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./DataReader":18}],21:[function(B,D,G){var U=B("./ArrayReader");function W(q){U.call(this,q)}B("../utils").inherits(W,U),W.prototype.readData=function(q){if(this.checkOffset(q),q===0)return new Uint8Array(0);var Y=this.data.subarray(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./ArrayReader":17}],22:[function(B,D,G){var U=B("../utils"),W=B("../support"),q=B("./ArrayReader"),Y=B("./StringReader"),Q=B("./NodeBufferReader"),Z=B("./Uint8ArrayReader");D.exports=function(K){var ie=U.getTypeOf(K);return U.checkSupport(ie),ie!=="string"||W.uint8array?ie==="nodebuffer"?new Q(K):W.uint8array?new Z(U.transformTo("uint8array",K)):new q(U.transformTo("array",K)):new Y(K)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(B,D,G){G.LOCAL_FILE_HEADER="PK",G.CENTRAL_FILE_HEADER="PK",G.CENTRAL_DIRECTORY_END="PK",G.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",G.ZIP64_CENTRAL_DIRECTORY_END="PK",G.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(B,D,G){var U=B("./GenericWorker"),W=B("../utils");function q(Y){U.call(this,"ConvertWorker to "+Y),this.destType=Y}W.inherits(q,U),q.prototype.processChunk=function(Y){this.push({data:W.transformTo(this.destType,Y.data),meta:Y.meta})},D.exports=q},{"../utils":32,"./GenericWorker":28}],25:[function(B,D,G){var U=B("./GenericWorker"),W=B("../crc32");function q(){U.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}B("../utils").inherits(q,U),q.prototype.processChunk=function(Y){this.streamInfo.crc32=W(Y.data,this.streamInfo.crc32||0),this.push(Y)},D.exports=q},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(B,D,G){var U=B("../utils"),W=B("./GenericWorker");function q(Y){W.call(this,"DataLengthProbe for "+Y),this.propName=Y,this.withStreamInfo(Y,0)}U.inherits(q,W),q.prototype.processChunk=function(Y){if(Y){var Q=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=Q+Y.data.length}W.prototype.processChunk.call(this,Y)},D.exports=q},{"../utils":32,"./GenericWorker":28}],27:[function(B,D,G){var U=B("../utils"),W=B("./GenericWorker");function q(Y){W.call(this,"DataWorker");var Q=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,Y.then(function(Z){Q.dataIsReady=!0,Q.data=Z,Q.max=Z&&Z.length||0,Q.type=U.getTypeOf(Z),Q.isPaused||Q._tickAndRepeat()},function(Z){Q.error(Z)})}U.inherits(q,W),q.prototype.cleanUp=function(){W.prototype.cleanUp.call(this),this.data=null},q.prototype.resume=function(){return!!W.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,U.delay(this._tickAndRepeat,[],this)),!0)},q.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(U.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},q.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var Y=null,Q=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":Y=this.data.substring(this.index,Q);break;case"uint8array":Y=this.data.subarray(this.index,Q);break;case"array":case"nodebuffer":Y=this.data.slice(this.index,Q)}return this.index=Q,this.push({data:Y,meta:{percent:this.max?this.index/this.max*100:0}})},D.exports=q},{"../utils":32,"./GenericWorker":28}],28:[function(B,D,G){function U(W){this.name=W||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}U.prototype={push:function(W){this.emit("data",W)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(W){this.emit("error",W)}return!0},error:function(W){return!this.isFinished&&(this.isPaused?this.generatedError=W:(this.isFinished=!0,this.emit("error",W),this.previous&&this.previous.error(W),this.cleanUp()),!0)},on:function(W,q){return this._listeners[W].push(q),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(W,q){if(this._listeners[W])for(var Y=0;Y "+W:W}},D.exports=U},{}],29:[function(B,D,G){var U=B("../utils"),W=B("./ConvertWorker"),q=B("./GenericWorker"),Y=B("../base64"),Q=B("../support"),Z=B("../external"),K=null;if(Q.nodestream)try{K=B("../nodejs/NodejsStreamOutputAdapter")}catch{}function ie(ne,se){return new Z.Promise(function(re,ae){var le=[],ce=ne._internalType,he=ne._outputType,pe=ne._mimeType;ne.on("data",function(me,fe){le.push(me),se&&se(fe)}).on("error",function(me){le=[],ae(me)}).on("end",function(){try{var me=function(fe,ge,Se){switch(fe){case"blob":return U.newBlob(U.transformTo("arraybuffer",ge),Se);case"base64":return Y.encode(ge);default:return U.transformTo(fe,ge)}}(he,function(fe,ge){var Se,Ee=0,ve=null,xe=0;for(Se=0;Se=252?6:Z>=248?5:Z>=240?4:Z>=224?3:Z>=192?2:1;Q[254]=Q[254]=1;function K(){Y.call(this,"utf-8 decode"),this.leftOver=null}function ie(){Y.call(this,"utf-8 encode")}G.utf8encode=function(te){return W.nodebuffer?q.newBufferFrom(te,"utf-8"):function(ne){var se,re,ae,le,ce,he=ne.length,pe=0;for(le=0;le>>6,se[ce++]=128|63&re):re<65536?(se[ce++]=224|re>>>12,se[ce++]=128|re>>>6&63,se[ce++]=128|63&re):(se[ce++]=240|re>>>18,se[ce++]=128|re>>>12&63,se[ce++]=128|re>>>6&63,se[ce++]=128|63&re);return se}(te)},G.utf8decode=function(te){return W.nodebuffer?U.transformTo("nodebuffer",te).toString("utf-8"):function(ne){var se,re,ae,le,ce=ne.length,he=new Array(2*ce);for(re=0,se=0;se4)he[re++]=65533,se+=le-1;else{for(ae&=le===2?31:le===3?15:7;le>1&&se1?he[re++]=65533:ae<65536?he[re++]=ae:(ae-=65536,he[re++]=55296|ae>>10&1023,he[re++]=56320|1023&ae)}return he.length!==re&&(he.subarray?he=he.subarray(0,re):he.length=re),U.applyFromCharCode(he)}(te=U.transformTo(W.uint8array?"uint8array":"array",te))},U.inherits(K,Y),K.prototype.processChunk=function(te){var ne=U.transformTo(W.uint8array?"uint8array":"array",te.data);if(this.leftOver&&this.leftOver.length){if(W.uint8array){var se=ne;(ne=new Uint8Array(se.length+this.leftOver.length)).set(this.leftOver,0),ne.set(se,this.leftOver.length)}else ne=this.leftOver.concat(ne);this.leftOver=null}var re=function(le,ce){var he;for((ce=ce||le.length)>le.length&&(ce=le.length),he=ce-1;he>=0&&(192&le[he])==128;)he--;return he<0||he===0?ce:he+Q[le[he]]>ce?he:ce}(ne),ae=ne;re!==ne.length&&(W.uint8array?(ae=ne.subarray(0,re),this.leftOver=ne.subarray(re,ne.length)):(ae=ne.slice(0,re),this.leftOver=ne.slice(re,ne.length))),this.push({data:G.utf8decode(ae),meta:te.meta})},K.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:G.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},G.Utf8DecodeWorker=K,U.inherits(ie,Y),ie.prototype.processChunk=function(te){this.push({data:G.utf8encode(te.data),meta:te.meta})},G.Utf8EncodeWorker=ie},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(B,D,G){var U=B("./support"),W=B("./base64"),q=B("./nodejsUtils"),Y=B("./external");function Q(se){return se}function Z(se,re){for(var ae=0;ae1;)try{return K.stringifyByChunk(se,ae,re)}catch{re=Math.floor(re/2)}return K.stringifyByChar(se)}function te(se,re){for(var ae=0;ae1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var K,ie;for(K=0;K0)this.isSignature(ie,q.CENTRAL_FILE_HEADER)||(this.reader.zero=ne);else if(ne<0)throw new Error("Corrupted zip: missing "+Math.abs(ne)+" bytes.")},prepareReader:function(K){this.reader=U(K)},load:function(K){this.prepareReader(K),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},D.exports=Z},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(B,D,G){var U=B("./reader/readerFor"),W=B("./utils"),q=B("./compressedObject"),Y=B("./crc32"),Q=B("./utf8"),Z=B("./compressions"),K=B("./support");function ie(te,ne){this.options=te,this.loadOptions=ne}ie.prototype={isEncrypted:function(){return(1&this.bitFlag)==1},useUTF8:function(){return(2048&this.bitFlag)==2048},readLocalPart:function(te){var ne,se;if(te.skip(22),this.fileNameLength=te.readInt(2),se=te.readInt(2),this.fileName=te.readData(this.fileNameLength),te.skip(se),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if((ne=function(re){for(var ae in Z)if(Z.hasOwnProperty(ae)&&Z[ae].magic===re)return Z[ae];return null}(this.compressionMethod))===null)throw new Error("Corrupted zip : compression "+W.pretty(this.compressionMethod)+" unknown (inner file : "+W.transformTo("string",this.fileName)+")");this.decompressed=new q(this.compressedSize,this.uncompressedSize,this.crc32,ne,te.readData(this.compressedSize))},readCentralPart:function(te){this.versionMadeBy=te.readInt(2),te.skip(2),this.bitFlag=te.readInt(2),this.compressionMethod=te.readString(2),this.date=te.readDate(),this.crc32=te.readInt(4),this.compressedSize=te.readInt(4),this.uncompressedSize=te.readInt(4);var ne=te.readInt(2);if(this.extraFieldsLength=te.readInt(2),this.fileCommentLength=te.readInt(2),this.diskNumberStart=te.readInt(2),this.internalFileAttributes=te.readInt(2),this.externalFileAttributes=te.readInt(4),this.localHeaderOffset=te.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");te.skip(ne),this.readExtraFields(te),this.parseZIP64ExtraField(te),this.fileComment=te.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var te=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),te===0&&(this.dosPermissions=63&this.externalFileAttributes),te===3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(te){if(this.extraFields[1]){var ne=U(this.extraFields[1].value);this.uncompressedSize===W.MAX_VALUE_32BITS&&(this.uncompressedSize=ne.readInt(8)),this.compressedSize===W.MAX_VALUE_32BITS&&(this.compressedSize=ne.readInt(8)),this.localHeaderOffset===W.MAX_VALUE_32BITS&&(this.localHeaderOffset=ne.readInt(8)),this.diskNumberStart===W.MAX_VALUE_32BITS&&(this.diskNumberStart=ne.readInt(4))}},readExtraFields:function(te){var ne,se,re,ae=te.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});te.index+40?ne.windowBits=-ne.windowBits:ne.gzip&&ne.windowBits>0&&ne.windowBits<16&&(ne.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Q,this.strm.avail_out=0;var se=U.deflateInit2(this.strm,ne.level,ne.method,ne.windowBits,ne.memLevel,ne.strategy);if(se!==0)throw new Error(Y[se]);if(ne.header&&U.deflateSetHeader(this.strm,ne.header),ne.dictionary){var re;if(re=typeof ne.dictionary=="string"?q.string2buf(ne.dictionary):Z.call(ne.dictionary)==="[object ArrayBuffer]"?new Uint8Array(ne.dictionary):ne.dictionary,(se=U.deflateSetDictionary(this.strm,re))!==0)throw new Error(Y[se]);this._dict_set=!0}}function ie(te,ne){var se=new K(ne);if(se.push(te,!0),se.err)throw se.msg||Y[se.err];return se.result}K.prototype.push=function(te,ne){var se,re,ae=this.strm,le=this.options.chunkSize;if(this.ended)return!1;re=ne===~~ne?ne:ne===!0?4:0,typeof te=="string"?ae.input=q.string2buf(te):Z.call(te)==="[object ArrayBuffer]"?ae.input=new Uint8Array(te):ae.input=te,ae.next_in=0,ae.avail_in=ae.input.length;do{if(ae.avail_out===0&&(ae.output=new W.Buf8(le),ae.next_out=0,ae.avail_out=le),(se=U.deflate(ae,re))!==1&&se!==0)return this.onEnd(se),this.ended=!0,!1;ae.avail_out!==0&&(ae.avail_in!==0||re!==4&&re!==2)||(this.options.to==="string"?this.onData(q.buf2binstring(W.shrinkBuf(ae.output,ae.next_out))):this.onData(W.shrinkBuf(ae.output,ae.next_out)))}while((ae.avail_in>0||ae.avail_out===0)&&se!==1);return re===4?(se=U.deflateEnd(this.strm),this.onEnd(se),this.ended=!0,se===0):re!==2||(this.onEnd(0),ae.avail_out=0,!0)},K.prototype.onData=function(te){this.chunks.push(te)},K.prototype.onEnd=function(te){te===0&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=W.flattenChunks(this.chunks)),this.chunks=[],this.err=te,this.msg=this.strm.msg},G.Deflate=K,G.deflate=ie,G.deflateRaw=function(te,ne){return(ne=ne||{}).raw=!0,ie(te,ne)},G.gzip=function(te,ne){return(ne=ne||{}).gzip=!0,ie(te,ne)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(B,D,G){var U=B("./zlib/inflate"),W=B("./utils/common"),q=B("./utils/strings"),Y=B("./zlib/constants"),Q=B("./zlib/messages"),Z=B("./zlib/zstream"),K=B("./zlib/gzheader"),ie=Object.prototype.toString;function te(se){if(!(this instanceof te))return new te(se);this.options=W.assign({chunkSize:16384,windowBits:0,to:""},se||{});var re=this.options;re.raw&&re.windowBits>=0&&re.windowBits<16&&(re.windowBits=-re.windowBits,re.windowBits===0&&(re.windowBits=-15)),!(re.windowBits>=0&&re.windowBits<16)||se&&se.windowBits||(re.windowBits+=32),re.windowBits>15&&re.windowBits<48&&(15&re.windowBits)==0&&(re.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Z,this.strm.avail_out=0;var ae=U.inflateInit2(this.strm,re.windowBits);if(ae!==Y.Z_OK)throw new Error(Q[ae]);this.header=new K,U.inflateGetHeader(this.strm,this.header)}function ne(se,re){var ae=new te(re);if(ae.push(se,!0),ae.err)throw ae.msg||Q[ae.err];return ae.result}te.prototype.push=function(se,re){var ae,le,ce,he,pe,me,fe=this.strm,ge=this.options.chunkSize,Se=this.options.dictionary,Ee=!1;if(this.ended)return!1;le=re===~~re?re:re===!0?Y.Z_FINISH:Y.Z_NO_FLUSH,typeof se=="string"?fe.input=q.binstring2buf(se):ie.call(se)==="[object ArrayBuffer]"?fe.input=new Uint8Array(se):fe.input=se,fe.next_in=0,fe.avail_in=fe.input.length;do{if(fe.avail_out===0&&(fe.output=new W.Buf8(ge),fe.next_out=0,fe.avail_out=ge),(ae=U.inflate(fe,Y.Z_NO_FLUSH))===Y.Z_NEED_DICT&&Se&&(me=typeof Se=="string"?q.string2buf(Se):ie.call(Se)==="[object ArrayBuffer]"?new Uint8Array(Se):Se,ae=U.inflateSetDictionary(this.strm,me)),ae===Y.Z_BUF_ERROR&&Ee===!0&&(ae=Y.Z_OK,Ee=!1),ae!==Y.Z_STREAM_END&&ae!==Y.Z_OK)return this.onEnd(ae),this.ended=!0,!1;fe.next_out&&(fe.avail_out!==0&&ae!==Y.Z_STREAM_END&&(fe.avail_in!==0||le!==Y.Z_FINISH&&le!==Y.Z_SYNC_FLUSH)||(this.options.to==="string"?(ce=q.utf8border(fe.output,fe.next_out),he=fe.next_out-ce,pe=q.buf2string(fe.output,ce),fe.next_out=he,fe.avail_out=ge-he,he&&W.arraySet(fe.output,fe.output,ce,he,0),this.onData(pe)):this.onData(W.shrinkBuf(fe.output,fe.next_out)))),fe.avail_in===0&&fe.avail_out===0&&(Ee=!0)}while((fe.avail_in>0||fe.avail_out===0)&&ae!==Y.Z_STREAM_END);return ae===Y.Z_STREAM_END&&(le=Y.Z_FINISH),le===Y.Z_FINISH?(ae=U.inflateEnd(this.strm),this.onEnd(ae),this.ended=!0,ae===Y.Z_OK):le!==Y.Z_SYNC_FLUSH||(this.onEnd(Y.Z_OK),fe.avail_out=0,!0)},te.prototype.onData=function(se){this.chunks.push(se)},te.prototype.onEnd=function(se){se===Y.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=W.flattenChunks(this.chunks)),this.chunks=[],this.err=se,this.msg=this.strm.msg},G.Inflate=te,G.inflate=ne,G.inflateRaw=function(se,re){return(re=re||{}).raw=!0,ne(se,re)},G.ungzip=ne},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(B,D,G){var U=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";G.assign=function(Y){for(var Q=Array.prototype.slice.call(arguments,1);Q.length;){var Z=Q.shift();if(Z){if(typeof Z!="object")throw new TypeError(Z+"must be non-object");for(var K in Z)Z.hasOwnProperty(K)&&(Y[K]=Z[K])}}return Y},G.shrinkBuf=function(Y,Q){return Y.length===Q?Y:Y.subarray?Y.subarray(0,Q):(Y.length=Q,Y)};var W={arraySet:function(Y,Q,Z,K,ie){if(Q.subarray&&Y.subarray)Y.set(Q.subarray(Z,Z+K),ie);else for(var te=0;te=252?6:Q>=248?5:Q>=240?4:Q>=224?3:Q>=192?2:1;function Z(K,ie){if(ie<65537&&(K.subarray&&q||!K.subarray&&W))return String.fromCharCode.apply(null,U.shrinkBuf(K,ie));for(var te="",ne=0;ne>>6,ie[re++]=128|63&te):te<65536?(ie[re++]=224|te>>>12,ie[re++]=128|te>>>6&63,ie[re++]=128|63&te):(ie[re++]=240|te>>>18,ie[re++]=128|te>>>12&63,ie[re++]=128|te>>>6&63,ie[re++]=128|63&te);return ie},G.buf2binstring=function(K){return Z(K,K.length)},G.binstring2buf=function(K){for(var ie=new U.Buf8(K.length),te=0,ne=ie.length;te4)le[ne++]=65533,te+=re-1;else{for(se&=re===2?31:re===3?15:7;re>1&&te1?le[ne++]=65533:se<65536?le[ne++]=se:(se-=65536,le[ne++]=55296|se>>10&1023,le[ne++]=56320|1023&se)}return Z(le,ne)},G.utf8border=function(K,ie){var te;for((ie=ie||K.length)>K.length&&(ie=K.length),te=ie-1;te>=0&&(192&K[te])==128;)te--;return te<0||te===0?ie:te+Y[K[te]]>ie?te:ie}},{"./common":41}],43:[function(B,D,G){D.exports=function(U,W,q,Y){for(var Q=65535&U|0,Z=U>>>16&65535|0,K=0;q!==0;){q-=K=q>2e3?2e3:q;do Z=Z+(Q=Q+W[Y++]|0)|0;while(--K);Q%=65521,Z%=65521}return Q|Z<<16|0}},{}],44:[function(B,D,G){D.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(B,D,G){var U=function(){for(var W,q=[],Y=0;Y<256;Y++){W=Y;for(var Q=0;Q<8;Q++)W=1&W?3988292384^W>>>1:W>>>1;q[Y]=W}return q}();D.exports=function(W,q,Y,Q){var Z=U,K=Q+Y;W^=-1;for(var ie=Q;ie>>8^Z[255&(W^q[ie])];return-1^W}},{}],46:[function(B,D,G){var U,W=B("../utils/common"),q=B("./trees"),Y=B("./adler32"),Q=B("./crc32"),Z=B("./messages");function K(ve,xe){return ve.msg=Z[xe],xe}function ie(ve){return(ve<<1)-(ve>4?9:0)}function te(ve){for(var xe=ve.length;--xe>=0;)ve[xe]=0}function ne(ve){var xe=ve.state,Me=xe.pending;Me>ve.avail_out&&(Me=ve.avail_out),Me!==0&&(W.arraySet(ve.output,xe.pending_buf,xe.pending_out,Me,ve.next_out),ve.next_out+=Me,xe.pending_out+=Me,ve.total_out+=Me,ve.avail_out-=Me,xe.pending-=Me,xe.pending===0&&(xe.pending_out=0))}function se(ve,xe){q._tr_flush_block(ve,ve.block_start>=0?ve.block_start:-1,ve.strstart-ve.block_start,xe),ve.block_start=ve.strstart,ne(ve.strm)}function re(ve,xe){ve.pending_buf[ve.pending++]=xe}function ae(ve,xe){ve.pending_buf[ve.pending++]=xe>>>8&255,ve.pending_buf[ve.pending++]=255&xe}function le(ve,xe){var Me,ye,we=ve.max_chain_length,Re=ve.strstart,Pe=ve.prev_length,Ae=ve.nice_match,Le=ve.strstart>ve.w_size-262?ve.strstart-(ve.w_size-262):0,Ne=ve.window,Ie=ve.w_mask,_e=ve.prev,Ve=ve.strstart+258,qe=Ne[Re+Pe-1],Ge=Ne[Re+Pe];ve.prev_length>=ve.good_match&&(we>>=2),Ae>ve.lookahead&&(Ae=ve.lookahead);do if(Ne[(Me=xe)+Pe]===Ge&&Ne[Me+Pe-1]===qe&&Ne[Me]===Ne[Re]&&Ne[++Me]===Ne[Re+1]){Re+=2,Me++;do;while(Ne[++Re]===Ne[++Me]&&Ne[++Re]===Ne[++Me]&&Ne[++Re]===Ne[++Me]&&Ne[++Re]===Ne[++Me]&&Ne[++Re]===Ne[++Me]&&Ne[++Re]===Ne[++Me]&&Ne[++Re]===Ne[++Me]&&Ne[++Re]===Ne[++Me]&&RePe){if(ve.match_start=xe,Pe=ye,ye>=Ae)break;qe=Ne[Re+Pe-1],Ge=Ne[Re+Pe]}}while((xe=_e[xe&Ie])>Le&&--we!=0);return Pe<=ve.lookahead?Pe:ve.lookahead}function ce(ve){var xe,Me,ye,we,Re,Pe,Ae,Le,Ne,Ie,_e=ve.w_size;do{if(we=ve.window_size-ve.lookahead-ve.strstart,ve.strstart>=_e+(_e-262)){W.arraySet(ve.window,ve.window,_e,_e,0),ve.match_start-=_e,ve.strstart-=_e,ve.block_start-=_e,xe=Me=ve.hash_size;do ye=ve.head[--xe],ve.head[xe]=ye>=_e?ye-_e:0;while(--Me);xe=Me=_e;do ye=ve.prev[--xe],ve.prev[xe]=ye>=_e?ye-_e:0;while(--Me);we+=_e}if(ve.strm.avail_in===0)break;if(Pe=ve.strm,Ae=ve.window,Le=ve.strstart+ve.lookahead,Ne=we,Ie=void 0,(Ie=Pe.avail_in)>Ne&&(Ie=Ne),Me=Ie===0?0:(Pe.avail_in-=Ie,W.arraySet(Ae,Pe.input,Pe.next_in,Ie,Le),Pe.state.wrap===1?Pe.adler=Y(Pe.adler,Ae,Ie,Le):Pe.state.wrap===2&&(Pe.adler=Q(Pe.adler,Ae,Ie,Le)),Pe.next_in+=Ie,Pe.total_in+=Ie,Ie),ve.lookahead+=Me,ve.lookahead+ve.insert>=3)for(Re=ve.strstart-ve.insert,ve.ins_h=ve.window[Re],ve.ins_h=(ve.ins_h<=3&&(ve.ins_h=(ve.ins_h<=3)if(ye=q._tr_tally(ve,ve.strstart-ve.match_start,ve.match_length-3),ve.lookahead-=ve.match_length,ve.match_length<=ve.max_lazy_match&&ve.lookahead>=3){ve.match_length--;do ve.strstart++,ve.ins_h=(ve.ins_h<=3&&(ve.ins_h=(ve.ins_h<4096)&&(ve.match_length=2)),ve.prev_length>=3&&ve.match_length<=ve.prev_length){we=ve.strstart+ve.lookahead-3,ye=q._tr_tally(ve,ve.strstart-1-ve.prev_match,ve.prev_length-3),ve.lookahead-=ve.prev_length-1,ve.prev_length-=2;do++ve.strstart<=we&&(ve.ins_h=(ve.ins_h<15&&(Pe=2,ye-=16),we<1||we>9||Me!==8||ye<8||ye>15||xe<0||xe>9||Re<0||Re>4)return K(ve,-2);ye===8&&(ye=9);var Ae=new fe;return ve.state=Ae,Ae.strm=ve,Ae.wrap=Pe,Ae.gzhead=null,Ae.w_bits=ye,Ae.w_size=1<ve.pending_buf_size-5&&(Me=ve.pending_buf_size-5);;){if(ve.lookahead<=1){if(ce(ve),ve.lookahead===0&&xe===0)return 1;if(ve.lookahead===0)break}ve.strstart+=ve.lookahead,ve.lookahead=0;var ye=ve.block_start+Me;if((ve.strstart===0||ve.strstart>=ye)&&(ve.lookahead=ve.strstart-ye,ve.strstart=ye,se(ve,!1),ve.strm.avail_out===0)||ve.strstart-ve.block_start>=ve.w_size-262&&(se(ve,!1),ve.strm.avail_out===0))return 1}return ve.insert=0,xe===4?(se(ve,!0),ve.strm.avail_out===0?3:4):(ve.strstart>ve.block_start&&(se(ve,!1),ve.strm.avail_out),1)}),new me(4,4,8,4,he),new me(4,5,16,8,he),new me(4,6,32,32,he),new me(4,4,16,16,pe),new me(8,16,32,32,pe),new me(8,16,128,128,pe),new me(8,32,128,256,pe),new me(32,128,258,1024,pe),new me(32,258,258,4096,pe)],G.deflateInit=function(ve,xe){return Ee(ve,xe,8,15,8,0)},G.deflateInit2=Ee,G.deflateReset=Se,G.deflateResetKeep=ge,G.deflateSetHeader=function(ve,xe){return ve&&ve.state?ve.state.wrap!==2?-2:(ve.state.gzhead=xe,0):-2},G.deflate=function(ve,xe){var Me,ye,we,Re;if(!ve||!ve.state||xe>5||xe<0)return ve?K(ve,-2):-2;if(ye=ve.state,!ve.output||!ve.input&&ve.avail_in!==0||ye.status===666&&xe!==4)return K(ve,ve.avail_out===0?-5:-2);if(ye.strm=ve,Me=ye.last_flush,ye.last_flush=xe,ye.status===42)if(ye.wrap===2)ve.adler=0,re(ye,31),re(ye,139),re(ye,8),ye.gzhead?(re(ye,(ye.gzhead.text?1:0)+(ye.gzhead.hcrc?2:0)+(ye.gzhead.extra?4:0)+(ye.gzhead.name?8:0)+(ye.gzhead.comment?16:0)),re(ye,255&ye.gzhead.time),re(ye,ye.gzhead.time>>8&255),re(ye,ye.gzhead.time>>16&255),re(ye,ye.gzhead.time>>24&255),re(ye,ye.level===9?2:ye.strategy>=2||ye.level<2?4:0),re(ye,255&ye.gzhead.os),ye.gzhead.extra&&ye.gzhead.extra.length&&(re(ye,255&ye.gzhead.extra.length),re(ye,ye.gzhead.extra.length>>8&255)),ye.gzhead.hcrc&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending,0)),ye.gzindex=0,ye.status=69):(re(ye,0),re(ye,0),re(ye,0),re(ye,0),re(ye,0),re(ye,ye.level===9?2:ye.strategy>=2||ye.level<2?4:0),re(ye,3),ye.status=113);else{var Pe=8+(ye.w_bits-8<<4)<<8;Pe|=(ye.strategy>=2||ye.level<2?0:ye.level<6?1:ye.level===6?2:3)<<6,ye.strstart!==0&&(Pe|=32),Pe+=31-Pe%31,ye.status=113,ae(ye,Pe),ye.strstart!==0&&(ae(ye,ve.adler>>>16),ae(ye,65535&ve.adler)),ve.adler=1}if(ye.status===69)if(ye.gzhead.extra){for(we=ye.pending;ye.gzindex<(65535&ye.gzhead.extra.length)&&(ye.pending!==ye.pending_buf_size||(ye.gzhead.hcrc&&ye.pending>we&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending-we,we)),ne(ve),we=ye.pending,ye.pending!==ye.pending_buf_size));)re(ye,255&ye.gzhead.extra[ye.gzindex]),ye.gzindex++;ye.gzhead.hcrc&&ye.pending>we&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending-we,we)),ye.gzindex===ye.gzhead.extra.length&&(ye.gzindex=0,ye.status=73)}else ye.status=73;if(ye.status===73)if(ye.gzhead.name){we=ye.pending;do{if(ye.pending===ye.pending_buf_size&&(ye.gzhead.hcrc&&ye.pending>we&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending-we,we)),ne(ve),we=ye.pending,ye.pending===ye.pending_buf_size)){Re=1;break}Re=ye.gzindexwe&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending-we,we)),Re===0&&(ye.gzindex=0,ye.status=91)}else ye.status=91;if(ye.status===91)if(ye.gzhead.comment){we=ye.pending;do{if(ye.pending===ye.pending_buf_size&&(ye.gzhead.hcrc&&ye.pending>we&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending-we,we)),ne(ve),we=ye.pending,ye.pending===ye.pending_buf_size)){Re=1;break}Re=ye.gzindexwe&&(ve.adler=Q(ve.adler,ye.pending_buf,ye.pending-we,we)),Re===0&&(ye.status=103)}else ye.status=103;if(ye.status===103&&(ye.gzhead.hcrc?(ye.pending+2>ye.pending_buf_size&&ne(ve),ye.pending+2<=ye.pending_buf_size&&(re(ye,255&ve.adler),re(ye,ve.adler>>8&255),ve.adler=0,ye.status=113)):ye.status=113),ye.pending!==0){if(ne(ve),ve.avail_out===0)return ye.last_flush=-1,0}else if(ve.avail_in===0&&ie(xe)<=ie(Me)&&xe!==4)return K(ve,-5);if(ye.status===666&&ve.avail_in!==0)return K(ve,-5);if(ve.avail_in!==0||ye.lookahead!==0||xe!==0&&ye.status!==666){var Ae=ye.strategy===2?function(Le,Ne){for(var Ie;;){if(Le.lookahead===0&&(ce(Le),Le.lookahead===0)){if(Ne===0)return 1;break}if(Le.match_length=0,Ie=q._tr_tally(Le,0,Le.window[Le.strstart]),Le.lookahead--,Le.strstart++,Ie&&(se(Le,!1),Le.strm.avail_out===0))return 1}return Le.insert=0,Ne===4?(se(Le,!0),Le.strm.avail_out===0?3:4):Le.last_lit&&(se(Le,!1),Le.strm.avail_out===0)?1:2}(ye,xe):ye.strategy===3?function(Le,Ne){for(var Ie,_e,Ve,qe,Ge=Le.window;;){if(Le.lookahead<=258){if(ce(Le),Le.lookahead<=258&&Ne===0)return 1;if(Le.lookahead===0)break}if(Le.match_length=0,Le.lookahead>=3&&Le.strstart>0&&(_e=Ge[Ve=Le.strstart-1])===Ge[++Ve]&&_e===Ge[++Ve]&&_e===Ge[++Ve]){qe=Le.strstart+258;do;while(_e===Ge[++Ve]&&_e===Ge[++Ve]&&_e===Ge[++Ve]&&_e===Ge[++Ve]&&_e===Ge[++Ve]&&_e===Ge[++Ve]&&_e===Ge[++Ve]&&_e===Ge[++Ve]&&VeLe.lookahead&&(Le.match_length=Le.lookahead)}if(Le.match_length>=3?(Ie=q._tr_tally(Le,1,Le.match_length-3),Le.lookahead-=Le.match_length,Le.strstart+=Le.match_length,Le.match_length=0):(Ie=q._tr_tally(Le,0,Le.window[Le.strstart]),Le.lookahead--,Le.strstart++),Ie&&(se(Le,!1),Le.strm.avail_out===0))return 1}return Le.insert=0,Ne===4?(se(Le,!0),Le.strm.avail_out===0?3:4):Le.last_lit&&(se(Le,!1),Le.strm.avail_out===0)?1:2}(ye,xe):U[ye.level].func(ye,xe);if(Ae!==3&&Ae!==4||(ye.status=666),Ae===1||Ae===3)return ve.avail_out===0&&(ye.last_flush=-1),0;if(Ae===2&&(xe===1?q._tr_align(ye):xe!==5&&(q._tr_stored_block(ye,0,0,!1),xe===3&&(te(ye.head),ye.lookahead===0&&(ye.strstart=0,ye.block_start=0,ye.insert=0))),ne(ve),ve.avail_out===0))return ye.last_flush=-1,0}return xe!==4?0:ye.wrap<=0?1:(ye.wrap===2?(re(ye,255&ve.adler),re(ye,ve.adler>>8&255),re(ye,ve.adler>>16&255),re(ye,ve.adler>>24&255),re(ye,255&ve.total_in),re(ye,ve.total_in>>8&255),re(ye,ve.total_in>>16&255),re(ye,ve.total_in>>24&255)):(ae(ye,ve.adler>>>16),ae(ye,65535&ve.adler)),ne(ve),ye.wrap>0&&(ye.wrap=-ye.wrap),ye.pending!==0?0:1)},G.deflateEnd=function(ve){var xe;return ve&&ve.state?(xe=ve.state.status)!==42&&xe!==69&&xe!==73&&xe!==91&&xe!==103&&xe!==113&&xe!==666?K(ve,-2):(ve.state=null,xe===113?K(ve,-3):0):-2},G.deflateSetDictionary=function(ve,xe){var Me,ye,we,Re,Pe,Ae,Le,Ne,Ie=xe.length;if(!ve||!ve.state||(Re=(Me=ve.state).wrap)===2||Re===1&&Me.status!==42||Me.lookahead)return-2;for(Re===1&&(ve.adler=Y(ve.adler,xe,Ie,0)),Me.wrap=0,Ie>=Me.w_size&&(Re===0&&(te(Me.head),Me.strstart=0,Me.block_start=0,Me.insert=0),Ne=new W.Buf8(Me.w_size),W.arraySet(Ne,xe,Ie-Me.w_size,Me.w_size,0),xe=Ne,Ie=Me.w_size),Pe=ve.avail_in,Ae=ve.next_in,Le=ve.input,ve.avail_in=Ie,ve.next_in=0,ve.input=xe,ce(Me);Me.lookahead>=3;){ye=Me.strstart,we=Me.lookahead-2;do Me.ins_h=(Me.ins_h<>>=Se=ge>>>24,ce-=Se,(Se=ge>>>16&255)===0)we[Z++]=65535≥else{if(!(16&Se)){if((64&Se)==0){ge=he[(65535&ge)+(le&(1<>>=Se,ce-=Se),ce<15&&(le+=ye[Y++]<>>=Se=ge>>>24,ce-=Se,!(16&(Se=ge>>>16&255))){if((64&Se)==0){ge=pe[(65535&ge)+(le&(1<te){U.msg="invalid distance too far back",q.mode=30;break e}if(le>>>=Se,ce-=Se,ve>(Se=Z-K)){if((Se=ve-Se)>se&&q.sane){U.msg="invalid distance too far back",q.mode=30;break e}if(xe=0,Me=ae,re===0){if(xe+=ne-Se,Se2;)we[Z++]=Me[xe++],we[Z++]=Me[xe++],we[Z++]=Me[xe++],Ee-=3;Ee&&(we[Z++]=Me[xe++],Ee>1&&(we[Z++]=Me[xe++]))}else{xe=Z-ve;do we[Z++]=we[xe++],we[Z++]=we[xe++],we[Z++]=we[xe++],Ee-=3;while(Ee>2);Ee&&(we[Z++]=we[xe++],Ee>1&&(we[Z++]=we[xe++]))}break}}break}}while(Y>3,le&=(1<<(ce-=Ee<<3))-1,U.next_in=Y,U.next_out=Z,U.avail_in=Y>>24&255)+(pe>>>8&65280)+((65280&pe)<<8)+((255&pe)<<24)}function K(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new U.Buf16(320),this.work=new U.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function ie(pe){var me;return pe&&pe.state?(me=pe.state,pe.total_in=pe.total_out=me.total=0,pe.msg="",me.wrap&&(pe.adler=1&me.wrap),me.mode=1,me.last=0,me.havedict=0,me.dmax=32768,me.head=null,me.hold=0,me.bits=0,me.lencode=me.lendyn=new U.Buf32(852),me.distcode=me.distdyn=new U.Buf32(592),me.sane=1,me.back=-1,0):-2}function te(pe){var me;return pe&&pe.state?((me=pe.state).wsize=0,me.whave=0,me.wnext=0,ie(pe)):-2}function ne(pe,me){var fe,ge;return pe&&pe.state?(ge=pe.state,me<0?(fe=0,me=-me):(fe=1+(me>>4),me<48&&(me&=15)),me&&(me<8||me>15)?-2:(ge.window!==null&&ge.wbits!==me&&(ge.window=null),ge.wrap=fe,ge.wbits=me,te(pe))):-2}function se(pe,me){var fe,ge;return pe?(ge=new K,pe.state=ge,ge.window=null,(fe=ne(pe,me))!==0&&(pe.state=null),fe):-2}var re,ae,le=!0;function ce(pe){if(le){var me;for(re=new U.Buf32(512),ae=new U.Buf32(32),me=0;me<144;)pe.lens[me++]=8;for(;me<256;)pe.lens[me++]=9;for(;me<280;)pe.lens[me++]=7;for(;me<288;)pe.lens[me++]=8;for(Q(1,pe.lens,0,288,re,0,pe.work,{bits:9}),me=0;me<32;)pe.lens[me++]=5;Q(2,pe.lens,0,32,ae,0,pe.work,{bits:5}),le=!1}pe.lencode=re,pe.lenbits=9,pe.distcode=ae,pe.distbits=5}function he(pe,me,fe,ge){var Se,Ee=pe.state;return Ee.window===null&&(Ee.wsize=1<=Ee.wsize?(U.arraySet(Ee.window,me,fe-Ee.wsize,Ee.wsize,0),Ee.wnext=0,Ee.whave=Ee.wsize):((Se=Ee.wsize-Ee.wnext)>ge&&(Se=ge),U.arraySet(Ee.window,me,fe-ge,Se,Ee.wnext),(ge-=Se)?(U.arraySet(Ee.window,me,fe-ge,ge,0),Ee.wnext=ge,Ee.whave=Ee.wsize):(Ee.wnext+=Se,Ee.wnext===Ee.wsize&&(Ee.wnext=0),Ee.whave>>8&255,fe.check=q(fe.check,yt,2,0),ye=0,we=0,fe.mode=2;break}if(fe.flags=0,fe.head&&(fe.head.done=!1),!(1&fe.wrap)||(((255&ye)<<8)+(ye>>8))%31){pe.msg="incorrect header check",fe.mode=30;break}if((15&ye)!=8){pe.msg="unknown compression method",fe.mode=30;break}if(we-=4,Qe=8+(15&(ye>>>=4)),fe.wbits===0)fe.wbits=Qe;else if(Qe>fe.wbits){pe.msg="invalid window size",fe.mode=30;break}fe.dmax=1<>8&1),512&fe.flags&&(yt[0]=255&ye,yt[1]=ye>>>8&255,fe.check=q(fe.check,yt,2,0)),ye=0,we=0,fe.mode=3;case 3:for(;we<32;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>8&255,yt[2]=ye>>>16&255,yt[3]=ye>>>24&255,fe.check=q(fe.check,yt,4,0)),ye=0,we=0,fe.mode=4;case 4:for(;we<16;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>8),512&fe.flags&&(yt[0]=255&ye,yt[1]=ye>>>8&255,fe.check=q(fe.check,yt,2,0)),ye=0,we=0,fe.mode=5;case 5:if(1024&fe.flags){for(;we<16;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>8&255,fe.check=q(fe.check,yt,2,0)),ye=0,we=0}else fe.head&&(fe.head.extra=null);fe.mode=6;case 6:if(1024&fe.flags&&((Ae=fe.length)>xe&&(Ae=xe),Ae&&(fe.head&&(Qe=fe.head.extra_len-fe.length,fe.head.extra||(fe.head.extra=new Array(fe.head.extra_len)),U.arraySet(fe.head.extra,ge,Ee,Ae,Qe)),512&fe.flags&&(fe.check=q(fe.check,ge,Ae,Ee)),xe-=Ae,Ee+=Ae,fe.length-=Ae),fe.length))break e;fe.length=0,fe.mode=7;case 7:if(2048&fe.flags){if(xe===0)break e;Ae=0;do Qe=ge[Ee+Ae++],fe.head&&Qe&&fe.length<65536&&(fe.head.name+=String.fromCharCode(Qe));while(Qe&&Ae>9&1,fe.head.done=!0),pe.adler=fe.check=0,fe.mode=12;break;case 10:for(;we<32;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>=7&we,we-=7&we,fe.mode=27;break}for(;we<3;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>=1)){case 0:fe.mode=14;break;case 1:if(ce(fe),fe.mode=20,me===6){ye>>>=2,we-=2;break e}break;case 2:fe.mode=17;break;case 3:pe.msg="invalid block type",fe.mode=30}ye>>>=2,we-=2;break;case 14:for(ye>>>=7&we,we-=7&we;we<32;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>16^65535)){pe.msg="invalid stored block lengths",fe.mode=30;break}if(fe.length=65535&ye,ye=0,we=0,fe.mode=15,me===6)break e;case 15:fe.mode=16;case 16:if(Ae=fe.length){if(Ae>xe&&(Ae=xe),Ae>Me&&(Ae=Me),Ae===0)break e;U.arraySet(Se,ge,Ee,Ae,ve),xe-=Ae,Ee+=Ae,Me-=Ae,ve+=Ae,fe.length-=Ae;break}fe.mode=12;break;case 17:for(;we<14;){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>=5,we-=5,fe.ndist=1+(31&ye),ye>>>=5,we-=5,fe.ncode=4+(15&ye),ye>>>=4,we-=4,fe.nlen>286||fe.ndist>30){pe.msg="too many length or distance symbols",fe.mode=30;break}fe.have=0,fe.mode=18;case 18:for(;fe.have>>=3,we-=3}for(;fe.have<19;)fe.lens[Fe[fe.have++]]=0;if(fe.lencode=fe.lendyn,fe.lenbits=7,Ze={bits:fe.lenbits},We=Q(0,fe.lens,0,19,fe.lencode,0,fe.work,Ze),fe.lenbits=Ze.bits,We){pe.msg="invalid code lengths set",fe.mode=30;break}fe.have=0,fe.mode=19;case 19:for(;fe.have>>16&255,Ve=65535&ht,!((Ie=ht>>>24)<=we);){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>=Ie,we-=Ie,fe.lens[fe.have++]=Ve;else{if(Ve===16){for(lt=Ie+2;we>>=Ie,we-=Ie,fe.have===0){pe.msg="invalid bit length repeat",fe.mode=30;break}Qe=fe.lens[fe.have-1],Ae=3+(3&ye),ye>>>=2,we-=2}else if(Ve===17){for(lt=Ie+3;we>>=Ie)),ye>>>=3,we-=3}else{for(lt=Ie+7;we>>=Ie)),ye>>>=7,we-=7}if(fe.have+Ae>fe.nlen+fe.ndist){pe.msg="invalid bit length repeat",fe.mode=30;break}for(;Ae--;)fe.lens[fe.have++]=Qe}}if(fe.mode===30)break;if(fe.lens[256]===0){pe.msg="invalid code -- missing end-of-block",fe.mode=30;break}if(fe.lenbits=9,Ze={bits:fe.lenbits},We=Q(1,fe.lens,0,fe.nlen,fe.lencode,0,fe.work,Ze),fe.lenbits=Ze.bits,We){pe.msg="invalid literal/lengths set",fe.mode=30;break}if(fe.distbits=6,fe.distcode=fe.distdyn,Ze={bits:fe.distbits},We=Q(2,fe.lens,fe.nlen,fe.ndist,fe.distcode,0,fe.work,Ze),fe.distbits=Ze.bits,We){pe.msg="invalid distances set",fe.mode=30;break}if(fe.mode=20,me===6)break e;case 20:fe.mode=21;case 21:if(xe>=6&&Me>=258){pe.next_out=ve,pe.avail_out=Me,pe.next_in=Ee,pe.avail_in=xe,fe.hold=ye,fe.bits=we,Y(pe,Pe),ve=pe.next_out,Se=pe.output,Me=pe.avail_out,Ee=pe.next_in,ge=pe.input,xe=pe.avail_in,ye=fe.hold,we=fe.bits,fe.mode===12&&(fe.back=-1);break}for(fe.back=0;_e=(ht=fe.lencode[ye&(1<>>16&255,Ve=65535&ht,!((Ie=ht>>>24)<=we);){if(xe===0)break e;xe--,ye+=ge[Ee++]<>qe)])>>>16&255,Ve=65535&ht,!(qe+(Ie=ht>>>24)<=we);){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>=qe,we-=qe,fe.back+=qe}if(ye>>>=Ie,we-=Ie,fe.back+=Ie,fe.length=Ve,_e===0){fe.mode=26;break}if(32&_e){fe.back=-1,fe.mode=12;break}if(64&_e){pe.msg="invalid literal/length code",fe.mode=30;break}fe.extra=15&_e,fe.mode=22;case 22:if(fe.extra){for(lt=fe.extra;we>>=fe.extra,we-=fe.extra,fe.back+=fe.extra}fe.was=fe.length,fe.mode=23;case 23:for(;_e=(ht=fe.distcode[ye&(1<>>16&255,Ve=65535&ht,!((Ie=ht>>>24)<=we);){if(xe===0)break e;xe--,ye+=ge[Ee++]<>qe)])>>>16&255,Ve=65535&ht,!(qe+(Ie=ht>>>24)<=we);){if(xe===0)break e;xe--,ye+=ge[Ee++]<>>=qe,we-=qe,fe.back+=qe}if(ye>>>=Ie,we-=Ie,fe.back+=Ie,64&_e){pe.msg="invalid distance code",fe.mode=30;break}fe.offset=Ve,fe.extra=15&_e,fe.mode=24;case 24:if(fe.extra){for(lt=fe.extra;we>>=fe.extra,we-=fe.extra,fe.back+=fe.extra}if(fe.offset>fe.dmax){pe.msg="invalid distance too far back",fe.mode=30;break}fe.mode=25;case 25:if(Me===0)break e;if(Ae=Pe-Me,fe.offset>Ae){if((Ae=fe.offset-Ae)>fe.whave&&fe.sane){pe.msg="invalid distance too far back",fe.mode=30;break}Ae>fe.wnext?(Ae-=fe.wnext,Le=fe.wsize-Ae):Le=fe.wnext-Ae,Ae>fe.length&&(Ae=fe.length),Ne=fe.window}else Ne=Se,Le=ve-fe.offset,Ae=fe.length;Ae>Me&&(Ae=Me),Me-=Ae,fe.length-=Ae;do Se[ve++]=Ne[Le++];while(--Ae);fe.length===0&&(fe.mode=21);break;case 26:if(Me===0)break e;Se[ve++]=fe.length,Me--,fe.mode=21;break;case 27:if(fe.wrap){for(;we<32;){if(xe===0)break e;xe--,ye|=ge[Ee++]<=1&&qe[we]===0;we--);if(Re>we&&(Re=we),we===0)return ne[se++]=20971520,ne[se++]=20971520,ae.bits=1,0;for(ye=1;ye0&&(Z===0||we!==1))return-1;for(Ge[1]=0,xe=1;xe<15;xe++)Ge[xe+1]=Ge[xe]+qe[xe];for(Me=0;Me852||Z===2&&Ne>592)return 1;for(;;){ge=xe-Ae,re[Me]fe?(Se=He[Qe+re[Me]],Ee=_e[Ve+re[Me]]):(Se=96,Ee=0),le=1<>Ae)+(ce-=le)]=ge<<24|Se<<16|Ee|0;while(ce!==0);for(le=1<>=1;if(le!==0?(Ie&=le-1,Ie+=le):Ie=0,Me++,--qe[xe]==0){if(xe===we)break;xe=K[ie+re[Me]]}if(xe>Re&&(Ie&pe)!==he){for(Ae===0&&(Ae=Re),me+=ye,Le=1<<(Pe=xe-Ae);Pe+Ae852||Z===2&&Ne>592)return 1;ne[he=Ie&pe]=Re<<24|Pe<<16|me-se|0}}return Ie!==0&&(ne[me+Ie]=xe-Ae<<24|64<<16|0),ae.bits=Re,0}},{"../utils/common":41}],51:[function(B,D,G){D.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(B,D,G){var U=B("../utils/common");function W(_e){for(var Ve=_e.length;--Ve>=0;)_e[Ve]=0}var q=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Y=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Z=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],K=new Array(576);W(K);var ie=new Array(60);W(ie);var te=new Array(512);W(te);var ne=new Array(256);W(ne);var se=new Array(29);W(se);var re,ae,le,ce=new Array(30);function he(_e,Ve,qe,Ge,He){this.static_tree=_e,this.extra_bits=Ve,this.extra_base=qe,this.elems=Ge,this.max_length=He,this.has_stree=_e&&_e.length}function pe(_e,Ve){this.dyn_tree=_e,this.max_code=0,this.stat_desc=Ve}function me(_e){return _e<256?te[_e]:te[256+(_e>>>7)]}function fe(_e,Ve){_e.pending_buf[_e.pending++]=255&Ve,_e.pending_buf[_e.pending++]=Ve>>>8&255}function ge(_e,Ve,qe){_e.bi_valid>16-qe?(_e.bi_buf|=Ve<<_e.bi_valid&65535,fe(_e,_e.bi_buf),_e.bi_buf=Ve>>16-_e.bi_valid,_e.bi_valid+=qe-16):(_e.bi_buf|=Ve<<_e.bi_valid&65535,_e.bi_valid+=qe)}function Se(_e,Ve,qe){ge(_e,qe[2*Ve],qe[2*Ve+1])}function Ee(_e,Ve){var qe=0;do qe|=1&_e,_e>>>=1,qe<<=1;while(--Ve>0);return qe>>>1}function ve(_e,Ve,qe){var Ge,He,Qe=new Array(16),We=0;for(Ge=1;Ge<=15;Ge++)Qe[Ge]=We=We+qe[Ge-1]<<1;for(He=0;He<=Ve;He++){var Ze=_e[2*He+1];Ze!==0&&(_e[2*He]=Ee(Qe[Ze]++,Ze))}}function xe(_e){var Ve;for(Ve=0;Ve<286;Ve++)_e.dyn_ltree[2*Ve]=0;for(Ve=0;Ve<30;Ve++)_e.dyn_dtree[2*Ve]=0;for(Ve=0;Ve<19;Ve++)_e.bl_tree[2*Ve]=0;_e.dyn_ltree[512]=1,_e.opt_len=_e.static_len=0,_e.last_lit=_e.matches=0}function Me(_e){_e.bi_valid>8?fe(_e,_e.bi_buf):_e.bi_valid>0&&(_e.pending_buf[_e.pending++]=_e.bi_buf),_e.bi_buf=0,_e.bi_valid=0}function ye(_e,Ve,qe,Ge){var He=2*Ve,Qe=2*qe;return _e[He]<_e[Qe]||_e[He]===_e[Qe]&&Ge[Ve]<=Ge[qe]}function we(_e,Ve,qe){for(var Ge=_e.heap[qe],He=qe<<1;He<=_e.heap_len&&(He<_e.heap_len&&ye(Ve,_e.heap[He+1],_e.heap[He],_e.depth)&&He++,!ye(Ve,Ge,_e.heap[He],_e.depth));)_e.heap[qe]=_e.heap[He],qe=He,He<<=1;_e.heap[qe]=Ge}function Re(_e,Ve,qe){var Ge,He,Qe,We,Ze=0;if(_e.last_lit!==0)do Ge=_e.pending_buf[_e.d_buf+2*Ze]<<8|_e.pending_buf[_e.d_buf+2*Ze+1],He=_e.pending_buf[_e.l_buf+Ze],Ze++,Ge===0?Se(_e,He,Ve):(Se(_e,(Qe=ne[He])+256+1,Ve),(We=q[Qe])!==0&&ge(_e,He-=se[Qe],We),Se(_e,Qe=me(--Ge),qe),(We=Y[Qe])!==0&&ge(_e,Ge-=ce[Qe],We));while(Ze<_e.last_lit);Se(_e,256,Ve)}function Pe(_e,Ve){var qe,Ge,He,Qe=Ve.dyn_tree,We=Ve.stat_desc.static_tree,Ze=Ve.stat_desc.has_stree,lt=Ve.stat_desc.elems,ht=-1;for(_e.heap_len=0,_e.heap_max=573,qe=0;qe>1;qe>=1;qe--)we(_e,Qe,qe);He=lt;do qe=_e.heap[1],_e.heap[1]=_e.heap[_e.heap_len--],we(_e,Qe,1),Ge=_e.heap[1],_e.heap[--_e.heap_max]=qe,_e.heap[--_e.heap_max]=Ge,Qe[2*He]=Qe[2*qe]+Qe[2*Ge],_e.depth[He]=(_e.depth[qe]>=_e.depth[Ge]?_e.depth[qe]:_e.depth[Ge])+1,Qe[2*qe+1]=Qe[2*Ge+1]=He,_e.heap[1]=He++,we(_e,Qe,1);while(_e.heap_len>=2);_e.heap[--_e.heap_max]=_e.heap[1],function(yt,Fe){var Te,je,Ke,Oe,De,et,it=Fe.dyn_tree,rt=Fe.max_code,Je=Fe.stat_desc.static_tree,ct=Fe.stat_desc.has_stree,dt=Fe.stat_desc.extra_bits,pt=Fe.stat_desc.extra_base,vt=Fe.stat_desc.max_length,wt=0;for(Oe=0;Oe<=15;Oe++)yt.bl_count[Oe]=0;for(it[2*yt.heap[yt.heap_max]+1]=0,Te=yt.heap_max+1;Te<573;Te++)(Oe=it[2*it[2*(je=yt.heap[Te])+1]+1]+1)>vt&&(Oe=vt,wt++),it[2*je+1]=Oe,je>rt||(yt.bl_count[Oe]++,De=0,je>=pt&&(De=dt[je-pt]),et=it[2*je],yt.opt_len+=et*(Oe+De),ct&&(yt.static_len+=et*(Je[2*je+1]+De)));if(wt!==0){do{for(Oe=vt-1;yt.bl_count[Oe]===0;)Oe--;yt.bl_count[Oe]--,yt.bl_count[Oe+1]+=2,yt.bl_count[vt]--,wt-=2}while(wt>0);for(Oe=vt;Oe!==0;Oe--)for(je=yt.bl_count[Oe];je!==0;)(Ke=yt.heap[--Te])>rt||(it[2*Ke+1]!==Oe&&(yt.opt_len+=(Oe-it[2*Ke+1])*it[2*Ke],it[2*Ke+1]=Oe),je--)}}(_e,Ve),ve(Qe,ht,_e.bl_count)}function Ae(_e,Ve,qe){var Ge,He,Qe=-1,We=Ve[1],Ze=0,lt=7,ht=4;for(We===0&&(lt=138,ht=3),Ve[2*(qe+1)+1]=65535,Ge=0;Ge<=qe;Ge++)He=We,We=Ve[2*(Ge+1)+1],++Ze>=7;He<30;He++)for(ce[He]=Qe<<7,Ve=0;Ve<1<0?(_e.strm.data_type===2&&(_e.strm.data_type=function(Ze){var lt,ht=4093624447;for(lt=0;lt<=31;lt++,ht>>>=1)if(1&ht&&Ze.dyn_ltree[2*lt]!==0)return 0;if(Ze.dyn_ltree[18]!==0||Ze.dyn_ltree[20]!==0||Ze.dyn_ltree[26]!==0)return 1;for(lt=32;lt<256;lt++)if(Ze.dyn_ltree[2*lt]!==0)return 1;return 0}(_e)),Pe(_e,_e.l_desc),Pe(_e,_e.d_desc),We=function(Ze){var lt;for(Ae(Ze,Ze.dyn_ltree,Ze.l_desc.max_code),Ae(Ze,Ze.dyn_dtree,Ze.d_desc.max_code),Pe(Ze,Ze.bl_desc),lt=18;lt>=3&&Ze.bl_tree[2*Z[lt]+1]===0;lt--);return Ze.opt_len+=3*(lt+1)+5+5+4,lt}(_e),He=_e.opt_len+3+7>>>3,(Qe=_e.static_len+3+7>>>3)<=He&&(He=Qe)):He=Qe=qe+5,qe+4<=He&&Ve!==-1?Ie(_e,Ve,qe,Ge):_e.strategy===4||Qe===He?(ge(_e,2+(Ge?1:0),3),Re(_e,K,ie)):(ge(_e,4+(Ge?1:0),3),function(Ze,lt,ht,yt){var Fe;for(ge(Ze,lt-257,5),ge(Ze,ht-1,5),ge(Ze,yt-4,4),Fe=0;Fe>>8&255,_e.pending_buf[_e.d_buf+2*_e.last_lit+1]=255&Ve,_e.pending_buf[_e.l_buf+_e.last_lit]=255&qe,_e.last_lit++,Ve===0?_e.dyn_ltree[2*qe]++:(_e.matches++,Ve--,_e.dyn_ltree[2*(ne[qe]+256+1)]++,_e.dyn_dtree[2*me(Ve)]++),_e.last_lit===_e.lit_bufsize-1},G._tr_align=function(_e){ge(_e,2,3),Se(_e,256,K),function(Ve){Ve.bi_valid===16?(fe(Ve,Ve.bi_buf),Ve.bi_buf=0,Ve.bi_valid=0):Ve.bi_valid>=8&&(Ve.pending_buf[Ve.pending++]=255&Ve.bi_buf,Ve.bi_buf>>=8,Ve.bi_valid-=8)}(_e)}},{"../utils/common":41}],53:[function(B,D,G){D.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(B,D,G){(function(U){(function(W,q){if(!W.setImmediate){var Y,Q,Z,K,ie,te=1,ne={},se=!1,re=W.document,ae=Object.getPrototypeOf&&Object.getPrototypeOf(W);ae=ae&&ae.setTimeout?ae:W,{}.toString.call(W.process)==="[object process]"?Y=function(he){process.nextTick(function(){ce(he)})}:function(){if(W.postMessage&&!W.importScripts){var he=!0,pe=W.onmessage;return W.onmessage=function(){he=!1},W.postMessage("","*"),W.onmessage=pe,he}}()?(K="setImmediate$"+Math.random()+"$",ie=function(he){he.source===W&&typeof he.data=="string"&&he.data.indexOf(K)===0&&ce(+he.data.slice(K.length))},W.addEventListener?W.addEventListener("message",ie,!1):W.attachEvent("onmessage",ie),Y=function(he){W.postMessage(K+he,"*")}):W.MessageChannel?((Z=new MessageChannel).port1.onmessage=function(he){ce(he.data)},Y=function(he){Z.port2.postMessage(he)}):re&&"onreadystatechange"in re.createElement("script")?(Q=re.documentElement,Y=function(he){var pe=re.createElement("script");pe.onreadystatechange=function(){ce(he),pe.onreadystatechange=null,Q.removeChild(pe),pe=null},Q.appendChild(pe)}):Y=function(he){setTimeout(ce,0,he)},ae.setImmediate=function(he){typeof he!="function"&&(he=new Function(""+he));for(var pe=new Array(arguments.length-1),me=0;me{const D=new XMLHttpRequest;D.open("GET",F,!0),D.responseType="arraybuffer",D.send(),D.onreadystatechange=function(){D.readyState==4&&D.status==200&&jszip.loadAsync(D.response).then(G=>{G.file("manifest.json").async("string").then(U=>{const W=JSON.parse(U);if(!("animations"in W))throw new Error("Manifest not found");if(W.animations.length===0)throw new Error("No animations listed in the manifest");const q=W.animations[0];G.file("animations/".concat(q.id,".json")).async("string").then(Y=>{const Q=JSON.parse(Y);"assets"in Q&&Promise.all(Q.assets.map(Z=>{if(Z.p&&G.file("images/".concat(Z.p))!=null)return new Promise(K=>{const ie=Z.p.split(".").pop();G.file("images/".concat(Z.p)).async("base64").then(te=>{Z.p=ie==="svg"||ie==="svg+xml"?"data:image/svg+xml;base64,"+te:"data:;base64,"+te,Z.e=1,K()})})})).then(()=>{R(Q)})})})}).catch(G=>{B(G)})}})}(function(F){F.Loading="loading",F.Playing="playing",F.Paused="paused",F.Stopped="stopped",F.Frozen="frozen",F.Error="error"})(PlayerState||(PlayerState={})),function(F){F.Normal="normal",F.Bounce="bounce"}(PlayMode||(PlayMode={})),function(F){F.Load="load",F.Error="error",F.Ready="ready",F.Play="play",F.Pause="pause",F.Stop="stop",F.Freeze="freeze",F.Loop="loop",F.Complete="complete",F.Frame="frame"}(PlayerEvents||(PlayerEvents={}));let DotLottiePlayer=class extends s$4{constructor(){super(...arguments),this.mode=PlayMode.Normal,this.autoplay=!1,this.background="transparent",this.controls=!1,this.direction=1,this.hover=!1,this.loop=!1,this.renderer="svg",this.speed=1,this.currentState=PlayerState.Loading,this.intermission=1,this._counter=0}_onVisibilityChange(){document.hidden&&this.currentState===PlayerState.Playing?this.freeze():this.currentState===PlayerState.Frozen&&this.play()}_handleSeekChange(F){if(!this._lottie||isNaN(F.target.value))return;const R=F.target.value/100*this._lottie.totalFrames;this.seek(R)}async load(F){if(!this.shadowRoot)return;const R={container:this.container,loop:!1,autoplay:!1,renderer:this.renderer,rendererSettings:{scaleMode:"noScale",clearCanvas:!1,progressiveLoad:!0,hideOnTransparent:!0}};try{const B=await fetchPath(F);this._lottie&&this._lottie.destroy(),this._lottie=lottie_svg.loadAnimation(Object.assign(Object.assign({},R),{animationData:B}))}catch{return this.currentState=PlayerState.Error,void this.dispatchEvent(new CustomEvent(PlayerEvents.Error))}this._lottie&&(this._lottie.addEventListener("enterFrame",()=>{this.seeker=this._lottie.currentFrame/this._lottie.totalFrames*100,this.dispatchEvent(new CustomEvent(PlayerEvents.Frame,{detail:{frame:this._lottie.currentFrame,seeker:this.seeker}}))}),this._lottie.addEventListener("complete",()=>{this.currentState===PlayerState.Playing?!this.loop||this.count&&this._counter>=this.count?this.dispatchEvent(new CustomEvent(PlayerEvents.Complete)):this.mode===PlayMode.Bounce?(this.count&&(this._counter+=.5),setTimeout(()=>{this.dispatchEvent(new CustomEvent(PlayerEvents.Loop)),this.currentState===PlayerState.Playing&&(this._lottie.setDirection(-1*this._lottie.playDirection),this._lottie.play())},this.intermission)):(this.count&&(this._counter+=1),window.setTimeout(()=>{this.dispatchEvent(new CustomEvent(PlayerEvents.Loop)),this.currentState===PlayerState.Playing&&(this._lottie.stop(),this._lottie.play())},this.intermission)):this.dispatchEvent(new CustomEvent(PlayerEvents.Complete))}),this._lottie.addEventListener("DOMLoaded",()=>{this.dispatchEvent(new CustomEvent(PlayerEvents.Ready))}),this._lottie.addEventListener("data_ready",()=>{this.dispatchEvent(new CustomEvent(PlayerEvents.Load))}),this._lottie.addEventListener("data_failed",()=>{this.currentState=PlayerState.Error,this.dispatchEvent(new CustomEvent(PlayerEvents.Error))}),this.container.addEventListener("mouseenter",()=>{this.hover&&this.currentState!==PlayerState.Playing&&this.play()}),this.container.addEventListener("mouseleave",()=>{this.hover&&this.currentState===PlayerState.Playing&&this.stop()}),this.setSpeed(this.speed),this.setDirection(this.direction),this.autoplay&&this.play())}getLottie(){return this._lottie}play(){this._lottie&&(this._lottie.play(),this.currentState=PlayerState.Playing,this.dispatchEvent(new CustomEvent(PlayerEvents.Play)))}pause(){this._lottie&&(this._lottie.pause(),this.currentState=PlayerState.Paused,this.dispatchEvent(new CustomEvent(PlayerEvents.Pause)))}stop(){this._lottie&&(this._counter=0,this._lottie.stop(),this.currentState=PlayerState.Stopped,this.dispatchEvent(new CustomEvent(PlayerEvents.Stop)))}seek(F){if(!this._lottie)return;const R=F.toString().match(/^([0-9]+)(%?)$/);if(!R)return;const B=R[2]==="%"?this._lottie.totalFrames*Number(R[1])/100:R[1];this.seeker=B,this.currentState===PlayerState.Playing?this._lottie.goToAndPlay(B,!0):(this._lottie.goToAndStop(B,!0),this._lottie.pause())}snapshot(){let F=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];if(!this.shadowRoot)return;const R=this.shadowRoot.querySelector(".animation svg"),B=new XMLSerializer().serializeToString(R);if(F){const D=document.createElement("a");D.href="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(B),D.download="download_"+this.seeker+".svg",document.body.appendChild(D),D.click(),document.body.removeChild(D)}return B}freeze(){this._lottie&&(this._lottie.pause(),this.currentState=PlayerState.Frozen,this.dispatchEvent(new CustomEvent(PlayerEvents.Freeze)))}setSpeed(){let F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this._lottie&&this._lottie.setSpeed(F)}setDirection(F){this._lottie&&this._lottie.setDirection(F)}setLooping(F){this._lottie&&(this.loop=F,this._lottie.loop=F)}togglePlay(){return this.currentState===PlayerState.Playing?this.pause():this.play()}toggleLooping(){this.setLooping(!this.loop)}static get styles(){return styles$e}async firstUpdated(){"IntersectionObserver"in window&&(this._io=new IntersectionObserver(F=>{F[0].isIntersecting?this.currentState===PlayerState.Frozen&&this.play():this.currentState===PlayerState.Playing&&this.freeze()}),this._io.observe(this.container)),document.hidden!==void 0&&document.addEventListener("visibilitychange",()=>this._onVisibilityChange()),this.src&&await this.load(this.src)}disconnectedCallback(){this._io&&(this._io.disconnect(),this._io=void 0),document.removeEventListener("visibilitychange",()=>this._onVisibilityChange())}renderControls(){const F=this.currentState===PlayerState.Playing,R=this.currentState===PlayerState.Paused,B=this.currentState===PlayerState.Stopped;return $(_templateObject||(_templateObject=_taggedTemplateLiteral([`
`])),this.togglePlay,F||R?"active":"",$(F?_templateObject2||(_templateObject2=_taggedTemplateLiteral([` `])):_templateObject3||(_templateObject3=_taggedTemplateLiteral([` `]))),this.stop,B?"active":"",this.seeker,this._handleSeekChange,()=>{this._prevState=this.currentState,this.freeze()},()=>{this._prevState===PlayerState.Playing&&this.play()},this.seeker,this.toggleLooping,this.loop?"active":"")}render(){const F=this.controls?"main controls":"main",R=this.controls?"animation controls":"animation";return $(_templateObject4||(_templateObject4=_taggedTemplateLiteral([` `])),F,R,this.background,this.currentState===PlayerState.Error?$(_templateObject5||(_templateObject5=_taggedTemplateLiteral([`
\u26A0\uFE0F
`]))):void 0,this.controls?this.renderControls():void 0)}};__decorate([i$4(".animation")],DotLottiePlayer.prototype,"container",void 0),__decorate([e$5()],DotLottiePlayer.prototype,"mode",void 0),__decorate([e$5({type:Boolean})],DotLottiePlayer.prototype,"autoplay",void 0),__decorate([e$5({type:String,reflect:!0})],DotLottiePlayer.prototype,"background",void 0),__decorate([e$5({type:Boolean})],DotLottiePlayer.prototype,"controls",void 0),__decorate([e$5({type:Number})],DotLottiePlayer.prototype,"count",void 0),__decorate([e$5({type:Number})],DotLottiePlayer.prototype,"direction",void 0),__decorate([e$5({type:Boolean})],DotLottiePlayer.prototype,"hover",void 0),__decorate([e$5({type:Boolean,reflect:!0})],DotLottiePlayer.prototype,"loop",void 0),__decorate([e$5({type:String})],DotLottiePlayer.prototype,"renderer",void 0),__decorate([e$5({type:Number})],DotLottiePlayer.prototype,"speed",void 0),__decorate([e$5({type:String})],DotLottiePlayer.prototype,"src",void 0),__decorate([e$5({type:String})],DotLottiePlayer.prototype,"currentState",void 0),__decorate([e$5()],DotLottiePlayer.prototype,"seeker",void 0),__decorate([e$5()],DotLottiePlayer.prototype,"intermission",void 0),DotLottiePlayer=__decorate([n$1("dotlottie-player")],DotLottiePlayer);var accompaniment="/orchestra-music-score/assets/accompaniment.b83f0e6e.svg",__glob_2_0=Object.freeze(Object.defineProperty({__proto__:null,default:accompaniment},Symbol.toStringTag,{value:"Module"})),back$1="/orchestra-music-score/assets/back.0e8784e6.svg",__glob_2_1=Object.freeze(Object.defineProperty({__proto__:null,default:back$1},Symbol.toStringTag,{value:"Module"})),backgroundClose="/orchestra-music-score/assets/background-close.292949ba.svg",__glob_2_2=Object.freeze(Object.defineProperty({__proto__:null,default:backgroundClose},Symbol.toStringTag,{value:"Module"})),background$1="/orchestra-music-score/assets/background.66e3a94f.svg",__glob_2_3=Object.freeze(Object.defineProperty({__proto__:null,default:background$1},Symbol.toStringTag,{value:"Module"})),camera="/orchestra-music-score/assets/camera.6735691d.svg",__glob_2_4=Object.freeze(Object.defineProperty({__proto__:null,default:camera},Symbol.toStringTag,{value:"Module"})),equilibrium="/orchestra-music-score/assets/equilibrium.f9043cf5.svg",__glob_2_5=Object.freeze(Object.defineProperty({__proto__:null,default:equilibrium},Symbol.toStringTag,{value:"Module"})),evaluating$1="/orchestra-music-score/assets/evaluating.9eb5cfac.svg",__glob_2_6=Object.freeze(Object.defineProperty({__proto__:null,default:evaluating$1},Symbol.toStringTag,{value:"Module"})),fingeringOff="/orchestra-music-score/assets/fingeringOff.b63542d4.svg",__glob_2_7=Object.freeze(Object.defineProperty({__proto__:null,default:fingeringOff},Symbol.toStringTag,{value:"Module"})),fingeringOn="/orchestra-music-score/assets/fingeringOn.32644085.svg",__glob_2_8=Object.freeze(Object.defineProperty({__proto__:null,default:fingeringOn},Symbol.toStringTag,{value:"Module"})),gudingActive="/orchestra-music-score/assets/guding-active.ffb42216.svg",__glob_2_9=Object.freeze(Object.defineProperty({__proto__:null,default:gudingActive},Symbol.toStringTag,{value:"Module"})),guding="/orchestra-music-score/assets/guding.a3ea7233.svg",__glob_2_10=Object.freeze(Object.defineProperty({__proto__:null,default:guding},Symbol.toStringTag,{value:"Module"})),BackIcon="/orchestra-music-score/assets/icon-back.c23f1b59.svg",__glob_2_11=Object.freeze(Object.defineProperty({__proto__:null,default:BackIcon},Symbol.toStringTag,{value:"Module"})),iconStaffActive="/orchestra-music-score/assets/icon-staff-active.c1d6b682.svg",__glob_2_12=Object.freeze(Object.defineProperty({__proto__:null,default:iconStaffActive},Symbol.toStringTag,{value:"Module"})),iconStaff="/orchestra-music-score/assets/icon-staff.5a2b7c94.svg",__glob_2_13=Object.freeze(Object.defineProperty({__proto__:null,default:iconStaff},Symbol.toStringTag,{value:"Module"})),iconZhuanpu="/orchestra-music-score/assets/icon-zhuanpu.1a6e0bcb.svg",__glob_2_14=Object.freeze(Object.defineProperty({__proto__:null,default:iconZhuanpu},Symbol.toStringTag,{value:"Module"})),jia="/orchestra-music-score/assets/jia.362e133d.svg",__glob_2_15=Object.freeze(Object.defineProperty({__proto__:null,default:jia},Symbol.toStringTag,{value:"Module"})),jian="/orchestra-music-score/assets/jian.ce0820a8.svg",__glob_2_16=Object.freeze(Object.defineProperty({__proto__:null,default:jian},Symbol.toStringTag,{value:"Module"})),jianpu="/orchestra-music-score/assets/jianpu.70310e35.svg",__glob_2_17=Object.freeze(Object.defineProperty({__proto__:null,default:jianpu},Symbol.toStringTag,{value:"Module"})),model1="/orchestra-music-score/assets/model-1.5cdc3b59.svg",__glob_2_18=Object.freeze(Object.defineProperty({__proto__:null,default:model1},Symbol.toStringTag,{value:"Module"})),model2="/orchestra-music-score/assets/model-2.aedda1e7.svg",__glob_2_19=Object.freeze(Object.defineProperty({__proto__:null,default:model2},Symbol.toStringTag,{value:"Module"})),model3="/orchestra-music-score/assets/model-3.f6cc2e96.svg",__glob_2_20=Object.freeze(Object.defineProperty({__proto__:null,default:model3},Symbol.toStringTag,{value:"Module"})),modelType$1="/orchestra-music-score/assets/modelType.7dff5016.svg",__glob_2_21=Object.freeze(Object.defineProperty({__proto__:null,default:modelType$1},Symbol.toStringTag,{value:"Module"})),modelType1="/orchestra-music-score/assets/modelType1.e616d5d5.svg",__glob_2_22=Object.freeze(Object.defineProperty({__proto__:null,default:modelType1},Symbol.toStringTag,{value:"Module"})),modelType2="/orchestra-music-score/assets/modelType2.4364a0ba.svg",__glob_2_23=Object.freeze(Object.defineProperty({__proto__:null,default:modelType2},Symbol.toStringTag,{value:"Module"})),musicList="/orchestra-music-score/assets/music-list.8ad9f128.svg",__glob_2_24=Object.freeze(Object.defineProperty({__proto__:null,default:musicList},Symbol.toStringTag,{value:"Module"})),musicList1="/orchestra-music-score/assets/music-list1.16180b5c.svg",__glob_2_25=Object.freeze(Object.defineProperty({__proto__:null,default:musicList1},Symbol.toStringTag,{value:"Module"})),music="/orchestra-music-score/assets/music.855d26de.svg",__glob_2_26=Object.freeze(Object.defineProperty({__proto__:null,default:music},Symbol.toStringTag,{value:"Module"})),part="/orchestra-music-score/assets/part.7184ecd4.svg",__glob_2_27=Object.freeze(Object.defineProperty({__proto__:null,default:part},Symbol.toStringTag,{value:"Module"})),pause$1="/orchestra-music-score/assets/pause.1f3a158e.svg",__glob_2_28=Object.freeze(Object.defineProperty({__proto__:null,default:pause$1},Symbol.toStringTag,{value:"Module"})),play$1="/orchestra-music-score/assets/play.4cb46bbb.svg",__glob_2_29=Object.freeze(Object.defineProperty({__proto__:null,default:play$1},Symbol.toStringTag,{value:"Module"})),practice="/orchestra-music-score/assets/practice.a1fec217.svg",__glob_2_30=Object.freeze(Object.defineProperty({__proto__:null,default:practice},Symbol.toStringTag,{value:"Module"})),practise="/orchestra-music-score/assets/practise.cdd135b3.svg",__glob_2_31=Object.freeze(Object.defineProperty({__proto__:null,default:practise},Symbol.toStringTag,{value:"Module"})),record="/orchestra-music-score/assets/record.214e6a6d.svg",__glob_2_32=Object.freeze(Object.defineProperty({__proto__:null,default:record},Symbol.toStringTag,{value:"Module"})),resetShengyin="/orchestra-music-score/assets/reset-shengyin.af688c9a.svg",__glob_2_33=Object.freeze(Object.defineProperty({__proto__:null,default:resetShengyin},Symbol.toStringTag,{value:"Module"})),reset="/orchestra-music-score/assets/reset.c00c8122.svg",__glob_2_34=Object.freeze(Object.defineProperty({__proto__:null,default:reset},Symbol.toStringTag,{value:"Module"})),restore="/orchestra-music-score/assets/restore.3a4a6db3.svg",__glob_2_35=Object.freeze(Object.defineProperty({__proto__:null,default:restore},Symbol.toStringTag,{value:"Module"})),section$1="/orchestra-music-score/assets/section.f9765b45.svg",__glob_2_36=Object.freeze(Object.defineProperty({__proto__:null,default:section$1},Symbol.toStringTag,{value:"Module"})),section1="/orchestra-music-score/assets/section1.d207eca4.svg",__glob_2_37=Object.freeze(Object.defineProperty({__proto__:null,default:section1},Symbol.toStringTag,{value:"Module"})),section2="/orchestra-music-score/assets/section2.7715197f.svg",__glob_2_38=Object.freeze(Object.defineProperty({__proto__:null,default:section2},Symbol.toStringTag,{value:"Module"})),setting$1="/orchestra-music-score/assets/setting.d2c48eac.svg",__glob_2_39=Object.freeze(Object.defineProperty({__proto__:null,default:setting$1},Symbol.toStringTag,{value:"Module"})),shuodiaoActive="/orchestra-music-score/assets/shuodiao-active.6b157b93.svg",__glob_2_40=Object.freeze(Object.defineProperty({__proto__:null,default:shuodiaoActive},Symbol.toStringTag,{value:"Module"})),shuodiao="/orchestra-music-score/assets/shuodiao.da855d30.svg",__glob_2_41=Object.freeze(Object.defineProperty({__proto__:null,default:shuodiao},Symbol.toStringTag,{value:"Module"})),speed$2="/orchestra-music-score/assets/speed.256b84ef.svg",__glob_2_42=Object.freeze(Object.defineProperty({__proto__:null,default:speed$2},Symbol.toStringTag,{value:"Module"})),staff$1="/orchestra-music-score/assets/staff.f226ff22.svg",__glob_2_43=Object.freeze(Object.defineProperty({__proto__:null,default:staff$1},Symbol.toStringTag,{value:"Module"})),start$2="/orchestra-music-score/assets/start.7b27072b.svg",__glob_2_44=Object.freeze(Object.defineProperty({__proto__:null,default:start$2},Symbol.toStringTag,{value:"Module"})),stop="/orchestra-music-score/assets/stop.e36ceb44.svg",__glob_2_45=Object.freeze(Object.defineProperty({__proto__:null,default:stop},Symbol.toStringTag,{value:"Module"})),taskBg="/orchestra-music-score/assets/task-bg.9304b5bf.svg",__glob_2_46=Object.freeze(Object.defineProperty({__proto__:null,default:taskBg},Symbol.toStringTag,{value:"Module"})),tuning="/orchestra-music-score/assets/tuning.4b86afaf.svg",__glob_2_47=Object.freeze(Object.defineProperty({__proto__:null,default:tuning},Symbol.toStringTag,{value:"Module"})),volPlus="/orchestra-music-score/assets/vol-plus.8301fc70.svg",__glob_2_48=Object.freeze(Object.defineProperty({__proto__:null,default:volPlus},Symbol.toStringTag,{value:"Module"})),vol="/orchestra-music-score/assets/vol.4b3b0407.svg",__glob_2_49=Object.freeze(Object.defineProperty({__proto__:null,default:vol},Symbol.toStringTag,{value:"Module"})),____="/orchestra-music-score/assets/\u8BC4\u6D4B\u8BB0\u5F55.5949e468.svg",__glob_2_50=Object.freeze(Object.defineProperty({__proto__:null,default:____},Symbol.toStringTag,{value:"Module"}));const getAssetsHomeFile=F=>{var D;const R=`./icons/${F}.svg`;return(D={"./icons/accompaniment.svg":__glob_2_0,"./icons/back.svg":__glob_2_1,"./icons/background-close.svg":__glob_2_2,"./icons/background.svg":__glob_2_3,"./icons/camera.svg":__glob_2_4,"./icons/equilibrium.svg":__glob_2_5,"./icons/evaluating.svg":__glob_2_6,"./icons/fingeringOff.svg":__glob_2_7,"./icons/fingeringOn.svg":__glob_2_8,"./icons/guding-active.svg":__glob_2_9,"./icons/guding.svg":__glob_2_10,"./icons/icon-back.svg":__glob_2_11,"./icons/icon-staff-active.svg":__glob_2_12,"./icons/icon-staff.svg":__glob_2_13,"./icons/icon-zhuanpu.svg":__glob_2_14,"./icons/jia.svg":__glob_2_15,"./icons/jian.svg":__glob_2_16,"./icons/jianpu.svg":__glob_2_17,"./icons/model-1.svg":__glob_2_18,"./icons/model-2.svg":__glob_2_19,"./icons/model-3.svg":__glob_2_20,"./icons/modelType.svg":__glob_2_21,"./icons/modelType1.svg":__glob_2_22,"./icons/modelType2.svg":__glob_2_23,"./icons/music-list.svg":__glob_2_24,"./icons/music-list1.svg":__glob_2_25,"./icons/music.svg":__glob_2_26,"./icons/part.svg":__glob_2_27,"./icons/pause.svg":__glob_2_28,"./icons/play.svg":__glob_2_29,"./icons/practice.svg":__glob_2_30,"./icons/practise.svg":__glob_2_31,"./icons/record.svg":__glob_2_32,"./icons/reset-shengyin.svg":__glob_2_33,"./icons/reset.svg":__glob_2_34,"./icons/restore.svg":__glob_2_35,"./icons/section.svg":__glob_2_36,"./icons/section1.svg":__glob_2_37,"./icons/section2.svg":__glob_2_38,"./icons/setting.svg":__glob_2_39,"./icons/shuodiao-active.svg":__glob_2_40,"./icons/shuodiao.svg":__glob_2_41,"./icons/speed.svg":__glob_2_42,"./icons/staff.svg":__glob_2_43,"./icons/start.svg":__glob_2_44,"./icons/stop.svg":__glob_2_45,"./icons/task-bg.svg":__glob_2_46,"./icons/tuning.svg":__glob_2_47,"./icons/vol-plus.svg":__glob_2_48,"./icons/vol.svg":__glob_2_49,"./icons/\u8BC4\u6D4B\u8BB0\u5F55.svg":__glob_2_50}[R])==null?void 0:D.default};var ButtonIcon=defineComponent({name:"ButtonIcon",props:{name:{type:String}},setup(F){return()=>F.name?createVNode("img",{src:getAssetsHomeFile(F.name)},null):null}}),classnames={exports:{}};/*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */(function(F){(function(){var R={}.hasOwnProperty;function B(){for(var D=[],G=0;G{}},updateSpeed:{type:Function,default:F=>{}},mode:{type:String},changeMode:{type:Function,default:F=>{}},lib:{type:Object}},setup(F){var Y;const{lib:R}=toRefs(F);state$1.speed=(Y=R.value)==null?void 0:Y.speed;const B=()=>{state$1.showHint=!0},D=()=>{state$1.showHint=!1},G=Q=>{state$1.speed=Q,F.changed(state$1.speed)},U=Q=>{state$1.speed=Q,F.updateSpeed(state$1.speed)},W=()=>{state$1.speed=Math.max(state$1.speed-1,45),F.changed(state$1.speed)},q=()=>{state$1.speed=Math.min(state$1.speed+1,270),F.changed(state$1.speed)};return()=>createVNode("div",{class:styles$d["speed-change"]},[createVNode("div",{class:styles$d.speed},[createVNode("div",null,[createVNode(Button,{color:"#01C1B5",icon:iconPlus,type:"primary",size:"mini",round:!0,disabled:state$1.speed==270,onClick:q},null),createVNode(Slider,{class:styles$d.slider,max:270,min:45,barHeight:"3px",buttonSize:"18px",modelValue:315-state$1.speed,"onUpdate:modelValue":Q=>U(315-Q),step:"1",vertical:!0,activeColor:"#ebedf0",onChange:Q=>G(315-Q),onDragStart:B,onDragEnd:D},{button:()=>createVNode("div",{class:styles$d["custom-button"]},[createVNode("span",null,[state$1.speed]),createVNode("div",{class:classNames(styles$d.title)},[createVNode("span",{class:styles$d.strong},[state$1.speed])])])}),createVNode(Button,{class:styles$d.min,color:"#01C1B5",icon:iconMinus,type:"primary",size:"mini",round:!0,disabled:state$1.speed==45,onClick:W},null),createVNode(Button,{class:styles$d.reset,color:"#01C1B5",icon:iconresetMinus,type:"primary",size:"mini",round:!0,onClick:()=>{var Q;state$2.activeDetail&&G((Q=state$2.activeDetail)==null?void 0:Q.originalSpeed)}},null)])])])},methods:{resetSpeed(){var F,R;state$1.speed=(F=this.lib)==null?void 0:F.speed,this.changed((R=this.lib)==null?void 0:R.speed)},refUpdateSpeed(F){state$1.speed=F,this.updateSpeed(state$1.speed)}}});const close="_close_1xean_1",bg$2="_bg_1xean_12";var styles$c={close,bg:bg$2},iconColse="/orchestra-music-score/assets/close.c15efc4b.svg",Popups=defineComponent({name:"ColexiuPopup",props:{data:{type:Object,default:()=>null},zIndex:{type:Number,default:void 0},closeable:{type:Boolean,default:!0},overlay:{type:Boolean,default:!0},style:{type:Object}},setup(F,{slots:R,expose:B}){const D=ref(!1),G=ref(!1),U=()=>{D.value=!0,G.value=!0},W=()=>{D.value=!1},q=()=>{G.value=!1};return B({show:D,close:()=>{D.value=!1},onShow:U,onClose:W,onClosed:q}),()=>createVNode(Popup,{show:D.value,zIndex:F.zIndex,onClose:W,onClosed:q,teleport:"body",onClickOverlay:W,overlay:F.overlay,round:!0,closeable:!1,style:{...F.style},class:styles$c.bg,lockScroll:!0},{default:()=>[G.value&&R.default&&R.default(F),F.closeable&&createVNode(Icon,{class:styles$c.close,name:iconColse,onClick:W},null)]})}});const title$4="_title_184ej_1",wrap$4="_wrap_184ej_8",item="_item_184ej_14",label$1="_label_184ej_18";var styles$b={title:title$4,wrap:wrap$4,item,label:label$1};const sliderClass={"active-color":"#FFB871","inactive-color":"#EAEAEA","button-size":"14"};var Equalizer=defineComponent({name:"ColexiuEqualizer",setup(){const F=ref(10);return()=>createVNode("div",{class:"containerPopups"},[createVNode("div",{class:styles$b.title},[createTextVNode("\u5747\u8861\u5668")]),createVNode("div",{class:styles$b.wrap},[createVNode("div",{class:styles$b.item},[createVNode("span",{class:styles$b.label},[createTextVNode("\u8282\u62CD\u5668")]),createVNode(Slider,mergeProps({modelValue:F.value,"onUpdate:modelValue":R=>F.value=R},sliderClass),null)]),createVNode(Divider,null,null),createVNode("div",{class:styles$b.item},[createVNode("span",{class:styles$b.label},[createTextVNode("\u4F34\u594F")]),createVNode(Slider,mergeProps({modelValue:F.value,"onUpdate:modelValue":R=>F.value=R},sliderClass),null)]),createVNode(Divider,null,null),createVNode("div",{class:styles$b.item},[createVNode("span",{class:styles$b.label},[createTextVNode("\u957F\u7B1B")]),createVNode(Slider,mergeProps({modelValue:F.value,"onUpdate:modelValue":R=>F.value=R},sliderClass),null)]),createVNode(Divider,null,null),createVNode("div",{class:styles$b.item},[createVNode("span",{class:styles$b.label},[createTextVNode("\u8428\u514B\u65AF")]),createVNode(Slider,mergeProps({modelValue:F.value,"onUpdate:modelValue":R=>F.value=R},sliderClass),null)]),createVNode(Divider,null,null),createVNode("div",{class:styles$b.item},[createVNode("span",{class:styles$b.label},[createTextVNode("\u5355\u7C27\u7BA1")]),createVNode(Slider,mergeProps({modelValue:F.value,"onUpdate:modelValue":R=>F.value=R},sliderClass),null)]),createVNode(Divider,null,null),createVNode("div",{class:styles$b.item},[createVNode("span",{class:styles$b.label},[createTextVNode("\u957F\u53F7")]),createVNode(Slider,mergeProps({modelValue:F.value,"onUpdate:modelValue":R=>F.value=R},sliderClass),null)])])])}});const container$3="_container_la5im_1",title$3="_title_la5im_5",practiseBtn="_practiseBtn_la5im_12",wrap$3="_wrap_la5im_21";var styles$a={container:container$3,title:title$3,practiseBtn,wrap:wrap$3};function _isSlot$2(F){return typeof F=="function"||Object.prototype.toString.call(F)==="[object Object]"&&!isVNode(F)}var Part=defineComponent({name:"ColexiuPart",setup(){const F=useOriginSearch(),R=Number(F["part-index"])||0,B=ref(state$2.partListNames[R]),D=()=>{const G=state$2.partListNames.indexOf(B.value);B.value=state$2.partListNames[G];const U=queryString.stringify({...F,"part-index":G});location.search=U};return()=>{let G;return createVNode("div",{class:["containerPopups",styles$a.container]},[createVNode("div",{class:styles$a.title},[createTextVNode("\u58F0\u90E8\u9009\u62E9")]),createVNode("div",{class:styles$a.wrap},[createVNode(RadioGroup,{modelValue:B.value,"onUpdate:modelValue":U=>B.value=U},_isSlot$2(G=state$2.partListNames.map(U=>createVNode(Radio,{name:U},_isSlot$2(U)?U:{default:()=>[U]})))?G:{default:()=>[G]})]),createVNode("div",{style:{display:"flex",justifyContent:"center"}},[createVNode(Button,{class:styles$a.practiseBtn,onClick:D},null)])])}}});const partPopup=ref(null),equalizerPopup=ref(null);var FloatWraper=defineComponent({name:"ColuxiuFloatWraper",setup(){return()=>createVNode(Fragment,null,[createVNode(Popups,{ref:partPopup,style:{borderRadius:"8px"}},{default:()=>[createVNode(Part,null,null)]}),createVNode(Popups,{ref:equalizerPopup,style:{borderRadius:"8px"}},{default:()=>[createVNode(Equalizer,null,null)]})])}}),iconTitle$1="/orchestra-music-score/assets/title.bea4c09d.svg",iconCancel="/orchestra-music-score/assets/cancel.4bba8aaa.svg",iconConfirm="/orchestra-music-score/assets/confirm.0f8024da.svg";const permissionPopup=reactive({active:"earphone",show:!1});var InfoIcon="/orchestra-music-score/assets/info.df4a2cca.svg",iconTv="data:image/png;base64,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",iconYijian="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAAXNSR0IArs4c6QAABThJREFUWEftmH9oVWUYx7/PuXebGjYUocQgWGE/IIIiKTKoRLNs4syZMjV/NOdm2qSa2gRXlOZCJKekA39srqWbWc4fKzJEDf9RsSQLpDL6o8CYmT+7u+d9vvGee852tXT3znNZgoeN97znfe97P+d7nvt9nvcIbrBDbjBe3ATO9BO7qfCVCnNf5UwY8zjIwzJsWc31PoGMKsw9FWVUrAYJgBBiGyKR6TJ82V/dBc8YMD8vf4h0DoLMSQBbZtpf+c8Q86KMWnW4O9AZAWbTzFz07nVEybsC0EBlEBAwJsAbUvBh2iGSEWD9tHQriRdsGNg/DzZQOemaQ31OJqxvTUfp0IHdpuLJAOr9mAW9MKDP64MHNyEyKlq0cXePAnPlszk6YOASUMsJOh0KJ6sNLyx+cMR5RKZsutAjwFZIsVL6BzdNGm6UdSAHJlS2UWGdglbvS1HKEHl5y3fpwNq5oYUEv1rYCPA4nn5vSQDOtRMHmIhZR3J0chw7YEmkZFtturChAXNPxUtUbPTiVmQXTHyKjFxxOgAyawpmqepyEH1EsDlatn1id2BDAebOeXmIOkdJ3tphYcAvEnHGyTPLj3SESE3+vS713Sh0msxtPdsjwGwqjLDPoAMAH+sA8+3LAf9Wg/LImJq13YX7r89dVwxzx9zFSlb9y2P9rJZQHPVOllsq+bUXwwDvNjBb5jyqqgdARpNTbweUXz9Y33BEPpBxa8t7DJjbp/elm/0NwbxOWD+j+bJ2GhxOOVnRB2TsmlM9Bmy2Fm+AcmoCqjOLBV6b5MaIODJGJmzYHgZst1yCm2cUGmpTIOTlaTfIGn45KbI+Mql+RliwaQOzoegOlaxvSe2fZGGJAidIvX4rgpOOm/OgzFh/rseAtX5yi5L5V8IlgPzKzCYPwDiCp2Ta5gNhwqatsKkrqqbqayQd8fg6a4TLFAfezypurggbNm1gT8d1hUNVpVbJ+/xY6Kx1rZWJHIvGLg6Rua2x/wWwB91UmO22mTcFXECgcwsExqLgEClrOWbn7a1itHceRriKfqqQuELaDZy4C3EVEjNwXBeiRNvJC9hRVSVuVzeZcuLgnvmzoTwrI6o3BYtydcF9BqaWyqGeHwvmZ83ZWR2MH2nglrhifNwArgHabauA7QfX4gq4LhAn6koWytTwgHeV76fqEyD2x2HKckavPu6pTYiufL5EqcOjZ3YXShU0+NJDH7HNddE/APQgk4A7oBPXf5pVKXeHAswvXr+F58+dJpHt17VxUFc4sfa3r7VjONTAd9pdVFp1PWgf1oO2qnb2jeuivHSRrAoHuHHqSEO0JqyLgHp1b5MDLZfJDb9f60sO1nGQa5AbM6Aq6Mahl+y5AS+6oCNe/3TJAknpXUVKMWw2Fi1TNRXe9oY4AeorWcXNX3alRibGUwJ214xtATmM5NLogKxqGd/cngmYVNZMCdjU5M9rV3zS+9Udv6ayaCbnpAT89Tr27dML41WR69rkZq1IISZwCb9vQV0DsTZh56kCVL9vEhte418Pxm2fQJuJoX52lZzv6mZTAj76MfcaxZMWQAkYv73qeRfjyZ+3a5pEGfJZWaUUhAPcyDNGkWsXDqC7gr3aXAtrjSYY99rE/4nZi+SeUICPNLKciqWG6NWh8tXgfcU8iCvOr/F02kiUli2S5lCAg7qg78PIxm9Ae79EBRy7kGgv3QbiR+DO2+2bFCDvT9Du7wcPBrEP+OP+xLzC78G3ACxenOiL2PBN70gphtNbMrOzbwJnVt8QXwZmGjRY/4YLiX8Az9RfWpuTLy8AAAAASUVORK5CYII=";const setting="_setting_1wc4q_1",sliderWrap="_sliderWrap_1wc4q_44",slider$1="_slider_1wc4q_44",noticebar="_noticebar_1wc4q_67",groupBox="_groupBox_1wc4q_73",btnsbar="_btnsbar_1wc4q_92",btn="_btn_1wc4q_92",iconBtn="_iconBtn_1wc4q_114",radioGroup="_radioGroup_1wc4q_119";var styles$9={setting,sliderWrap,slider:slider$1,noticebar,groupBox,btnsbar,btn,iconBtn,radioGroup};const box$1="_box_fzggf_1",bg$1="_bg_fzggf_9",button$2="_button_fzggf_16",iconSound$2="_iconSound_fzggf_33",skepBtn$1="_skepBtn_fzggf_39",wrap$2="_wrap_fzggf_53",wrapContainer="_wrapContainer_fzggf_59",top="_top_fzggf_65",title$2="_title_fzggf_72",num="_num_fzggf_82",txt="_txt_fzggf_86",iconLeft="_iconLeft_fzggf_89",iconTop="_iconTop_fzggf_93",evaluatWrap="_evaluatWrap_fzggf_98",evaluatTitle="_evaluatTitle_fzggf_129",evaluatIcon="_evaluatIcon_fzggf_134",fraction="_fraction_fzggf_140",line="_line_fzggf_147",tips="_tips_fzggf_152",btns$1="_btns_fzggf_165",btnIcon="_btnIcon_fzggf_178",rigthBtns="_rigthBtns_fzggf_183",confirm="_confirm_fzggf_193",iconTitle="_iconTitle_fzggf_199",footer="_footer_fzggf_204",sbtn="_sbtn_fzggf_233";var styles$8={box:box$1,bg:bg$1,button:button$2,iconSound:iconSound$2,skepBtn:skepBtn$1,wrap:wrap$2,wrapContainer,top,title:title$2,num,txt,iconLeft,iconTop,evaluatWrap,evaluatTitle,evaluatIcon,fraction,line,tips,btns:btns$1,btnIcon,rigthBtns,confirm,iconTitle,footer,sbtn};const tabs="_tabs_e40bs_1";var styles$7={tabs};const show=ref(!1);var HelperPopup=defineComponent({name:"HelperPopup",setup(){return()=>createVNode(Popup,{show:show.value,position:"right",round:!0,teleport:"body",onClickOverlay:()=>show.value=!1,style:{height:"100vh",width:"40vw",overflow:"hidden"}},{default:()=>[createVNode(Tabs,{class:styles$7.tabs},{default:()=>[createVNode(Tab,{title:"\u6295\u5C4F"},{default:()=>[createVNode("iframe",{src:location.origin+"/orchestra-student/#/guide"},null)]}),createVNode(Tab,{title:"\u5E2E\u52A9"},{default:()=>[createVNode("iframe",{src:location.origin+"/orchestra-student/#/help-center?source=music"},null)]})]})]})}}),raf$1={exports:{}},performanceNow={exports:{}};(function(){var F,R,B,D,G,U;typeof performance!="undefined"&&performance!==null&&performance.now?performanceNow.exports=function(){return performance.now()}:typeof process!="undefined"&&process!==null&&process.hrtime?(performanceNow.exports=function(){return(F()-G)/1e6},R=process.hrtime,F=function(){var W;return W=R(),W[0]*1e9+W[1]},D=F(),U=process.uptime()*1e9,G=D-U):Date.now?(performanceNow.exports=function(){return Date.now()-B},B=Date.now()):(performanceNow.exports=function(){return new Date().getTime()-B},B=new Date().getTime())}).call(commonjsGlobal$2);var now=performanceNow.exports,root=typeof window=="undefined"?commonjsGlobal$2:window,vendors=["moz","webkit"],suffix="AnimationFrame",raf=root["request"+suffix],caf=root["cancel"+suffix]||root["cancelRequest"+suffix];for(var i$1=0;!raf&&i$13&&(this.alpha=q[3]),this.ok=!0}}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.alpha=this.alpha<0?0:this.alpha>1||isNaN(this.alpha)?1:this.alpha,this.toRGB=function(){return"rgb("+this.r+", "+this.g+", "+this.b+")"},this.toRGBA=function(){return"rgba("+this.r+", "+this.g+", "+this.b+", "+this.alpha+")"},this.toHex=function(){var Y=this.r.toString(16),Q=this.g.toString(16),Z=this.b.toString(16);return Y.length==1&&(Y="0"+Y),Q.length==1&&(Q="0"+Q),Z.length==1&&(Z="0"+Z),"#"+Y+Q+Z},this.getHelpXML=function(){for(var Y=new Array,Q=0;Q "+se.toRGB()+" -> "+se.toHex());ne.appendChild(re),ne.appendChild(ae),te.appendChild(ne)}catch{}return te}};/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */var t=function(F,R){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(B,D){B.__proto__=D}||function(B,D){for(var G in D)Object.prototype.hasOwnProperty.call(D,G)&&(B[G]=D[G])})(F,R)};function r(F,R){if(typeof R!="function"&&R!==null)throw new TypeError("Class extends value "+String(R)+" is not a constructor or null");function B(){this.constructor=F}t(F,R),F.prototype=R===null?Object.create(R):(B.prototype=R.prototype,new B)}function e(F){var R="";Array.isArray(F)||(F=[F]);for(var B=0;BF.phi1&&(F.phi2-=2*n),F.sweepFlag===1&&F.phi2D)return[];if(D===0)return[[F*B/(F*F+R*R),R*B/(F*F+R*R)]];var G=Math.sqrt(D);return[[(F*B+R*G)/(F*F+R*R),(R*B-F*G)/(F*F+R*R)],[(F*B-R*G)/(F*F+R*R),(R*B+F*G)/(F*F+R*R)]]}var u,h$2=Math.PI/180;function c$1(F,R,B){return(1-B)*F+B*R}function y(F,R,B,D){return F+Math.cos(D/180*n)*R+Math.sin(D/180*n)*B}function p(F,R,B,D){var G=1e-6,U=R-F,W=B-R,q=3*U+3*(D-B)-6*W,Y=6*(W-U),Q=3*U;return Math.abs(q)fe&&(te.sweepFlag=+!te.sweepFlag),te})}function W(){return function(q){var Y={};for(var Q in q)Y[Q]=q[Q];return Y}}F.ROUND=function(q){function Y(Q){return Math.round(Q*q)/q}return q===void 0&&(q=1e13),a(q),function(Q){return Q.x1!==void 0&&(Q.x1=Y(Q.x1)),Q.y1!==void 0&&(Q.y1=Y(Q.y1)),Q.x2!==void 0&&(Q.x2=Y(Q.x2)),Q.y2!==void 0&&(Q.y2=Y(Q.y2)),Q.x!==void 0&&(Q.x=Y(Q.x)),Q.y!==void 0&&(Q.y=Y(Q.y)),Q.rX!==void 0&&(Q.rX=Y(Q.rX)),Q.rY!==void 0&&(Q.rY=Y(Q.rY)),Q}},F.TO_ABS=R,F.TO_REL=function(){return G(function(q,Y,Q){return q.relative||(q.x1!==void 0&&(q.x1-=Y),q.y1!==void 0&&(q.y1-=Q),q.x2!==void 0&&(q.x2-=Y),q.y2!==void 0&&(q.y2-=Q),q.x!==void 0&&(q.x-=Y),q.y!==void 0&&(q.y-=Q),q.relative=!0),q})},F.NORMALIZE_HVZ=function(q,Y,Q){return q===void 0&&(q=!0),Y===void 0&&(Y=!0),Q===void 0&&(Q=!0),G(function(Z,K,ie,te,ne){if(isNaN(te)&&!(Z.type&_.MOVE_TO))throw new Error("path must start with moveto");return Y&&Z.type&_.HORIZ_LINE_TO&&(Z.type=_.LINE_TO,Z.y=Z.relative?0:ie),Q&&Z.type&_.VERT_LINE_TO&&(Z.type=_.LINE_TO,Z.x=Z.relative?0:K),q&&Z.type&_.CLOSE_PATH&&(Z.type=_.LINE_TO,Z.x=Z.relative?te-K:te,Z.y=Z.relative?ne-ie:ne),Z.type&_.ARC&&(Z.rX===0||Z.rY===0)&&(Z.type=_.LINE_TO,delete Z.rX,delete Z.rY,delete Z.xRot,delete Z.lArcFlag,delete Z.sweepFlag),Z})},F.NORMALIZE_ST=B,F.QT_TO_C=D,F.INFO=G,F.SANITIZE=function(q){q===void 0&&(q=0),a(q);var Y=NaN,Q=NaN,Z=NaN,K=NaN;return G(function(ie,te,ne,se,re){var ae=Math.abs,le=!1,ce=0,he=0;if(ie.type&_.SMOOTH_CURVE_TO&&(ce=isNaN(Y)?0:te-Y,he=isNaN(Q)?0:ne-Q),ie.type&(_.CURVE_TO|_.SMOOTH_CURVE_TO)?(Y=ie.relative?te+ie.x2:ie.x2,Q=ie.relative?ne+ie.y2:ie.y2):(Y=NaN,Q=NaN),ie.type&_.SMOOTH_QUAD_TO?(Z=isNaN(Z)?te:2*te-Z,K=isNaN(K)?ne:2*ne-K):ie.type&_.QUAD_TO?(Z=ie.relative?te+ie.x1:ie.x1,K=ie.relative?ne+ie.y1:ie.y2):(Z=NaN,K=NaN),ie.type&_.LINE_COMMANDS||ie.type&_.ARC&&(ie.rX===0||ie.rY===0||!ie.lArcFlag)||ie.type&_.CURVE_TO||ie.type&_.SMOOTH_CURVE_TO||ie.type&_.QUAD_TO||ie.type&_.SMOOTH_QUAD_TO){var pe=ie.x===void 0?0:ie.relative?ie.x:ie.x-te,me=ie.y===void 0?0:ie.relative?ie.y:ie.y-ne;ce=isNaN(Z)?ie.x1===void 0?ce:ie.relative?ie.x:ie.x1-te:Z-te,he=isNaN(K)?ie.y1===void 0?he:ie.relative?ie.y:ie.y1-ne:K-ne;var fe=ie.x2===void 0?0:ie.relative?ie.x:ie.x2-te,ge=ie.y2===void 0?0:ie.relative?ie.y:ie.y2-ne;ae(pe)<=q&&ae(me)<=q&&ae(ce)<=q&&ae(he)<=q&&ae(fe)<=q&&ae(ge)<=q&&(le=!0)}return ie.type&_.CLOSE_PATH&&ae(te-se)<=q&&ae(ne-re)<=q&&(le=!0),le?[]:ie})},F.MATRIX=U,F.ROTATE=function(q,Y,Q){Y===void 0&&(Y=0),Q===void 0&&(Q=0),a(q,Y,Q);var Z=Math.sin(q),K=Math.cos(q);return U(K,Z,-Z,K,Y-Y*K+Q*Z,Q-Y*Z-Q*K)},F.TRANSLATE=function(q,Y){return Y===void 0&&(Y=0),a(q,Y),U(1,0,0,1,q,Y)},F.SCALE=function(q,Y){return Y===void 0&&(Y=q),a(q,Y),U(q,0,0,Y,0,0)},F.SKEW_X=function(q){return a(q),U(1,0,Math.atan(q),1,0,0)},F.SKEW_Y=function(q){return a(q),U(1,Math.atan(q),0,1,0,0)},F.X_AXIS_SYMMETRY=function(q){return q===void 0&&(q=0),a(q),U(-1,0,0,1,q,0)},F.Y_AXIS_SYMMETRY=function(q){return q===void 0&&(q=0),a(q),U(1,0,0,-1,0,q)},F.A_TO_C=function(){return G(function(q,Y,Q){return _.ARC===q.type?function(Z,K,ie){var te,ne,se,re;Z.cX||o(Z,K,ie);for(var ae=Math.min(Z.phi1,Z.phi2),le=Math.max(Z.phi1,Z.phi2)-ae,ce=Math.ceil(le/90),he=new Array(ce),pe=K,me=ie,fe=0;feK.maxX&&(K.maxX=Ne),NeK.maxY&&(K.maxY=Ne),NeLe&&re(m$1(te,se.x1,se.x2,se.x,Le));for(var he=0,pe=p(ne,se.y1,se.y2,se.y);heLe&&ae(m$1(ne,se.y1,se.y2,se.y,Le))}if(se.type&_.ARC){re(se.x),ae(se.y),o(se,te,ne);for(var me=se.xRot/180*Math.PI,fe=Math.cos(me)*se.rX,ge=Math.sin(me)*se.rX,Se=-Math.sin(me)*se.rY,Ee=Math.cos(me)*se.rY,ve=se.phi1se.phi2?[se.phi2+360,se.phi1+360]:[se.phi2,se.phi1],xe=ve[0],Me=ve[1],ye=function(Ne){var Ie=Ne[0],_e=Ne[1],Ve=180*Math.atan2(_e,Ie)/Math.PI;return Vexe&&Lexe&&LeZ)throw new SyntaxError('Expected positive number, got "'+Z+'" at index "'+W+'"')}else if((this.curArgs.length===3||this.curArgs.length===4)&&this.curNumber!=="0"&&this.curNumber!=="1")throw new SyntaxError('Expected a flag, got "'+this.curNumber+'" at index "'+W+'"')}this.curArgs.push(Z),this.curArgs.length===N[this.curCommandType]&&(_.HORIZ_LINE_TO===this.curCommandType?U({type:_.HORIZ_LINE_TO,relative:this.curCommandRelative,x:Z}):_.VERT_LINE_TO===this.curCommandType?U({type:_.VERT_LINE_TO,relative:this.curCommandRelative,y:Z}):this.curCommandType===_.MOVE_TO||this.curCommandType===_.LINE_TO||this.curCommandType===_.SMOOTH_QUAD_TO?(U({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),_.MOVE_TO===this.curCommandType&&(this.curCommandType=_.LINE_TO)):this.curCommandType===_.CURVE_TO?U({type:_.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===_.SMOOTH_CURVE_TO?U({type:_.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.QUAD_TO?U({type:_.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.ARC&&U({type:_.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber="",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T(q))if(q===","&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if(q!=="+"&&q!=="-"&&q!==".")if(Q)this.curNumber=q,this.curNumberHasDecimal=!1;else{if(this.curArgs.length!==0)throw new SyntaxError("Unterminated command at index "+W+".");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character "'+q+'" at index '+W+". Command cannot follow comma");if(this.canParseCommandOrComma=!1,q!=="z"&&q!=="Z")if(q==="h"||q==="H")this.curCommandType=_.HORIZ_LINE_TO,this.curCommandRelative=q==="h";else if(q==="v"||q==="V")this.curCommandType=_.VERT_LINE_TO,this.curCommandRelative=q==="v";else if(q==="m"||q==="M")this.curCommandType=_.MOVE_TO,this.curCommandRelative=q==="m";else if(q==="l"||q==="L")this.curCommandType=_.LINE_TO,this.curCommandRelative=q==="l";else if(q==="c"||q==="C")this.curCommandType=_.CURVE_TO,this.curCommandRelative=q==="c";else if(q==="s"||q==="S")this.curCommandType=_.SMOOTH_CURVE_TO,this.curCommandRelative=q==="s";else if(q==="q"||q==="Q")this.curCommandType=_.QUAD_TO,this.curCommandRelative=q==="q";else if(q==="t"||q==="T")this.curCommandType=_.SMOOTH_QUAD_TO,this.curCommandRelative=q==="t";else{if(q!=="a"&&q!=="A")throw new SyntaxError('Unexpected character "'+q+'" at index '+W+".");this.curCommandType=_.ARC,this.curCommandRelative=q==="a"}else D.push({type:_.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=q,this.curNumberHasDecimal=q==="."}else this.curNumber+=q,this.curNumberHasDecimal=!0;else this.curNumber+=q;else this.curNumber+=q,this.curNumberHasExp=!0;else this.curNumber+=q,this.curNumberHasExpDigits=this.curNumberHasExp}return D},R.prototype.transform=function(B){return Object.create(this,{parse:{value:function(D,G){G===void 0&&(G=[]);for(var U=0,W=Object.getPrototypeOf(this).parse.call(this,D);U>pe;if(W[ce+3]=yt,yt!==0){var Fe=255/yt;W[ce]=(Ne*he>>pe)*Fe,W[ce+1]=(Ie*he>>pe)*Fe,W[ce+2]=(_e*he>>pe)*Fe}else W[ce]=W[ce+1]=W[ce+2]=0;Ne-=Re,Ie-=Pe,_e-=Ae,Ve-=Le,Re-=re.r,Pe-=re.g,Ae-=re.b,Le-=re.a;var Te=ht+U+1;Te=le+(Te>pe,dt>0?(dt=255/dt,W[fi]=(Tt*he>>pe)*dt,W[fi+1]=(Rt*he>>pe)*dt,W[fi+2]=(Ht*he>>pe)*dt):W[fi]=W[fi+1]=W[fi+2]=0,Tt-=pt,Rt-=vt,Ht-=wt,mi-=gt,pt-=re.r,vt-=re.g,wt-=re.b,gt-=re.a,fi=it+((fi=Yi+Z)0&&arguments[0]!==void 0?arguments[0]:{};const R={window:null,ignoreAnimation:!0,ignoreMouse:!0,DOMParser:F,createCanvas(B,D){return new OffscreenCanvas(B,D)},async createImage(B){const G=await(await fetch(B)).blob();return await createImageBitmap(G)}};return(typeof globalThis.DOMParser!="undefined"||typeof F=="undefined")&&Reflect.deleteProperty(R,"DOMParser"),R}function node(F){let{DOMParser:R,canvas:B,fetch:D}=F;return{window:null,ignoreAnimation:!0,ignoreMouse:!0,DOMParser:R,fetch:D,createCanvas:B.createCanvas,createImage:B.loadImage}}var index=Object.freeze({__proto__:null,offscreen,node});function compressSpaces(F){return F.replace(/(?!\u3000)\s+/gm," ")}function trimLeft(F){return F.replace(/^[\n \t]+/,"")}function trimRight(F){return F.replace(/[\n \t]+$/,"")}function toNumbers(F){const R=F.match(/-?(\d+(?:\.\d*(?:[eE][+-]?\d+)?)?|\.\d+)(?=\D|$)/gm);return R?R.map(parseFloat):[]}function toMatrixValue(F){const R=toNumbers(F);return[R[0]||0,R[1]||0,R[2]||0,R[3]||0,R[4]||0,R[5]||0]}const allUppercase=/^[A-Z-]+$/;function normalizeAttributeName(F){return allUppercase.test(F)?F.toLowerCase():F}function parseExternalUrl(F){const R=/url\(('([^']+)'|"([^"]+)"|([^'")]+))\)/.exec(F);return R&&(R[2]||R[3]||R[4])||""}function normalizeColor(F){if(!F.startsWith("rgb"))return F;let R=3;return F.replace(/\d+(\.\d+)?/g,(D,G)=>R--&&G?String(Math.round(parseFloat(D))):D)}const attributeRegex=/(\[[^\]]+\])/g,idRegex=/(#[^\s+>~.[:]+)/g,classRegex=/(\.[^\s+>~.[:]+)/g,pseudoElementRegex=/(::[^\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi,pseudoClassWithBracketsRegex=/(:[\w-]+\([^)]*\))/gi,pseudoClassRegex=/(:[^\s+>~.[:]+)/g,elementRegex=/([^\s+>~.[:]+)/g;function findSelectorMatch(F,R){const B=R.exec(F);return B?[F.replace(R," "),B.length]:[F,0]}function getSelectorSpecificity(F){const R=[0,0,0];let B=F.replace(/:not\(([^)]*)\)/g," $1 ").replace(/{[\s\S]*/gm," "),D=0;return[B,D]=findSelectorMatch(B,attributeRegex),R[1]+=D,[B,D]=findSelectorMatch(B,idRegex),R[0]+=D,[B,D]=findSelectorMatch(B,classRegex),R[1]+=D,[B,D]=findSelectorMatch(B,pseudoElementRegex),R[2]+=D,[B,D]=findSelectorMatch(B,pseudoClassWithBracketsRegex),R[1]+=D,[B,D]=findSelectorMatch(B,pseudoClassRegex),R[1]+=D,B=B.replace(/[*\s+>~]/g," ").replace(/[#.]/g," "),[B,D]=findSelectorMatch(B,elementRegex),R[2]+=D,R.join("")}const PSEUDO_ZERO=1e-8;function vectorMagnitude(F){return Math.sqrt(Math.pow(F[0],2)+Math.pow(F[1],2))}function vectorsRatio(F,R){return(F[0]*R[0]+F[1]*R[1])/(vectorMagnitude(F)*vectorMagnitude(R))}function vectorsAngle(F,R){return(F[0]*R[1]0&&arguments[0]!==void 0?arguments[0]:" ";const{document:B,name:D}=this;return compressSpaces(this.getString()).trim().split(R).map(G=>new Property(B,D,G))}hasValue(R){const B=this.value;return B!==null&&B!==""&&(R||B!==0)&&typeof B!="undefined"}isString(R){const{value:B}=this,D=typeof B=="string";return!D||!R?D:R.test(B)}isUrlDefinition(){return this.isString(/^url\(/)}isPixels(){if(!this.hasValue())return!1;const R=this.getString();switch(!0){case R.endsWith("px"):case/^[0-9]+$/.test(R):return!0;default:return!1}}setValue(R){return this.value=R,this}getValue(R){return typeof R=="undefined"||this.hasValue()?this.value:R}getNumber(R){if(!this.hasValue())return typeof R=="undefined"?0:parseFloat(R);const{value:B}=this;let D=parseFloat(B);return this.isString(/%$/)&&(D/=100),D}getString(R){return typeof R=="undefined"||this.hasValue()?typeof this.value=="undefined"?"":String(this.value):String(R)}getColor(R){let B=this.getString(R);return this.isNormalizedColor||(this.isNormalizedColor=!0,B=normalizeColor(B),this.value=B),B}getDpi(){return 96}getRem(){return this.document.rootEmSize}getEm(){return this.document.emSize}getUnits(){return this.getString().replace(/[0-9.-]/g,"")}getPixels(R){let B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!this.hasValue())return 0;const[D,G]=typeof R=="boolean"?[void 0,R]:[R],{viewPort:U}=this.document.screen;switch(!0){case this.isString(/vmin$/):return this.getNumber()/100*Math.min(U.computeSize("x"),U.computeSize("y"));case this.isString(/vmax$/):return this.getNumber()/100*Math.max(U.computeSize("x"),U.computeSize("y"));case this.isString(/vw$/):return this.getNumber()/100*U.computeSize("x");case this.isString(/vh$/):return this.getNumber()/100*U.computeSize("y");case this.isString(/rem$/):return this.getNumber()*this.getRem();case this.isString(/em$/):return this.getNumber()*this.getEm();case this.isString(/ex$/):return this.getNumber()*this.getEm()/2;case this.isString(/px$/):return this.getNumber();case this.isString(/pt$/):return this.getNumber()*this.getDpi()*(1/72);case this.isString(/pc$/):return this.getNumber()*15;case this.isString(/cm$/):return this.getNumber()*this.getDpi()/2.54;case this.isString(/mm$/):return this.getNumber()*this.getDpi()/25.4;case this.isString(/in$/):return this.getNumber()*this.getDpi();case(this.isString(/%$/)&&G):return this.getNumber()*this.getEm();case this.isString(/%$/):return this.getNumber()*U.computeSize(D);default:{const W=this.getNumber();return B&&W<1?W*U.computeSize(D):W}}}getMilliseconds(){return this.hasValue()?this.isString(/ms$/)?this.getNumber():this.getNumber()*1e3:0}getRadians(){if(!this.hasValue())return 0;switch(!0){case this.isString(/deg$/):return this.getNumber()*(Math.PI/180);case this.isString(/grad$/):return this.getNumber()*(Math.PI/200);case this.isString(/rad$/):return this.getNumber();default:return this.getNumber()*(Math.PI/180)}}getDefinition(){const R=this.getString(),B=/#([^)'"]+)/.exec(R),D=(B==null?void 0:B[1])||R;return this.document.definitions[D]}getFillStyleDefinition(R,B){let D=this.getDefinition();if(!D)return null;if(typeof D.createGradient=="function"&&"getBoundingBox"in R)return D.createGradient(this.document.ctx,R,B);if(typeof D.createPattern=="function"){if(D.getHrefAttribute().hasValue()){const G=D.getAttribute("patternTransform");D=D.getHrefAttribute().getDefinition(),D&&G.hasValue()&&D.getAttribute("patternTransform",!0).setValue(G.value)}if(D)return D.createPattern(this.document.ctx,R,B)}return null}getTextBaseline(){if(!this.hasValue())return null;const R=this.getString();return Property.textBaselineMapping[R]||null}addOpacity(R){let B=this.getColor();const D=B.length;let G=0;for(let U=0;U1&&arguments[1]!==void 0?arguments[1]:0;const[D=B,G=B]=toNumbers(R);return new Point(D,G)}static parseScale(R){let B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;const[D=B,G=D]=toNumbers(R);return new Point(D,G)}static parsePath(R){const B=toNumbers(R),D=B.length,G=[];for(let U=0;U0}runEvents(){if(!this.working)return;const{screen:R,events:B,eventElements:D}=this,{style:G}=R.ctx.canvas;let U;G&&(G.cursor=""),B.forEach((W,q)=>{let{run:Y}=W;for(U=D[q];U;)Y(U),U=U.parent}),this.events=[],this.eventElements=[]}checkPath(R,B){if(!this.working||!B)return;const{events:D,eventElements:G}=this;D.forEach((U,W)=>{let{x:q,y:Y}=U;!G[W]&&B.isPointInPath&&B.isPointInPath(q,Y)&&(G[W]=R)})}checkBoundingBox(R,B){if(!this.working||!B)return;const{events:D,eventElements:G}=this;D.forEach((U,W)=>{let{x:q,y:Y}=U;!G[W]&&B.isPointInBox(q,Y)&&(G[W]=R)})}mapXY(R,B){const{window:D,ctx:G}=this.screen,U=new Point(R,B);let W=G.canvas;for(;W;)U.x-=W.offsetLeft,U.y-=W.offsetTop,W=W.offsetParent;return D!=null&&D.scrollX&&(U.x+=D.scrollX),D!=null&&D.scrollY&&(U.y+=D.scrollY),U}onClick(R){const{x:B,y:D}=this.mapXY(R.clientX,R.clientY);this.events.push({type:"onclick",x:B,y:D,run(G){G.onClick&&G.onClick()}})}onMouseMove(R){const{x:B,y:D}=this.mapXY(R.clientX,R.clientY);this.events.push({type:"onmousemove",x:B,y:D,run(G){G.onMouseMove&&G.onMouseMove()}})}constructor(R){this.screen=R,this.working=!1,this.events=[],this.eventElements=[],this.onClick=this.onClick.bind(this),this.onMouseMove=this.onMouseMove.bind(this)}}const defaultWindow=typeof window!="undefined"?window:null,defaultFetch$1=typeof fetch!="undefined"?fetch.bind(void 0):void 0;class Screen{wait(R){this.waits.push(R)}ready(){return this.readyPromise?this.readyPromise:Promise.resolve()}isReady(){if(this.isReadyLock)return!0;const R=this.waits.every(B=>B());return R&&(this.waits=[],this.resolveReady&&this.resolveReady()),this.isReadyLock=R,R}setDefaults(R){R.strokeStyle="rgba(0,0,0,0)",R.lineCap="butt",R.lineJoin="miter",R.miterLimit=4}setViewBox(R){let{document:B,ctx:D,aspectRatio:G,width:U,desiredWidth:W,height:q,desiredHeight:Y,minX:Q=0,minY:Z=0,refX:K,refY:ie,clip:te=!1,clipX:ne=0,clipY:se=0}=R;const re=compressSpaces(G).replace(/^defer\s/,""),[ae,le]=re.split(" "),ce=ae||"xMidYMid",he=le||"meet",pe=U/W,me=q/Y,fe=Math.min(pe,me),ge=Math.max(pe,me);let Se=W,Ee=Y;he==="meet"&&(Se*=fe,Ee*=fe),he==="slice"&&(Se*=ge,Ee*=ge);const ve=new Property(B,"refX",K),xe=new Property(B,"refY",ie),Me=ve.hasValue()&&xe.hasValue();if(Me&&D.translate(-fe*ve.getPixels("x"),-fe*xe.getPixels("y")),te){const ye=fe*ne,we=fe*se;D.beginPath(),D.moveTo(ye,we),D.lineTo(U,we),D.lineTo(U,q),D.lineTo(ye,q),D.closePath(),D.clip()}if(!Me){const ye=he==="meet"&&fe===me,we=he==="slice"&&ge===me,Re=he==="meet"&&fe===pe,Pe=he==="slice"&&ge===pe;ce.startsWith("xMid")&&(ye||we)&&D.translate(U/2-Se/2,0),ce.endsWith("YMid")&&(Re||Pe)&&D.translate(0,q/2-Ee/2),ce.startsWith("xMax")&&(ye||we)&&D.translate(U-Se,0),ce.endsWith("YMax")&&(Re||Pe)&&D.translate(0,q-Ee)}switch(!0){case ce==="none":D.scale(pe,me);break;case he==="meet":D.scale(fe,fe);break;case he==="slice":D.scale(ge,ge);break}D.translate(-Q,-Z)}start(R){let{enableRedraw:B=!1,ignoreMouse:D=!1,ignoreAnimation:G=!1,ignoreDimensions:U=!1,ignoreClear:W=!1,forceRedraw:q,scaleWidth:Y,scaleHeight:Q,offsetX:Z,offsetY:K}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{mouse:ie}=this,te=1e3/Screen.FRAMERATE;if(this.frameDuration=te,this.readyPromise=new Promise(le=>{this.resolveReady=le}),this.isReady()&&this.render(R,U,W,Y,Q,Z,K),!B)return;let ne=Date.now(),se=ne,re=0;const ae=()=>{ne=Date.now(),re=ne-se,re>=te&&(se=ne-re%te,this.shouldUpdate(G,q)&&(this.render(R,U,W,Y,Q,Z,K),ie.runEvents())),this.intervalId=requestAnimationFrame$1(ae)};D||ie.start(),this.intervalId=requestAnimationFrame$1(ae)}stop(){this.intervalId&&(requestAnimationFrame$1.cancel(this.intervalId),this.intervalId=null),this.mouse.stop()}shouldUpdate(R,B){if(!R){const{frameDuration:D}=this;if(this.animations.reduce((U,W)=>W.update(D)||U,!1))return!0}return!!(typeof B=="function"&&B()||!this.isReadyLock&&this.isReady()||this.mouse.hasEvents())}render(R,B,D,G,U,W,q){const{viewPort:Y,ctx:Q,isFirstRender:Z}=this,K=Q.canvas;Y.clear(),K.width&&K.height&&Y.setCurrent(K.width,K.height);const ie=R.getStyle("width"),te=R.getStyle("height");!B&&(Z||typeof G!="number"&&typeof U!="number")&&(ie.hasValue()&&(K.width=ie.getPixels("x"),K.style&&(K.style.width="".concat(K.width,"px"))),te.hasValue()&&(K.height=te.getPixels("y"),K.style&&(K.style.height="".concat(K.height,"px"))));let ne=K.clientWidth||K.width,se=K.clientHeight||K.height;if(B&&ie.hasValue()&&te.hasValue()&&(ne=ie.getPixels("x"),se=te.getPixels("y")),Y.setCurrent(ne,se),typeof W=="number"&&R.getAttribute("x",!0).setValue(W),typeof q=="number"&&R.getAttribute("y",!0).setValue(q),typeof G=="number"||typeof U=="number"){const re=toNumbers(R.getAttribute("viewBox").getString());let ae=0,le=0;if(typeof G=="number"){const he=R.getStyle("width");he.hasValue()?ae=he.getPixels("x")/G:re[2]&&!isNaN(re[2])&&(ae=re[2]/G)}if(typeof U=="number"){const he=R.getStyle("height");he.hasValue()?le=he.getPixels("y")/U:re[3]&&!isNaN(re[3])&&(le=re[3]/U)}ae||(ae=le),le||(le=ae),R.getAttribute("width",!0).setValue(G),R.getAttribute("height",!0).setValue(U);const ce=R.getStyle("transform",!0,!0);ce.setValue("".concat(ce.getString()," scale(").concat(1/ae,", ").concat(1/le,")"))}D||Q.clearRect(0,0,ne,se),R.render(Q),Z&&(this.isFirstRender=!1)}constructor(R,{fetch:B=defaultFetch$1,window:D=defaultWindow}={}){if(this.ctx=R,this.viewPort=new ViewPort,this.mouse=new Mouse(this),this.animations=[],this.waits=[],this.frameDuration=0,this.isReadyLock=!1,this.isFirstRender=!0,this.intervalId=null,this.window=D,!B)throw new Error("Can't find 'fetch' in 'globalThis', please provide it via options");this.fetch=B}}Screen.defaultWindow=defaultWindow;Screen.defaultFetch=defaultFetch$1;Screen.FRAMERATE=30;Screen.MAX_VIRTUAL_PIXELS=3e4;const{defaultFetch}=Screen,DefaultDOMParser=typeof DOMParser!="undefined"?DOMParser:void 0;class Parser$1{async parse(R){return R.startsWith("<")?this.parseFromString(R):this.load(R)}parseFromString(R){const B=new this.DOMParser;try{return this.checkDocument(B.parseFromString(R,"image/svg+xml"))}catch{return this.checkDocument(B.parseFromString(R,"text/xml"))}}checkDocument(R){const B=R.getElementsByTagName("parsererror")[0];if(B)throw new Error(B.textContent||"Unknown parse error");return R}async load(R){const D=await(await this.fetch(R)).text();return this.parseFromString(D)}constructor({fetch:R=defaultFetch,DOMParser:B=DefaultDOMParser}={}){if(!R)throw new Error("Can't find 'fetch' in 'globalThis', please provide it via options");if(!B)throw new Error("Can't find 'DOMParser' in 'globalThis', please provide it via options");this.fetch=R,this.DOMParser=B}}class Translate{apply(R){const{x:B,y:D}=this.point;R.translate(B||0,D||0)}unapply(R){const{x:B,y:D}=this.point;R.translate(-1*B||0,-1*D||0)}applyToPoint(R){const{x:B,y:D}=this.point;R.applyTransform([1,0,0,1,B||0,D||0])}constructor(R,B){this.type="translate",this.point=Point.parse(B)}}class Rotate{apply(R){const{cx:B,cy:D,originX:G,originY:U,angle:W}=this,q=B+G.getPixels("x"),Y=D+U.getPixels("y");R.translate(q,Y),R.rotate(W.getRadians()),R.translate(-q,-Y)}unapply(R){const{cx:B,cy:D,originX:G,originY:U,angle:W}=this,q=B+G.getPixels("x"),Y=D+U.getPixels("y");R.translate(q,Y),R.rotate(-1*W.getRadians()),R.translate(-q,-Y)}applyToPoint(R){const{cx:B,cy:D,angle:G}=this,U=G.getRadians();R.applyTransform([1,0,0,1,B||0,D||0]),R.applyTransform([Math.cos(U),Math.sin(U),-Math.sin(U),Math.cos(U),0,0]),R.applyTransform([1,0,0,1,-B||0,-D||0])}constructor(R,B,D){this.type="rotate";const G=toNumbers(B);this.angle=new Property(R,"angle",G[0]),this.originX=D[0],this.originY=D[1],this.cx=G[1]||0,this.cy=G[2]||0}}class Scale{apply(R){const{scale:{x:B,y:D},originX:G,originY:U}=this,W=G.getPixels("x"),q=U.getPixels("y");R.translate(W,q),R.scale(B,D||B),R.translate(-W,-q)}unapply(R){const{scale:{x:B,y:D},originX:G,originY:U}=this,W=G.getPixels("x"),q=U.getPixels("y");R.translate(W,q),R.scale(1/B,1/D||B),R.translate(-W,-q)}applyToPoint(R){const{x:B,y:D}=this.scale;R.applyTransform([B||0,0,0,D||0,0,0])}constructor(R,B,D){this.type="scale";const G=Point.parseScale(B);(G.x===0||G.y===0)&&(G.x=PSEUDO_ZERO,G.y=PSEUDO_ZERO),this.scale=G,this.originX=D[0],this.originY=D[1]}}class Matrix{apply(R){const{originX:B,originY:D,matrix:G}=this,U=B.getPixels("x"),W=D.getPixels("y");R.translate(U,W),R.transform(G[0],G[1],G[2],G[3],G[4],G[5]),R.translate(-U,-W)}unapply(R){const{originX:B,originY:D,matrix:G}=this,U=G[0],W=G[2],q=G[4],Y=G[1],Q=G[3],Z=G[5],K=0,ie=0,te=1,ne=1/(U*(Q*te-Z*ie)-W*(Y*te-Z*K)+q*(Y*ie-Q*K)),se=B.getPixels("x"),re=D.getPixels("y");R.translate(se,re),R.transform(ne*(Q*te-Z*ie),ne*(Z*K-Y*te),ne*(q*ie-W*te),ne*(U*te-q*K),ne*(W*Z-q*Q),ne*(q*Y-U*Z)),R.translate(-se,-re)}applyToPoint(R){R.applyTransform(this.matrix)}constructor(R,B,D){this.type="matrix",this.matrix=toMatrixValue(B),this.originX=D[0],this.originY=D[1]}}class Skew extends Matrix{constructor(R,B,D){super(R,B,D),this.type="skew",this.angle=new Property(R,"angle",B)}}class SkewX extends Skew{constructor(R,B,D){super(R,B,D),this.type="skewX",this.matrix=[1,0,Math.tan(this.angle.getRadians()),1,0,0]}}class SkewY extends Skew{constructor(R,B,D){super(R,B,D),this.type="skewY",this.matrix=[1,Math.tan(this.angle.getRadians()),0,1,0,0]}}function parseTransforms(F){return compressSpaces(F).trim().replace(/\)([a-zA-Z])/g,") $1").replace(/\)(\s?,\s?)/g,") ").split(/\s(?=[a-z])/)}function parseTransform(F){const[R="",B=""]=F.split("(");return[R.trim(),B.trim().replace(")","")]}class Transform{static fromElement(R,B){const D=B.getStyle("transform",!1,!0);if(D.hasValue()){const[G,U=G]=B.getStyle("transform-origin",!1,!0).split();if(G&&U){const W=[G,U];return new Transform(R,D.getString(),W)}}return null}apply(R){this.transforms.forEach(B=>B.apply(R))}unapply(R){this.transforms.forEach(B=>B.unapply(R))}applyToPoint(R){this.transforms.forEach(B=>B.applyToPoint(R))}constructor(R,B,D){this.document=R,this.transforms=[],parseTransforms(B).forEach(U=>{if(U==="none")return;const[W,q]=parseTransform(U),Y=Transform.transformTypes[W];Y&&this.transforms.push(new Y(this.document,q,D))})}}Transform.transformTypes={translate:Translate,rotate:Rotate,scale:Scale,matrix:Matrix,skewX:SkewX,skewY:SkewY};class Element$2{getAttribute(R){let B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const D=this.attributes[R];if(!D&&B){const G=new Property(this.document,R,"");return this.attributes[R]=G,G}return D||Property.empty(this.document)}getHrefAttribute(){let R;for(const B in this.attributes)if(B==="href"||B.endsWith(":href")){R=this.attributes[B];break}return R||Property.empty(this.document)}getStyle(R){let B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const G=this.styles[R];if(G)return G;const U=this.getAttribute(R);if(U.hasValue())return this.styles[R]=U,U;if(!D){const{parent:W}=this;if(W){const q=W.getStyle(R);if(q.hasValue())return q}}if(B){const W=new Property(this.document,R,"");return this.styles[R]=W,W}return Property.empty(this.document)}render(R){if(!(this.getStyle("display").getString()==="none"||this.getStyle("visibility").getString()==="hidden")){if(R.save(),this.getStyle("mask").hasValue()){const B=this.getStyle("mask").getDefinition();B&&(this.applyEffects(R),B.apply(R,this))}else if(this.getStyle("filter").getValue("none")!=="none"){const B=this.getStyle("filter").getDefinition();B&&(this.applyEffects(R),B.apply(R,this))}else this.setContext(R),this.renderChildren(R),this.clearContext(R);R.restore()}}setContext(R){}applyEffects(R){const B=Transform.fromElement(this.document,this);B&&B.apply(R);const D=this.getStyle("clip-path",!1,!0);if(D.hasValue()){const G=D.getDefinition();G&&G.apply(R)}}clearContext(R){}renderChildren(R){this.children.forEach(B=>{B.render(R)})}addChild(R){const B=R instanceof Element$2?R:this.document.createElement(R);B.parent=this,Element$2.ignoreChildTypes.includes(B.type)||this.children.push(B)}matchesSelector(R){var B;const{node:D}=this;if(typeof D.matches=="function")return D.matches(R);const G=(B=D.getAttribute)===null||B===void 0?void 0:B.call(D,"class");return!G||G===""?!1:G.split(" ").some(U=>".".concat(U)===R)}addStylesFromStyleDefinition(){const{styles:R,stylesSpecificity:B}=this.document;let D;for(const G in R)if(!G.startsWith("@")&&this.matchesSelector(G)){const U=R[G],W=B[G];if(U)for(const q in U){let Y=this.stylesSpecificity[q];typeof Y=="undefined"&&(Y="000"),W&&W>=Y&&(D=U[q],D&&(this.styles[q]=D),this.stylesSpecificity[q]=W)}}}removeStyles(R,B){return B.reduce((G,U)=>{const W=R.getStyle(U);if(!W.hasValue())return G;const q=W.getString();return W.setValue(""),[...G,[U,q]]},[])}restoreStyles(R,B){B.forEach(D=>{let[G,U]=D;R.getStyle(G,!0).setValue(U)})}isFirstChild(){var R;return((R=this.parent)===null||R===void 0?void 0:R.children.indexOf(this))===0}constructor(R,B,D=!1){if(this.document=R,this.node=B,this.captureTextNodes=D,this.type="",this.attributes={},this.styles={},this.stylesSpecificity={},this.animationFrozen=!1,this.animationFrozenValue="",this.parent=null,this.children=[],!B||B.nodeType!==1)return;Array.from(B.attributes).forEach(W=>{const q=normalizeAttributeName(W.nodeName);this.attributes[q]=new Property(R,q,W.value)}),this.addStylesFromStyleDefinition(),this.getAttribute("style").hasValue()&&this.getAttribute("style").getString().split(";").map(q=>q.trim()).forEach(q=>{if(!q)return;const[Y,Q]=q.split(":").map(Z=>Z.trim());Y&&(this.styles[Y]=new Property(R,Y,Q))});const{definitions:G}=R,U=this.getAttribute("id");U.hasValue()&&(G[U.getString()]||(G[U.getString()]=this)),Array.from(B.childNodes).forEach(W=>{if(W.nodeType===1)this.addChild(W);else if(D&&(W.nodeType===3||W.nodeType===4)){const q=R.createTextNode(W);q.getText().length>0&&this.addChild(q)}})}}Element$2.ignoreChildTypes=["title"];class UnknownElement extends Element$2{constructor(R,B,D){super(R,B,D)}}function wrapFontFamily(F){const R=F.trim();return/^('|")/.test(R)?R:'"'.concat(R,'"')}function prepareFontFamily(F){return typeof process=="undefined"?F:F.trim().split(",").map(wrapFontFamily).join(",")}function prepareFontStyle(F){if(!F)return"";const R=F.trim().toLowerCase();switch(R){case"normal":case"italic":case"oblique":case"inherit":case"initial":case"unset":return R;default:return/^oblique\s+(-|)\d+deg$/.test(R)?R:""}}function prepareFontWeight(F){if(!F)return"";const R=F.trim().toLowerCase();switch(R){case"normal":case"bold":case"lighter":case"bolder":case"inherit":case"initial":case"unset":return R;default:return/^[\d.]+$/.test(R)?R:""}}class Font$1{static parse(){let R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",B=arguments.length>1?arguments[1]:void 0,D="",G="",U="",W="",q="";const Y=compressSpaces(R).trim().split(" "),Q={fontSize:!1,fontStyle:!1,fontWeight:!1,fontVariant:!1};return Y.forEach(Z=>{switch(!0){case(!Q.fontStyle&&Font$1.styles.includes(Z)):Z!=="inherit"&&(D=Z),Q.fontStyle=!0;break;case(!Q.fontVariant&&Font$1.variants.includes(Z)):Z!=="inherit"&&(G=Z),Q.fontStyle=!0,Q.fontVariant=!0;break;case(!Q.fontWeight&&Font$1.weights.includes(Z)):Z!=="inherit"&&(U=Z),Q.fontStyle=!0,Q.fontVariant=!0,Q.fontWeight=!0;break;case!Q.fontSize:Z!=="inherit"&&(W=Z.split("/")[0]||""),Q.fontStyle=!0,Q.fontVariant=!0,Q.fontWeight=!0,Q.fontSize=!0;break;default:Z!=="inherit"&&(q+=Z)}}),new Font$1(D,G,U,W,q,B)}toString(){return[prepareFontStyle(this.fontStyle),this.fontVariant,prepareFontWeight(this.fontWeight),this.fontSize,prepareFontFamily(this.fontFamily)].join(" ").trim()}constructor(R,B,D,G,U,W){const q=W?typeof W=="string"?Font$1.parse(W):W:{};this.fontFamily=U||q.fontFamily,this.fontSize=G||q.fontSize,this.fontStyle=R||q.fontStyle,this.fontWeight=D||q.fontWeight,this.fontVariant=B||q.fontVariant}}Font$1.styles="normal|italic|oblique|inherit";Font$1.variants="normal|small-caps|inherit";Font$1.weights="normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit";class BoundingBox$2{get x(){return this.x1}get y(){return this.y1}get width(){return this.x2-this.x1}get height(){return this.y2-this.y1}addPoint(R,B){typeof R!="undefined"&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=R,this.x2=R),Rthis.x2&&(this.x2=R)),typeof B!="undefined"&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=B,this.y2=B),Bthis.y2&&(this.y2=B))}addX(R){this.addPoint(R,0)}addY(R){this.addPoint(0,R)}addBoundingBox(R){if(!R)return;const{x1:B,y1:D,x2:G,y2:U}=R;this.addPoint(B,D),this.addPoint(G,U)}sumCubic(R,B,D,G,U){return Math.pow(1-R,3)*B+3*Math.pow(1-R,2)*R*D+3*(1-R)*Math.pow(R,2)*G+Math.pow(R,3)*U}bezierCurveAdd(R,B,D,G,U){const W=6*B-12*D+6*G,q=-3*B+9*D-9*G+3*U,Y=3*D-3*B;if(q===0){if(W===0)return;const ie=-Y/W;01&&arguments[1]!==void 0?arguments[1]:!1;if(!B){const D=this.getStyle("fill"),G=this.getStyle("fill-opacity"),U=this.getStyle("stroke"),W=this.getStyle("stroke-opacity");if(D.isUrlDefinition()){const te=D.getFillStyleDefinition(this,G);te&&(R.fillStyle=te)}else if(D.hasValue()){D.getString()==="currentColor"&&D.setValue(this.getStyle("color").getColor());const te=D.getColor();te!=="inherit"&&(R.fillStyle=te==="none"?"rgba(0,0,0,0)":te)}if(G.hasValue()){const te=new Property(this.document,"fill",R.fillStyle).addOpacity(G).getColor();R.fillStyle=te}if(U.isUrlDefinition()){const te=U.getFillStyleDefinition(this,W);te&&(R.strokeStyle=te)}else if(U.hasValue()){U.getString()==="currentColor"&&U.setValue(this.getStyle("color").getColor());const te=U.getString();te!=="inherit"&&(R.strokeStyle=te==="none"?"rgba(0,0,0,0)":te)}if(W.hasValue()){const te=new Property(this.document,"stroke",R.strokeStyle).addOpacity(W).getString();R.strokeStyle=te}const q=this.getStyle("stroke-width");if(q.hasValue()){const te=q.getPixels();R.lineWidth=te||PSEUDO_ZERO}const Y=this.getStyle("stroke-linecap"),Q=this.getStyle("stroke-linejoin"),Z=this.getStyle("stroke-miterlimit"),K=this.getStyle("stroke-dasharray"),ie=this.getStyle("stroke-dashoffset");if(Y.hasValue()&&(R.lineCap=Y.getString()),Q.hasValue()&&(R.lineJoin=Q.getString()),Z.hasValue()&&(R.miterLimit=Z.getNumber()),K.hasValue()&&K.getString()!=="none"){const te=toNumbers(K.getString());typeof R.setLineDash!="undefined"?R.setLineDash(te):typeof R.webkitLineDash!="undefined"?R.webkitLineDash=te:typeof R.mozDash!="undefined"&&!(te.length===1&&te[0]===0)&&(R.mozDash=te);const ne=ie.getPixels();typeof R.lineDashOffset!="undefined"?R.lineDashOffset=ne:typeof R.webkitLineDashOffset!="undefined"?R.webkitLineDashOffset=ne:typeof R.mozDashOffset!="undefined"&&(R.mozDashOffset=ne)}}if(this.modifiedEmSizeStack=!1,typeof R.font!="undefined"){const D=this.getStyle("font"),G=this.getStyle("font-style"),U=this.getStyle("font-variant"),W=this.getStyle("font-weight"),q=this.getStyle("font-size"),Y=this.getStyle("font-family"),Q=new Font$1(G.getString(),U.getString(),W.getString(),q.hasValue()?"".concat(q.getPixels(!0),"px"):"",Y.getString(),Font$1.parse(D.getString(),R.font));G.setValue(Q.fontStyle),U.setValue(Q.fontVariant),W.setValue(Q.fontWeight),q.setValue(Q.fontSize),Y.setValue(Q.fontFamily),R.font=Q.toString(),q.isPixels()&&(this.document.emSize=q.getPixels(),this.modifiedEmSizeStack=!0)}B||(this.applyEffects(R),R.globalAlpha=this.calculateOpacity())}clearContext(R){super.clearContext(R),this.modifiedEmSizeStack&&this.document.popEmSize()}constructor(...R){super(...R),this.modifiedEmSizeStack=!1}}class TextElement extends RenderedElement{setContext(R){let B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;super.setContext(R,B);const D=this.getStyle("dominant-baseline").getTextBaseline()||this.getStyle("alignment-baseline").getTextBaseline();D&&(R.textBaseline=D)}initializeCoordinates(){this.x=0,this.y=0,this.leafTexts=[],this.textChunkStart=0,this.minX=Number.POSITIVE_INFINITY,this.maxX=Number.NEGATIVE_INFINITY}getBoundingBox(R){if(this.type!=="text")return this.getTElementBoundingBox(R);this.initializeCoordinates(),this.adjustChildCoordinatesRecursive(R);let B=null;return this.children.forEach((D,G)=>{const U=this.getChildBoundingBox(R,this,this,G);B?B.addBoundingBox(U):B=U}),B}getFontSize(){const{document:R,parent:B}=this,D=Font$1.parse(R.ctx.font).fontSize;return B.getStyle("font-size").getNumber(D)}getTElementBoundingBox(R){const B=this.getFontSize();return new BoundingBox$2(this.x,this.y-B,this.x+this.measureText(R),this.y)}getGlyph(R,B,D){const G=B[D];let U;if(R.isArabic){var W;const q=B.length,Y=B[D-1],Q=B[D+1];let Z="isolated";(D===0||Y===" ")&&D0&&Y!==" "&&D0&&Y!==" "&&(D===q-1||Q===" ")&&(Z="initial"),U=((W=R.arabicGlyphs[G])===null||W===void 0?void 0:W[Z])||R.glyphs[G]}else U=R.glyphs[G];return U||(U=R.missingGlyph),U}getText(){return""}getTextFromNode(R){const B=R||this.node,D=Array.from(B.parentNode.childNodes),G=D.indexOf(B),U=D.length-1;let W=compressSpaces(B.textContent||"");return G===0&&(W=trimLeft(W)),G===U&&(W=trimRight(W)),W}renderChildren(R){if(this.type!=="text"){this.renderTElementChildren(R);return}this.initializeCoordinates(),this.adjustChildCoordinatesRecursive(R),this.children.forEach((D,G)=>{this.renderChild(R,this,this,G)});const{mouse:B}=this.document.screen;B.isWorking()&&B.checkBoundingBox(this,this.getBoundingBox(R))}renderTElementChildren(R){const{document:B,parent:D}=this,G=this.getText(),U=D.getStyle("font-family").getDefinition();if(U){const{unitsPerEm:Y}=U.fontFace,Q=Font$1.parse(B.ctx.font),Z=D.getStyle("font-size").getNumber(Q.fontSize),K=D.getStyle("font-style").getString(Q.fontStyle),ie=Z/Y,te=U.isRTL?G.split("").reverse().join(""):G,ne=toNumbers(D.getAttribute("dx").getString()),se=te.length;for(let re=0;re=this.leafTexts.length)return;const R=this.leafTexts[this.textChunkStart],B=R.getStyle("text-anchor").getString("start"),D=!1;let G=0;B==="start"&&!D||B==="end"&&D?G=R.x-this.minX:B==="end"&&!D||B==="start"&&D?G=R.x-this.maxX:G=R.x-(this.minX+this.maxX)/2;for(let U=this.textChunkStart;U{this.adjustChildCoordinatesRecursiveCore(R,this,this,D)}),this.applyAnchoring()}adjustChildCoordinatesRecursiveCore(R,B,D,G){const U=D.children[G];U.children.length>0?U.children.forEach((W,q)=>{B.adjustChildCoordinatesRecursiveCore(R,B,U,q)}):this.adjustChildCoordinates(R,B,D,G)}adjustChildCoordinates(R,B,D,G){const U=D.children[G];if(typeof U.measureText!="function")return U;R.save(),U.setContext(R,!0);const W=U.getAttribute("x"),q=U.getAttribute("y"),Y=U.getAttribute("dx"),Q=U.getAttribute("dy"),Z=U.getStyle("font-family").getDefinition(),K=Boolean(Z==null?void 0:Z.isRTL);G===0&&(W.hasValue()||W.setValue(U.getInheritedAttribute("x")),q.hasValue()||q.setValue(U.getInheritedAttribute("y")),Y.hasValue()||Y.setValue(U.getInheritedAttribute("dx")),Q.hasValue()||Q.setValue(U.getInheritedAttribute("dy")));const ie=U.measureText(R);return K&&(B.x-=ie),W.hasValue()?(B.applyAnchoring(),U.x=W.getPixels("x"),Y.hasValue()&&(U.x+=Y.getPixels("x"))):(Y.hasValue()&&(B.x+=Y.getPixels("x")),U.x=B.x),B.x=U.x,K||(B.x+=ie),q.hasValue()?(U.y=q.getPixels("y"),Q.hasValue()&&(U.y+=Q.getPixels("y"))):(Q.hasValue()&&(B.y+=Q.getPixels("y")),U.y=B.y),B.y=U.y,B.leafTexts.push(U),B.minX=Math.min(B.minX,U.x,U.x+ie),B.maxX=Math.max(B.maxX,U.x,U.x+ie),U.clearContext(R),R.restore(),U}getChildBoundingBox(R,B,D,G){const U=D.children[G];if(typeof U.getBoundingBox!="function")return null;const W=U.getBoundingBox(R);return W&&U.children.forEach((q,Y)=>{const Q=B.getChildBoundingBox(R,B,U,Y);W.addBoundingBox(Q)}),W}renderChild(R,B,D,G){const U=D.children[G];U.render(R),U.children.forEach((W,q)=>{B.renderChild(R,B,U,q)})}measureText(R){const{measureCache:B}=this;if(~B)return B;const D=this.getText(),G=this.measureTargetText(R,D);return this.measureCache=G,G}measureTargetText(R,B){if(!B.length)return 0;const{parent:D}=this,G=D.getStyle("font-family").getDefinition();if(G){const W=this.getFontSize(),q=G.isRTL?B.split("").reverse().join(""):B,Y=toNumbers(D.getAttribute("dx").getString()),Q=q.length;let Z=0;for(let K=0;K0?"":this.getTextFromNode()}}class TextNode extends TSpanElement{constructor(...R){super(...R),this.type="textNode"}}class PathParser extends _{reset(){this.i=-1,this.command=null,this.previousCommand=null,this.start=new Point(0,0),this.control=new Point(0,0),this.current=new Point(0,0),this.points=[],this.angles=[]}isEnd(){const{i:R,commands:B}=this;return R>=B.length-1}next(){const R=this.commands[++this.i];return this.previousCommand=this.command,this.command=R,R}getPoint(){let R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"x",B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"y";const D=new Point(this.command[R],this.command[B]);return this.makeAbsolute(D)}getAsControlPoint(R,B){const D=this.getPoint(R,B);return this.control=D,D}getAsCurrentPoint(R,B){const D=this.getPoint(R,B);return this.current=D,D}getReflectedControlPoint(){const R=this.previousCommand.type;if(R!==_.CURVE_TO&&R!==_.SMOOTH_CURVE_TO&&R!==_.QUAD_TO&&R!==_.SMOOTH_QUAD_TO)return this.current;const{current:{x:B,y:D},control:{x:G,y:U}}=this;return new Point(2*B-G,2*D-U)}makeAbsolute(R){if(this.command.relative){const{x:B,y:D}=this.current;R.x+=B,R.y+=D}return R}addMarker(R,B,D){const{points:G,angles:U}=this;D&&U.length>0&&!U[U.length-1]&&(U[U.length-1]=G[G.length-1].angleTo(D)),this.addMarkerAngle(R,B?B.angleTo(R):null)}addMarkerAngle(R,B){this.points.push(R),this.angles.push(B)}getMarkerPoints(){return this.points}getMarkerAngles(){const{angles:R}=this,B=R.length;for(let D=0;D[U,D[W]])}renderChildren(R){this.path(R),this.document.screen.mouse.checkPath(this,R);const B=this.getStyle("fill-rule");R.fillStyle!==""&&(B.getString("inherit")!=="inherit"?R.fill(B.getString()):R.fill()),R.strokeStyle!==""&&(this.getAttribute("vector-effect").getString()==="non-scaling-stroke"?(R.save(),R.setTransform(1,0,0,1,0,0),R.stroke(),R.restore()):R.stroke());const D=this.getMarkers();if(D){const G=D.length-1,U=this.getStyle("marker-start"),W=this.getStyle("marker-mid"),q=this.getStyle("marker-end");if(U.isUrlDefinition()){const Y=U.getDefinition(),[Q,Z]=D[0];Y.render(R,Q,Z)}if(W.isUrlDefinition()){const Y=W.getDefinition();for(let Q=1;Q1&&(G*=Math.sqrt(ie),U*=Math.sqrt(ie));let te=(q===Y?-1:1)*Math.sqrt((Math.pow(G,2)*Math.pow(U,2)-Math.pow(G,2)*Math.pow(K.y,2)-Math.pow(U,2)*Math.pow(K.x,2))/(Math.pow(G,2)*Math.pow(K.y,2)+Math.pow(U,2)*Math.pow(K.x,2)));isNaN(te)&&(te=0);const ne=new Point(te*G*K.y/U,te*-U*K.x/G),se=new Point((B.x+Z.x)/2+Math.cos(Q)*ne.x-Math.sin(Q)*ne.y,(B.y+Z.y)/2+Math.sin(Q)*ne.x+Math.cos(Q)*ne.y),re=vectorsAngle([1,0],[(K.x-ne.x)/G,(K.y-ne.y)/U]),ae=[(K.x-ne.x)/G,(K.y-ne.y)/U],le=[(-K.x-ne.x)/G,(-K.y-ne.y)/U];let ce=vectorsAngle(ae,le);return vectorsRatio(ae,le)<=-1&&(ce=Math.PI),vectorsRatio(ae,le)>=1&&(ce=0),{currentPoint:Z,rX:G,rY:U,sweepFlag:Y,xAxisRotation:Q,centp:se,a1:re,ad:ce}}pathA(R,B){const{pathParser:D}=this,{currentPoint:G,rX:U,rY:W,sweepFlag:q,xAxisRotation:Y,centp:Q,a1:Z,ad:K}=PathElement.pathA(D),ie=1-q?1:-1,te=Z+ie*(K/2),ne=new Point(Q.x+U*Math.cos(te),Q.y+W*Math.sin(te));if(D.addMarkerAngle(ne,te-ie*Math.PI/2),D.addMarkerAngle(G,te-ie*Math.PI),B.addPoint(G.x,G.y),R&&!isNaN(Z)&&!isNaN(K)){const se=U>W?U:W,re=U>W?1:U/W,ae=U>W?W/U:1;R.translate(Q.x,Q.y),R.rotate(Y),R.scale(re,ae),R.arc(0,0,se,Z,Z+K,Boolean(1-q)),R.scale(1/re,1/ae),R.rotate(-Y),R.translate(-Q.x,-Q.y)}}static pathZ(R){R.current=R.start}pathZ(R,B){PathElement.pathZ(this.pathParser),R&&B.x1!==B.x2&&B.y1!==B.y2&&R.closePath()}constructor(R,B,D){super(R,B,D),this.type="path",this.pathParser=new PathParser(this.getAttribute("d").getString())}}class SVGElement$1 extends RenderedElement{setContext(R){var B;const{document:D}=this,{screen:G,window:U}=D,W=R.canvas;if(G.setDefaults(R),"style"in W&&typeof R.font!="undefined"&&U&&typeof U.getComputedStyle!="undefined"){R.font=U.getComputedStyle(W).getPropertyValue("font");const le=new Property(D,"fontSize",Font$1.parse(R.font).fontSize);le.hasValue()&&(D.rootEmSize=le.getPixels("y"),D.emSize=D.rootEmSize)}this.getAttribute("x").hasValue()||this.getAttribute("x",!0).setValue(0),this.getAttribute("y").hasValue()||this.getAttribute("y",!0).setValue(0);let{width:q,height:Y}=G.viewPort;this.getStyle("width").hasValue()||this.getStyle("width",!0).setValue("100%"),this.getStyle("height").hasValue()||this.getStyle("height",!0).setValue("100%"),this.getStyle("color").hasValue()||this.getStyle("color",!0).setValue("black");const Q=this.getAttribute("refX"),Z=this.getAttribute("refY"),K=this.getAttribute("viewBox"),ie=K.hasValue()?toNumbers(K.getString()):null,te=!this.root&&this.getStyle("overflow").getValue("hidden")!=="visible";let ne=0,se=0,re=0,ae=0;ie&&(ne=ie[0],se=ie[1]),this.root||(q=this.getStyle("width").getPixels("x"),Y=this.getStyle("height").getPixels("y"),this.type==="marker"&&(re=ne,ae=se,ne=0,se=0)),G.viewPort.setCurrent(q,Y),this.node&&(!this.parent||((B=this.node.parentNode)===null||B===void 0?void 0:B.nodeName)==="foreignObject")&&this.getStyle("transform",!1,!0).hasValue()&&!this.getStyle("transform-origin",!1,!0).hasValue()&&this.getStyle("transform-origin",!0,!0).setValue("50% 50%"),super.setContext(R),R.translate(this.getAttribute("x").getPixels("x"),this.getAttribute("y").getPixels("y")),ie&&(q=ie[2],Y=ie[3]),D.setViewBox({ctx:R,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:G.viewPort.width,desiredWidth:q,height:G.viewPort.height,desiredHeight:Y,minX:ne,minY:se,refX:Q.getValue(),refY:Z.getValue(),clip:te,clipX:re,clipY:ae}),ie&&(G.viewPort.removeCurrent(),G.viewPort.setCurrent(q,Y))}clearContext(R){super.clearContext(R),this.document.screen.viewPort.removeCurrent()}resize(R){let B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:R,D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const G=this.getAttribute("width",!0),U=this.getAttribute("height",!0),W=this.getAttribute("viewBox"),q=this.getAttribute("style"),Y=G.getNumber(0),Q=U.getNumber(0);if(D)if(typeof D=="string")this.getAttribute("preserveAspectRatio",!0).setValue(D);else{const Z=this.getAttribute("preserveAspectRatio");Z.hasValue()&&Z.setValue(Z.getString().replace(/^\s*(\S.*\S)\s*$/,"$1"))}if(G.setValue(R),U.setValue(B),W.hasValue()||W.setValue("0 0 ".concat(Y||R," ").concat(Q||B)),q.hasValue()){const Z=this.getStyle("width"),K=this.getStyle("height");Z.hasValue()&&Z.setValue("".concat(R,"px")),K.hasValue()&&K.setValue("".concat(B,"px"))}}constructor(...R){super(...R),this.type="svg",this.root=!1}}class RectElement extends PathElement{path(R){const B=this.getAttribute("x").getPixels("x"),D=this.getAttribute("y").getPixels("y"),G=this.getStyle("width",!1,!0).getPixels("x"),U=this.getStyle("height",!1,!0).getPixels("y"),W=this.getAttribute("rx"),q=this.getAttribute("ry");let Y=W.getPixels("x"),Q=q.getPixels("y");if(W.hasValue()&&!q.hasValue()&&(Q=Y),q.hasValue()&&!W.hasValue()&&(Y=Q),Y=Math.min(Y,G/2),Q=Math.min(Q,U/2),R){const Z=4*((Math.sqrt(2)-1)/3);R.beginPath(),U>0&&G>0&&(R.moveTo(B+Y,D),R.lineTo(B+G-Y,D),R.bezierCurveTo(B+G-Y+Z*Y,D,B+G,D+Q-Z*Q,B+G,D+Q),R.lineTo(B+G,D+U-Q),R.bezierCurveTo(B+G,D+U-Q+Z*Q,B+G-Y+Z*Y,D+U,B+G-Y,D+U),R.lineTo(B+Y,D+U),R.bezierCurveTo(B+Y-Z*Y,D+U,B,D+U-Q+Z*Q,B,D+U-Q),R.lineTo(B,D+Q),R.bezierCurveTo(B,D+Q-Z*Q,B+Y-Z*Y,D,B+Y,D),R.closePath())}return new BoundingBox$2(B,D,B+G,D+U)}getMarkers(){return null}constructor(...R){super(...R),this.type="rect"}}class CircleElement extends PathElement{path(R){const B=this.getAttribute("cx").getPixels("x"),D=this.getAttribute("cy").getPixels("y"),G=this.getAttribute("r").getPixels();return R&&G>0&&(R.beginPath(),R.arc(B,D,G,0,Math.PI*2,!1),R.closePath()),new BoundingBox$2(B-G,D-G,B+G,D+G)}getMarkers(){return null}constructor(...R){super(...R),this.type="circle"}}class EllipseElement extends PathElement{path(R){const B=4*((Math.sqrt(2)-1)/3),D=this.getAttribute("rx").getPixels("x"),G=this.getAttribute("ry").getPixels("y"),U=this.getAttribute("cx").getPixels("x"),W=this.getAttribute("cy").getPixels("y");return R&&D>0&&G>0&&(R.beginPath(),R.moveTo(U+D,W),R.bezierCurveTo(U+D,W+B*G,U+B*D,W+G,U,W+G),R.bezierCurveTo(U-B*D,W+G,U-D,W+B*G,U-D,W),R.bezierCurveTo(U-D,W-B*G,U-B*D,W-G,U,W-G),R.bezierCurveTo(U+B*D,W-G,U+D,W-B*G,U+D,W),R.closePath()),new BoundingBox$2(U-D,W-G,U+D,W+G)}getMarkers(){return null}constructor(...R){super(...R),this.type="ellipse"}}class LineElement extends PathElement{getPoints(){return[new Point(this.getAttribute("x1").getPixels("x"),this.getAttribute("y1").getPixels("y")),new Point(this.getAttribute("x2").getPixels("x"),this.getAttribute("y2").getPixels("y"))]}path(R){const[{x:B,y:D},{x:G,y:U}]=this.getPoints();return R&&(R.beginPath(),R.moveTo(B,D),R.lineTo(G,U)),new BoundingBox$2(B,D,G,U)}getMarkers(){const[R,B]=this.getPoints(),D=R.angleTo(B);return[[R,D],[B,D]]}constructor(...R){super(...R),this.type="line"}}class PolylineElement extends PathElement{path(R){const{points:B}=this,[{x:D,y:G}]=B,U=new BoundingBox$2(D,G);return R&&(R.beginPath(),R.moveTo(D,G)),B.forEach(W=>{let{x:q,y:Y}=W;U.addPoint(q,Y),R&&R.lineTo(q,Y)}),U}getMarkers(){const{points:R}=this,B=R.length-1,D=[];return R.forEach((G,U)=>{U!==B&&D.push([G,G.angleTo(R[U+1])])}),D.length>0&&D.push([R[R.length-1],D[D.length-1][1]]),D}constructor(R,B,D){super(R,B,D),this.type="polyline",this.points=[],this.points=Point.parsePath(this.getAttribute("points").getString())}}class PolygonElement extends PolylineElement{path(R){const B=super.path(R),[{x:D,y:G}]=this.points;return R&&(R.lineTo(D,G),R.closePath()),B}constructor(...R){super(...R),this.type="polygon"}}class PatternElement extends Element$2{createPattern(R,B,D){const G=this.getStyle("width").getPixels("x",!0),U=this.getStyle("height").getPixels("y",!0),W=new SVGElement$1(this.document,null);W.attributes.viewBox=new Property(this.document,"viewBox",this.getAttribute("viewBox").getValue()),W.attributes.width=new Property(this.document,"width","".concat(G,"px")),W.attributes.height=new Property(this.document,"height","".concat(U,"px")),W.attributes.transform=new Property(this.document,"transform",this.getAttribute("patternTransform").getValue()),W.children=this.children;const q=this.document.createCanvas(G,U),Y=q.getContext("2d"),Q=this.getAttribute("x"),Z=this.getAttribute("y");Q.hasValue()&&Z.hasValue()&&Y.translate(Q.getPixels("x",!0),Z.getPixels("y",!0)),D.hasValue()?this.styles["fill-opacity"]=D:Reflect.deleteProperty(this.styles,"fill-opacity");for(let ie=-1;ie<=1;ie++)for(let te=-1;te<=1;te++)Y.save(),W.attributes.x=new Property(this.document,"x",ie*q.width),W.attributes.y=new Property(this.document,"y",te*q.height),W.render(Y),Y.restore();return R.createPattern(q,"repeat")}constructor(...R){super(...R),this.type="pattern"}}class MarkerElement extends Element$2{render(R,B,D){if(!B)return;const{x:G,y:U}=B,W=this.getAttribute("orient").getString("auto"),q=this.getAttribute("markerUnits").getString("strokeWidth");R.translate(G,U),W==="auto"&&R.rotate(D),q==="strokeWidth"&&R.scale(R.lineWidth,R.lineWidth),R.save();const Y=new SVGElement$1(this.document);Y.type=this.type,Y.attributes.viewBox=new Property(this.document,"viewBox",this.getAttribute("viewBox").getValue()),Y.attributes.refX=new Property(this.document,"refX",this.getAttribute("refX").getValue()),Y.attributes.refY=new Property(this.document,"refY",this.getAttribute("refY").getValue()),Y.attributes.width=new Property(this.document,"width",this.getAttribute("markerWidth").getValue()),Y.attributes.height=new Property(this.document,"height",this.getAttribute("markerHeight").getValue()),Y.attributes.overflow=new Property(this.document,"overflow",this.getAttribute("overflow").getValue()),Y.attributes.fill=new Property(this.document,"fill",this.getAttribute("fill").getColor("black")),Y.attributes.stroke=new Property(this.document,"stroke",this.getAttribute("stroke").getValue("none")),Y.children=this.children,Y.render(R),R.restore(),q==="strokeWidth"&&R.scale(1/R.lineWidth,1/R.lineWidth),W==="auto"&&R.rotate(-D),R.translate(-G,-U)}constructor(...R){super(...R),this.type="marker"}}class DefsElement extends Element$2{render(){}constructor(...R){super(...R),this.type="defs"}}class GElement extends RenderedElement{getBoundingBox(R){const B=new BoundingBox$2;return this.children.forEach(D=>{B.addBoundingBox(D.getBoundingBox(R))}),B}constructor(...R){super(...R),this.type="g"}}class GradientElement extends Element$2{getGradientUnits(){return this.getAttribute("gradientUnits").getString("objectBoundingBox")}createGradient(R,B,D){let G=this;this.getHrefAttribute().hasValue()&&(G=this.getHrefAttribute().getDefinition(),this.inheritStopContainer(G));const{stops:U}=G,W=this.getGradient(R,B);if(!W)return this.addParentOpacity(D,U[U.length-1].color);if(U.forEach(q=>{W.addColorStop(q.offset,this.addParentOpacity(D,q.color))}),this.getAttribute("gradientTransform").hasValue()){const{document:q}=this,{MAX_VIRTUAL_PIXELS:Y}=Screen,{viewPort:Q}=q.screen,Z=Q.getRoot(),K=new RectElement(q);K.attributes.x=new Property(q,"x",-Y/3),K.attributes.y=new Property(q,"y",-Y/3),K.attributes.width=new Property(q,"width",Y),K.attributes.height=new Property(q,"height",Y);const ie=new GElement(q);ie.attributes.transform=new Property(q,"transform",this.getAttribute("gradientTransform").getValue()),ie.children=[K];const te=new SVGElement$1(q);te.attributes.x=new Property(q,"x",0),te.attributes.y=new Property(q,"y",0),te.attributes.width=new Property(q,"width",Z.width),te.attributes.height=new Property(q,"height",Z.height),te.children=[ie];const ne=q.createCanvas(Z.width,Z.height),se=ne.getContext("2d");return se.fillStyle=W,te.render(se),se.createPattern(ne,"no-repeat")}return W}inheritStopContainer(R){this.attributesToInherit.forEach(B=>{!this.getAttribute(B).hasValue()&&R.getAttribute(B).hasValue()&&this.getAttribute(B,!0).setValue(R.getAttribute(B).getValue())})}addParentOpacity(R,B){return R.hasValue()?new Property(this.document,"color",B).addOpacity(R).getColor():B}constructor(R,B,D){super(R,B,D),this.attributesToInherit=["gradientUnits"],this.stops=[];const{stops:G,children:U}=this;U.forEach(W=>{W.type==="stop"&&G.push(W)})}}class LinearGradientElement extends GradientElement{getGradient(R,B){const D=this.getGradientUnits()==="objectBoundingBox",G=D?B.getBoundingBox(R):null;if(D&&!G)return null;!this.getAttribute("x1").hasValue()&&!this.getAttribute("y1").hasValue()&&!this.getAttribute("x2").hasValue()&&!this.getAttribute("y2").hasValue()&&(this.getAttribute("x1",!0).setValue(0),this.getAttribute("y1",!0).setValue(0),this.getAttribute("x2",!0).setValue(1),this.getAttribute("y2",!0).setValue(0));const U=D?G.x+G.width*this.getAttribute("x1").getNumber():this.getAttribute("x1").getPixels("x"),W=D?G.y+G.height*this.getAttribute("y1").getNumber():this.getAttribute("y1").getPixels("y"),q=D?G.x+G.width*this.getAttribute("x2").getNumber():this.getAttribute("x2").getPixels("x"),Y=D?G.y+G.height*this.getAttribute("y2").getNumber():this.getAttribute("y2").getPixels("y");return U===q&&W===Y?null:R.createLinearGradient(U,W,q,Y)}constructor(R,B,D){super(R,B,D),this.type="linearGradient",this.attributesToInherit.push("x1","y1","x2","y2")}}class RadialGradientElement extends GradientElement{getGradient(R,B){const D=this.getGradientUnits()==="objectBoundingBox",G=B.getBoundingBox(R);if(D&&!G)return null;this.getAttribute("cx").hasValue()||this.getAttribute("cx",!0).setValue("50%"),this.getAttribute("cy").hasValue()||this.getAttribute("cy",!0).setValue("50%"),this.getAttribute("r").hasValue()||this.getAttribute("r",!0).setValue("50%");const U=D?G.x+G.width*this.getAttribute("cx").getNumber():this.getAttribute("cx").getPixels("x"),W=D?G.y+G.height*this.getAttribute("cy").getNumber():this.getAttribute("cy").getPixels("y");let q=U,Y=W;this.getAttribute("fx").hasValue()&&(q=D?G.x+G.width*this.getAttribute("fx").getNumber():this.getAttribute("fx").getPixels("x")),this.getAttribute("fy").hasValue()&&(Y=D?G.y+G.height*this.getAttribute("fy").getNumber():this.getAttribute("fy").getPixels("y"));const Q=D?(G.width+G.height)/2*this.getAttribute("r").getNumber():this.getAttribute("r").getPixels(),Z=this.getAttribute("fr").getPixels();return R.createRadialGradient(q,Y,Z,U,W,Q)}constructor(R,B,D){super(R,B,D),this.type="radialGradient",this.attributesToInherit.push("cx","cy","r","fx","fy","fr")}}class StopElement extends Element$2{constructor(R,B,D){super(R,B,D),this.type="stop";const G=Math.max(0,Math.min(1,this.getAttribute("offset").getNumber())),U=this.getStyle("stop-opacity");let W=this.getStyle("stop-color",!0);W.getString()===""&&W.setValue("#000"),U.hasValue()&&(W=W.addOpacity(U)),this.offset=G,this.color=W.getColor()}}class AnimateElement extends Element$2{getProperty(){const R=this.getAttribute("attributeType").getString(),B=this.getAttribute("attributeName").getString();return R==="CSS"?this.parent.getStyle(B,!0):this.parent.getAttribute(B,!0)}calcValue(){const{initialUnits:R}=this,{progress:B,from:D,to:G}=this.getProgress();let U=D.getNumber()+(G.getNumber()-D.getNumber())*B;return R==="%"&&(U*=100),"".concat(U).concat(R)}update(R){const{parent:B}=this,D=this.getProperty();if(this.initialValue||(this.initialValue=D.getString(),this.initialUnits=D.getUnits()),this.duration>this.maxDuration){const U=this.getAttribute("fill").getString("remove");if(this.getAttribute("repeatCount").getString()==="indefinite"||this.getAttribute("repeatDur").getString()==="indefinite")this.duration=0;else if(U==="freeze"&&!this.frozen)this.frozen=!0,B&&D&&(B.animationFrozen=!0,B.animationFrozenValue=D.getString());else if(U==="remove"&&!this.removed)return this.removed=!0,B&&D&&D.setValue(B.animationFrozen?B.animationFrozenValue:this.initialValue),!0;return!1}this.duration+=R;let G=!1;if(this.begin{const Q=U[Y];return q+(Q-q)*R}).join(" ")}constructor(...R){super(...R),this.type="animateTransform"}}class FontFaceElement extends Element$2{constructor(R,B,D){super(R,B,D),this.type="font-face",this.ascent=this.getAttribute("ascent").getNumber(),this.descent=this.getAttribute("descent").getNumber(),this.unitsPerEm=this.getAttribute("units-per-em").getNumber()}}class GlyphElement extends PathElement{constructor(R,B,D){super(R,B,D),this.type="glyph",this.horizAdvX=this.getAttribute("horiz-adv-x").getNumber(),this.unicode=this.getAttribute("unicode").getString(),this.arabicForm=this.getAttribute("arabic-form").getString()}}class MissingGlyphElement extends GlyphElement{constructor(...R){super(...R),this.type="missing-glyph",this.horizAdvX=0}}class FontElement extends Element$2{render(){}constructor(R,B,D){super(R,B,D),this.type="font",this.isArabic=!1,this.glyphs={},this.arabicGlyphs={},this.isRTL=!1,this.horizAdvX=this.getAttribute("horiz-adv-x").getNumber();const{definitions:G}=R,{children:U}=this;for(const W of U)if(W instanceof FontFaceElement){this.fontFace=W;const q=W.getStyle("font-family");q.hasValue()&&(G[q.getString()]=this)}else if(W instanceof MissingGlyphElement)this.missingGlyph=W;else if(W instanceof GlyphElement)if(W.arabicForm){this.isRTL=!0,this.isArabic=!0;const q=this.arabicGlyphs[W.unicode];typeof q=="undefined"?this.arabicGlyphs[W.unicode]={[W.arabicForm]:W}:q[W.arabicForm]=W}else this.glyphs[W.unicode]=W}}class TRefElement extends TextElement{getText(){const R=this.getHrefAttribute().getDefinition();if(R){const B=R.children[0];if(B)return B.getText()}return""}constructor(...R){super(...R),this.type="tref"}}class AElement extends TextElement{getText(){return this.text}renderChildren(R){if(this.hasText){super.renderChildren(R);const{document:B,x:D,y:G}=this,{mouse:U}=B.screen,W=new Property(B,"fontSize",Font$1.parse(B.ctx.font).fontSize);U.isWorking()&&U.checkBoundingBox(this,new BoundingBox$2(D,G-W.getPixels("y"),D+this.measureText(R),G))}else if(this.children.length>0){const B=new GElement(this.document);B.children=this.children,B.parent=this,B.render(R)}}onClick(){const{window:R}=this.document;R&&R.open(this.getHrefAttribute().getString())}onMouseMove(){const R=this.document.ctx;R.canvas.style.cursor="pointer"}constructor(R,B,D){super(R,B,D),this.type="a";const{childNodes:G}=B,U=G[0],W=G.length>0&&Array.from(G).every(q=>q.nodeType===3);this.hasText=W,this.text=W?this.getTextFromNode(U):""}}class TextPathElement extends TextElement{getText(){return this.text}path(R){const{dataArray:B}=this;R&&R.beginPath(),B.forEach(D=>{let{type:G,points:U}=D;switch(G){case PathParser.LINE_TO:R&&R.lineTo(U[0],U[1]);break;case PathParser.MOVE_TO:R&&R.moveTo(U[0],U[1]);break;case PathParser.CURVE_TO:R&&R.bezierCurveTo(U[0],U[1],U[2],U[3],U[4],U[5]);break;case PathParser.QUAD_TO:R&&R.quadraticCurveTo(U[0],U[1],U[2],U[3]);break;case PathParser.ARC:{const[W,q,Y,Q,Z,K,ie,te]=U,ne=Y>Q?Y:Q,se=Y>Q?1:Y/Q,re=Y>Q?Q/Y:1;R&&(R.translate(W,q),R.rotate(ie),R.scale(se,re),R.arc(0,0,ne,Z,Z+K,Boolean(1-te)),R.scale(1/se,1/re),R.rotate(-ie),R.translate(-W,-q));break}case PathParser.CLOSE_PATH:R&&R.closePath();break}})}renderChildren(R){this.setTextData(R),R.save();const B=this.parent.getStyle("text-decoration").getString(),D=this.getFontSize(),{glyphInfo:G}=this,U=R.fillStyle;B==="underline"&&R.beginPath(),G.forEach((W,q)=>{const{p0:Y,p1:Q,rotation:Z,text:K}=W;R.save(),R.translate(Y.x,Y.y),R.rotate(Z),R.fillStyle&&R.fillText(K,0,0),R.strokeStyle&&R.strokeText(K,0,0),R.restore(),B==="underline"&&(q===0&&R.moveTo(Y.x,Y.y+D/8),R.lineTo(Q.x,Q.y+D/5))}),B==="underline"&&(R.lineWidth=D/20,R.strokeStyle=U,R.stroke(),R.closePath()),R.restore()}getLetterSpacingAt(){let R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.letterSpacingCache[R]||0}findSegmentToFitChar(R,B,D,G,U,W,q,Y,Q){let Z=W,K=this.measureText(R,Y);Y===" "&&B==="justify"&&D-1&&(Z+=this.getLetterSpacingAt(Q));const ie=this.textHeight/20,te=this.getEquidistantPointOnPath(Z,ie,0),ne=this.getEquidistantPointOnPath(Z+K,ie,0),se={p0:te,p1:ne},re=te&&ne?Math.atan2(ne.y-te.y,ne.x-te.x):0;if(q){const ae=Math.cos(Math.PI/2+re)*q,le=Math.cos(-re)*q;se.p0={...te,x:te.x+ae,y:te.y+le},se.p1={...ne,x:ne.x+ae,y:ne.y+le}}return Z+=K,{offset:Z,segment:se,rotation:re}}measureText(R,B){const{measuresCache:D}=this,G=B||this.getText();if(D.has(G))return D.get(G);const U=this.measureTargetText(R,G);return D.set(G,U),U}setTextData(R){if(this.glyphInfo)return;const B=this.getText(),D=B.split(""),G=B.split(" ").length-1,U=this.parent.getAttribute("dx").split().map(ce=>ce.getPixels("x")),W=this.parent.getAttribute("dy").getPixels("y"),q=this.parent.getStyle("text-anchor").getString("start"),Y=this.getStyle("letter-spacing"),Q=this.parent.getStyle("letter-spacing");let Z=0;!Y.hasValue()||Y.getValue()==="inherit"?Z=Q.getPixels():Y.hasValue()&&Y.getValue()!=="initial"&&Y.getValue()!=="unset"&&(Z=Y.getPixels());const K=[],ie=B.length;this.letterSpacingCache=K;for(let ce=0;cepe===0?0:ce+he||0,0),ne=this.measureText(R),se=Math.max(ne+te,0);this.textWidth=ne,this.textHeight=this.getFontSize(),this.glyphInfo=[];const re=this.getPathLength(),ae=this.getStyle("startOffset").getNumber(0)*re;let le=0;(q==="middle"||q==="center")&&(le=-se/2),(q==="end"||q==="right")&&(le=-se),le+=ae,D.forEach((ce,he)=>{const{offset:pe,segment:me,rotation:fe}=this.findSegmentToFitChar(R,q,se,re,G,le,W,ce,he);le=pe,!(!me.p0||!me.p1)&&this.glyphInfo.push({text:D[he],p0:me.p0,p1:me.p1,rotation:fe})})}parsePathData(R){if(this.pathLength=-1,!R)return[];const B=[],{pathParser:D}=R;for(D.reset();!D.isEnd();){const{current:G}=D,U=G?G.x:0,W=G?G.y:0,q=D.next();let Y=q.type,Q=[];switch(q.type){case PathParser.MOVE_TO:this.pathM(D,Q);break;case PathParser.LINE_TO:Y=this.pathL(D,Q);break;case PathParser.HORIZ_LINE_TO:Y=this.pathH(D,Q);break;case PathParser.VERT_LINE_TO:Y=this.pathV(D,Q);break;case PathParser.CURVE_TO:this.pathC(D,Q);break;case PathParser.SMOOTH_CURVE_TO:Y=this.pathS(D,Q);break;case PathParser.QUAD_TO:this.pathQ(D,Q);break;case PathParser.SMOOTH_QUAD_TO:Y=this.pathT(D,Q);break;case PathParser.ARC:Q=this.pathA(D);break;case PathParser.CLOSE_PATH:PathElement.pathZ(D);break}q.type!==PathParser.CLOSE_PATH?B.push({type:Y,points:Q,start:{x:U,y:W},pathLength:this.calcLength(U,W,Y,Q)}):B.push({type:PathParser.CLOSE_PATH,points:[],pathLength:0})}return B}pathM(R,B){const{x:D,y:G}=PathElement.pathM(R).point;B.push(D,G)}pathL(R,B){const{x:D,y:G}=PathElement.pathL(R).point;return B.push(D,G),PathParser.LINE_TO}pathH(R,B){const{x:D,y:G}=PathElement.pathH(R).point;return B.push(D,G),PathParser.LINE_TO}pathV(R,B){const{x:D,y:G}=PathElement.pathV(R).point;return B.push(D,G),PathParser.LINE_TO}pathC(R,B){const{point:D,controlPoint:G,currentPoint:U}=PathElement.pathC(R);B.push(D.x,D.y,G.x,G.y,U.x,U.y)}pathS(R,B){const{point:D,controlPoint:G,currentPoint:U}=PathElement.pathS(R);return B.push(D.x,D.y,G.x,G.y,U.x,U.y),PathParser.CURVE_TO}pathQ(R,B){const{controlPoint:D,currentPoint:G}=PathElement.pathQ(R);B.push(D.x,D.y,G.x,G.y)}pathT(R,B){const{controlPoint:D,currentPoint:G}=PathElement.pathT(R);return B.push(D.x,D.y,G.x,G.y),PathParser.QUAD_TO}pathA(R){let{rX:B,rY:D,sweepFlag:G,xAxisRotation:U,centp:W,a1:q,ad:Y}=PathElement.pathA(R);return G===0&&Y>0&&(Y-=2*Math.PI),G===1&&Y<0&&(Y+=2*Math.PI),[W.x,W.y,B,D,q,Y,U,G]}calcLength(R,B,D,G){let U=0,W=null,q=null,Y=0;switch(D){case PathParser.LINE_TO:return this.getLineLength(R,B,G[0],G[1]);case PathParser.CURVE_TO:for(U=0,W=this.getPointOnCubicBezier(0,R,B,G[0],G[1],G[2],G[3],G[4],G[5]),Y=.01;Y<=1;Y+=.01)q=this.getPointOnCubicBezier(Y,R,B,G[0],G[1],G[2],G[3],G[4],G[5]),U+=this.getLineLength(W.x,W.y,q.x,q.y),W=q;return U;case PathParser.QUAD_TO:for(U=0,W=this.getPointOnQuadraticBezier(0,R,B,G[0],G[1],G[2],G[3]),Y=.01;Y<=1;Y+=.01)q=this.getPointOnQuadraticBezier(Y,R,B,G[0],G[1],G[2],G[3]),U+=this.getLineLength(W.x,W.y,q.x,q.y),W=q;return U;case PathParser.ARC:{U=0;const Q=G[4],Z=G[5],K=G[4]+Z;let ie=Math.PI/180;if(Math.abs(Q-K)K;Y-=ie)q=this.getPointOnEllipticalArc(G[0],G[1],G[2],G[3],Y,0),U+=this.getLineLength(W.x,W.y,q.x,q.y),W=q;else for(Y=Q+ie;Y5&&arguments[5]!==void 0?arguments[5]:B,q=arguments.length>6&&arguments[6]!==void 0?arguments[6]:D;const Y=(U-D)/(G-B+PSEUDO_ZERO);let Q=Math.sqrt(R*R/(1+Y*Y));GB)return null;const{dataArray:U}=this;for(const W of U){if(W&&(W.pathLength<5e-5||D+W.pathLength+5e-5=0&&Y>K)break;G=this.getPointOnEllipticalArc(W.points[0],W.points[1],W.points[2],W.points[3],Y,W.points[6]);break}case PathParser.CURVE_TO:Y=q/W.pathLength,Y>1&&(Y=1),G=this.getPointOnCubicBezier(Y,W.start.x,W.start.y,W.points[0],W.points[1],W.points[2],W.points[3],W.points[4],W.points[5]);break;case PathParser.QUAD_TO:Y=q/W.pathLength,Y>1&&(Y=1),G=this.getPointOnQuadraticBezier(Y,W.start.x,W.start.y,W.points[0],W.points[1],W.points[2],W.points[3]);break}if(G)return G;break}return null}getLineLength(R,B,D,G){return Math.sqrt((D-R)*(D-R)+(G-B)*(G-B))}getPathLength(){return this.pathLength===-1&&(this.pathLength=this.dataArray.reduce((R,B)=>B.pathLength>0?R+B.pathLength:R,0)),this.pathLength}getPointOnCubicBezier(R,B,D,G,U,W,q,Y,Q){const Z=Y*CB1(R)+W*CB2(R)+G*CB3(R)+B*CB4(R),K=Q*CB1(R)+q*CB2(R)+U*CB3(R)+D*CB4(R);return{x:Z,y:K}}getPointOnQuadraticBezier(R,B,D,G,U,W,q){const Y=W*QB1(R)+G*QB2(R)+B*QB3(R),Q=q*QB1(R)+U*QB2(R)+D*QB3(R);return{x:Y,y:Q}}getPointOnEllipticalArc(R,B,D,G,U,W){const q=Math.cos(W),Y=Math.sin(W),Q={x:D*Math.cos(U),y:G*Math.sin(U)};return{x:R+(Q.x*q-Q.y*Y),y:B+(Q.x*Y+Q.y*q)}}buildEquidistantCache(R,B){const D=this.getPathLength(),G=B||.25,U=R||D/100;if(!this.equidistantCache||this.equidistantCache.step!==U||this.equidistantCache.precision!==G){this.equidistantCache={step:U,precision:G,points:[]};let W=0;for(let q=0;q<=D;q+=G){const Y=this.getPointOnPath(q),Q=this.getPointOnPath(q+G);!Y||!Q||(W+=this.getLineLength(Y.x,Y.y,Q.x,Q.y),W>=U&&(this.equidistantCache.points.push({x:Y.x,y:Y.y,distance:q}),W-=U))}}}getEquidistantPointOnPath(R,B,D){if(this.buildEquidistantCache(B,D),R<0||R-this.getPathLength()>5e-5)return null;const G=Math.round(R/this.getPathLength()*(this.equidistantCache.points.length-1));return this.equidistantCache.points[G]||null}constructor(R,B,D){super(R,B,D),this.type="textPath",this.textWidth=0,this.textHeight=0,this.pathLength=-1,this.glyphInfo=null,this.letterSpacingCache=[],this.measuresCache=new Map([["",0]]);const G=this.getHrefAttribute().getDefinition();this.text=this.getTextFromNode(),this.dataArray=this.parsePathData(G)}}const dataUriRegex=/^\s*data:(([^/,;]+\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;class ImageElement extends RenderedElement{async loadImage(R){try{const B=await this.document.createImage(R);this.image=B}catch(B){console.error('Error while loading image "'.concat(R,'":'),B)}this.loaded=!0}async loadSvg(R){const B=dataUriRegex.exec(R);if(B){const D=B[5];D&&(B[4]==="base64"?this.image=atob(D):this.image=decodeURIComponent(D))}else try{const G=await(await this.document.fetch(R)).text();this.image=G}catch(D){console.error('Error while loading image "'.concat(R,'":'),D)}this.loaded=!0}renderChildren(R){const{document:B,image:D,loaded:G}=this,U=this.getAttribute("x").getPixels("x"),W=this.getAttribute("y").getPixels("y"),q=this.getStyle("width").getPixels("x"),Y=this.getStyle("height").getPixels("y");if(!(!G||!D||!q||!Y)){if(R.save(),R.translate(U,W),typeof D=="string"){const Q=B.canvg.forkString(R,D,{ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:0,offsetY:0,scaleWidth:q,scaleHeight:Y}),{documentElement:Z}=Q.document;Z&&(Z.parent=this),Q.render()}else B.setViewBox({ctx:R,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:q,desiredWidth:D.width,height:Y,desiredHeight:D.height}),this.loaded&&(!("complete"in D)||D.complete)&&R.drawImage(D,0,0);R.restore()}}getBoundingBox(){const R=this.getAttribute("x").getPixels("x"),B=this.getAttribute("y").getPixels("y"),D=this.getStyle("width").getPixels("x"),G=this.getStyle("height").getPixels("y");return new BoundingBox$2(R,B,R+D,B+G)}constructor(R,B,D){super(R,B,D),this.type="image",this.loaded=!1;const G=this.getHrefAttribute().getString();if(!G)return;const U=G.endsWith(".svg")||/^\s*data:image\/svg\+xml/i.test(G);R.images.push(this),U?this.loadSvg(G):this.loadImage(G)}}class SymbolElement extends RenderedElement{render(R){}constructor(...R){super(...R),this.type="symbol"}}class SVGFontLoader{async load(R,B){try{const{document:D}=this,U=(await D.canvg.parser.load(B)).getElementsByTagName("font");Array.from(U).forEach(W=>{const q=D.createElement(W);D.definitions[R]=q})}catch(D){console.error('Error while loading font "'.concat(B,'":'),D)}this.loaded=!0}constructor(R){this.document=R,this.loaded=!1,R.fonts.push(this)}}class StyleElement extends Element$2{constructor(R,B,D){super(R,B,D),this.type="style",compressSpaces(Array.from(B.childNodes).map(W=>W.textContent).join("").replace(/(\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm,"").replace(/@import.*;/g,"")).split("}").forEach(W=>{const q=W.trim();if(!q)return;const Y=q.split("{"),Q=Y[0].split(","),Z=Y[1].split(";");Q.forEach(K=>{const ie=K.trim();if(!ie)return;const te=R.styles[ie]||{};if(Z.forEach(ne=>{const se=ne.indexOf(":"),re=ne.substr(0,se).trim(),ae=ne.substr(se+1,ne.length-se).trim();re&&ae&&(te[re]=new Property(R,re,ae))}),R.styles[ie]=te,R.stylesSpecificity[ie]=getSelectorSpecificity(ie),ie==="@font-face"){const ne=te["font-family"].getString().replace(/"|'/g,"");te.src.getString().split(",").forEach(re=>{if(re.indexOf('format("svg")')>0){const ae=parseExternalUrl(re);ae&&new SVGFontLoader(R).load(ne,ae)}})}})})}}StyleElement.parseExternalUrl=parseExternalUrl;class UseElement extends RenderedElement{setContext(R){super.setContext(R);const B=this.getAttribute("x"),D=this.getAttribute("y");B.hasValue()&&R.translate(B.getPixels("x"),0),D.hasValue()&&R.translate(0,D.getPixels("y"))}path(R){const{element:B}=this;B&&B.path(R)}renderChildren(R){const{document:B,element:D}=this;if(D){let G=D;if(D.type==="symbol"&&(G=new SVGElement$1(B),G.attributes.viewBox=new Property(B,"viewBox",D.getAttribute("viewBox").getString()),G.attributes.preserveAspectRatio=new Property(B,"preserveAspectRatio",D.getAttribute("preserveAspectRatio").getString()),G.attributes.overflow=new Property(B,"overflow",D.getAttribute("overflow").getString()),G.children=D.children,D.styles.opacity=new Property(B,"opacity",this.calculateOpacity())),G.type==="svg"){const W=this.getStyle("width",!1,!0),q=this.getStyle("height",!1,!0);W.hasValue()&&(G.attributes.width=new Property(B,"width",W.getString())),q.hasValue()&&(G.attributes.height=new Property(B,"height",q.getString()))}const U=G.parent;G.parent=this,G.render(R),G.parent=U}}getBoundingBox(R){const{element:B}=this;return B?B.getBoundingBox(R):null}elementTransform(){const{document:R,element:B}=this;return B?Transform.fromElement(R,B):null}get element(){return this.cachedElement||(this.cachedElement=this.getHrefAttribute().getDefinition()),this.cachedElement}constructor(...R){super(...R),this.type="use"}}function imGet(F,R,B,D,G,U){return F[B*D*4+R*4+U]}function imSet(F,R,B,D,G,U,W){F[B*D*4+R*4+U]=W}function m(F,R,B){return F[R]*B}function c(F,R,B,D){return R+Math.cos(F)*B+Math.sin(F)*D}class FeColorMatrixElement extends Element$2{apply(R,B,D,G,U){const{includeOpacity:W,matrix:q}=this,Y=R.getImageData(0,0,G,U);for(let Q=0;Q{te.addBoundingBox(ne.getBoundingBox(R))}),G=Math.floor(te.x1),U=Math.floor(te.y1),W=Math.floor(te.width),q=Math.floor(te.height)}const Y=this.removeStyles(B,MaskElement.ignoreStyles),Q=D.createCanvas(G+W,U+q),Z=Q.getContext("2d");D.screen.setDefaults(Z),this.renderChildren(Z),new FeColorMatrixElement(D,{nodeType:1,childNodes:[],attributes:[{nodeName:"type",value:"luminanceToAlpha"},{nodeName:"includeOpacity",value:"true"}]}).apply(Z,0,0,G+W,U+q);const K=D.createCanvas(G+W,U+q),ie=K.getContext("2d");D.screen.setDefaults(ie),B.render(ie),ie.globalCompositeOperation="destination-in",ie.fillStyle=Z.createPattern(Q,"no-repeat"),ie.fillRect(0,0,G+W,U+q),R.fillStyle=ie.createPattern(K,"no-repeat"),R.fillRect(0,0,G+W,U+q),this.restoreStyles(B,Y)}render(R){}constructor(...R){super(...R),this.type="mask"}}MaskElement.ignoreStyles=["mask","transform","clip-path"];const noop$1=()=>{};class ClipPathElement extends Element$2{apply(R){const{document:B}=this,D=Reflect.getPrototypeOf(R),{beginPath:G,closePath:U}=R;D&&(D.beginPath=noop$1,D.closePath=noop$1),Reflect.apply(G,R,[]),this.children.forEach(W=>{if(!("path"in W))return;let q="elementTransform"in W?W.elementTransform():null;q||(q=Transform.fromElement(B,W)),q&&q.apply(R),W.path(R),D&&(D.closePath=U),q&&q.unapply(R)}),Reflect.apply(U,R,[]),R.clip(),D&&(D.beginPath=G,D.closePath=U)}render(R){}constructor(...R){super(...R),this.type="clipPath"}}class FilterElement extends Element$2{apply(R,B){const{document:D,children:G}=this,U="getBoundingBox"in B?B.getBoundingBox(R):null;if(!U)return;let W=0,q=0;G.forEach(ae=>{const le=ae.extraFilterDistance||0;W=Math.max(W,le),q=Math.max(q,le)});const Y=Math.floor(U.width),Q=Math.floor(U.height),Z=Y+2*W,K=Q+2*q;if(Z<1||K<1)return;const ie=Math.floor(U.x),te=Math.floor(U.y),ne=this.removeStyles(B,FilterElement.ignoreStyles),se=D.createCanvas(Z,K),re=se.getContext("2d");D.screen.setDefaults(re),re.translate(-ie+W,-te+q),B.render(re),G.forEach(ae=>{typeof ae.apply=="function"&&ae.apply(re,0,0,Z,K)}),R.drawImage(se,0,0,Z,K,ie-W,te-q,Z,K),this.restoreStyles(B,ne)}render(R){}constructor(...R){super(...R),this.type="filter"}}FilterElement.ignoreStyles=["filter","transform","clip-path"];class FeDropShadowElement extends Element$2{apply(R,B,D,G,U){}constructor(R,B,D){super(R,B,D),this.type="feDropShadow",this.addStylesFromStyleDefinition()}}class FeMorphologyElement extends Element$2{apply(R,B,D,G,U){}constructor(...R){super(...R),this.type="feMorphology"}}class FeCompositeElement extends Element$2{apply(R,B,D,G,U){}constructor(...R){super(...R),this.type="feComposite"}}class FeGaussianBlurElement extends Element$2{apply(R,B,D,G,U){const{document:W,blurRadius:q}=this,Y=W.window?W.window.document.body:null,Q=R.canvas;Q.id=W.getUniqueId(),Y&&(Q.style.display="none",Y.appendChild(Q)),processCanvasRGBA(Q,B,D,G,U,q),Y&&Y.removeChild(Q)}constructor(R,B,D){super(R,B,D),this.type="feGaussianBlur",this.blurRadius=Math.floor(this.getAttribute("stdDeviation").getNumber()),this.extraFilterDistance=this.blurRadius}}class TitleElement extends Element$2{constructor(...R){super(...R),this.type="title"}}class DescElement extends Element$2{constructor(...R){super(...R),this.type="desc"}}const elements={svg:SVGElement$1,rect:RectElement,circle:CircleElement,ellipse:EllipseElement,line:LineElement,polyline:PolylineElement,polygon:PolygonElement,path:PathElement,pattern:PatternElement,marker:MarkerElement,defs:DefsElement,linearGradient:LinearGradientElement,radialGradient:RadialGradientElement,stop:StopElement,animate:AnimateElement,animateColor:AnimateColorElement,animateTransform:AnimateTransformElement,font:FontElement,"font-face":FontFaceElement,"missing-glyph":MissingGlyphElement,glyph:GlyphElement,text:TextElement,tspan:TSpanElement,tref:TRefElement,a:AElement,textPath:TextPathElement,image:ImageElement,g:GElement,symbol:SymbolElement,style:StyleElement,use:UseElement,mask:MaskElement,clipPath:ClipPathElement,filter:FilterElement,feDropShadow:FeDropShadowElement,feMorphology:FeMorphologyElement,feComposite:FeCompositeElement,feColorMatrix:FeColorMatrixElement,feGaussianBlur:FeGaussianBlurElement,title:TitleElement,desc:DescElement};function createCanvas(F,R){const B=document.createElement("canvas");return B.width=F,B.height=R,B}async function createImage(F){let R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const B=document.createElement("img");return R&&(B.crossOrigin="Anonymous"),new Promise((D,G)=>{B.onload=()=>{D(B)},B.onerror=(U,W,q,Y,Q)=>{G(Q)},B.src=F})}const DEFAULT_EM_SIZE=12;class Document$1{bindCreateImage(R,B){return typeof B=="boolean"?(D,G)=>R(D,typeof G=="boolean"?G:B):R}get window(){return this.screen.window}get fetch(){return this.screen.fetch}get ctx(){return this.screen.ctx}get emSize(){const{emSizeStack:R}=this;return R[R.length-1]||DEFAULT_EM_SIZE}set emSize(R){const{emSizeStack:B}=this;B.push(R)}popEmSize(){const{emSizeStack:R}=this;R.pop()}getUniqueId(){return"canvg".concat(++this.uniqueId)}isImagesLoaded(){return this.images.every(R=>R.loaded)}isFontsLoaded(){return this.fonts.every(R=>R.loaded)}createDocumentElement(R){const B=this.createElement(R.documentElement);return B.root=!0,B.addStylesFromStyleDefinition(),this.documentElement=B,B}createElement(R){const B=R.nodeName.replace(/^[^:]+:/,""),D=Document$1.elementTypes[B];return D?new D(this,R):new UnknownElement(this,R)}createTextNode(R){return new TextNode(this,R)}setViewBox(R){this.screen.setViewBox({document:this,...R})}constructor(R,{rootEmSize:B=DEFAULT_EM_SIZE,emSize:D=DEFAULT_EM_SIZE,createCanvas:G=Document$1.createCanvas,createImage:U=Document$1.createImage,anonymousCrossOrigin:W}={}){this.canvg=R,this.definitions={},this.styles={},this.stylesSpecificity={},this.images=[],this.fonts=[],this.emSizeStack=[],this.uniqueId=0,this.screen=R.screen,this.rootEmSize=B,this.emSize=D,this.createCanvas=G,this.createImage=this.bindCreateImage(U,W),this.screen.wait(()=>this.isImagesLoaded()),this.screen.wait(()=>this.isFontsLoaded())}}Document$1.createCanvas=createCanvas;Document$1.createImage=createImage;Document$1.elementTypes=elements;class Canvg{static async from(R,B){let D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const U=await new Parser$1(D).parse(B);return new Canvg(R,U,D)}static fromString(R,B){let D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const U=new Parser$1(D).parseFromString(B);return new Canvg(R,U,D)}fork(R,B){let D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return Canvg.from(R,B,{...this.options,...D})}forkString(R,B){let D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return Canvg.fromString(R,B,{...this.options,...D})}ready(){return this.screen.ready()}isReady(){return this.screen.isReady()}async render(){let R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.start({enableRedraw:!0,ignoreAnimation:!0,ignoreMouse:!0,...R}),await this.ready(),this.stop()}start(){let R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{documentElement:B,screen:D,options:G}=this;D.start(B,{enableRedraw:!0,...G,...R})}stop(){this.screen.stop()}resize(R){let B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:R,D=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.documentElement.resize(R,B,D)}constructor(R,B,D={}){this.parser=new Parser$1(D),this.screen=new Screen(R,D),this.options=D;const G=new Document$1(this,D),U=G.createDocumentElement(B);this.document=G,this.documentElement=U}}globalThis&&globalThis.__awaiter;globalThis&&globalThis.__awaiter;globalThis&&globalThis.__awaiter;globalThis&&globalThis.__awaiter;globalThis&&globalThis.__awaiter;globalThis&&globalThis.__awaiter;const bg="data:image/png;base64,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",bgImg=new Image;bgImg.src=bg;async function imgToCanvas(F){const R=document.createElement("img");R.src=F,R.setAttribute("crossOrigin","anonymous"),await new Promise(D=>R.onload=D);const B=document.createElement("canvas");return B.width=R.width,B.height=R.height,B.getContext("2d").drawImage(R,0,0),B}function addWatermark(F,R){const G=Math.max(F.width,F.height),U=Math.floor(G/600)*5,W=Math.floor(G/500)*5,q=F.getContext("2d");q.rotate(-30*Math.PI/180),console.log(q);for(let Y=0;Ynew Promise(D=>{this.canvas.toBlob(D)}),this.canvas}});const preset=index.offscreen();function blobToBase64(F){return new Promise((R,B)=>{const D=new FileReader;D.onloadend=()=>R(D.result),D.readAsDataURL(F)})}async function svgtopng(F,R,B){const D=new OffscreenCanvas(R,B),G=D.getContext("2d"),U=await Canvg.fromString(G,F,preset);U.resize(R*2,B*2,"xMidYMid meet"),await U.start();const W=await D.convertToBlob();return await blobToBase64(W)}const feedback="_feedback_vzay6_1",title$1="_title_vzay6_9",wrap$1="_wrap_vzay6_16",btns="_btns_vzay6_22",sub="_sub_vzay6_26",group$1="_group_vzay6_32",text="_text_vzay6_59",submit="_submit_vzay6_79";var styles$6={feedback,title:title$1,wrap:wrap$1,btns,sub,group:group$1,text,submit},__glob_10_0="/orchestra-music-score/assets/back.0e8784e6.svg",__glob_10_1="/orchestra-music-score/assets/setting.39685e69.svg";const header="_header_1l0s0_1",left="_left_1l0s0_10";var styles$5={header,left};function getImageUrl(F){return new URL({"./icons/back.svg":__glob_10_0,"./icons/setting.svg":__glob_10_1}[`./icons/${F}.svg`],self.location).href}const settingPopup$1=ref(null),suggestPopup$1=ref(null);defineComponent({name:"ColexiuHeader",setup(){const[F]=useMenu();return()=>createVNode("div",{class:[styles$5.header,F.value?"animate__animated animate__fadeInDown":"animate__animated animate__fadeOutUp"]},[createVNode("div",{class:styles$5.left},[createVNode(Button,{icon:getImageUrl("back"),onClick:()=>postMessage({api:"back"})},null)]),createVNode(Button,{icon:getImageUrl("setting"),onClick:()=>{var R;console.log(settingPopup$1.value),(R=settingPopup$1.value)==null||R.onShow()},disabled:state.evaluatingStatus},null),createVNode(Popups,{ref:settingPopup$1,style:{borderRadius:"8px"}},{default:()=>[createVNode(Setting,null,null)]}),createVNode(Popups,{ref:suggestPopup$1,overlay:!1,style:{borderRadius:"8px"}},{default:()=>[createVNode(Feedback,null,null)]})])}});var replace=String.prototype.replace,percentTwenties=/%20/g,Format={RFC1738:"RFC1738",RFC3986:"RFC3986"},formats$3={default:Format.RFC3986,formatters:{RFC1738:function(F){return replace.call(F,percentTwenties,"+")},RFC3986:function(F){return String(F)}},RFC1738:Format.RFC1738,RFC3986:Format.RFC3986},formats$2=formats$3,has$2=Object.prototype.hasOwnProperty,isArray$4=Array.isArray,hexTable=function(){for(var F=[],R=0;R<256;++R)F.push("%"+((R<16?"0":"")+R.toString(16)).toUpperCase());return F}(),compactQueue=function F(R){for(;R.length>1;){var B=R.pop(),D=B.obj[B.prop];if(isArray$4(D)){for(var G=[],U=0;U=48&&Q<=57||Q>=65&&Q<=90||Q>=97&&Q<=122||U===formats$2.RFC1738&&(Q===40||Q===41)){q+=W.charAt(Y);continue}if(Q<128){q=q+hexTable[Q];continue}if(Q<2048){q=q+(hexTable[192|Q>>6]+hexTable[128|Q&63]);continue}if(Q<55296||Q>=57344){q=q+(hexTable[224|Q>>12]+hexTable[128|Q>>6&63]+hexTable[128|Q&63]);continue}Y+=1,Q=65536+((Q&1023)<<10|W.charCodeAt(Y)&1023),q+=hexTable[240|Q>>18]+hexTable[128|Q>>12&63]+hexTable[128|Q>>6&63]+hexTable[128|Q&63]}return q},compact=function F(R){for(var B=[{obj:{o:R},prop:"o"}],D=[],G=0;G0?se.join(",")||null:void 0}];else if(isArray$3(q))le=q;else{var ce=Object.keys(se);le=Y?ce.sort(Y):ce}for(var he=0;he0?ie+K:""},utils$1=utils$3,has=Object.prototype.hasOwnProperty,isArray$2=Array.isArray,defaults={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:utils$1.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},interpretNumericEntities=function(F){return F.replace(/&#(\d+);/g,function(R,B){return String.fromCharCode(parseInt(B,10))})},parseArrayValue=function(F,R){return F&&typeof F=="string"&&R.comma&&F.indexOf(",")>-1?F.split(","):F},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function F(R,B){var D={},G=B.ignoreQueryPrefix?R.replace(/^\?/,""):R,U=B.parameterLimit===1/0?void 0:B.parameterLimit,W=G.split(B.delimiter,U),q=-1,Y,Q=B.charset;if(B.charsetSentinel)for(Y=0;Y-1&&(ne=isArray$2(ne)?[ne]:ne),has.call(D,te)?D[te]=utils$1.combine(D[te],ne):D[te]=ne}return D},parseObject=function(F,R,B,D){for(var G=D?R:parseArrayValue(R,B),U=F.length-1;U>=0;--U){var W,q=F[U];if(q==="[]"&&B.parseArrays)W=[].concat(G);else{W=B.plainObjects?Object.create(null):{};var Y=q.charAt(0)==="["&&q.charAt(q.length-1)==="]"?q.slice(1,-1):q,Q=parseInt(Y,10);!B.parseArrays&&Y===""?W={0:G}:!isNaN(Q)&&q!==Y&&String(Q)===Y&&Q>=0&&B.parseArrays&&Q<=B.arrayLimit?(W=[],W[Q]=G):W[Y]=G}G=W}return G},parseKeys=function F(R,B,D,G){if(!!R){var U=D.allowDots?R.replace(/\.([^.[]+)/g,"[$1]"):R,W=/(\[[^[\]]*])/,q=/(\[[^[\]]*])/g,Y=D.depth>0&&W.exec(U),Q=Y?U.slice(0,Y.index):U,Z=[];if(Q){if(!D.plainObjects&&has.call(Object.prototype,Q)&&!D.allowPrototypes)return;Z.push(Q)}for(var K=0;D.depth>0&&(Y=q.exec(U))!==null&&K-1};function normalizeName(F){if(typeof F!="string"&&(F=String(F)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(F)||F==="")throw new TypeError('Invalid character in header field name: "'+F+'"');return F.toLowerCase()}function normalizeValue(F){return typeof F!="string"&&(F=String(F)),F}function iteratorFor(F){var R={next:function(){var B=F.shift();return{done:B===void 0,value:B}}};return support.iterable&&(R[Symbol.iterator]=function(){return R}),R}function Headers(F){this.map={},F instanceof Headers?F.forEach(function(R,B){this.append(B,R)},this):Array.isArray(F)?F.forEach(function(R){this.append(R[0],R[1])},this):F&&Object.getOwnPropertyNames(F).forEach(function(R){this.append(R,F[R])},this)}Headers.prototype.append=function(F,R){F=normalizeName(F),R=normalizeValue(R);var B=this.map[F];this.map[F]=B?B+", "+R:R};Headers.prototype.delete=function(F){delete this.map[normalizeName(F)]};Headers.prototype.get=function(F){return F=normalizeName(F),this.has(F)?this.map[F]:null};Headers.prototype.has=function(F){return this.map.hasOwnProperty(normalizeName(F))};Headers.prototype.set=function(F,R){this.map[normalizeName(F)]=normalizeValue(R)};Headers.prototype.forEach=function(F,R){for(var B in this.map)this.map.hasOwnProperty(B)&&F.call(R,this.map[B],B,this)};Headers.prototype.keys=function(){var F=[];return this.forEach(function(R,B){F.push(B)}),iteratorFor(F)};Headers.prototype.values=function(){var F=[];return this.forEach(function(R){F.push(R)}),iteratorFor(F)};Headers.prototype.entries=function(){var F=[];return this.forEach(function(R,B){F.push([B,R])}),iteratorFor(F)};support.iterable&&(Headers.prototype[Symbol.iterator]=Headers.prototype.entries);function consumed(F){if(F.bodyUsed)return Promise.reject(new TypeError("Already read"));F.bodyUsed=!0}function fileReaderReady(F){return new Promise(function(R,B){F.onload=function(){R(F.result)},F.onerror=function(){B(F.error)}})}function readBlobAsArrayBuffer(F){var R=new FileReader,B=fileReaderReady(R);return R.readAsArrayBuffer(F),B}function readBlobAsText(F){var R=new FileReader,B=fileReaderReady(R);return R.readAsText(F),B}function readArrayBufferAsText(F){for(var R=new Uint8Array(F),B=new Array(R.length),D=0;D=0&&typeof this._bodyInit!="string"&&(this._bodyInit=this._bodyText):typeof F=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):support.searchParams&&URLSearchParams.prototype.isPrototypeOf(F)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8")},support.blob&&(this.blob=function(){var F=consumed(this);if(F)return F;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var F=consumed(this);return F||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else return this.blob().then(readBlobAsArrayBuffer)}),this.text=function(){var F=consumed(this);if(F)return F;if(this._bodyBlob)return readBlobAsText(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},support.formData&&(this.formData=function(){return this.text().then(decode$1)}),this.json=function(){return this.text().then(JSON.parse)},this}var methods=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function normalizeMethod(F){var R=F.toUpperCase();return methods.indexOf(R)>-1?R:F}function Request(F,R){if(!(this instanceof Request))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');R=R||{};var B=R.body;if(F instanceof Request){if(F.bodyUsed)throw new TypeError("Already read");this.url=F.url,this.credentials=F.credentials,R.headers||(this.headers=new Headers(F.headers)),this.method=F.method,this.mode=F.mode,this.signal=F.signal,!B&&F._bodyInit!=null&&(B=F._bodyInit,F.bodyUsed=!0)}else this.url=String(F);if(this.credentials=R.credentials||this.credentials||"same-origin",(R.headers||!this.headers)&&(this.headers=new Headers(R.headers)),this.method=normalizeMethod(R.method||this.method||"GET"),this.mode=R.mode||this.mode||null,this.signal=R.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&B)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(B),(this.method==="GET"||this.method==="HEAD")&&(R.cache==="no-store"||R.cache==="no-cache")){var D=/([?&])_=[^&]*/;if(D.test(this.url))this.url=this.url.replace(D,"$1_="+new Date().getTime());else{var G=/\?/;this.url+=(G.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}Request.prototype.clone=function(){return new Request(this,{body:this._bodyInit})};function decode$1(F){var R=new FormData;return F.trim().split("&").forEach(function(B){if(B){var D=B.split("="),G=D.shift().replace(/\+/g," "),U=D.join("=").replace(/\+/g," ");R.append(decodeURIComponent(G),decodeURIComponent(U))}}),R}function parseHeaders(F){var R=new Headers,B=F.replace(/\r?\n[\t ]+/g," ");return B.split("\r").map(function(D){return D.indexOf(` `)===0?D.substr(1,D.length):D}).forEach(function(D){var G=D.split(":"),U=G.shift().trim();if(U){var W=G.join(":").trim();R.append(U,W)}}),R}Body.call(Request.prototype);function Response(F,R){if(!(this instanceof Response))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');R||(R={}),this.type="default",this.status=R.status===void 0?200:R.status,this.ok=this.status>=200&&this.status<300,this.statusText=R.statusText===void 0?"":""+R.statusText,this.headers=new Headers(R.headers),this.url=R.url||"",this._initBody(F)}Body.call(Response.prototype);Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url})};Response.error=function(){var F=new Response(null,{status:0,statusText:""});return F.type="error",F};var redirectStatuses=[301,302,303,307,308];Response.redirect=function(F,R){if(redirectStatuses.indexOf(R)===-1)throw new RangeError("Invalid status code");return new Response(null,{status:R,headers:{location:F}})};var DOMException=global$1.DOMException;try{new DOMException}catch(F){DOMException=function(R,B){this.message=R,this.name=B;var D=Error(R);this.stack=D.stack},DOMException.prototype=Object.create(Error.prototype),DOMException.prototype.constructor=DOMException}function fetch$2(F,R){return new Promise(function(B,D){var G=new Request(F,R);if(G.signal&&G.signal.aborted)return D(new DOMException("Aborted","AbortError"));var U=new XMLHttpRequest;function W(){U.abort()}U.onload=function(){var Y={status:U.status,statusText:U.statusText,headers:parseHeaders(U.getAllResponseHeaders()||"")};Y.url="responseURL"in U?U.responseURL:Y.headers.get("X-Request-URL");var Q="response"in U?U.response:U.responseText;setTimeout(function(){B(new Response(Q,Y))},0)},U.onerror=function(){setTimeout(function(){D(new TypeError("Network request failed"))},0)},U.ontimeout=function(){setTimeout(function(){D(new TypeError("Network request failed"))},0)},U.onabort=function(){setTimeout(function(){D(new DOMException("Aborted","AbortError"))},0)};function q(Y){try{return Y===""&&global$1.location.href?global$1.location.href:Y}catch{return Y}}U.open(G.method,q(G.url),!0),G.credentials==="include"?U.withCredentials=!0:G.credentials==="omit"&&(U.withCredentials=!1),"responseType"in U&&(support.blob?U.responseType="blob":support.arrayBuffer&&G.headers.get("Content-Type")&&G.headers.get("Content-Type").indexOf("application/octet-stream")!==-1&&(U.responseType="arraybuffer")),R&&typeof R.headers=="object"&&!(R.headers instanceof Headers)?Object.getOwnPropertyNames(R.headers).forEach(function(Y){U.setRequestHeader(Y,normalizeValue(R.headers[Y]))}):G.headers.forEach(function(Y,Q){U.setRequestHeader(Q,Y)}),G.signal&&(G.signal.addEventListener("abort",W),U.onreadystatechange=function(){U.readyState===4&&G.signal.removeEventListener("abort",W)}),U.send(typeof G._bodyInit=="undefined"?null:G._bodyInit)})}fetch$2.polyfill=!0;global$1.fetch||(global$1.fetch=fetch$2,global$1.Headers=Headers,global$1.Request=Request,global$1.Response=Response);self.fetch.bind(self);function _defineProperty(F,R,B){return R in F?Object.defineProperty(F,R,{value:B,enumerable:!0,configurable:!0,writable:!0}):F[R]=B,F}var defineProperty=_defineProperty;function _objectSpread(F){for(var R=1;R1&&arguments[1]!==void 0?arguments[1]:{global:!1,core:!1,defaultInstance:!1},G=!1,U=!1,W=!1;if(typeof D=="number"?(process&&process.env,G=!0,U=!1):_typeof_1(D)==="object"&&D&&(U=D.global||!1,G=D.core||!1,W=D.defaultInstance||!1),U){F.globalMiddlewares.splice(F.globalMiddlewares.length-F.defaultGlobalMiddlewaresLength,0,B);return}if(G){F.coreMiddlewares.splice(F.coreMiddlewares.length-F.defaultCoreMiddlewaresLength,0,B);return}if(W){this.defaultMiddlewares.push(B);return}this.middlewares.push(B)}},{key:"execute",value:function(){var B=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,D=compose([].concat(toConsumableArray(this.middlewares),toConsumableArray(this.defaultMiddlewares),toConsumableArray(F.globalMiddlewares),toConsumableArray(F.coreMiddlewares)));return D(B)}}]),F}();Onion.globalMiddlewares=[];Onion.defaultGlobalMiddlewaresLength=0;Onion.coreMiddlewares=[];Onion.defaultCoreMiddlewaresLength=0;function _assertThisInitialized(F){if(F===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return F}var assertThisInitialized=_assertThisInitialized;function _possibleConstructorReturn(F,R){return R&&(_typeof_1(R)==="object"||typeof R=="function")?R:assertThisInitialized(F)}var possibleConstructorReturn=_possibleConstructorReturn,getPrototypeOf=createCommonjsModule(function(F){function R(B){return F.exports=R=Object.setPrototypeOf?Object.getPrototypeOf:function(G){return G.__proto__||Object.getPrototypeOf(G)},R(B)}F.exports=R}),setPrototypeOf=createCommonjsModule(function(F){function R(B,D){return F.exports=R=Object.setPrototypeOf||function(U,W){return U.__proto__=W,U},R(B,D)}F.exports=R});function _inherits(F,R){if(typeof R!="function"&&R!==null)throw new TypeError("Super expression must either be null or a function");F.prototype=Object.create(R&&R.prototype,{constructor:{value:F,writable:!0,configurable:!0}}),R&&setPrototypeOf(F,R)}var inherits=_inherits;function _isNativeFunction(F){return Function.toString.call(F).indexOf("[native code]")!==-1}var isNativeFunction=_isNativeFunction,construct=createCommonjsModule(function(F){function R(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function B(D,G,U){return R()?F.exports=B=Reflect.construct:F.exports=B=function(q,Y,Q){var Z=[null];Z.push.apply(Z,Y);var K=Function.bind.apply(q,Z),ie=new K;return Q&&setPrototypeOf(ie,Q.prototype),ie},B.apply(null,arguments)}F.exports=B}),wrapNativeSuper=createCommonjsModule(function(F){function R(B){var D=typeof Map=="function"?new Map:void 0;return F.exports=R=function(U){if(U===null||!isNativeFunction(U))return U;if(typeof U!="function")throw new TypeError("Super expression must either be null or a function");if(typeof D!="undefined"){if(D.has(U))return D.get(U);D.set(U,W)}function W(){return construct(U,arguments,getPrototypeOf(this).constructor)}return W.prototype=Object.create(U.prototype,{constructor:{value:W,enumerable:!1,writable:!0,configurable:!0}}),setPrototypeOf(W,U)},R(B)}F.exports=R}),MapCache=function(){function F(R){classCallCheck(this,F),this.cache=new Map,this.timer={},this.extendOptions(R)}return createClass(F,[{key:"extendOptions",value:function(B){this.maxCache=B.maxCache||0}},{key:"get",value:function(B){return this.cache.get(JSON.stringify(B))}},{key:"set",value:function(B,D){var G=this,U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:6e4;if(this.maxCache>0&&this.cache.size>=this.maxCache){var W=toConsumableArray(this.cache.keys())[0];this.cache.delete(W),this.timer[W]&&clearTimeout(this.timer[W])}var q=JSON.stringify(B);this.cache.set(q,D),U>0&&(this.timer[q]=setTimeout(function(){G.cache.delete(q),delete G.timer[q]},U))}},{key:"delete",value:function(B){var D=JSON.stringify(B);return delete this.timer[D],this.cache.delete(D)}},{key:"clear",value:function(){return this.timer={},this.cache.clear()}}]),F}(),RequestError=function(F){inherits(R,F);function R(B,D){var G,U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"RequestError";return classCallCheck(this,R),G=possibleConstructorReturn(this,getPrototypeOf(R).call(this,B)),G.name="RequestError",G.request=D,G.type=U,G}return R}(wrapNativeSuper(Error)),ResponseError=function(F){inherits(R,F);function R(B,D,G,U){var W,q=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"ResponseError";return classCallCheck(this,R),W=possibleConstructorReturn(this,getPrototypeOf(R).call(this,D||B.statusText)),W.name="ResponseError",W.data=G,W.response=B,W.request=U,W.type=q,W}return R}(wrapNativeSuper(Error));function readerGBK(F){return new Promise(function(R,B){var D=new FileReader;D.onload=function(){R(D.result)},D.onerror=B,D.readAsText(F,"GBK")})}function safeJsonParse(F){var R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,B=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,D=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;try{return JSON.parse(F)}catch{if(R)throw new ResponseError(B,"JSON.parse fail",F,D,"ParseError")}return F}function timeout2Throw(F,R){return new Promise(function(B,D){setTimeout(function(){D(new RequestError("timeout of ".concat(F,"ms exceeded"),R,"Timeout"))},F)})}function cancel2Throw(F){return new Promise(function(R,B){F.cancelToken&&F.cancelToken.promise.then(function(D){B(D)})})}var toString$2=Object.prototype.toString;function getEnv(){var F;return typeof process!="undefined"&&toString$2.call(process)==="[object process]"&&(F="NODE"),typeof XMLHttpRequest!="undefined"&&(F="BROWSER"),F}function isArray$1(F){return _typeof_1(F)==="object"&&Object.prototype.toString.call(F)==="[object Array]"}function isURLSearchParams(F){return typeof URLSearchParams!="undefined"&&F instanceof URLSearchParams}function isDate(F){return _typeof_1(F)==="object"&&Object.prototype.toString.call(F)==="[object Date]"}function isObject(F){return F!==null&&_typeof_1(F)==="object"}function forEach2ObjArr(F,R){if(!!F)if(_typeof_1(F)!=="object"&&(F=[F]),isArray$1(F))for(var B=0;B1&&arguments[1]!==void 0?arguments[1]:{},D=B.prefix,G=B.suffix;return D&&(R="".concat(D).concat(R)),G&&(R="".concat(R).concat(G)),{url:R,options:B}},warnedCoreType=!1;function __defaultValidateCache(F,R){var B=R.method,D=B===void 0?"get":B;return D.toLowerCase()==="get"}function fetchMiddleware(F,R){if(!F)return R();var B=F.req;B=B===void 0?{}:B;var D=B.options,G=D===void 0?{}:D,U=B.url,W=U===void 0?"":U,q=F.cache,Y=F.responseInterceptors,Q=G.timeout,Z=Q===void 0?0:Q,K=G.__umiRequestCoreType__,ie=K===void 0?"normal":K,te=G.useCache,ne=te===void 0?!1:te,se=G.method,re=se===void 0?"get":se,ae=G.params,le=G.ttl,ce=G.validateCache,he=ce===void 0?__defaultValidateCache:ce;if(ie!=="normal")return process&&process.env,R();var pe=fetch;if(!pe)throw new Error("Global fetch not exist!");var me=getEnv()==="BROWSER",fe=he(W,G)&&ne&&me;if(fe){var ge=q.get({url:W,params:ae,method:re});if(ge)return ge=ge.clone(),ge.useCache=!0,F.res=ge,R()}var Se;return Z>0?Se=Promise.race([cancel2Throw(G),pe(W,G),timeout2Throw(Z,F.req)]):Se=Promise.race([cancel2Throw(G),pe(W,G)]),Y.forEach(function(Ee){Se=Se.then(function(ve){var xe=typeof ve.clone=="function"?ve.clone():ve;return Ee(xe,G)})}),Se.then(function(Ee){if(fe&&Ee.status===200){var ve=Ee.clone();ve.useCache=!0,q.set({url:W,params:ae,method:re},ve,le)}return F.res=Ee,R()})}function parseResponseMiddleware(F,R){var B;return R().then(function(){if(!!F){var D=F.res,G=D===void 0?{}:D,U=F.req,W=U===void 0?{}:U,q=W||{},Y=q.options;Y=Y===void 0?{}:Y;var Q=Y.responseType,Z=Q===void 0?"json":Q,K=Y.charset,ie=K===void 0?"utf8":K;Y.getResponse;var te=Y.throwErrIfParseFail,ne=te===void 0?!1:te,se=Y.parseResponse,re=se===void 0?!0:se;if(!!re&&!(!G||!G.clone)){if(B=getEnv()==="BROWSER"?G.clone():G,B.useCache=G.useCache||!1,ie==="gbk")try{return G.blob().then(readerGBK).then(function(ae){return safeJsonParse(ae,!1,B,W)})}catch(ae){throw new ResponseError(B,ae.message,null,W,"ParseError")}else if(Z==="json")return G.text().then(function(ae){return safeJsonParse(ae,ne,B,W)});try{return G[Z]()}catch{throw new ResponseError(B,"responseType not support",null,W,"ParseError")}}}}).then(function(D){if(!!F){F.res;var G=F.req,U=G===void 0?{}:G,W=U||{},q=W.options;q=q===void 0?{}:q;var Y=q.getResponse,Q=Y===void 0?!1:Y;if(!!B){if(B.status>=200&&B.status<300){if(Q){F.res={data:D,response:B};return}F.res=D;return}throw new ResponseError(B,"http error",D,U,"HttpError")}}}).catch(function(D){if(D instanceof RequestError||D instanceof ResponseError)throw D;var G=F.req,U=F.res;throw D.request=D.request||G,D.response=D.response||U,D.type=D.type||D.name,D.data=D.data||void 0,D})}function simplePostMiddleware(F,R){if(!F)return R();var B=F.req;B=B===void 0?{}:B;var D=B.options,G=D===void 0?{}:D,U=G.method,W=U===void 0?"get":U;if(["post","put","patch","delete"].indexOf(W.toLowerCase())===-1)return R();var q=G.requestType,Y=q===void 0?"json":q,Q=G.data;if(Q){var Z=Object.prototype.toString.call(Q);Z==="[object Object]"||Z==="[object Array]"?Y==="json"?(G.headers=objectSpread({Accept:"application/json","Content-Type":"application/json;charset=UTF-8"},G.headers),G.body=JSON.stringify(Q)):Y==="form"&&(G.headers=objectSpread({Accept:"application/json","Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},G.headers),G.body=reqStringify(Q)):(G.headers=objectSpread({Accept:"application/json"},G.headers),G.body=Q)}return F.req.options=G,R()}function paramsSerialize(F,R){var B,D;if(F)if(R)B=R(F);else if(isURLSearchParams(F))B=F.toString();else if(isArray$1(F))D=[],forEach2ObjArr(F,function(U){U===null||typeof U=="undefined"?D.push(U):D.push(isObject(U)?JSON.stringify(U):U)}),B=reqStringify(D);else{D={},forEach2ObjArr(F,function(U,W){var q=U;U===null||typeof U=="undefined"?D[W]=U:isDate(U)?q=U.toISOString():isArray$1(U)?q=U:isObject(U)&&(q=JSON.stringify(U)),D[W]=q});var G=reqStringify(D);B=G}return B}function simpleGetMiddleware(F,R){if(!F)return R();var B=F.req;B=B===void 0?{}:B;var D=B.options,G=D===void 0?{}:D,U=G.paramsSerializer,W=G.params,q=F.req;q=q===void 0?{}:q;var Y=q.url,Q=Y===void 0?"":Y;G.method=G.method?G.method.toUpperCase():"GET",G.credentials=G.credentials||"same-origin";var Z=paramsSerialize(W,U);if(F.req.originUrl=Q,Z){var K=Q.indexOf("?")!==-1?"&":"?";F.req.url="".concat(Q).concat(K).concat(Z)}return F.req.options=G,R()}var globalMiddlewares=[simplePostMiddleware,simpleGetMiddleware,parseResponseMiddleware],coreMiddlewares=[fetchMiddleware];Onion.globalMiddlewares=globalMiddlewares;Onion.defaultGlobalMiddlewaresLength=globalMiddlewares.length;Onion.coreMiddlewares=coreMiddlewares;Onion.defaultCoreMiddlewaresLength=coreMiddlewares.length;var Core=function(){function F(R){classCallCheck(this,F),this.onion=new Onion([]),this.fetchIndex=0,this.mapCache=new MapCache(R),this.initOptions=R,this.instanceRequestInterceptors=[],this.instanceResponseInterceptors=[]}return createClass(F,[{key:"use",value:function(B){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{global:!1,core:!1};return this.onion.use(B,D),this}},{key:"extendOptions",value:function(B){this.initOptions=mergeRequestOptions(this.initOptions,B),this.mapCache.extendOptions(B)}},{key:"dealRequestInterceptors",value:function(B){var D=function(W,q){return W.then(function(){var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return B.req.url=Y.url||B.req.url,B.req.options=Y.options||B.req.options,q(B.req.url,B.req.options)})},G=[].concat(toConsumableArray(F.requestInterceptors),toConsumableArray(this.instanceRequestInterceptors));return G.reduce(D,Promise.resolve()).then(function(){var U=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return B.req.url=U.url||B.req.url,B.req.options=U.options||B.req.options,Promise.resolve()})}},{key:"request",value:function(B,D){var G=this,U=this.onion,W={req:{url:B,options:D},res:null,cache:this.mapCache,responseInterceptors:[].concat(toConsumableArray(F.responseInterceptors),toConsumableArray(this.instanceResponseInterceptors))};if(typeof B!="string")throw new Error("url MUST be a string");return new Promise(function(q,Y){G.dealRequestInterceptors(W).then(function(){return U.execute(W)}).then(function(){q(W.res)}).catch(function(Q){var Z=W.req.options.errorHandler;if(Z)try{var K=Z(Q);q(K)}catch(ie){Y(ie)}else Y(Q)})})}}],[{key:"requestUse",value:function(B){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{global:!0};if(typeof B!="function")throw new TypeError("Interceptor must be function!");D.global?F.requestInterceptors.push(B):this.instanceRequestInterceptors.push(B)}},{key:"responseUse",value:function(B){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{global:!0};if(typeof B!="function")throw new TypeError("Interceptor must be function!");D.global?F.responseInterceptors.push(B):this.instanceResponseInterceptors.push(B)}}]),F}();Core.requestInterceptors=[addfix];Core.responseInterceptors=[];function Cancel(F){this.message=F}Cancel.prototype.toString=function F(){return this.message?"Cancel: ".concat(this.message):"Cancel"};Cancel.prototype.__CANCEL__=!0;function CancelToken(F){if(typeof F!="function")throw new TypeError("executor must be a function.");var R;this.promise=new Promise(function(G){R=G});var B=this;F(function(G){B.reason||(B.reason=new Cancel(G),R(B.reason))})}CancelToken.prototype.throwIfRequested=function F(){if(this.reason)throw this.reason};CancelToken.source=function F(){var R,B=new CancelToken(function(G){R=G});return{token:B,cancel:R}};function isCancel(F){return!!(F&&F.__CANCEL__)}var request$1=function F(){var R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},B=new Core(R),D=function(W){var q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Y=mergeRequestOptions(B.initOptions,q);return B.request(W,Y)};D.use=B.use.bind(B),D.fetchIndex=B.fetchIndex,D.interceptors={request:{use:Core.requestUse.bind(B)},response:{use:Core.responseUse.bind(B)}};var G=["get","post","delete","put","patch","head","options","rpc"];return G.forEach(function(U){D[U]=function(W,q){return D(W,objectSpread({},q,{method:U}))}}),D.Cancel=Cancel,D.CancelToken=CancelToken,D.isCancel=isCancel,D.extendOptions=B.extendOptions.bind(B),D.middlewares={instance:B.onion.middlewares,defaultInstance:B.onion.defaultMiddlewares,global:Onion.globalMiddlewares,core:Onion.coreMiddlewares},D},extend$1=function F(R){return request$1(R)};request$1({parseResponse:!1});var request$1$1=request$1({}),lodash_isempty={exports:{}};(function(F,R){var B=9007199254740991,D="[object Arguments]",G="[object Function]",U="[object GeneratorFunction]",W="[object Map]",q="[object Object]",Y="[object Promise]",Q="[object Set]",Z="[object WeakMap]",K="[object DataView]",ie=/[\\^$.*+?()[\]{}|]/g,te=/^\[object .+?Constructor\]$/,ne=typeof commonjsGlobal$2=="object"&&commonjsGlobal$2&&commonjsGlobal$2.Object===Object&&commonjsGlobal$2,se=typeof self=="object"&&self&&self.Object===Object&&self,re=ne||se||Function("return this")(),ae=R&&!R.nodeType&&R,le=ae&&!0&&F&&!F.nodeType&&F,ce=le&&le.exports===ae;function he(gt,Tt){return gt==null?void 0:gt[Tt]}function pe(gt){var Tt=!1;if(gt!=null&&typeof gt.toString!="function")try{Tt=!!(gt+"")}catch{}return Tt}function me(gt,Tt){return function(Rt){return gt(Tt(Rt))}}var fe=Function.prototype,ge=Object.prototype,Se=re["__core-js_shared__"],Ee=function(){var gt=/[^.]+$/.exec(Se&&Se.keys&&Se.keys.IE_PROTO||"");return gt?"Symbol(src)_1."+gt:""}(),ve=fe.toString,xe=ge.hasOwnProperty,Me=ge.toString,ye=RegExp("^"+ve.call(xe).replace(ie,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),we=ce?re.Buffer:void 0,Re=ge.propertyIsEnumerable,Pe=we?we.isBuffer:void 0,Ae=me(Object.keys,Object),Le=yt(re,"DataView"),Ne=yt(re,"Map"),Ie=yt(re,"Promise"),_e=yt(re,"Set"),Ve=yt(re,"WeakMap"),qe=!Re.call({valueOf:1},"valueOf"),Ge=Ke(Le),He=Ke(Ne),Qe=Ke(Ie),We=Ke(_e),Ze=Ke(Ve);function lt(gt){return Me.call(gt)}function ht(gt){if(!pt(gt)||Te(gt))return!1;var Tt=ct(gt)||pe(gt)?ye:te;return Tt.test(Ke(gt))}function yt(gt,Tt){var Rt=he(gt,Tt);return ht(Rt)?Rt:void 0}var Fe=lt;(Le&&Fe(new Le(new ArrayBuffer(1)))!=K||Ne&&Fe(new Ne)!=W||Ie&&Fe(Ie.resolve())!=Y||_e&&Fe(new _e)!=Q||Ve&&Fe(new Ve)!=Z)&&(Fe=function(gt){var Tt=Me.call(gt),Rt=Tt==q?gt.constructor:void 0,Ht=Rt?Ke(Rt):void 0;if(Ht)switch(Ht){case Ge:return K;case He:return W;case Qe:return Y;case We:return Q;case Ze:return Z}return Tt});function Te(gt){return!!Ee&&Ee in gt}function je(gt){var Tt=gt&>.constructor,Rt=typeof Tt=="function"&&Tt.prototype||ge;return gt===Rt}function Ke(gt){if(gt!=null){try{return ve.call(gt)}catch{}try{return gt+""}catch{}}return""}function Oe(gt){return it(gt)&&xe.call(gt,"callee")&&(!Re.call(gt,"callee")||Me.call(gt)==D)}var De=Array.isArray;function et(gt){return gt!=null&&dt(gt.length)&&!ct(gt)}function it(gt){return vt(gt)&&et(gt)}var rt=Pe||wt;function Je(gt){if(et(gt)&&(De(gt)||typeof gt=="string"||typeof gt.splice=="function"||rt(gt)||Oe(gt)))return!gt.length;var Tt=Fe(gt);if(Tt==W||Tt==Q)return!gt.size;if(qe||je(gt))return!Ae(gt).length;for(var Rt in gt)if(xe.call(gt,Rt))return!1;return!0}function ct(gt){var Tt=pt(gt)?Me.call(gt):"";return Tt==G||Tt==U}function dt(gt){return typeof gt=="number"&>>-1&>%1==0&><=B}function pt(gt){var Tt=typeof gt;return!!gt&&(Tt=="object"||Tt=="function")}function vt(gt){return!!gt&&typeof gt=="object"}function wt(){return!1}F.exports=Je})(lodash_isempty,lodash_isempty.exports);var objectTag="[object Object]";function isHostObject(F){var R=!1;if(F!=null&&typeof F.toString!="function")try{R=!!(F+"")}catch{}return R}function overArg(F,R){return function(B){return F(R(B))}}var funcProto=Function.prototype,objectProto=Object.prototype,funcToString=funcProto.toString,hasOwnProperty=objectProto.hasOwnProperty,objectCtorString=funcToString.call(Object),objectToString=objectProto.toString,getPrototype=overArg(Object.getPrototypeOf,Object);function isObjectLike(F){return!!F&&typeof F=="object"}function isPlainObject$1(F){if(!isObjectLike(F)||objectToString.call(F)!=objectTag||isHostObject(F))return!1;var R=getPrototype(F);if(R===null)return!0;var B=hasOwnProperty.call(R,"constructor")&&R.constructor;return typeof B=="function"&&B instanceof B&&funcToString.call(B)==objectCtorString}var lodash_isplainobject=isPlainObject$1,lodash_transform={exports:{}};(function(F,R){var B=200,D="Expected a function",G="__lodash_hash_undefined__",U=1,W=2,q=1/0,Y=9007199254740991,Q="[object Arguments]",Z="[object Array]",K="[object Boolean]",ie="[object Date]",te="[object Error]",ne="[object Function]",se="[object GeneratorFunction]",re="[object Map]",ae="[object Number]",le="[object Object]",ce="[object Promise]",he="[object RegExp]",pe="[object Set]",me="[object String]",fe="[object Symbol]",ge="[object WeakMap]",Se="[object ArrayBuffer]",Ee="[object DataView]",ve="[object Float32Array]",xe="[object Float64Array]",Me="[object Int8Array]",ye="[object Int16Array]",we="[object Int32Array]",Re="[object Uint8Array]",Pe="[object Uint8ClampedArray]",Ae="[object Uint16Array]",Le="[object Uint32Array]",Ne=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ie=/^\w*$/,_e=/^\./,Ve=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,qe=/[\\^$.*+?()[\]{}|]/g,Ge=/\\(\\)?/g,He=/^\[object .+?Constructor\]$/,Qe=/^(?:0|[1-9]\d*)$/,We={};We[ve]=We[xe]=We[Me]=We[ye]=We[we]=We[Re]=We[Pe]=We[Ae]=We[Le]=!0,We[Q]=We[Z]=We[Se]=We[K]=We[Ee]=We[ie]=We[te]=We[ne]=We[re]=We[ae]=We[le]=We[he]=We[pe]=We[me]=We[ge]=!1;var Ze=typeof commonjsGlobal$2=="object"&&commonjsGlobal$2&&commonjsGlobal$2.Object===Object&&commonjsGlobal$2,lt=typeof self=="object"&&self&&self.Object===Object&&self,ht=Ze||lt||Function("return this")(),yt=R&&!R.nodeType&&R,Fe=yt&&!0&&F&&!F.nodeType&&F,Te=Fe&&Fe.exports===yt,je=Te&&Ze.process,Ke=function(){try{return je&&je.binding("util")}catch{}}(),Oe=Ke&&Ke.isTypedArray;function De(Ue,st){for(var bt=-1,Pt=Ue?Ue.length:0;++bt-1}function Bs(Ue,st){var bt=this.__data__,Pt=as(bt,Ue);return Pt<0?bt.push([Ue,st]):bt[Pt][1]=st,this}wn.prototype.clear=ga,wn.prototype.delete=yl,wn.prototype.get=vl,wn.prototype.has=Ns,wn.prototype.set=Bs;function pn(Ue){var st=-1,bt=Ue?Ue.length:0;for(this.clear();++stNt))return!1;var Ci=kt.get(Ue);if(Ci&&kt.get(st))return Ci==st;var ki=-1,Vi=!0,Ii=Ft&U?new Xr:void 0;for(kt.set(Ue,st),kt.set(st,Ue);++ki-1&&Ue%1==0&&Ue-1&&Ue%1==0&&Ue<=Y}function on(Ue){var st=typeof Ue;return!!Ue&&(st=="object"||st=="function")}function xr(Ue){return!!Ue&&typeof Ue=="object"}function Oi(Ue){return typeof Ue=="symbol"||xr(Ue)&&vi.call(Ue)==fe}var Ki=Oe?Je(Oe):ir;function _a(Ue){return Ue==null?"":Pa(Ue)}function Ia(Ue,st,bt){var Pt=Ue==null?void 0:xa(Ue,st);return Pt===void 0?bt:Pt}function La(Ue,st){return Ue!=null&&Ta(Ue,st,Os)}function jr(Ue){return Ma(Ue)?Sa(Ue):Ea(Ue)}function Ra(Ue,st,bt){var Pt=In(Ue)||Ki(Ue);if(st=br(st),bt==null)if(Pt||on(Ue)){var Ft=Ue.constructor;Pt?bt=In(Ue)?new Ft:[]:bt=Ei(Ft)?os(Ai(Ue)):{}}else bt={};return(Pt?De:mo)(Ue,function(kt,Bt,Nt){return st(bt,kt,Bt,Nt)}),bt}function Zi(Ue){return Ue}function ln(Ue){return Us(Ue)?it(Hs(Ue)):wa(Ue)}F.exports=Ra})(lodash_transform,lodash_transform.exports);const isEmpty$1=lodash_isempty.exports,isPlainObject=lodash_isplainobject,transform=lodash_transform.exports;var src=function F(R,{cleanKeys:B=[],cleanValues:D=[],emptyArrays:G=!0,emptyObjects:U=!0,emptyStrings:W=!0,NaNValues:q=!1,nullValues:Y=!0,undefinedValues:Q=!0}={}){return transform(R,(Z,K,ie)=>{if(!B.includes(ie)&&((Array.isArray(K)||isPlainObject(K))&&(K=F(K,{NaNValues:q,cleanKeys:B,cleanValues:D,emptyArrays:G,emptyObjects:U,emptyStrings:W,nullValues:Y,undefinedValues:Q})),!D.includes(K)&&!(U&&isPlainObject(K)&&isEmpty$1(K))&&!(G&&Array.isArray(K)&&!K.length)&&!(W&&K==="")&&!(q&&Number.isNaN(K))&&!(Y&&K===null)&&!(Q&&K===void 0))){if(Array.isArray(Z))return Z.push(K);Z[ie]=K}})};let isOpenLogin=!1;const request=extend$1({requestType:"json",timeout:1e4,prefix:getRequestHostname()});request.use(async(F,R)=>{F.req,await R()});request.interceptors.request.use((F,R)=>{const B=sessionStorage.getItem("Authorization")||"",D={};return B&&!["/api-auth/usernameLogin","/api-auth/smsLogin","/api-auth/code/sendSms"].includes(F)&&(D.Authorization=B),{url:F,options:{...R,params:src(R.params),headers:{...R.headers,...D}}}},{global:!1});request.interceptors.response.use(async(F,R)=>{if(new URL(F.url),F.status>299||F.status<200){const D="\u670D\u52A1\u5668\u9519\u8BEF\uFF0C\u72B6\u6001\u7801"+F.status;throw Toast(D),new Error(D)}const B=await F.clone().json();if(B.code!==200&&B.errCode!==0){const D=B.msg||B.message||"\u5904\u7406\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5";B.code===403||B.code===401||Toast(D);const G=browser();throw B.code===403&&G.isApp&&!isOpenLogin&&(G.android?(postMessage({api:"login"}),window.DAYA.postMessage(JSON.stringify({api:"login"}))):G.iPhone&&window.webkit.messageHandlers.DAYA.postMessage(JSON.stringify({api:"login"}))),new Error(D)}return F},{global:!1});function _isSlot$1(F){return typeof F=="function"||Object.prototype.toString.call(F)==="[object Object]"&&!isVNode(F)}var Feedback=defineComponent({name:"ColexiuFeedBack",setup(){const F=ref("\u8BC6\u522B\u4E0D\u51C6"),R=ref(""),B=ref(!1),D=[{name:"\u8BC6\u522B\u4E0D\u51C6"},{name:"\u65E0\u6CD5\u8BC4\u6D4B"},{name:"\u4E0D\u51FA\u8BC4\u6D4B\u7ED3\u679C"},{name:"\u66F2\u8C31\u4E0D\u4E00\u81F4"},{name:"\u6307\u6CD5\u9519\u8BEF"},{name:"\u5176\u4ED6"}],G=()=>{var U;try{if(!R.value)return Toast("\u8BF7\u5148\u586B\u5199\u610F\u89C1\u53CD\u9988");B.value=!0,request.post("/sysParamConfig/add",{data:{content:R.value+"#"+F.value,type:"SMART_PRACTICE"}}),(U=suggestPopup$1.value)==null||U.close(),Toast("\u610F\u89C1\u53CD\u9988\u5DF2\u63D0\u4EA4")}catch{}B.value=!1};return()=>{let U;return createVNode("div",{class:styles$6.feedback},[createVNode("div",{class:styles$6.wrap},[createVNode("div",{class:styles$6.title},[createTextVNode("\u610F\u89C1\u53CD\u9988")]),createVNode("div",{class:styles$6.sub},[createTextVNode("\u8BF7\u9009\u62E9\u95EE\u9898\u7C7B\u578B\u5907\u4EFD")]),createVNode(RadioGroup,{class:styles$6.group,modelValue:F.value,"onUpdate:modelValue":W=>F.value=W},{default:()=>[createVNode(Row,{gutter:4},_isSlot$1(U=D.map(W=>createVNode(Col,{span:8},{default:()=>[createVNode(Radio,{name:W.name},{default:()=>[W.name]})]})))?U:{default:()=>[U]})]}),createVNode(Field,{type:"textarea",class:styles$6.text,placeholder:"\u8BF7\u8BE6\u7EC6\u63CF\u8FF0\u60A8\u9047\u5230\u7684\u95EE\u9898\uFF0C\u4EE5\u4FBF\u6211\u4EEC\u5C3D\u5FEB\u4E3A\u60A8\u89E3\u51B3\uFF01",maxlength:200,rows:"2",autosize:!0,"show-word-limit":!0,modelValue:R.value,"onUpdate:modelValue":W=>R.value=W},null),createVNode("div",{class:styles$6.btns},[createVNode(Button,{type:"primary",round:!0,onClick:G,class:styles$6.submit},{default:()=>[createTextVNode("\u63D0\u4EA4\u53CD\u9988")]})])])])}}});const suggestPopup=ref(null),confirmShow$1=ref(!1),switchProps$2={"active-color":"#2dc7aa","inactive-color":"#CCCCCC",size:"20px"};var Seet=defineComponent({name:"ColexiuSettingSett",setup(){return()=>createVNode(Fragment,null,[createVNode("div",null,[createVNode(NoticeBar,{class:styles$9.noticebar,"left-icon":InfoIcon,background:"#FFF6E8",color:"var(--van-primary-color)",text:"\u5168\u5C40\u8BBE\u7F6E\u4F1A\u66F4\u6539\u6240\u6709\u4E50\u8C31\u7EC3\u4E60\u53CA\u8BC4\u6D4B"},null),createVNode("div",{class:styles$9.groupBox,style:{height:"auto"}},[createVNode(Cell,{center:!0,border:!1,title:"\u62A4\u773C\u6A21\u5F0F"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.sett.eyeProtection,"onUpdate:modelValue":F=>state$3.sett.eyeProtection=F},switchProps$2),null)]}),createVNode(Divider,null,null)]),createVNode("div",{class:styles$9.btnsbar},[createVNode("div",{class:styles$9.btn,onClick:()=>show.value=!0},[createVNode("img",{class:styles$9.iconBtn,src:iconTv},null),createTextVNode("\u6295\u5C4F\u5E2E\u52A9")]),createVNode("div",{class:styles$9.btn,onClick:()=>{var F;(F=suggestPopup.value)==null||F.onShow()}},[createVNode("img",{class:styles$9.iconBtn,src:iconYijian},null),createTextVNode("\u610F\u89C1\u53CD\u9988")])])]),createVNode(Popups,{ref:suggestPopup,overlay:!1,style:{borderRadius:"8px"}},{default:()=>[createVNode(Feedback,null,null)]}),createVNode(Dialog.Component,{teleport:"body",class:styles$8.confirm,style:{overflow:"initial"},show:confirmShow$1.value,"onUpdate:show":F=>confirmShow$1.value=F,message:"\u8BBE\u7F6E\u6210\u529F\uFF0C\u662F\u5426\u7ACB\u5373\u91CD\u65B0\u52A0\u8F7D\uFF1F"},{title:()=>createVNode("img",{class:styles$8.iconTitle,src:iconTitle$1},null),footer:()=>createVNode("div",{class:styles$8.footer},[createVNode("img",{src:iconCancel,onClick:()=>confirmShow$1.value=!1},null),createVNode("img",{src:iconConfirm,onClick:useReload},null)])})])}});ref(!1);const switchProps$1={"active-color":"#2dc7aa","inactive-color":"#CCCCCC",size:"20px"};var Practise=defineComponent({name:"ColexiuSettingPractise",setup(){return()=>createVNode("div",null,[createVNode("div",{class:styles$9.groupBox},[createVNode(Cell,{center:!0,border:!1,title:"\u5FAA\u73AF\u64AD\u653E"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.sett.loop,"onUpdate:modelValue":F=>state$3.sett.loop=F},switchProps$1),{default:()=>[createTextVNode("off")]})]}),createVNode(Divider,null,null),createVNode(Cell,{center:!0,border:!1,title:"\u663E\u793A\u6307\u6CD5"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.sett.fingering,"onUpdate:modelValue":F=>state$3.sett.fingering=F},switchProps$1,{onChange:F=>{state$3.sett.fingering=F,event$1.emit("settingFingeringChange")}}),{default:()=>[createTextVNode("off")]})]})])])}});const switchProps={};var Evaluat=defineComponent({name:"ColexiuSettingPractise",setup(){return()=>createVNode("div",null,[createVNode("div",{class:styles$9.groupBox},[createVNode(Cell,{center:!0,border:!1,title:"\u8BC4\u6D4B\u96BE\u5EA6"},{default:()=>[createVNode(RadioGroup,{iconSize:20,class:styles$9.radioGroup,modelValue:state$3.eva.difficulty,"onUpdate:modelValue":F=>state$3.eva.difficulty=F},{default:()=>[createVNode(Radio,{name:"BEGINNER"},{default:()=>[createTextVNode("\u5165\u95E8")]}),createVNode(Radio,{name:"ADVANCED"},{default:()=>[createTextVNode("\u8FDB\u9636")]}),createVNode(Radio,{name:"PERFORMER"},{default:()=>[createTextVNode("\u5927\u5E08")]})]})]}),createVNode(Divider,null,null),createVNode(Cell,{center:!0,border:!1,title:"\u6821\u97F3\u63D0\u9192"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.sett.tuning,"onUpdate:modelValue":F=>state$3.sett.tuning=F},switchProps),{default:()=>[createTextVNode("off")]})]}),createVNode(Divider,null,null),createVNode(Cell,{center:!0,border:!1,title:"\u6444\u50CF\u5934"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.sett.camera,"onUpdate:modelValue":F=>state$3.sett.camera=F},switchProps),{default:()=>[createTextVNode("off")]})]}),state$3.sett.camera&&createVNode(Fragment,null,[createVNode(Divider,null,null),createVNode("div",{class:styles$9.sliderWrap},[createVNode("div",{class:"cell__title"},[createTextVNode("\u900F\u660E\u5EA6")]),createVNode(Slider,{min:0,max:100,modelValue:state$3.sett.opacity,"onUpdate:modelValue":F=>state$3.sett.opacity=F},{button:()=>createVNode("div",{class:styles$9.slider},[state$3.sett.opacity])})])]),createVNode(Divider,null,null),createVNode(Cell,{center:!0,border:!1,title:"\u4FDD\u5B58\u5230\u76F8\u518C"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.eva.save,"onUpdate:modelValue":F=>state$3.eva.save=F},switchProps),{default:()=>[createTextVNode("off")]})]}),createVNode(Divider,null,null),createVNode(Cell,{center:!0,border:!1,title:"\u8BC4\u6D4B\u4F34\u594F"},{default:()=>[createVNode(Switch,mergeProps({modelValue:state$3.eva.mute,"onUpdate:modelValue":F=>state$3.eva.mute=F},switchProps),{default:()=>[createTextVNode("off")]})]}),createVNode(Divider,null,null),createVNode(Cell,{center:!0,border:!1,title:"\u6807\u51C6\u97F3\u9AD8"},{default:()=>[createVNode("div",{style:{display:"flex"}},[createVNode(RadioGroup,{iconSize:20,class:styles$9.radioGroup,modelValue:state$3.sett.hertz,"onUpdate:modelValue":F=>state$3.sett.hertz=F},{default:()=>[createVNode(Radio,{name:440},{default:()=>[createTextVNode("440")]}),createVNode(Radio,{name:442},{default:()=>[createTextVNode("442")]})]})])]}),createVNode(Divider,null,null),createVNode(Cell,{center:!0,border:!1,title:"\u53CD\u5E94\u65F6\u95F4(\u6BEB\u79D2)"},{default:()=>[createVNode(Field,{modelValue:state$3.eva.reactionTimeMs,"onUpdate:modelValue":F=>state$3.eva.reactionTimeMs=F,inputAlign:"right",onBlur:()=>{state$3.eva.reactionTimeMs=Math.max(-300,Math.min(300,state$3.eva.reactionTimeMs))||0}},null)]})])])}}),Setting=defineComponent({name:"ColexiuSetting",props:{active:{type:String,default:"1"}},setup(F){return()=>createVNode("div",{class:styles$9.setting},[createVNode(Tabs,{active:F.active},{default:()=>[createVNode(Tab,{title:"\u5168\u5C40\u8BBE\u7F6E",name:"1"},{default:()=>[createVNode(Seet,null,null)]}),createVNode(Tab,{title:"\u7EC3\u4E60\u8BBE\u7F6E",name:"2"},{default:()=>[createVNode(Practise,null,null)]}),createVNode(Tab,{title:"\u8BC4\u6D4B\u8BBE\u7F6E",name:"3"},{default:()=>[createVNode(Evaluat,null,null)]})]})])}}),iconFollowEndBtn="/orchestra-music-score/assets/icon-followEndBtn.e0a26c1c.png",iconEvaluatingEnd="/orchestra-music-score/assets/icon-evaluatingEnd.51749d64.png";const container$2="_container_j7237_1",outUp="_outUp_j7237_19",moreButton="_moreButton_j7237_22",button$1="_button_j7237_26",centerButton="_centerButton_j7237_29",leftButton="_leftButton_j7237_35",titleWrap="_titleWrap_j7237_39",title="_title_j7237_39",album="_album_j7237_50",hasText="_hasText_j7237_63",bigIcon="_bigIcon_j7237_79",evaluatBtn="_evaluatBtn_j7237_86",start$1="_start_j7237_89",icon="_icon_j7237_104",onShow="_onShow_j7237_107",popover="_popover_j7237_110",backbtn="_backbtn_j7237_117",speed="_speed_j7237_121",schedule="_schedule_j7237_160",ring="_ring_j7237_166",speedButton="_speedButton_j7237_176",label="_label_j7237_179",player$1="_player_j7237_190",fullbtn="_fullbtn_j7237_198",finish="_finish_j7237_207",dialogueBox="_dialogueBox_j7237_257",dialogue="_dialogue_j7237_257",dialogueIcon="_dialogueIcon_j7237_283",inRadioIcon="_inRadioIcon_j7237_288",inRadio="_inRadio_j7237_288",animation="_animation_j7237_309",btnMusicList="_btnMusicList_j7237_314",toggleMusicType="_toggleMusicType_j7237_326",slider="_slider_j7237_359",followEndBtn="_followEndBtn_j7237_379";var styles$4={container:container$2,outUp,moreButton,button:button$1,centerButton,leftButton,titleWrap,title,album,hasText,bigIcon,evaluatBtn,start:start$1,icon,onShow,popover,backbtn,speed,schedule,ring,speedButton,label,player:player$1,fullbtn,finish,dialogueBox,dialogue,dialogueIcon,inRadioIcon,inRadio,animation,btnMusicList,toggleMusicType,slider,followEndBtn};const confirmShow=ref(!1),startButtonShow=ref(!0),evaluatingRef=ref({}),settingPopup=ref(null);ref(null);const followRef=ref(null),animate$1={mounted:F=>{F.addEventListener("click",R=>{R.target.classList.add("animate__animated","animate__tada")}),F.addEventListener("animationend",R=>{R.target.classList.remove("animate__animated","animate__tada")})}},back=()=>{sendBackRecordTotalTime(),postMessage({api:"back"})},startEvaluat=()=>{console.log("\u5F00\u59CB\u8BC4\u6D4B"),state.evaluatingStatus=!0,setCurrentTime(0)},modelType=ref("init"),onChangeModelType=F=>{var R;if(F!==modelType.value){if(F==="evaluation")changeSpeed((R=state$2.activeDetail)==null?void 0:R.originalSpeed,!1),startEvaluat();else{const B=store_legacy.get("speeds")||{},D=useOriginSearch();B[D.id]&&changeSpeed(B[D.id])}nextTick(()=>{modelType.value=F})}};var Buttons=defineComponent({name:"Colexiu-Buttons",directives:{animate:animate$1},props:{onSetMusicScoreType:{type:Function,default:F=>{}}},emits:["setMusicScoreType"],setup(F,{emit:R}){const B=useOriginSearch(),D={query:B},[G]=useWiredHeadsetCheck(),U=ref(),[W]=useMenu(),q=ref(!1),Y=()=>{const ne=D.query.modelType;ne&&ne!="evaluation"&&onChangeModelType(ne)};onMounted(()=>{Y()});const Q=ref(!1),Z=ref(""),K=ne=>{Z.value=ne.text,confirmShow.value=!0},ie=()=>{Z.value==="\u4E94\u7EBF\u8C31"?state$3.sett.type="staff":Z.value==="\u7B80\u8C31"?(state$3.sett.type="jianpu",state$3.sett.keySignature=!1):Z.value==="\u56FA\u5B9A\u8C03"&&(state$3.sett.type="jianpu",state$3.sett.keySignature=!0)},te=ne=>{if(ne==="staff")return state$3.sett.type===ne;if(ne==="shoudiao")return state$3.sett.type==="jianpu"&&!state$3.sett.keySignature;if(ne==="guding")return state$3.sett.type==="jianpu"&&state$3.sett.keySignature};return()=>{var se,re,ae,le,ce,he,pe,me,fe;const ne=((se=state$2.activeDetail)!=null&&se.isAppPlay?((re=state$2.activeDetail)==null?void 0:re.midiUrl)==="":state.isFirstPlay||((ae=state.audiosInstance)==null?void 0:ae.length)==1)||state.evaluatingStatus||((le=state$2.activeDetail)==null?void 0:le.isAppPlay)&&state$2.midiPlayIniting;return createVNode("div",{onClick:ge=>ge.stopPropagation(),class:[styles$4.container,W.value?"":styles$4.outUp],style:D.query.headerHeight?{height:"1rem",paddingTop:"0.25rem"}:""},[createVNode("div",{class:styles$4.leftButton},[((ce=D.query)==null?void 0:ce.modelType)&&!D.query.unitId?null:createVNode("img",{class:styles$4.backbtn,src:BackIcon,onClick:back},null),createVNode("div",{class:styles$4.titleWrap},[createVNode("div",{class:styles$4.title},[(he=state$2.activeDetail)==null?void 0:he.musicSheetName]),B.albumName&&createVNode("div",{class:styles$4.album},[B.albumName])])]),createVNode("div",{class:styles$4.centerButton},[createVNode(Transition,{name:"finish"},{default:()=>{var ge;return[G.value&&!((ge=evaluatingRef.value)!=null&&ge.connentLoading)&&!startButtonShow.value&&createVNode(Button,{style:{backgroundImage:`url(${iconEvaluatingEnd})`},class:[styles$4.button,styles$4.finish],onClick:()=>{var Se,Ee;(Ee=(Se=evaluatingRef.value)==null?void 0:Se.playerStop)==null||Ee.call(Se)}},null)]}}),createVNode(Transition,{name:"finish"},{default:()=>{var ge;return[((ge=followRef==null?void 0:followRef.value)==null?void 0:ge.data.start)&&createVNode(Button,{style:{backgroundImage:`url(${iconFollowEndBtn})`},class:[styles$4.button,styles$4.finish,styles$4.followEndBtn],onClick:()=>{var Se,Ee;(Ee=(Se=followRef.value)==null?void 0:Se.handleEnd)==null||Ee.call(Se)}},null)]}})]),createVNode("div",{class:[styles$4.moreButton],style:{opacity:state$2.initRendered?1:0}},[!((pe=D.query)!=null&&pe.modelType)&&modelType.value!=="init"&&!state$2.frozenMode&&createVNode(Button,{"data-step":"m1",class:[styles$4.button,styles$4.hasText],disabled:state.evaluatingStatus&&!startButtonShow.value||((me=followRef.value)==null?void 0:me.data.start),onClick:()=>{var ge,Se,Ee;modelType.value==="practice"&&(resetPlayStatus(),setCurrentTime(0)),modelType.value==="evaluation"&&(state.evaluatingStatus=!1,(((ge=evaluatingRef.value)==null?void 0:ge.playStatus.value)==="play"||((Se=evaluatingRef.value)==null?void 0:Se.playStatus.value)==="connecting")&&((Ee=evaluatingRef.value)==null||Ee.cancelTheEvaluation())),modelType.value="init"}},{default:()=>[createVNode(ButtonIcon,{key:"modelType",name:["init","practice"].includes(modelType.value)?"modelType":["follow"].includes(modelType.value)?"modelType1":"modelType2"},null),createVNode("span",null,[createTextVNode("\u6A21\u5F0F")])]}),modelType.value==="evaluation"&&createVNode(Fragment,null,[createVNode(Popover,{show:q.value,"onUpdate:show":ge=>q.value=ge,overlay:!1,placement:"bottom-end",class:"cameraPopover","show-arrow":!1},{default:()=>[createVNode(CellGroup,{border:!1},{default:()=>[createVNode(Cell,{center:!0,title:"\u6444\u50CF\u5934"},{default:()=>[createVNode("div",{style:"display:flex;justify-content: flex-end;"},[createVNode(Switch,mergeProps({modelValue:state$3.sett.camera,"onUpdate:modelValue":ge=>state$3.sett.camera=ge},switchProps),{default:()=>[createTextVNode("off")]})])]}),state$3.sett.camera&&createVNode(Cell,{class:"cameraOpacity",center:!0,title:"\u900F\u660E\u5EA6"},{default:()=>[createVNode(Slider,{min:0,max:100,modelValue:state$3.sett.opacity,"onUpdate:modelValue":ge=>state$3.sett.opacity=ge},{button:()=>createVNode("div",{class:styles$4.slider},[state$3.sett.opacity])})]})]})],reference:()=>createVNode("div",null,[createVNode(Button,{class:[styles$4.button,styles$4.hasText]},{default:()=>[createVNode(ButtonIcon,{key:"camera",name:"camera"},null),createVNode("span",null,[createTextVNode("\u6444\u50CF\u5934")])]})])}),createVNode(Evaluating,{ref:evaluatingRef,key:"lianxi"},null)]),modelType.value==="practice"&&createVNode(Fragment,null,[createVNode(Button,{"data-step":"m2",class:[styles$4.button,styles$4.hasText],onClick:()=>changeMode(state.mode==="background"?"music":"background"),disabled:ne},{default:()=>[createVNode(ButtonIcon,{key:"music",name:state.mode==="music"?"music":"accompaniment"},null),createVNode("span",null,[state.mode==="background"?"\u4F34\u594F":"\u539F\u58F0"])]}),createVNode(Button,{"data-step":"m3",class:[styles$4.button,styles$4.hasText],onClick:sectionChange,disabled:state.evaluatingStatus||state.playState==="play"},{default:()=>[createVNode(ButtonIcon,{key:"section",name:"section"+(state$2.section.length&&state$2.section.length<=2?state$2.section.length:"")},null),createVNode("span",null,[createTextVNode("\u9009\u6BB5")])]}),createVNode(Button,{"data-step":"m4",class:[styles$4.button,styles$4.hasText],onClick:()=>{state$3.sett.fingering=!state$3.sett.fingering,event$1.emit("settingFingeringChange")}},{default:()=>[createVNode(ButtonIcon,{key:"music",name:state$3.sett.fingering?"fingeringOn":"fingeringOff"},null),createVNode("span",null,[createTextVNode("\u6307\u6CD5")])]})]),["practice","evaluation"].includes(modelType.value)&&createVNode(Popover,{trigger:"manual",overlay:!1,placement:"bottom",class:styles$4.popover,show:W.value&&state.speedShow&&!(state.evaluatingStatus||state.playState==="play"),"onUpdate:show":ge=>state.speedShow=ge},{default:()=>[createVNode(Speed,{ref:U,updateSpeed:ge=>state.speed=ge,changed:changeSpeed,mode:state.mode,changeMode,lib:{speed:state.speed},class:styles$4.speed},null)],reference:()=>createVNode(Button,{"data-step":"m5",class:[styles$4.button,styles$4.hasText,styles$4.speedButton],disabled:state.evaluatingStatus||state.playState==="play",onClick:()=>{var ge;(ge=U.value)==null||ge.refUpdateSpeed(state.speed),state.speedShow=!state.speedShow}},{default:()=>[createVNode(ButtonIcon,{name:"speed"},null),createVNode("span",null,[createTextVNode("\u901F\u5EA6")]),createVNode("span",{class:styles$4.label},[state.speed])]})}),(fe=state$2.activeDetail)!=null&&fe.notation?createVNode(Popover,{class:styles$4.toggleMusicType,placement:"bottom-end",show:Q.value,"onUpdate:show":ge=>{var Se;state.playState==="play"||state.evaluatingStatus&&!startButtonShow.value||((Se=followRef.value)==null?void 0:Se.data.start)||(Q.value=ge)}},{reference:()=>{var ge;return createVNode(Button,{disabled:state.playState==="play"||state.evaluatingStatus&&!startButtonShow.value||((ge=followRef.value)==null?void 0:ge.data.start),class:[styles$4.button,styles$4.hasText,styles$4.speedButton]},{default:()=>[createVNode(ButtonIcon,{name:"icon-zhuanpu"},null),createVNode("span",null,[te("staff")?"\u8F6C\u7B80\u8C31":"\u8F6C\u4E94\u7EBF\u8C31"])]})},default:()=>createVNode(Fragment,null,[createVNode("div",{role:"menuitem",class:"van-popover__action",onClick:()=>K({text:"\u4E94\u7EBF\u8C31"})},[createVNode(ButtonIcon,{key:"type",name:te("staff")?"icon-staff-active":"icon-staff"},null),createVNode("div",{class:["action-text",te("staff")&&"action-active"]},[createTextVNode("\u4E94\u7EBF\u8C31")])]),createVNode("div",{role:"menuitem",class:"van-popover__action",onClick:()=>K({text:"\u7B80\u8C31"})},[createVNode(ButtonIcon,{key:"type",name:te("shoudiao")?"shuodiao-active":"shuodiao"},null),createVNode("div",{class:["action-text",te("shoudiao")&&"action-active"]},[createTextVNode("\u9996\u8C03")])]),createVNode("div",{role:"menuitem",class:"van-popover__action",onClick:()=>K({text:"\u56FA\u5B9A\u8C03"})},[createVNode(ButtonIcon,{key:"type",name:te("guding")?"guding-active":"guding"},null),createVNode("div",{class:["action-text",te("guding")&&"action-active"]},[createTextVNode("\u56FA\u5B9A\u8C03")])])])}):null,state$2.initRendered&&createVNode(Fragment,null,[createVNode(Button,{class:[styles$4.button,styles$4.hasText],onClick:()=>{var ge;(ge=settingPopup.value)==null||ge.onShow()},disabled:state.evaluatingStatus&&!startButtonShow.value},{default:()=>[createVNode(ButtonIcon,{name:"setting"},null),createVNode("span",null,[createTextVNode("\u8BBE\u7F6E")])]}),createVNode(Popups,{ref:settingPopup,style:{borderRadius:"8px"}},{default:()=>[createVNode(Setting,{active:modelType.value=="practice"?"2":modelType.value=="evaluation"?"3":"1"},null)]})])]),createVNode(FloatWraper,null,null),createVNode(Dialog.Component,{teleport:"body",class:styles$8.confirm,style:{overflow:"initial"},show:confirmShow.value,"onUpdate:show":ge=>confirmShow.value=ge,message:"\u8BBE\u7F6E\u6210\u529F\uFF0C\u662F\u5426\u7ACB\u5373\u91CD\u65B0\u52A0\u8F7D\uFF1F"},{title:()=>createVNode("img",{class:styles$8.iconTitle,src:iconTitle$1},null),footer:()=>createVNode("div",{class:styles$8.footer},[createVNode("img",{src:iconCancel,onClick:()=>confirmShow.value=!1},null),createVNode("img",{src:iconConfirm,onClick:()=>{ie(),useReload()}},null)])})])}}}),Image1$1="/orchestra-music-score/assets/5.d8bfbf51.png",Image2$1="/orchestra-music-score/assets/4.cfa387c7.png",Image3$1="/orchestra-music-score/assets/3.d02c685a.png",Image4$1="/orchestra-music-score/assets/2.5c4c2ef5.png",Image5$1="/orchestra-music-score/assets/1.a0d5037d.png",IconBad="/orchestra-music-score/assets/bad.d9395829.png",IconGood="/orchestra-music-score/assets/good.b0fbfb32.png",IconGreat="/orchestra-music-score/assets/great.55272f0a.png",IconPerfect="/orchestra-music-score/assets/perfect.ab44b0e5.png";const icons={1:{icon:IconBad,text:"bad"},2:{icon:IconGood,text:"good"},3:{icon:IconGreat,text:"great"},4:{icon:IconPerfect,text:"perfect"}};var constant={1:{img:Image1$1,tips:"\u4F60\u7684\u6F14\u594F\u4E0D\u592A\u597D\uFF0C\u518D\u7EC3\u4E00\u7EC3\u5427\uFF5E",mome:"\u6562\u4E8E\u5C1D\u8BD5"},2:{img:Image2$1,tips:"\u4F60\u7684\u6F14\u594F\u8FD8\u4E0D\u719F\u7EC3\uFF0C\u52A0\u7D27\u8BAD\u7EC3\u624D\u80FD\u6709\u597D\u6210\u7EE9\u54E6\uFF5E",mome:"\u8FD8\u8981\u52A0\u6CB9\u54E6\uFF5E"},3:{img:Image3$1,tips:"\u4F60\u7684\u6F14\u594F\u8FD8\u4E0D\u6D41\u7545\uFF0C\u79D1\u5B66\u7684\u7EC3\u4E60\u624D\u80FD\u66F4\u5B8C\u7F8E\u54E6\uFF5E",mome:"\u7A81\u7834\u81EA\u6211"},4:{img:Image4$1,tips:"\u4F60\u7684\u6F14\u594F\u8FD8\u4E0D\u9519\uFF0C\u7EE7\u7EED\u52A0\u6CB9\u5427\uFF0C\u79BB\u5B8C\u7F8E\u5C31\u5DEE\u4E00\u6B65\u5566\uFF5E",mome:"\u5D2D\u9732\u5934\u89D2"},5:{img:Image5$1,tips:"\u4F60\u7684\u6F14\u594F\u5B8C\u7F8E\u65E0\u7F3A\uFF0C\u7EE7\u7EED\u52AA\u529B\u5427\uFF5E",mome:"\u4F60\u5F88\u68D2"}};const getLeveByScoreId=F=>{if(!F&&typeof F!="number")return{};let R=1;return F>20&&F<=40?R=2:F>40&&F<=60?R=3:F>60&&F<=80?R=4:F>80&&(R=5),R},getLeveByScore=F=>{if(!F&&typeof F!="number")return{};let R=getLeveByScoreId(F);return constant[R]},getLeveByScoreMeasure=F=>{if(!F&&typeof F!="number")return{};let R=1;return F>=40&&F<70?R=2:F>=70&&F<90?R=3:F>=90&&(R=4),icons[R]};var iconBack="/orchestra-music-score/assets/back.64a0fc99.svg",iconLianxi="/orchestra-music-score/assets/icon-lianxi.104eeb83.svg",iconReport="/orchestra-music-score/assets/icon-report.7c7e9fcf.svg",TryIcon="/orchestra-music-score/assets/try.8a1d0eec.svg",IntegrityIcon="/orchestra-music-score/assets/integrity.f311836f.svg",IntonationIcon="/orchestra-music-score/assets/intonation.64e00f66.svg",CadenceIcon="/orchestra-music-score/assets/cadence.18a7a60b.svg",Image1="/orchestra-music-score/assets/5.5bc1ff2c.png",Image2="/orchestra-music-score/assets/4.39e815a0.png",Image3="/orchestra-music-score/assets/3.32b6c173.png",Image4="/orchestra-music-score/assets/2.999897d0.png",Image5="/orchestra-music-score/assets/1.e4bfc133.png",iconUpload="/orchestra-music-score/assets/icon-upload.53f774c1.svg";const scoreInfos={1:{img:Image1,tips:"\u4F60\u7684\u6F14\u594F\u4E0D\u592A\u597D\uFF0C\u97F3\u51C6\u548C\u5B8C\u6574\u6027\u8FD8\u9700\u52A0\u5F3A\uFF0C\u518D\u7EC3\u4E00\u7EC3\u5427\uFF5E",mome:"\u6562\u4E8E\u5C1D\u8BD5"},2:{img:Image2,tips:"\u4F60\u7684\u6F14\u594F\u8FD8\u4E0D\u719F\u7EC3\uFF0C\u97F3\u51C6\u548C\u5B8C\u6574\u6027\u8FD8\u9700\u52A0\u5F3A\uFF0C\u52A0\u7D27\u8BAD\u7EC3\u624D\u80FD\u6709\u597D\u6210\u7EE9\u54E6\uFF5E",mome:"\u8FD8\u8981\u52A0\u6CB9\u54E6"},3:{img:Image3,tips:"\u4F60\u7684\u6F14\u594F\u8FD8\u4E0D\u6D41\u7545\uFF0C\u97F3\u51C6\u548C\u8282\u594F\u8FD8\u9700\u52A0\u5F3A\uFF0C\u79D1\u5B66\u7684\u7EC3\u4E60\u624D\u80FD\u66F4\u5B8C\u7F8E\u54E6\uFF5E",mome:"\u7A81\u7834\u81EA\u6211"},4:{img:Image4,tips:"\u4F60\u7684\u6F14\u594F\u8FD8\u4E0D\u9519\uFF0C\u7EE7\u7EED\u52A0\u6CB9\u5427\uFF0C\u52A0\u5F3A\u97F3\u51C6\uFF0C\u79BB\u5B8C\u7F8E\u5C31\u5DEE\u4E00\u6B65\u5566\uFF5E",mome:"\u5D2D\u9732\u5934\u89D2"},5:{img:Image5,tips:"\u4F60\u7684\u6F14\u594F\u975E\u5E38\u4E0D\u9519\uFF0C\u97F3\u51C6\u7684\u628A\u63E1\u548C\u8282\u594F\u7A0D\u6709\u7455\u75B5\uFF0C\u5B8C\u6574\u6027\u628A\u63E1\u7684\u5F88\u597D~",mome:"\u4F60\u5F88\u68D2"}};ref(!1);var Content=defineComponent({name:"ColexiuEvaluatingContent",props:{data:{type:Object,default:()=>null}},emits:["restart","upload"],setup(F,{emit:R}){const D=useRoute$1().query.unitId,G=useOriginSearch(),U=ref(!1),W=ref(""),{data:q}=toRefs(F),Y=location.origin.indexOf("localhost")>-1||location.origin.indexOf("192.168")>-1?"":"/orchestra-music-score",Q=()=>{var ne,se,re,ae,le,ce,he,pe,me;const te={id:(ne=q.value)==null?void 0:ne.recordId,musicId:G.id,name:((se=state$4.user)==null?void 0:se.username)||"",subjectName:(((re=state$4.user)==null?void 0:re.subjectName)||"").split(",")[0]||"",avatar:encodeURIComponent(((ae=state$4.user)==null?void 0:ae.avatar)||""),score:((le=q.value)==null?void 0:le.score)||0,examSongName:((ce=state$2.activeDetail)==null?void 0:ce.examSongName)||""};return state$2.isPercussion||(te.intonation=(he=q.value)==null?void 0:he.intonation,te.cadence=(pe=q.value)==null?void 0:pe.cadence,te.integrity=(me=q.value)==null?void 0:me.integrity),`${location.origin}${Y}/share-colexiu-evaluating/index.html?${queryString.stringify(te)}`},Z=te=>{const ne=te.target;ne&&(ne.contentWindow.setPng=se=>{W.value=se})},K=()=>{!W.value||postMessage({api:"shareAchievements",content:{title:"\u5206\u4EAB\u6211\u7684\u4E50\u5668\u7EC3\u4E60\u8FDB\u5EA6\uFF0C\u4E00\u8D77\u89C1\u8BC1\u6211\u7684\u6210\u957F\uFF01",desc:"\u6652\u4E00\u4E0B\u6211\u7684\u8BC4\u6D4B\u5206\u6570\uFF0C\u5FEB\u6765\u201C\u5C0F\u9177AI\u201D\u4E0A\u548C\u6211PK\u4E00\u4E0B\u5427\uFF01",image:W.value,video:"",type:"image",button:["copy"],url:Q()}},te=>{var ne,se,re;(ne=te==null?void 0:te.content)!=null&&ne.status&&(U.value=!1),(se=te==null?void 0:te.content)!=null&&se.message&&Toast((re=te==null?void 0:te.content)==null?void 0:re.message)})},ie=()=>{var te;postMessage({api:"openWebView",content:{url:location.origin+Y+"/colexiu-report.html?source=evaluation&musicId="+G.id+"&id="+((te=q.value)==null?void 0:te.recordId)||"",orientation:0,isHideTitle:!0,statusBarTextColor:!1,isOpenLight:!0}})};return()=>{var ne,se;const te=getLeveByScoreId((ne=q.value)==null?void 0:ne.score);return createVNode("div",null,[createVNode("div",{class:styles$8.box},[createVNode("div",{class:styles$8.wrap},[createVNode("div",{class:styles$8.wrapContainer},[createVNode("div",{class:styles$8.top},[createVNode("div",{class:styles$8.title},[createVNode("div",{style:{position:"relative",zIndex:1,"white-space":"nowrap"}},[createVNode("span",{class:styles$8.num},[(se=q.value)==null?void 0:se.score]),createVNode("span",{class:styles$8.txt},[createTextVNode("\u5206 "),scoreInfos[te].mome])]),createVNode("div",{class:styles$8.line},null)]),createVNode("img",{class:styles$8.iconTop,src:scoreInfos[te].img},null)]),createVNode("div",{class:styles$8.evaluatWrap},[createVNode(Grid,null,{default:()=>[createVNode(GridItem,null,{icon:()=>createVNode("div",null,[createVNode("img",{class:styles$8.evaluatIcon,src:IntonationIcon},null),createVNode("span",{class:styles$8.evaluatTitle},[createTextVNode("\u97F3\u51C6")])]),text:()=>{var re;return createVNode("span",{class:styles$8.fraction},[(re=q.value)==null?void 0:re.intonation,createVNode("span",null,[createTextVNode("\u5206")])])}}),createVNode("div",{class:styles$8.line},null),createVNode(GridItem,null,{icon:()=>createVNode("div",null,[createVNode("img",{class:styles$8.evaluatIcon,src:CadenceIcon},null),createVNode("span",{class:styles$8.evaluatTitle},[createTextVNode("\u8282\u594F")])]),text:()=>{var re;return createVNode("span",{class:styles$8.fraction},[(re=q.value)==null?void 0:re.cadence,createVNode("span",null,[createTextVNode("\u5206")])])}}),createVNode("div",{class:styles$8.line},null),createVNode(GridItem,null,{icon:()=>createVNode("div",null,[createVNode("img",{class:styles$8.evaluatIcon,src:IntegrityIcon},null),createVNode("span",{class:styles$8.evaluatTitle},[createTextVNode("\u5B8C\u6574\u6027")])]),text:()=>{var re;return createVNode("span",{class:styles$8.fraction},[(re=q.value)==null?void 0:re.integrity,createVNode("span",null,[createTextVNode("\u5206")])])}})]})]),createVNode("div",{class:styles$8.tips},[scoreInfos[te].tips])]),createVNode("div",{class:styles$8.btns},[state$2.frozenMode||D?null:createVNode(Button,{onClick:()=>{state.evaluatingStatus=!1,onChangeModelType("practice")}},{default:()=>[createVNode("img",{class:styles$8.btnIcon,src:iconLianxi},null)]}),createVNode(Button,{style:{margin:"0 4px"},onClick:()=>R("restart")},{default:()=>[createVNode("img",{class:styles$8.btnIcon,src:TryIcon},null)]}),D?null:createVNode(Button,{onClick:ie},{default:()=>[createVNode("img",{class:styles$8.btnIcon,src:iconReport,alt:"\u67E5\u770B\u62A5\u544A"},null)]})]),D?null:createVNode("div",{class:styles$8.rigthBtns},[createVNode("div",{class:styles$8.skepBtn,onClick:()=>R("upload")},[createVNode("img",{src:iconUpload},null),createTextVNode("\u4E0A\u4F20")])])]),createVNode(Popup,{teleport:"body",show:U.value,style:{background:"transparent"}},{default:()=>[createVNode("div",{style:{textAlign:"right"}},[createVNode(Button,{class:styles$8.sbtn,onClick:K,round:!0,type:"primary",color:"#2DC7AA"},{default:()=>[createTextVNode("\u5206\u4EAB")]}),createVNode(Button,{class:styles$8.sbtn,onClick:()=>U.value=!1,round:!0},{default:()=>[createTextVNode("\u5173\u95ED")]})]),createVNode("iframe",{style:{width:"50vw",border:"none",height:"70vh",marginTop:"1vh"},src:Q(),onLoad:Z},null)]}),createVNode(Button,{class:styles$8.button,icon:iconBack,onClick:()=>R("restart")},null)])])}}});const evaluatingShow=ref(!1),open=ref(!1);var Evaluating$1=defineComponent({name:"ColexiuEvaluating",props:{data:{type:Object,default:()=>null}},emits:["restart"],setup(F){const R=ref(!1),B=state$3.sett.camera&&state$3.eva.save;console.log(state$3.sett.camera,state$3.eva.save);const D=U=>{var W,q;postMessage({api:"proxyServiceMessage",content:{header:{commond:"videoUpload",status:200,type:"SOUND_COMPARE"},body:{filePath:(W=U==null?void 0:U.content)==null?void 0:W.filePath,recordId:(q=F.data)==null?void 0:q.recordId}}})},G=()=>{B?postMessage({api:"videoUpdate"},U=>{if(R.value=!1,U!=null&&U.content){if(U.content.type==="error"){Toast(U.content.message);return}D(U)}}):(R.value=!1,D(),Toast.success("\u4E0A\u4F20\u6210\u529F"))};return()=>createVNode("div",null,[createVNode(Popup,{position:"bottom",show:evaluatingShow.value,"onUpdate:show":U=>evaluatingShow.value=U,onOpen:()=>open.value=!0,onClosed:()=>open.value=!1,teleport:"body",style:{backgroundColor:"transparent"}},{default:()=>[open&&createVNode(Content,{data:F.data,onUpload:()=>R.value=!0,onRestart:()=>evaluatingShow.value=!1},null)]}),createVNode(Dialog.Component,{teleport:"body",class:styles$8.confirm,style:{overflow:"initial"},show:R.value,"onUpdate:show":U=>R.value=U,message:`\u8BC4\u6D4B${B?"\u97F3\u89C6\u9891":"\u97F3\u9891"}\u662F\u5426\u4FDD\u5B58\u6F14\u594F\uFF1F`},{title:()=>createVNode("img",{class:styles$8.iconTitle,src:iconTitle$1},null),footer:()=>createVNode("div",{class:styles$8.footer},[createVNode("img",{src:iconCancel,onClick:()=>R.value=!1},null),createVNode("img",{src:iconConfirm,onClick:G},null)])})])}}),lottie={exports:{}};(function(module,exports){typeof navigator!="undefined"&&function(F,R){module.exports=R()}(commonjsGlobal$2,function(){var svgNS="http://www.w3.org/2000/svg",locationHref="",_useWebWorker=!1,initialDefaultFrame=-999999,setWebWorker=function(R){_useWebWorker=!!R},getWebWorker=function(){return _useWebWorker},setLocationHref=function(R){locationHref=R},getLocationHref=function(){return locationHref};function createTag(F){return document.createElement(F)}function extendPrototype(F,R){var B,D=F.length,G;for(B=0;B1?B[1]=1:B[1]<=0&&(B[1]=0),HSVtoRGB(B[0],B[1],B[2])}function addBrightnessToRGB(F,R){var B=RGBtoHSV(F[0]*255,F[1]*255,F[2]*255);return B[2]+=R,B[2]>1?B[2]=1:B[2]<0&&(B[2]=0),HSVtoRGB(B[0],B[1],B[2])}function addHueToRGB(F,R){var B=RGBtoHSV(F[0]*255,F[1]*255,F[2]*255);return B[0]+=R/360,B[0]>1?B[0]-=1:B[0]<0&&(B[0]+=1),HSVtoRGB(B[0],B[1],B[2])}var rgbToHex=function(){var F=[],R,B;for(R=0;R<256;R+=1)B=R.toString(16),F[R]=B.length===1?"0"+B:B;return function(D,G,U){return D<0&&(D=0),G<0&&(G=0),U<0&&(U=0),"#"+F[D]+F[G]+F[U]}}(),setSubframeEnabled=function(R){subframeEnabled=!!R},getSubframeEnabled=function(){return subframeEnabled},setExpressionsPlugin=function(R){expressionsPlugin=R},getExpressionsPlugin=function(){return expressionsPlugin},setDefaultCurveSegments=function(R){defaultCurveSegments=R},getDefaultCurveSegments=function(){return defaultCurveSegments},setIdPrefix=function(R){idPrefix$1=R};function createNS(F){return document.createElementNS(svgNS,F)}function _typeof$5(F){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$5=function(B){return typeof B}:_typeof$5=function(B){return B&&typeof Symbol=="function"&&B.constructor===Symbol&&B!==Symbol.prototype?"symbol":typeof B},_typeof$5(F)}var dataManager=function(){var F=1,R=[],B,D,G={onmessage:function(){},postMessage:function(te){B({data:te})}},U={postMessage:function(te){G.onmessage({data:te})}};function W(ie){if(window.Worker&&window.Blob&&getWebWorker()){var te=new Blob(["var _workerSelf = self; self.onmessage = ",ie.toString()],{type:"text/javascript"}),ne=URL.createObjectURL(te);return new Worker(ne)}return B=ie,G}function q(){D||(D=W(function(te){function ne(){function re(we,Re){var Pe,Ae,Le=we.length,Ne,Ie,_e,Ve;for(Ae=0;Ae=0;Re-=1)if(we[Re].ty==="sh")if(we[Re].ks.k.i)pe(we[Re].ks.k);else for(Le=we[Re].ks.k.length,Ae=0;AePe[0]?!0:Pe[0]>we[0]?!1:we[1]>Pe[1]?!0:Pe[1]>we[1]?!1:we[2]>Pe[2]?!0:Pe[2]>we[2]?!1:null}var fe=function(){var we=[4,4,14];function Re(Ae){var Le=Ae.t.d;Ae.t.d={k:[{s:Le,t:0}]}}function Pe(Ae){var Le,Ne=Ae.length;for(Le=0;Le=0;Le-=1)if(Ae[Le].ty==="sh")if(Ae[Le].ks.k.i)Ae[Le].ks.k.c=Ae[Le].closed;else for(_e=Ae[Le].ks.k.length,Ie=0;Ie<_e;Ie+=1)Ae[Le].ks.k[Ie].s&&(Ae[Le].ks.k[Ie].s[0].c=Ae[Le].closed),Ae[Le].ks.k[Ie].e&&(Ae[Le].ks.k[Ie].e[0].c=Ae[Le].closed);else Ae[Le].ty==="gr"&&Re(Ae[Le].it)}function Pe(Ae){var Le,Ne,Ie=Ae.length,_e,Ve,qe,Ge;for(Ne=0;Ne500)&&(this._imageLoaded(),clearInterval(ce)),le+=1}.bind(this),50)}function U(ae){var le=D(ae,this.assetsPath,this.path),ce=createNS("image");isSafari?this.testImageLoaded(ce):ce.addEventListener("load",this._imageLoaded,!1),ce.addEventListener("error",function(){he.img=F,this._imageLoaded()}.bind(this),!1),ce.setAttributeNS("http://www.w3.org/1999/xlink","href",le),this._elementHelper.append?this._elementHelper.append(ce):this._elementHelper.appendChild(ce);var he={img:ce,assetData:ae};return he}function W(ae){var le=D(ae,this.assetsPath,this.path),ce=createTag("img");ce.crossOrigin="anonymous",ce.addEventListener("load",this._imageLoaded,!1),ce.addEventListener("error",function(){he.img=F,this._imageLoaded()}.bind(this),!1),ce.src=le;var he={img:ce,assetData:ae};return he}function q(ae){var le={assetData:ae},ce=D(ae,this.assetsPath,this.path);return dataManager.loadData(ce,function(he){le.img=he,this._footageLoaded()}.bind(this),function(){le.img={},this._footageLoaded()}.bind(this)),le}function Y(ae,le){this.imagesLoadedCb=le;var ce,he=ae.length;for(ce=0;cethis.animationData.op&&(this.animationData.op=F.op,this.totalFrames=Math.floor(F.op-this.animationData.ip));var R=this.animationData.layers,B,D=R.length,G=F.layers,U,W=G.length;for(U=0;Uthis.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame(),this.trigger("drawnFrame")},AnimationItem.prototype.renderFrame=function(){if(!(this.isLoaded===!1||!this.renderer))try{this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(F){this.triggerRenderFrameError(F)}},AnimationItem.prototype.play=function(F){F&&this.name!==F||this.isPaused===!0&&(this.isPaused=!1,this.trigger("_pause"),this.audioController.resume(),this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(F){F&&this.name!==F||this.isPaused===!1&&(this.isPaused=!0,this.trigger("_play"),this._idle=!0,this.trigger("_idle"),this.audioController.pause())},AnimationItem.prototype.togglePause=function(F){F&&this.name!==F||(this.isPaused===!0?this.play():this.pause())},AnimationItem.prototype.stop=function(F){F&&this.name!==F||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.getMarkerData=function(F){for(var R,B=0;B=this.totalFrames-1&&this.frameModifier>0?!this.loop||this.playCount===this.loop?this.checkSegments(R>this.totalFrames?R%this.totalFrames:0)||(B=!0,R=this.totalFrames-1):R>=this.totalFrames?(this.playCount+=1,this.checkSegments(R%this.totalFrames)||(this.setCurrentRawFrameValue(R%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(R):R<0?this.checkSegments(R%this.totalFrames)||(this.loop&&!(this.playCount--<=0&&this.loop!==!0)?(this.setCurrentRawFrameValue(this.totalFrames+R%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0):(B=!0,R=0)):this.setCurrentRawFrameValue(R),B&&(this.setCurrentRawFrameValue(R),this.pause(),this.trigger("complete"))}},AnimationItem.prototype.adjustSegment=function(F,R){this.playCount=0,F[1]0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.totalFrames=F[0]-F[1],this.timeCompleted=this.totalFrames,this.firstFrame=F[1],this.setCurrentRawFrameValue(this.totalFrames-.001-R)):F[1]>F[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.totalFrames=F[1]-F[0],this.timeCompleted=this.totalFrames,this.firstFrame=F[0],this.setCurrentRawFrameValue(.001+R)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(F,R){var B=-1;this.isPaused&&(this.currentRawFrame+this.firstFrameR&&(B=R-F)),this.firstFrame=F,this.totalFrames=R-F,this.timeCompleted=this.totalFrames,B!==-1&&this.goToAndStop(B,!0)},AnimationItem.prototype.playSegments=function(F,R){if(R&&(this.segments.length=0),_typeof$4(F[0])==="object"){var B,D=F.length;for(B=0;B=0;Pe-=1)R[Pe].animation.destroy(Re)}function ge(Re,Pe,Ae){var Le=[].concat([].slice.call(document.getElementsByClassName("lottie")),[].slice.call(document.getElementsByClassName("bodymovin"))),Ne,Ie=Le.length;for(Ne=0;Ne0?he=ge:ce=ge;while(Math.abs(fe)>U&&++Se=G?re(ce,ve,he,pe):xe===0?ve:se(ce,fe,fe+Y,he,pe)}},F}(),pooling=function(){function F(R){return R.concat(createSizedArray(R.length))}return{double:F}}(),poolFactory=function(){return function(F,R,B){var D=0,G=F,U=createSizedArray(G),W={newElement:q,release:Y};function q(){var Q;return D?(D-=1,Q=U[D]):Q=R(),Q}function Y(Q){D===G&&(U=pooling.double(U),G*=2),B&&B(Q),U[D]=Q,D+=1}return W}}(),bezierLengthPool=function(){function F(){return{addedLength:0,percents:createTypedArray("float32",getDefaultCurveSegments()),lengths:createTypedArray("float32",getDefaultCurveSegments())}}return poolFactory(8,F)}(),segmentsLengthPool=function(){function F(){return{lengths:[],totalLength:0}}function R(B){var D,G=B.lengths.length;for(D=0;D-.001&&le<.001}function B(ie,te,ne,se,re,ae,le,ce,he){if(ne===0&&ae===0&&he===0)return R(ie,te,se,re,le,ce);var pe=F.sqrt(F.pow(se-ie,2)+F.pow(re-te,2)+F.pow(ae-ne,2)),me=F.sqrt(F.pow(le-ie,2)+F.pow(ce-te,2)+F.pow(he-ne,2)),fe=F.sqrt(F.pow(le-se,2)+F.pow(ce-re,2)+F.pow(he-ae,2)),ge;return pe>me?pe>fe?ge=pe-me-fe:ge=fe-me-pe:fe>me?ge=fe-me-pe:ge=me-pe-fe,ge>-1e-4&&ge<1e-4}var D=function(){return function(ie,te,ne,se){var re=getDefaultCurveSegments(),ae,le,ce,he,pe,me=0,fe,ge=[],Se=[],Ee=bezierLengthPool.newElement();for(ce=ne.length,ae=0;aele?-1:1,pe=!0;pe;)if(se[ae]<=le&&se[ae+1]>le?(ce=(le-se[ae])/(se[ae+1]-se[ae]),pe=!1):ae+=he,ae<0||ae>=re-1){if(ae===re-1)return ne[ae];pe=!1}return ne[ae]+(ne[ae+1]-ne[ae])*ce}function Q(ie,te,ne,se,re,ae){var le=Y(re,ae),ce=1-le,he=F.round((ce*ce*ce*ie[0]+(le*ce*ce+ce*le*ce+ce*ce*le)*ne[0]+(le*le*ce+ce*le*le+le*ce*le)*se[0]+le*le*le*te[0])*1e3)/1e3,pe=F.round((ce*ce*ce*ie[1]+(le*ce*ce+ce*le*ce+ce*ce*le)*ne[1]+(le*le*ce+ce*le*le+le*ce*le)*se[1]+le*le*le*te[1])*1e3)/1e3;return[he,pe]}var Z=createTypedArray("float32",8);function K(ie,te,ne,se,re,ae,le){re<0?re=0:re>1&&(re=1);var ce=Y(re,le);ae=ae>1?1:ae;var he=Y(ae,le),pe,me=ie.length,fe=1-ce,ge=1-he,Se=fe*fe*fe,Ee=ce*fe*fe*3,ve=ce*ce*fe*3,xe=ce*ce*ce,Me=fe*fe*ge,ye=ce*fe*ge+fe*ce*ge+fe*fe*he,we=ce*ce*ge+fe*ce*he+ce*fe*he,Re=ce*ce*he,Pe=fe*ge*ge,Ae=ce*ge*ge+fe*he*ge+fe*ge*he,Le=ce*he*ge+fe*he*he+ce*ge*he,Ne=ce*he*he,Ie=ge*ge*ge,_e=he*ge*ge+ge*he*ge+ge*ge*he,Ve=he*he*ge+ge*he*he+he*ge*he,qe=he*he*he;for(pe=0;pe=Se.t-le){ge.h&&(ge=Se),he=0;break}if(Se.t-le>re){he=pe;break}pe=Pe||re=Pe?Ne.points.length-1:0;for(xe=Ne.points[Ie].point.length,ve=0;ve=qe&&_e=Pe)ce[0]=Le[0],ce[1]=Le[1],ce[2]=Le[2];else if(re<=Ae)ce[0]=ge.s[0],ce[1]=ge.s[1],ce[2]=ge.s[2];else{var lt=U(ge.s),ht=U(Le),yt=(re-Ae)/(Pe-Ae);G(ce,D(lt,ht,yt))}else for(pe=0;pe=Pe?Me=1:re1e-6?(xe=Math.acos(Me),ye=Math.sin(xe),we=Math.sin((1-le)*xe)/ye,Re=Math.sin(le*xe)/ye):(we=1-le,Re=le),ce[0]=we*he+Re*ge,ce[1]=we*pe+Re*Se,ce[2]=we*me+Re*Ee,ce[3]=we*fe+Re*ve,ce}function G(re,ae){var le=ae[0],ce=ae[1],he=ae[2],pe=ae[3],me=Math.atan2(2*ce*pe-2*le*he,1-2*ce*ce-2*he*he),fe=Math.asin(2*le*ce+2*he*pe),ge=Math.atan2(2*le*pe-2*ce*he,1-2*le*le-2*he*he);re[0]=me/degToRads,re[1]=fe/degToRads,re[2]=ge/degToRads}function U(re){var ae=re[0]*degToRads,le=re[1]*degToRads,ce=re[2]*degToRads,he=Math.cos(ae/2),pe=Math.cos(le/2),me=Math.cos(ce/2),fe=Math.sin(ae/2),ge=Math.sin(le/2),Se=Math.sin(ce/2),Ee=he*pe*me-fe*ge*Se,ve=fe*ge*me+he*pe*Se,xe=fe*pe*me+he*ge*Se,Me=he*ge*me-fe*pe*Se;return[ve,xe,Me,Ee]}function W(){var re=this.comp.renderedFrame-this.offsetTime,ae=this.keyframes[0].t-this.offsetTime,le=this.keyframes[this.keyframes.length-1].t-this.offsetTime;if(!(re===this._caching.lastFrame||this._caching.lastFrame!==F&&(this._caching.lastFrame>=le&&re>=le||this._caching.lastFrame=re&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var ce=this.interpolateValue(re,this._caching);this.pv=ce}return this._caching.lastFrame=re,this.pv}function q(re){var ae;if(this.propType==="unidimensional")ae=re*this.mult,R(this.v-ae)>1e-5&&(this.v=ae,this._mdf=!0);else for(var le=0,ce=this.v.length;le1e-5&&(this.v[le]=ae,this._mdf=!0),le+=1}function Y(){if(!(this.elem.globalData.frameId===this.frameId||!this.effectsSequence.length)){if(this.lock){this.setVValue(this.pv);return}this.lock=!0,this._mdf=this._isFirstFrame;var re,ae=this.effectsSequence.length,le=this.kf?this.pv:this.data.k;for(re=0;re=this._maxLength&&this.doubleArrayLength(),B){case"v":U=this.v;break;case"i":U=this.i;break;case"o":U=this.o;break;default:U=[];break}(!U[D]||U[D]&&!G)&&(U[D]=pointPool.newElement()),U[D][0]=F,U[D][1]=R},ShapePath.prototype.setTripleAt=function(F,R,B,D,G,U,W,q){this.setXYAt(F,R,"v",W,q),this.setXYAt(B,D,"o",W,q),this.setXYAt(G,U,"i",W,q)},ShapePath.prototype.reverse=function(){var F=new ShapePath;F.setPathData(this.c,this._length);var R=this.v,B=this.o,D=this.i,G=0;this.c&&(F.setTripleAt(R[0][0],R[0][1],D[0][0],D[0][1],B[0][0],B[0][1],0,!1),G=1);var U=this._length-1,W=this._length,q;for(q=G;q=ye[ye.length-1].t-this.offsetTime)pe=ye[ye.length-1].s?ye[ye.length-1].s[0]:ye[ye.length-2].e[0],fe=!0;else{for(var we=he,Re=ye.length-1,Pe=!0,Ae,Le,Ne;Pe&&(Ae=ye[we],Le=ye[we+1],!(Le.t-this.offsetTime>ae));)we=Le.t-this.offsetTime)xe=1;else if(aece&&ae>ce)||(this._caching.lastIndex=he0||Pe>-1e-6&&Pe<0?D(Pe*Ae)/Ae:Pe}function Re(){var Pe=this.props,Ae=we(Pe[0]),Le=we(Pe[1]),Ne=we(Pe[4]),Ie=we(Pe[5]),_e=we(Pe[12]),Ve=we(Pe[13]);return"matrix("+Ae+","+Le+","+Ne+","+Ie+","+_e+","+Ve+")"}return function(){this.reset=G,this.rotate=U,this.rotateX=W,this.rotateY=q,this.rotateZ=Y,this.skew=Z,this.skewFromAxis=K,this.shear=Q,this.scale=ie,this.setTransform=te,this.translate=ne,this.transform=se,this.applyToPoint=he,this.applyToX=pe,this.applyToY=me,this.applyToZ=fe,this.applyToPointArray=xe,this.applyToTriplePoints=ve,this.applyToPointStringified=Me,this.toCSS=ye,this.to2dCSS=Re,this.clone=le,this.cloneFromProps=ce,this.equals=ae,this.inversePoints=Ee,this.inversePoint=Se,this.getInverseMatrix=ge,this._t=this.transform,this.isIdentity=re,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray("float32",16),this.reset()}}();function _typeof$3(F){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof$3=function(B){return typeof B}:_typeof$3=function(B){return B&&typeof Symbol=="function"&&B.constructor===Symbol&&B!==Symbol.prototype?"symbol":typeof B},_typeof$3(F)}var lottie={};function setLocation(F){setLocationHref(F)}function searchAnimations(){animationManager.searchAnimations()}function setSubframeRendering(F){setSubframeEnabled(F)}function setPrefix(F){setIdPrefix(F)}function loadAnimation(F){return animationManager.loadAnimation(F)}function setQuality(F){if(typeof F=="string")switch(F){case"high":setDefaultCurveSegments(200);break;default:case"medium":setDefaultCurveSegments(50);break;case"low":setDefaultCurveSegments(10);break}else!isNaN(F)&&F>1&&setDefaultCurveSegments(F)}function inBrowser(){return typeof navigator!="undefined"}function installPlugin(F,R){F==="expressions"&&setExpressionsPlugin(R)}function getFactory(F){switch(F){case"propertyFactory":return PropertyFactory;case"shapePropertyFactory":return ShapePropertyFactory;case"matrix":return Matrix;default:return null}}lottie.play=animationManager.play,lottie.pause=animationManager.pause,lottie.setLocationHref=setLocation,lottie.togglePause=animationManager.togglePause,lottie.setSpeed=animationManager.setSpeed,lottie.setDirection=animationManager.setDirection,lottie.stop=animationManager.stop,lottie.searchAnimations=searchAnimations,lottie.registerAnimation=animationManager.registerAnimation,lottie.loadAnimation=loadAnimation,lottie.setSubframeRendering=setSubframeRendering,lottie.resize=animationManager.resize,lottie.goToAndStop=animationManager.goToAndStop,lottie.destroy=animationManager.destroy,lottie.setQuality=setQuality,lottie.inBrowser=inBrowser,lottie.installPlugin=installPlugin,lottie.freeze=animationManager.freeze,lottie.unfreeze=animationManager.unfreeze,lottie.setVolume=animationManager.setVolume,lottie.mute=animationManager.mute,lottie.unmute=animationManager.unmute,lottie.getRegisteredAnimations=animationManager.getRegisteredAnimations,lottie.useWebWorker=setWebWorker,lottie.setIDPrefix=setPrefix,lottie.__getFactory=getFactory,lottie.version="5.9.6";function checkReady(){document.readyState==="complete"&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(F){for(var R=queryString.split("&"),B=0;B=1?U.push({s:F-1,e:R-1}):(U.push({s:F,e:1}),U.push({s:0,e:R-1}));var W=[],q,Y=U.length,Q;for(q=0;qD+B)){var Z,K;Q.s*G<=D?Z=0:Z=(Q.s*G-D)/B,Q.e*G>=D+B?K=1:K=(Q.e*G-D)/B,W.push([Z,K])}return W.length||W.push([0,0]),W},TrimModifier.prototype.releasePathsData=function(F){var R,B=F.length;for(R=0;R1?R=1+D:this.s.v<0?R=0+D:R=this.s.v+D,this.e.v>1?B=1+D:this.e.v<0?B=0+D:B=this.e.v+D,R>B){var G=R;R=B,B=G}R=Math.round(R*1e4)*1e-4,B=Math.round(B*1e4)*1e-4,this.sValue=R,this.eValue=B}else R=this.sValue,B=this.eValue;var U,W,q=this.shapes.length,Y,Q,Z,K,ie,te=0;if(B===R)for(W=0;W=0;W-=1)if(se=this.shapes[W],se.shape._mdf){for(re=se.localShapeCollection,re.releaseShapes(),this.m===2&&q>1?(he=this.calculateShapeEdges(R,B,se.totalShapeLength,ce,te),ce+=se.totalShapeLength):he=[[ae,le]],Q=he.length,Y=0;Y=1?ne.push({s:se.totalShapeLength*(ae-1),e:se.totalShapeLength*(le-1)}):(ne.push({s:se.totalShapeLength*ae,e:se.totalShapeLength}),ne.push({s:0,e:se.totalShapeLength*(le-1)}));var pe=this.addShapes(se,ne[0]);if(ne[0].s!==ne[0].e){if(ne.length>1){var me=se.shape.paths.shapes[se.shape.paths._length-1];if(me.c){var fe=pe.pop();this.addPaths(pe,re),pe=this.addShapes(se,ne[1],fe)}else this.addPaths(pe,re),pe=this.addShapes(se,ne[1])}this.addPaths(pe,re)}}se.shape.paths=re}}},TrimModifier.prototype.addPaths=function(F,R){var B,D=F.length;for(B=0;BR.e){B.c=!1;break}else R.s<=Q&&R.e>=Q+Z.addedLength?(this.addSegment(G[U].v[q-1],G[U].o[q-1],G[U].i[q],G[U].v[q],B,K,re),re=!1):(te=bez.getNewSegment(G[U].v[q-1],G[U].v[q],G[U].o[q-1],G[U].i[q],(R.s-Q)/Z.addedLength,(R.e-Q)/Z.addedLength,ie[q-1]),this.addSegmentFromArray(te,B,K,re),re=!1,B.c=!1),Q+=Z.addedLength,K+=1;if(G[U].c&&ie.length){if(Z=ie[q-1],Q<=R.e){var ae=ie[q-1].addedLength;R.s<=Q&&R.e>=Q+ae?(this.addSegment(G[U].v[q-1],G[U].o[q-1],G[U].i[0],G[U].v[0],B,K,re),re=!1):(te=bez.getNewSegment(G[U].v[q-1],G[U].v[0],G[U].o[q-1],G[U].i[0],(R.s-Q)/ae,(R.e-Q)/ae,ie[q-1]),this.addSegmentFromArray(te,B,K,re),re=!1,B.c=!1)}else B.c=!1;Q+=Z.addedLength,K+=1}if(B._length&&(B.setXYAt(B.v[se][0],B.v[se][1],"i",se),B.setXYAt(B.v[B._length-1][0],B.v[B._length-1][1],"o",B._length-1)),Q>R.e)break;U=this.p.keyframes[this.p.keyframes.length-1].t?(Z=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/Q,0),K=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.05)/Q,0)):(Z=this.p.pv,K=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/Q,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){Z=[],K=[];var ie=this.px,te=this.py;ie._caching.lastFrame+ie.offsetTime<=ie.keyframes[0].t?(Z[0]=ie.getValueAtTime((ie.keyframes[0].t+.01)/Q,0),Z[1]=te.getValueAtTime((te.keyframes[0].t+.01)/Q,0),K[0]=ie.getValueAtTime(ie.keyframes[0].t/Q,0),K[1]=te.getValueAtTime(te.keyframes[0].t/Q,0)):ie._caching.lastFrame+ie.offsetTime>=ie.keyframes[ie.keyframes.length-1].t?(Z[0]=ie.getValueAtTime(ie.keyframes[ie.keyframes.length-1].t/Q,0),Z[1]=te.getValueAtTime(te.keyframes[te.keyframes.length-1].t/Q,0),K[0]=ie.getValueAtTime((ie.keyframes[ie.keyframes.length-1].t-.01)/Q,0),K[1]=te.getValueAtTime((te.keyframes[te.keyframes.length-1].t-.01)/Q,0)):(Z=[ie.pv,te.pv],K[0]=ie.getValueAtTime((ie._caching.lastFrame+ie.offsetTime-.01)/Q,ie.offsetTime),K[1]=te.getValueAtTime((te._caching.lastFrame+te.offsetTime-.01)/Q,te.offsetTime))}else K=F,Z=K;this.v.rotate(-Math.atan2(Z[1]-K[1],Z[0]-K[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}}function D(){if(!this.a.k)this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1;else return;if(!this.s.effectsSequence.length)this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2;else return;if(this.sk)if(!this.sk.effectsSequence.length&&!this.sa.effectsSequence.length)this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3;else return;this.r?this.r.effectsSequence.length||(this.pre.rotate(-this.r.v),this.appliedTransformations=4):!this.rz.effectsSequence.length&&!this.ry.effectsSequence.length&&!this.rx.effectsSequence.length&&!this.or.effectsSequence.length&&(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}function G(){}function U(Y){this._addDynamicProperty(Y),this.elem.addDynamicProperty(Y),this._isDirty=!0}function W(Y,Q,Z){if(this.elem=Y,this.frameId=-1,this.propType="transform",this.data=Q,this.v=new Matrix,this.pre=new Matrix,this.appliedTransformations=0,this.initDynamicPropertyContainer(Z||Y),Q.p&&Q.p.s?(this.px=PropertyFactory.getProp(Y,Q.p.x,0,0,this),this.py=PropertyFactory.getProp(Y,Q.p.y,0,0,this),Q.p.z&&(this.pz=PropertyFactory.getProp(Y,Q.p.z,0,0,this))):this.p=PropertyFactory.getProp(Y,Q.p||{k:[0,0,0]},1,0,this),Q.rx){if(this.rx=PropertyFactory.getProp(Y,Q.rx,0,degToRads,this),this.ry=PropertyFactory.getProp(Y,Q.ry,0,degToRads,this),this.rz=PropertyFactory.getProp(Y,Q.rz,0,degToRads,this),Q.or.k[0].ti){var K,ie=Q.or.k.length;for(K=0;K0;)B-=1,this._elements.unshift(R[B]);this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(F){var R,B=F.length;for(R=0;R0?Math.floor(ie):Math.ceil(ie),se=this.pMatrix.props,re=this.rMatrix.props,ae=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var le=0;if(ie>0){for(;lene;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),le-=1;te&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-te,!0),le-=te)}D=this.data.m===1?0:this._currentCopies-1,G=this.data.m===1?1:-1,U=this._currentCopies;for(var ce,he;U;){if(R=this.elemsData[D].it,B=R[R.length-1].transform.mProps.v.props,he=B.length,R[R.length-1].transform.mProps._mdf=!0,R[R.length-1].transform.op._mdf=!0,R[R.length-1].transform.op.v=this._currentCopies===1?this.so.v:this.so.v+(this.eo.v-this.so.v)*(D/(this._currentCopies-1)),le!==0){for((D!==0&&G===1||D!==this._currentCopies-1&&G===-1)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(re[0],re[1],re[2],re[3],re[4],re[5],re[6],re[7],re[8],re[9],re[10],re[11],re[12],re[13],re[14],re[15]),this.matrix.transform(ae[0],ae[1],ae[2],ae[3],ae[4],ae[5],ae[6],ae[7],ae[8],ae[9],ae[10],ae[11],ae[12],ae[13],ae[14],ae[15]),this.matrix.transform(se[0],se[1],se[2],se[3],se[4],se[5],se[6],se[7],se[8],se[9],se[10],se[11],se[12],se[13],se[14],se[15]),ce=0;ce0&&(Ee=!1),Ee){var Me=createTag("style");Me.setAttribute("f-forigin",me[fe].fOrigin),Me.setAttribute("f-origin",me[fe].origin),Me.setAttribute("f-family",me[fe].fFamily),Me.type="text/css",Me.innerText="@font-face {font-family: "+me[fe].fFamily+"; font-style: normal; src: url('"+me[fe].fPath+"');}",pe.appendChild(Me)}}else if(me[fe].fOrigin==="g"||me[fe].origin===1){for(ve=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),xe=0;xeR?this.isInRange!==!0&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):this.isInRange!==!1&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var R,B=this.renderableComponents.length;for(R=0;R.1)&&this.audio.seek(this._currentTime/this.globalData.frameRate):(this.audio.play(),this.audio.seek(this._currentTime/this.globalData.frameRate),this._isPlaying=!0))},AudioElement.prototype.show=function(){},AudioElement.prototype.hide=function(){this.audio.pause(),this._isPlaying=!1},AudioElement.prototype.pause=function(){this.audio.pause(),this._isPlaying=!1,this._canPlay=!1},AudioElement.prototype.resume=function(){this._canPlay=!0},AudioElement.prototype.setRate=function(F){this.audio.rate(F)},AudioElement.prototype.volume=function(F){this._volumeMultiplier=F,this._previousVolume=F*this._volume,this.audio.volume(this._previousVolume)},AudioElement.prototype.getBaseElement=function(){return null},AudioElement.prototype.destroy=function(){},AudioElement.prototype.sourceRectAtTime=function(){},AudioElement.prototype.initExpressions=function(){};function BaseRenderer(){}BaseRenderer.prototype.checkLayers=function(F){var R,B=this.layers.length,D;for(this.completeLayers=!0,R=B-1;R>=0;R-=1)this.elements[R]||(D=this.layers[R],D.ip-D.st<=F-this.layers[R].st&&D.op-D.st>F-this.layers[R].st&&this.buildItem(R)),this.completeLayers=this.elements[R]?this.completeLayers:!1;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(F){switch(F.ty){case 2:return this.createImage(F);case 0:return this.createComp(F);case 1:return this.createSolid(F);case 3:return this.createNull(F);case 4:return this.createShape(F);case 5:return this.createText(F);case 6:return this.createAudio(F);case 13:return this.createCamera(F);case 15:return this.createFootage(F);default:return this.createNull(F)}},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.createAudio=function(F){return new AudioElement(F,this.globalData,this)},BaseRenderer.prototype.createFootage=function(F){return new FootageElement(F,this.globalData,this)},BaseRenderer.prototype.buildAllItems=function(){var F,R=this.layers.length;for(F=0;F0&&(this.maskElement.setAttribute("id",ie),this.element.maskedElement.setAttribute(le,"url("+getLocationHref()+"#"+ie+")"),D.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}MaskElement.prototype.getMaskProperty=function(F){return this.viewData[F].prop},MaskElement.prototype.renderFrame=function(F){var R=this.element.finalTransform.mat,B,D=this.masksProperties.length;for(B=0;B1&&(D+=" C"+R.o[G-1][0]+","+R.o[G-1][1]+" "+R.i[0][0]+","+R.i[0][1]+" "+R.v[0][0]+","+R.v[0][1]),B.lastPath!==D){var W="";B.elem&&(R.c&&(W=F.inv?this.solidPath+D:D),B.elem.setAttribute("d",W)),B.lastPath=D}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null};var filtersFactory=function(){var F={};F.createFilter=R,F.createAlphaToLuminanceFilter=B;function R(D,G){var U=createNS("filter");return U.setAttribute("id",D),G!==!0&&(U.setAttribute("filterUnits","objectBoundingBox"),U.setAttribute("x","0%"),U.setAttribute("y","0%"),U.setAttribute("width","100%"),U.setAttribute("height","100%")),U}function B(){var D=createNS("feColorMatrix");return D.setAttribute("type","matrix"),D.setAttribute("color-interpolation-filters","sRGB"),D.setAttribute("values","0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1"),D}return F}(),featureSupport=function(){var F={maskType:!0};return(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(F.maskType=!1),F}(),registeredEffects={},idPrefix="filter_result_";function SVGEffects(F){var R,B="SourceGraphic",D=F.data.ef?F.data.ef.length:0,G=createElementID(),U=filtersFactory.createFilter(G,!0),W=0;this.filters=[];var q;for(R=0;R=0&&(D=this.shapeModifiers[R].processShapes(this._isFirstFrame),!D);R-=1);}},searchProcessedElement:function(R){for(var B=this.processedElements,D=0,G=B.length;D.01)return!1;B+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!==this.c.length/4)return!1;if(this.data.k.k[0].s)for(var F=0,R=this.data.k.k.length;F0;)ae=ie.transformers[Ee].mProps._mdf||ae,Se-=1,Ee-=1;if(ae)for(Se=pe-ie.styles[ce].lvl,Ee=ie.transformers.length-1;Se>0;)ge=ie.transformers[Ee].mProps.v.props,fe.transform(ge[0],ge[1],ge[2],ge[3],ge[4],ge[5],ge[6],ge[7],ge[8],ge[9],ge[10],ge[11],ge[12],ge[13],ge[14],ge[15]),Se-=1,Ee-=1}else fe=F;if(me=ie.sh.paths,se=me._length,ae){for(re="",ne=0;ne=1?Me=.99:Me<=-1&&(Me=-.99);var ye=ve*Me,we=Math.cos(xe+ie.a.v)*ye+re[0],Re=Math.sin(xe+ie.a.v)*ye+re[1];ne.setAttribute("fx",we),ne.setAttribute("fy",Re),se&&!ie.g._collapsable&&(ie.of.setAttribute("fx",we),ie.of.setAttribute("fy",Re))}}}function Z(K,ie,te){var ne=ie.style,se=ie.d;se&&(se._mdf||te)&&se.dashStr&&(ne.pElem.setAttribute("stroke-dasharray",se.dashStr),ne.pElem.setAttribute("stroke-dashoffset",se.dashoffset[0])),ie.c&&(ie.c._mdf||te)&&ne.pElem.setAttribute("stroke","rgb("+bmFloor(ie.c.v[0])+","+bmFloor(ie.c.v[1])+","+bmFloor(ie.c.v[2])+")"),(ie.o._mdf||te)&&ne.pElem.setAttribute("stroke-opacity",ie.o.v),(ie.w._mdf||te)&&(ne.pElem.setAttribute("stroke-width",ie.w.v),ne.msElem&&ne.msElem.setAttribute("stroke-width",ie.w.v))}return B}();function SVGShapeElement(F,R,B){this.shapes=[],this.shapesData=F.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(F,R,B),this.prevViewData=[]}extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var F,R=this.shapes.length,B,D,G=this.stylesList.length,U,W=[],q=!1;for(D=0;D1&&q&&this.setShapesAsAnimated(W)}},SVGShapeElement.prototype.setShapesAsAnimated=function(F){var R,B=F.length;for(R=0;R=0;Y-=1){if(re=this.searchProcessedElement(F[Y]),re?R[Y]=B[re-1]:F[Y]._render=W,F[Y].ty==="fl"||F[Y].ty==="st"||F[Y].ty==="gf"||F[Y].ty==="gs"||F[Y].ty==="no")re?R[Y].style.closed=!1:R[Y]=this.createStyleElement(F[Y],G),F[Y]._render&&R[Y].style.pElem.parentNode!==D&&D.appendChild(R[Y].style.pElem),ie.push(R[Y].style);else if(F[Y].ty==="gr"){if(!re)R[Y]=this.createGroupElement(F[Y]);else for(K=R[Y].it.length,Z=0;Z1,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(F){this.effectsSequence.push(F),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(F){if(!((this.elem.globalData.frameId===this.frameId||!this.effectsSequence.length)&&!F)){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var R=this.currentData,B=this.keysIndex;if(this.lock){this.setCurrentData(this.currentData);return}this.lock=!0,this._mdf=!1;var D,G=this.effectsSequence.length,U=F||this.data.d.k[this.keysIndex].s;for(D=0;DR);)B+=1;return this.keysIndex!==B&&(this.keysIndex=B),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(F){for(var R=[],B=0,D=F.length,G,U,W=!1;B=55296&&G<=56319?(U=F.charCodeAt(B+1),U>=56320&&U<=57343?(W||FontManager.isModifier(G,U)?(R[R.length-1]+=F.substr(B,2),W=!1):R.push(F.substr(B,2)),B+=1):R.push(F.charAt(B))):G>56319?(U=F.charCodeAt(B+1),FontManager.isZeroWidthJoiner(G,U)?(W=!0,R[R.length-1]+=F.substr(B,2),B+=1):R.push(F.charAt(B))):FontManager.isZeroWidthJoiner(G)?(R[R.length-1]+=F.charAt(B),W=!0):R.push(F.charAt(B)),B+=1;return R},TextProperty.prototype.completeTextData=function(F){F.__complete=!0;var R=this.elem.globalData.fontManager,B=this.data,D=[],G,U,W,q=0,Y,Q=B.m.g,Z=0,K=0,ie=0,te=[],ne=0,se=0,re,ae,le=R.getFontByName(F.f),ce,he=0,pe=getFontProperties(le);F.fWeight=pe.weight,F.fStyle=pe.style,F.finalSize=F.s,F.finalText=this.buildFinalText(F.t),U=F.finalText.length,F.finalLineHeight=F.lh;var me=F.tr/1e3*F.finalSize,fe;if(F.sz)for(var ge=!0,Se=F.sz[0],Ee=F.sz[1],ve,xe;ge;){xe=this.buildFinalText(F.t),ve=0,ne=0,U=xe.length,me=F.tr/1e3*F.finalSize;var Me=-1;for(G=0;GSe&&xe[G]!==" "?(Me===-1?U+=1:G=Me,ve+=F.finalLineHeight||F.finalSize*1.2,xe.splice(G,Me===G?1:0,"\r"),Me=-1,ne=0):(ne+=he,ne+=me);ve+=le.ascent*F.finalSize/100,this.canResize&&F.finalSize>this.minimumFontSize&&Eese?ne:se,ne=-2*me,Y="",W=!0,ie+=1):Y=we,R.chars?(ce=R.getCharData(we,le.fStyle,R.getFontByName(F.f).fFamily),he=W?0:ce.w*F.finalSize/100):he=R.measureText(Y,F.f,F.finalSize),we===" "?ye+=he+me:(ne+=he+me+ye,ye=0),D.push({l:he,an:he,add:Z,n:W,anIndexes:[],val:Y,line:ie,animatorJustifyOffset:0}),Q==2){if(Z+=he,Y===""||Y===" "||G===U-1){for((Y===""||Y===" ")&&(Z-=he);K<=G;)D[K].an=Z,D[K].ind=q,D[K].extra=he,K+=1;q+=1,Z=0}}else if(Q==3){if(Z+=he,Y===""||G===U-1){for(Y===""&&(Z-=he);K<=G;)D[K].an=Z,D[K].ind=q,D[K].extra=he,K+=1;Z=0,q+=1}}else D[q].ind=q,D[q].extra=0,q+=1;if(F.l=D,se=ne>se?ne:se,te.push(ne),F.sz)F.boxWidth=F.sz[0],F.justifyOffset=0;else switch(F.boxWidth=se,F.j){case 1:F.justifyOffset=-F.boxWidth;break;case 2:F.justifyOffset=-F.boxWidth/2;break;default:F.justifyOffset=0}F.lineWidths=te;var Re=B.a,Pe,Ae;ae=Re.length;var Le,Ne,Ie=[];for(re=0;re0?q=this.ne.v/100:Y=-this.ne.v/100,this.xe.v>0?Q=1-this.xe.v/100:Z=1+this.xe.v/100;var K=BezierFactory.getBezierEasing(q,Y,Q,Z).get,ie=0,te=this.finalS,ne=this.finalE,se=this.data.sh;if(se===2)ne===te?ie=W>=ne?1:0:ie=F(0,R(.5/(ne-te)+(W-te)/(ne-te),1)),ie=K(ie);else if(se===3)ne===te?ie=W>=ne?0:1:ie=1-F(0,R(.5/(ne-te)+(W-te)/(ne-te),1)),ie=K(ie);else if(se===4)ne===te?ie=0:(ie=F(0,R(.5/(ne-te)+(W-te)/(ne-te),1)),ie<.5?ie*=2:ie=1-2*(ie-.5)),ie=K(ie);else if(se===5){if(ne===te)ie=0;else{var re=ne-te;W=R(F(0,W+.5-te),ne-te);var ae=-re/2+W,le=re/2;ie=Math.sqrt(1-ae*ae/(le*le))}ie=K(ie)}else se===6?(ne===te?ie=0:(W=R(F(0,W+.5-te),ne-te),ie=(1+Math.cos(Math.PI+Math.PI*2*W/(ne-te)))/2),ie=K(ie)):(W>=B(te)&&(W-te<0?ie=F(0,R(R(ne,1)-(te-W),1)):ie=F(0,R(ne-W,1))),ie=K(ie));if(this.sm.v!==100){var ce=this.sm.v*.01;ce===0&&(ce=1e-8);var he=.5-ce*.5;ie1&&(ie=1))}return ie*this.a.v},getValue:function(W){this.iterateDynamicProperties(),this._mdf=W||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,W&&this.data.r===2&&(this.e.v=this._currentTextLength);var q=this.data.r===2?1:100/this.data.totalChars,Y=this.o.v/q,Q=this.s.v/q+Y,Z=this.e.v/q+Y;if(Q>Z){var K=Q;Q=Z,Z=K}this.finalS=Q,this.finalE=Z}},extendPrototype([DynamicPropertyContainer],D);function G(U,W,q){return new D(U,W)}return{getTextSelectorProp:G}}();function TextAnimatorDataProperty(F,R,B){var D={propType:!1},G=PropertyFactory.getProp,U=R.a;this.a={r:U.r?G(F,U.r,0,degToRads,B):D,rx:U.rx?G(F,U.rx,0,degToRads,B):D,ry:U.ry?G(F,U.ry,0,degToRads,B):D,sk:U.sk?G(F,U.sk,0,degToRads,B):D,sa:U.sa?G(F,U.sa,0,degToRads,B):D,s:U.s?G(F,U.s,1,.01,B):D,a:U.a?G(F,U.a,1,0,B):D,o:U.o?G(F,U.o,0,.01,B):D,p:U.p?G(F,U.p,1,0,B):D,sw:U.sw?G(F,U.sw,0,0,B):D,sc:U.sc?G(F,U.sc,1,0,B):D,fc:U.fc?G(F,U.fc,1,0,B):D,fh:U.fh?G(F,U.fh,0,0,B):D,fs:U.fs?G(F,U.fs,0,.01,B):D,fb:U.fb?G(F,U.fb,0,.01,B):D,t:U.t?G(F,U.t,0,0,B):D},this.s=TextSelectorProp.getTextSelectorProp(F,R.s,B),this.s.t=R.s.t}function TextAnimatorProperty(F,R,B){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=F,this._renderType=R,this._elem=B,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(B)}TextAnimatorProperty.prototype.searchProperties=function(){var F,R=this._textData.a.length,B,D=PropertyFactory.getProp;for(F=0;F=ne+vt||!pe?(Se=(ne+vt-re)/se.partialLength,qe=he.point[0]+(se.point[0]-he.point[0])*Se,Ge=he.point[1]+(se.point[1]-he.point[1])*Se,U.translate(-B[0]*ie[Z].an*.005,-(B[1]*ye)*.01),ae=!1):pe&&(re+=se.partialLength,le+=1,le>=pe.length&&(le=0,ce+=1,me[ce]?pe=me[ce].points:ve.v.c?(le=0,ce=0,pe=me[ce].points):(re-=se.partialLength,pe=null)),pe&&(he=se,se=pe[le],fe=se.partialLength));Ve=ie[Z].an/2-ie[Z].add,U.translate(-Ve,0,0)}else Ve=ie[Z].an/2-ie[Z].add,U.translate(-Ve,0,0),U.translate(-B[0]*ie[Z].an*.005,-B[1]*ye*.01,0);for(Ae=0;AeF?this.textSpans[F].span:createNS(q?"g":"text"),ce<=F){if(Y.setAttribute("stroke-linecap","butt"),Y.setAttribute("stroke-linejoin","round"),Y.setAttribute("stroke-miterlimit","4"),this.textSpans[F].span=Y,q){var pe=createNS("g");Y.appendChild(pe),this.textSpans[F].childSpan=pe}this.textSpans[F].span=Y,this.layerElement.appendChild(Y)}Y.style.display="inherit"}if(Q.reset(),K&&(W[F].n&&(ie=-se,te+=B.yOffset,te+=ne?1:0,ne=!1),this.applyTextPropertiesToMatrix(B,Q,W[F].line,ie,te),ie+=W[F].l||0,ie+=se),q){he=this.globalData.fontManager.getCharData(B.finalText[F],D.fStyle,this.globalData.fontManager.getFontByName(B.f).fFamily);var me;if(he.t===1)me=new SVGCompElement(he.data,this.globalData,this);else{var fe=emptyShapeData;he.data&&he.data.shapes&&(fe=this.buildShapeData(he.data,B.finalSize)),me=new SVGShapeElement(fe,this.globalData,this)}if(this.textSpans[F].glyph){var ge=this.textSpans[F].glyph;this.textSpans[F].childSpan.removeChild(ge.layerElement),ge.destroy()}this.textSpans[F].glyph=me,me._debug=!0,me.prepareFrame(0),me.renderFrame(),this.textSpans[F].childSpan.appendChild(me.layerElement),he.t===1&&this.textSpans[F].childSpan.setAttribute("transform","scale("+B.finalSize/100+","+B.finalSize/100+")")}else K&&Y.setAttribute("transform","translate("+Q.props[12]+","+Q.props[13]+")"),Y.textContent=W[F].val,Y.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve")}K&&Y&&Y.setAttribute("d",Z)}for(;F=0;R-=1)(this.completeLayers||this.elements[R])&&this.elements[R].prepareFrame(F-this.layers[R].st);if(this.globalData._mdf)for(R=0;R=0;B-=1)(this.completeLayers||this.elements[B])&&(this.elements[B].prepareFrame(this.renderedFrame-this.layers[B].st),this.elements[B]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var F,R=this.layers.length;for(F=0;F=0;D-=1)W=R.transforms[D].transform.mProps.v.props,R.finalTransform.transform(W[0],W[1],W[2],W[3],W[4],W[5],W[6],W[7],W[8],W[9],W[10],W[11],W[12],W[13],W[14],W[15])}R._mdf=U},processSequences:function(R){var B,D=this.sequenceList.length;for(B=0;B=0;U-=1){if(K=this.searchProcessedElement(F[U]),K?R[U]=B[K-1]:F[U]._shouldRender=D,F[U].ty==="fl"||F[U].ty==="st"||F[U].ty==="gf"||F[U].ty==="gs")K?R[U].style.closed=!1:R[U]=this.createStyleElement(F[U],ne),Q.push(R[U].style);else if(F[U].ty==="gr"){if(!K)R[U]=this.createGroupElement(F[U]);else for(Y=R[U].it.length,q=0;q=0;G-=1)R[G].ty==="tr"?(W=B[G].transform,this.renderShapeTransform(F,W)):R[G].ty==="sh"||R[G].ty==="el"||R[G].ty==="rc"||R[G].ty==="sr"?this.renderPath(R[G],B[G]):R[G].ty==="fl"?this.renderFill(R[G],B[G],W):R[G].ty==="st"?this.renderStroke(R[G],B[G],W):R[G].ty==="gf"||R[G].ty==="gs"?this.renderGradientFill(R[G],B[G],W):R[G].ty==="gr"?this.renderShape(W,R[G].it,B[G].it):R[G].ty;D&&this.drawLayer()},CVShapeElement.prototype.renderStyledShape=function(F,R){if(this._isFirstFrame||R._mdf||F.transforms._mdf){var B=F.trNodes,D=R.paths,G,U,W,q=D._length;B.length=0;var Y=F.transforms.finalTransform;for(W=0;W=1?Z=.99:Z<=-1&&(Z=-.99);var K=Y*Z,ie=Math.cos(Q+R.a.v)*K+W[0],te=Math.sin(Q+R.a.v)*K+W[1];G=U.createRadialGradient(ie,te,0,W[0],W[1],Y)}var ne,se=F.g.p,re=R.g.c,ae=1;for(ne=0;neU&&Y==="xMidYMid slice"||GB&&U==="meet"||DB&&U==="slice")?this.transformCanvas.tx=(F-this.transformCanvas.w*(R/this.transformCanvas.h))/2*this.renderConfig.dpr:q==="xMax"&&(DB&&U==="slice")?this.transformCanvas.tx=(F-this.transformCanvas.w*(R/this.transformCanvas.h))*this.renderConfig.dpr:this.transformCanvas.tx=0,Y==="YMid"&&(D>B&&U==="meet"||DB&&U==="meet"||D=0;F-=1)this.elements[F]&&this.elements[F].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRendererBase.prototype.renderFrame=function(F,R){if(!(this.renderedFrame===F&&this.renderConfig.clearCanvas===!0&&!R||this.destroyed||F===-1)){this.renderedFrame=F,this.globalData.frameNum=F-this.animationItem._isFirstFrame,this.globalData.frameId+=1,this.globalData._mdf=!this.renderConfig.clearCanvas||R,this.globalData.projectInterface.currentFrame=F;var B,D=this.layers.length;for(this.completeLayers||this.checkLayers(F),B=0;B=0;B-=1)(this.completeLayers||this.elements[B])&&this.elements[B].renderFrame();this.renderConfig.clearCanvas!==!0&&this.restore()}}},CanvasRendererBase.prototype.buildItem=function(F){var R=this.elements;if(!(R[F]||this.layers[F].ty===99)){var B=this.createItem(this.layers[F],this,this.globalData);R[F]=B,B.initExpressions()}},CanvasRendererBase.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){var F=this.pendingElements.pop();F.checkParenting()}},CanvasRendererBase.prototype.hide=function(){this.animationItem.container.style.display="none"},CanvasRendererBase.prototype.show=function(){this.animationItem.container.style.display="block"};function CVCompElement(F,R,B){this.completeLayers=!1,this.layers=F.layers,this.pendingElements=[],this.elements=createSizedArray(this.layers.length),this.initElement(F,R,B),this.tm=F.tm?PropertyFactory.getProp(this,F.tm,0,R.frameRate,this):{_placeholder:!0}}extendPrototype([CanvasRendererBase,ICompElement,CVBaseElement],CVCompElement),CVCompElement.prototype.renderInnerContent=function(){var F=this.canvasContext;F.beginPath(),F.moveTo(0,0),F.lineTo(this.data.w,0),F.lineTo(this.data.w,this.data.h),F.lineTo(0,this.data.h),F.lineTo(0,0),F.clip();var R,B=this.layers.length;for(R=B-1;R>=0;R-=1)(this.completeLayers||this.elements[R])&&this.elements[R].renderFrame()},CVCompElement.prototype.destroy=function(){var F,R=this.layers.length;for(F=R-1;F>=0;F-=1)this.elements[F]&&this.elements[F].destroy();this.layers=null,this.elements=null},CVCompElement.prototype.createComp=function(F){return new CVCompElement(F,this.globalData,this)};function CanvasRenderer(F,R){this.animationItem=F,this.renderConfig={clearCanvas:R&&R.clearCanvas!==void 0?R.clearCanvas:!0,context:R&&R.context||null,progressiveLoad:R&&R.progressiveLoad||!1,preserveAspectRatio:R&&R.preserveAspectRatio||"xMidYMid meet",imagePreserveAspectRatio:R&&R.imagePreserveAspectRatio||"xMidYMid slice",contentVisibility:R&&R.contentVisibility||"visible",className:R&&R.className||"",id:R&&R.id||""},this.renderConfig.dpr=R&&R.dpr||1,this.animationItem.wrapper&&(this.renderConfig.dpr=R&&R.dpr||window.devicePixelRatio||1),this.renderedFrame=-1,this.globalData={frameNum:-1,_mdf:!1,renderConfig:this.renderConfig,currentGlobalAlpha:-1},this.contextData=new CVContextData,this.elements=[],this.pendingElements=[],this.transformMat=new Matrix,this.completeLayers=!1,this.rendererType="canvas"}extendPrototype([CanvasRendererBase],CanvasRenderer),CanvasRenderer.prototype.createComp=function(F){return new CVCompElement(F,this.globalData,this)};function HBaseElement(){}HBaseElement.prototype={checkBlendMode:function(){},initRendererElement:function(){this.baseElement=createTag(this.data.tg||"div"),this.data.hasMask?(this.svgElement=createNS("svg"),this.layerElement=createNS("g"),this.maskedElement=this.layerElement,this.svgElement.appendChild(this.layerElement),this.baseElement.appendChild(this.svgElement)):this.layerElement=this.baseElement,styleDiv(this.baseElement)},createContainerElements:function(){this.renderableEffectsManager=new CVEffects,this.transformedElement=this.baseElement,this.maskedElement=this.layerElement,this.data.ln&&this.layerElement.setAttribute("id",this.data.ln),this.data.cl&&this.layerElement.setAttribute("class",this.data.cl),this.data.bm!==0&&this.setBlendMode()},renderElement:function(){var R=this.transformedElement?this.transformedElement.style:{};if(this.finalTransform._matMdf){var B=this.finalTransform.mat.toCSS();R.transform=B,R.webkitTransform=B}this.finalTransform._opMdf&&(R.opacity=this.finalTransform.mProp.o.v)},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},destroy:function(){this.layerElement=null,this.transformedElement=null,this.matteElement&&(this.matteElement=null),this.maskManager&&(this.maskManager.destroy(),this.maskManager=null)},createRenderableComponents:function(){this.maskManager=new MaskElement(this.data,this,this.globalData)},addEffects:function(){},setMatte:function(){}},HBaseElement.prototype.getBaseElement=SVGBaseElement.prototype.getBaseElement,HBaseElement.prototype.destroyBaseElement=HBaseElement.prototype.destroy,HBaseElement.prototype.buildElementParenting=BaseRenderer.prototype.buildElementParenting;function HSolidElement(F,R,B){this.initElement(F,R,B)}extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement],HSolidElement),HSolidElement.prototype.createContent=function(){var F;this.data.hasMask?(F=createNS("rect"),F.setAttribute("width",this.data.sw),F.setAttribute("height",this.data.sh),F.setAttribute("fill",this.data.sc),this.svgElement.setAttribute("width",this.data.sw),this.svgElement.setAttribute("height",this.data.sh)):(F=createTag("div"),F.style.width=this.data.sw+"px",F.style.height=this.data.sh+"px",F.style.backgroundColor=this.data.sc),this.layerElement.appendChild(F)};function HShapeElement(F,R,B){this.shapes=[],this.shapesData=F.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.shapesContainer=createNS("g"),this.initElement(F,R,B),this.prevViewData=[],this.currentBBox={x:999999,y:-999999,h:0,w:0}}extendPrototype([BaseElement,TransformElement,HSolidElement,SVGShapeElement,HBaseElement,HierarchyElement,FrameElement,RenderableElement],HShapeElement),HShapeElement.prototype._renderShapeFrame=HShapeElement.prototype.renderInnerContent,HShapeElement.prototype.createContent=function(){var F;if(this.baseElement.style.fontSize=0,this.data.hasMask)this.layerElement.appendChild(this.shapesContainer),F=this.svgElement;else{F=createNS("svg");var R=this.comp.data?this.comp.data:this.globalData.compSize;F.setAttribute("width",R.w),F.setAttribute("height",R.h),F.appendChild(this.shapesContainer),this.layerElement.appendChild(F)}this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.shapesContainer,0,[],!0),this.filterUniqueShapes(),this.shapeCont=F},HShapeElement.prototype.getTransformedPoint=function(F,R){var B,D=F.length;for(B=0;B0&&Y<1&&G[ie].push(this.calculateF(Y,F,R,B,D,ie))):(Q=W*W-4*q*U,Q>=0&&(Z=(-W+bmSqrt(Q))/(2*U),Z>0&&Z<1&&G[ie].push(this.calculateF(Z,F,R,B,D,ie)),K=(-W-bmSqrt(Q))/(2*U),K>0&&K<1&&G[ie].push(this.calculateF(K,F,R,B,D,ie)))));this.shapeBoundingBox.left=bmMin.apply(null,G[0]),this.shapeBoundingBox.top=bmMin.apply(null,G[1]),this.shapeBoundingBox.right=bmMax.apply(null,G[0]),this.shapeBoundingBox.bottom=bmMax.apply(null,G[1])},HShapeElement.prototype.calculateF=function(F,R,B,D,G,U){return bmPow(1-F,3)*R[U]+3*bmPow(1-F,2)*F*B[U]+3*(1-F)*bmPow(F,2)*D[U]+bmPow(F,3)*G[U]},HShapeElement.prototype.calculateBoundingBox=function(F,R){var B,D=F.length;for(B=0;BB&&(B=G)}B*=F.mult}else B=F.v*F.mult;R.x-=B,R.xMax+=B,R.y-=B,R.yMax+=B},HShapeElement.prototype.currentBoxContains=function(F){return this.currentBBox.x<=F.x&&this.currentBBox.y<=F.y&&this.currentBBox.width+this.currentBBox.x>=F.x+F.width&&this.currentBBox.height+this.currentBBox.y>=F.y+F.height},HShapeElement.prototype.renderInnerContent=function(){if(this._renderShapeFrame(),!this.hidden&&(this._isFirstFrame||this._mdf)){var F=this.tempBoundingBox,R=999999;if(F.x=R,F.xMax=-R,F.y=R,F.yMax=-R,this.calculateBoundingBox(this.itemsData,F),F.width=F.xMax=0;R-=1){var D=this.hierarchy[R].finalTransform.mProp;this.mat.translate(-D.p.v[0],-D.p.v[1],D.p.v[2]),this.mat.rotateX(-D.or.v[0]).rotateY(-D.or.v[1]).rotateZ(D.or.v[2]),this.mat.rotateX(-D.rx.v).rotateY(-D.ry.v).rotateZ(D.rz.v),this.mat.scale(1/D.s.v[0],1/D.s.v[1],1/D.s.v[2]),this.mat.translate(D.a.v[0],D.a.v[1],D.a.v[2])}if(this.p?this.mat.translate(-this.p.v[0],-this.p.v[1],this.p.v[2]):this.mat.translate(-this.px.v,-this.py.v,this.pz.v),this.a){var G;this.p?G=[this.p.v[0]-this.a.v[0],this.p.v[1]-this.a.v[1],this.p.v[2]-this.a.v[2]]:G=[this.px.v-this.a.v[0],this.py.v-this.a.v[1],this.pz.v-this.a.v[2]];var U=Math.sqrt(Math.pow(G[0],2)+Math.pow(G[1],2)+Math.pow(G[2],2)),W=[G[0]/U,G[1]/U,G[2]/U],q=Math.sqrt(W[2]*W[2]+W[0]*W[0]),Y=Math.atan2(W[1],q),Q=Math.atan2(W[0],-W[2]);this.mat.rotateY(Q).rotateX(-Y)}this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v),this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]),this.mat.translate(this.globalData.compSize.w/2,this.globalData.compSize.h/2,0),this.mat.translate(0,0,this.pe.v);var Z=!this._prevMat.equals(this.mat);if((Z||this.pe._mdf)&&this.comp.threeDElements){B=this.comp.threeDElements.length;var K,ie,te;for(R=0;R=F)return this.threeDElements[R].perspectiveElem;R+=1}return null},HybridRendererBase.prototype.createThreeDContainer=function(F,R){var B=createTag("div"),D,G;styleDiv(B);var U=createTag("div");if(styleDiv(U),R==="3d"){D=B.style,D.width=this.globalData.compSize.w+"px",D.height=this.globalData.compSize.h+"px";var W="50% 50%";D.webkitTransformOrigin=W,D.mozTransformOrigin=W,D.transformOrigin=W,G=U.style;var q="matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)";G.transform=q,G.webkitTransform=q}B.appendChild(U);var Y={container:U,perspectiveElem:B,startPos:F,endPos:F,type:R};return this.threeDElements.push(Y),Y},HybridRendererBase.prototype.build3dContainers=function(){var F,R=this.layers.length,B,D="";for(F=0;F=0;F-=1)this.resizerElem.appendChild(this.threeDElements[F].perspectiveElem)},HybridRendererBase.prototype.addTo3dContainer=function(F,R){for(var B=0,D=this.threeDElements.length;BB?(G=F/this.globalData.compSize.w,U=F/this.globalData.compSize.w,W=0,q=(R-this.globalData.compSize.h*(F/this.globalData.compSize.w))/2):(G=R/this.globalData.compSize.h,U=R/this.globalData.compSize.h,W=(F-this.globalData.compSize.w*(R/this.globalData.compSize.h))/2,q=0);var Y=this.resizerElem.style;Y.webkitTransform="matrix3d("+G+",0,0,0,0,"+U+",0,0,0,0,1,0,"+W+","+q+",0,1)",Y.transform=Y.webkitTransform},HybridRendererBase.prototype.renderFrame=SVGRenderer.prototype.renderFrame,HybridRendererBase.prototype.hide=function(){this.resizerElem.style.display="none"},HybridRendererBase.prototype.show=function(){this.resizerElem.style.display="block"},HybridRendererBase.prototype.initItems=function(){if(this.buildAllItems(),this.camera)this.camera.setup();else{var F=this.globalData.compSize.w,R=this.globalData.compSize.h,B,D=this.threeDElements.length;for(B=0;B=Q;)ve/=2,xe/=2,Me>>>=1;return(ve+Me)/xe};return Se.int32=function(){return ge.g(4)|0},Se.quick=function(){return ge.g(4)/4294967296},Se.double=Se,re(le(ge.S),F),(he.pass||pe||function(Ee,ve,xe,Me){return Me&&(Me.S&&ne(Me,ge),Ee.state=function(){return ne(ge,{})}),xe?(R[W]=Ee,ve):Ee})(Se,fe,"global"in he?he.global:this==R,he.state)}R["seed"+W]=ie;function te(ce){var he,pe=ce.length,me=this,fe=0,ge=me.i=me.j=0,Se=me.S=[];for(pe||(ce=[pe++]);feB){var D=B;B=R,R=D}return Math.min(Math.max(F,R),B)}function radiansToDegrees(F){return F/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(F){return F*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(F,R){if(typeof F=="number"||F instanceof Number)return R=R||0,Math.abs(F-R);R||(R=helperLengthArray);var B,D=Math.min(F.length,R.length),G=0;for(B=0;B.5?Q/(2-G-U):Q/(G+U),G){case R:W=(B-D)/Q+(B1&&(B-=1),B<1/6?F+(R-F)*6*B:B<1/2?R:B<2/3?F+(R-F)*(2/3-B)*6:F}function hslToRgb(F){var R=F[0],B=F[1],D=F[2],G,U,W;if(B===0)G=D,W=D,U=D;else{var q=D<.5?D*(1+B):D+B-D*B,Y=2*D-q;G=hue2rgb(Y,q,R+1/3),U=hue2rgb(Y,q,R),W=hue2rgb(Y,q,R-1/3)}return[G,U,W,F[3]]}function linear(F,R,B,D,G){if((D===void 0||G===void 0)&&(D=R,G=B,R=0,B=1),B=B)return G;var W=B===R?0:(F-R)/(B-R);if(!D.length)return D+(G-D)*W;var q,Y=D.length,Q=createTypedArray("float32",Y);for(q=0;q1){for(G=0;G1?R=1:R<0&&(R=0);var W=F(R);if($bm_isInstanceOfArray(G)){var q,Y=G.length,Q=createTypedArray("float32",Y);for(q=0;qdata.k[R].t&&Fdata.k[R+1].t-F?(D=R+2,G=data.k[R+1].t):(D=R+1,G=data.k[R].t);break}D===-1&&(D=R+1,G=data.k[R].t)}var U={};return U.index=D,U.time=G/elem.comp.globalData.frameRate,U}function key(F){var R,B,D;if(!data.k.length||typeof data.k[0]=="number")throw new Error("The property has no keyframe at index "+F);F-=1,R={time:data.k[F].t/elem.comp.globalData.frameRate,value:[]};var G=Object.prototype.hasOwnProperty.call(data.k[F],"s")?data.k[F].s:data.k[F-1].e;for(D=G.length,B=0;Bre.length-1)&&(te=re.length-1),ce=re[re.length-1-te].t,le=ae-ce);var he,pe,me;if(ie==="pingpong"){var fe=Math.floor((se-ce)/le);if(fe%2!==0)return this.getValueAtTime((le-(se-ce)%le+ce)/this.comp.globalData.frameRate,0)}else if(ie==="offset"){var ge=this.getValueAtTime(ce/this.comp.globalData.frameRate,0),Se=this.getValueAtTime(ae/this.comp.globalData.frameRate,0),Ee=this.getValueAtTime(((se-ce)%le+ce)/this.comp.globalData.frameRate,0),ve=Math.floor((se-ce)/le);if(this.pv.length){for(me=new Array(ge.length),pe=me.length,he=0;he=ae)return this.pv;var le,ce;ne?(te?le=Math.abs(this.elem.comp.globalData.frameRate*te):le=Math.max(0,this.elem.data.op-ae),ce=ae+le):((!te||te>re.length-1)&&(te=re.length-1),ce=re[te].t,le=ce-ae);var he,pe,me;if(ie==="pingpong"){var fe=Math.floor((ae-se)/le);if(fe%2===0)return this.getValueAtTime(((ae-se)%le+ae)/this.comp.globalData.frameRate,0)}else if(ie==="offset"){var ge=this.getValueAtTime(ae/this.comp.globalData.frameRate,0),Se=this.getValueAtTime(ce/this.comp.globalData.frameRate,0),Ee=this.getValueAtTime((le-(ae-se)%le+ae)/this.comp.globalData.frameRate,0),ve=Math.floor((ae-se)/le)+1;if(this.pv.length){for(me=new Array(ge.length),pe=me.length,he=0;he1?(re-se)/(te-1):1,le=0,ce=0,he;this.pv.length?he=createTypedArray("float32",this.pv.length):he=0;for(var pe;lele){var fe=ce,ge=se.c&&ce===he-1?0:ce+1,Se=(le-pe)/ae[ce].addedLength;me=bez.getPointInSegment(se.v[fe],se.v[ge],se.o[fe],se.i[ge],Se,ae[ce]);break}else pe+=ae[ce].addedLength;ce+=1}return me||(me=se.c?[se.v[0][0],se.v[0][1]]:[se.v[se._length-1][0],se.v[se._length-1][1]]),me},vectorOnPath:function(te,ne,se){te==1?te=this.v.c:te==0&&(te=.999);var re=this.pointOnPath(te,ne),ae=this.pointOnPath(te+.001,ne),le=ae[0]-re[0],ce=ae[1]-re[1],he=Math.sqrt(Math.pow(le,2)+Math.pow(ce,2));if(he===0)return[0,0];var pe=se==="tangent"?[le/he,ce/he]:[-ce/he,le/he];return pe},tangentOnPath:function(te,ne){return this.vectorOnPath(te,ne,"tangent")},normalOnPath:function(te,ne){return this.vectorOnPath(te,ne,"normal")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([Z],Y),extendPrototype([Z],Q),Q.prototype.getValueAtTime=q,Q.prototype.initiateExpression=ExpressionManager.initiateExpression;var K=ShapePropertyFactory.getShapeProp;ShapePropertyFactory.getShapeProp=function(ie,te,ne,se,re){var ae=K(ie,te,ne,se,re);return ae.propertyIndex=te.ix,ae.lock=!1,ne===3?expressionHelpers.searchExpressions(ie,te.pt,ae):ne===4&&expressionHelpers.searchExpressions(ie,te.ks,ae),ae.k&&ie.addDynamicProperty(ae),ae}}function initialize$1(){addPropertyDecorator()}function addDecorator(){function F(){return this.data.d.x?(this.calculateExpression=ExpressionManager.initiateExpression.bind(this)(this.elem,this.data.d,this),this.addEffect(this.getExpressionValue.bind(this)),!0):null}TextProperty.prototype.getExpressionValue=function(R,B){var D=this.calculateExpression(B);if(R.t!==D){var G={};return this.copyData(G,R),G.t=D.toString(),G.__complete=!1,G}return R},TextProperty.prototype.searchProperty=function(){var R=this.searchKeyframes(),B=this.searchExpressions();return this.kf=R||B,this.kf},TextProperty.prototype.searchExpressions=F}function initialize(){addDecorator()}function SVGComposableEffect(){}SVGComposableEffect.prototype={createMergeNode:function F(R,B){var D=createNS("feMerge");D.setAttribute("result",R);var G,U;for(U=0;U=Q?K=ne<0?D:G:K=D+te*Math.pow((q-F)/ne,1/B),Z[ie]=K,ie+=1,U+=256/(W-1);return Z.join(" ")},SVGProLevelsFilter.prototype.renderFrame=function(F){if(F||this.filterManager._mdf){var R,B=this.filterManager.effectElements;this.feFuncRComposed&&(F||B[3].p._mdf||B[4].p._mdf||B[5].p._mdf||B[6].p._mdf||B[7].p._mdf)&&(R=this.getTableValue(B[3].p.v,B[4].p.v,B[5].p.v,B[6].p.v,B[7].p.v),this.feFuncRComposed.setAttribute("tableValues",R),this.feFuncGComposed.setAttribute("tableValues",R),this.feFuncBComposed.setAttribute("tableValues",R)),this.feFuncR&&(F||B[10].p._mdf||B[11].p._mdf||B[12].p._mdf||B[13].p._mdf||B[14].p._mdf)&&(R=this.getTableValue(B[10].p.v,B[11].p.v,B[12].p.v,B[13].p.v,B[14].p.v),this.feFuncR.setAttribute("tableValues",R)),this.feFuncG&&(F||B[17].p._mdf||B[18].p._mdf||B[19].p._mdf||B[20].p._mdf||B[21].p._mdf)&&(R=this.getTableValue(B[17].p.v,B[18].p.v,B[19].p.v,B[20].p.v,B[21].p.v),this.feFuncG.setAttribute("tableValues",R)),this.feFuncB&&(F||B[24].p._mdf||B[25].p._mdf||B[26].p._mdf||B[27].p._mdf||B[28].p._mdf)&&(R=this.getTableValue(B[24].p.v,B[25].p.v,B[26].p.v,B[27].p.v,B[28].p.v),this.feFuncB.setAttribute("tableValues",R)),this.feFuncA&&(F||B[31].p._mdf||B[32].p._mdf||B[33].p._mdf||B[34].p._mdf||B[35].p._mdf)&&(R=this.getTableValue(B[31].p.v,B[32].p.v,B[33].p.v,B[34].p.v,B[35].p.v),this.feFuncA.setAttribute("tableValues",R))}};function SVGDropShadowEffect(F,R,B,D,G){var U=R.container.globalData.renderConfig.filterSize,W=R.data.fs||U;F.setAttribute("x",W.x||U.x),F.setAttribute("y",W.y||U.y),F.setAttribute("width",W.width||U.width),F.setAttribute("height",W.height||U.height),this.filterManager=R;var q=createNS("feGaussianBlur");q.setAttribute("in","SourceAlpha"),q.setAttribute("result",D+"_drop_shadow_1"),q.setAttribute("stdDeviation","0"),this.feGaussianBlur=q,F.appendChild(q);var Y=createNS("feOffset");Y.setAttribute("dx","25"),Y.setAttribute("dy","0"),Y.setAttribute("in",D+"_drop_shadow_1"),Y.setAttribute("result",D+"_drop_shadow_2"),this.feOffset=Y,F.appendChild(Y);var Q=createNS("feFlood");Q.setAttribute("flood-color","#00ff00"),Q.setAttribute("flood-opacity","1"),Q.setAttribute("result",D+"_drop_shadow_3"),this.feFlood=Q,F.appendChild(Q);var Z=createNS("feComposite");Z.setAttribute("in",D+"_drop_shadow_3"),Z.setAttribute("in2",D+"_drop_shadow_2"),Z.setAttribute("operator","in"),Z.setAttribute("result",D+"_drop_shadow_4"),F.appendChild(Z);var K=this.createMergeNode(D,[D+"_drop_shadow_4",G]);F.appendChild(K)}extendPrototype([SVGComposableEffect],SVGDropShadowEffect),SVGDropShadowEffect.prototype.renderFrame=function(F){if(F||this.filterManager._mdf){if((F||this.filterManager.effectElements[4].p._mdf)&&this.feGaussianBlur.setAttribute("stdDeviation",this.filterManager.effectElements[4].p.v/4),F||this.filterManager.effectElements[0].p._mdf){var R=this.filterManager.effectElements[0].p.v;this.feFlood.setAttribute("flood-color",rgbToHex(Math.round(R[0]*255),Math.round(R[1]*255),Math.round(R[2]*255)))}if((F||this.filterManager.effectElements[1].p._mdf)&&this.feFlood.setAttribute("flood-opacity",this.filterManager.effectElements[1].p.v/255),F||this.filterManager.effectElements[2].p._mdf||this.filterManager.effectElements[3].p._mdf){var B=this.filterManager.effectElements[3].p.v,D=(this.filterManager.effectElements[2].p.v-90)*degToRads,G=B*Math.cos(D),U=B*Math.sin(D);this.feOffset.setAttribute("dx",G),this.feOffset.setAttribute("dy",U)}}};var _svgMatteSymbols=[];function SVGMatte3Effect(F,R,B){this.initialized=!1,this.filterManager=R,this.filterElem=F,this.elem=B,B.matteElement=createNS("g"),B.matteElement.appendChild(B.layerElement),B.matteElement.appendChild(B.transformedElement),B.baseElement=B.matteElement}SVGMatte3Effect.prototype.findSymbol=function(F){for(var R=0,B=_svgMatteSymbols.length;R * Copyright OpenJS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */(function(F,R){(function(){var B,D=200,G="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",U="Expected a function",W="Invalid `variable` option passed into `_.template`",q="__lodash_hash_undefined__",Y=500,Q="__lodash_placeholder__",Z=1,K=2,ie=4,te=1,ne=2,se=1,re=2,ae=4,le=8,ce=16,he=32,pe=64,me=128,fe=256,ge=512,Se=30,Ee="...",ve=800,xe=16,Me=1,ye=2,we=3,Re=1/0,Pe=9007199254740991,Ae=17976931348623157e292,Le=0/0,Ne=4294967295,Ie=Ne-1,_e=Ne>>>1,Ve=[["ary",me],["bind",se],["bindKey",re],["curry",le],["curryRight",ce],["flip",ge],["partial",he],["partialRight",pe],["rearg",fe]],qe="[object Arguments]",Ge="[object Array]",He="[object AsyncFunction]",Qe="[object Boolean]",We="[object Date]",Ze="[object DOMException]",lt="[object Error]",ht="[object Function]",yt="[object GeneratorFunction]",Fe="[object Map]",Te="[object Number]",je="[object Null]",Ke="[object Object]",Oe="[object Promise]",De="[object Proxy]",et="[object RegExp]",it="[object Set]",rt="[object String]",Je="[object Symbol]",ct="[object Undefined]",dt="[object WeakMap]",pt="[object WeakSet]",vt="[object ArrayBuffer]",wt="[object DataView]",gt="[object Float32Array]",Tt="[object Float64Array]",Rt="[object Int8Array]",Ht="[object Int16Array]",mi="[object Int32Array]",Zt="[object Uint8Array]",si="[object Uint8ClampedArray]",vi="[object Uint16Array]",At="[object Uint32Array]",oi=/\b__p \+= '';/g,Mi=/\b(__p \+=) '' \+/g,Ai=/(__e\(.*?\)|\b__t\)) \+\n'';/g,En=/&(?:amp|lt|gt|quot|#39);/g,Yi=/[&<>"']/g,fi=RegExp(En.source),er=RegExp(Yi.source),Ur=/<%-([\s\S]+?)%>/g,yr=/<%([\s\S]+?)%>/g,Hr=/<%=([\s\S]+?)%>/g,Gn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Mn=/^\w*$/,vr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ji=/[\\^$.*+?()[\]{}|]/g,tr=RegExp(ji.source),ss=/^\s+/,Wr=/\s/,Is=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Qi=/\{\n\/\* \[wrapped with (.+)\] \*/,an=/,? & /,Ls=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,_n=/[()=,{}\[\]\/\s]/,ei=/\\(\\)?/g,Rs=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,qr=/\w*$/,ks=/^[-+]0x[0-9a-f]+$/i,ma=/^0b[01]+$/i,wn=/^\[object .+?Constructor\]$/,ga=/^0o[0-7]+$/i,yl=/^(?:0|[1-9]\d*)$/,vl=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ns=/($^)/,Bs=/['\n\r\u2028\u2029\\]/g,pn="\\ud800-\\udfff",Fs="\\u0300-\\u036f",bl="\\ufe20-\\ufe2f",Sl="\\u20d0-\\u20ff",ho=Fs+bl+Sl,ya="\\u2700-\\u27bf",Xr="a-z\\xdf-\\xf6\\xf8-\\xff",fo="\\xac\\xb1\\xd7\\xf7",xl="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",zn="\\u2000-\\u206f",Al=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",po="A-Z\\xc0-\\xd6\\xd8-\\xde",va="\\ufe0e\\ufe0f",ba=fo+xl+zn+Al,Ds="['\u2019]",Sa="["+pn+"]",as="["+ba+"]",os="["+ho+"]",ls="\\d+",mo="["+ya+"]",xa="["+Xr+"]",Aa="[^"+pn+ba+ls+ya+Xr+po+"]",Os="\\ud83c[\\udffb-\\udfff]",us="(?:"+os+"|"+Os+")",go="[^"+pn+"]",Vs="(?:\\ud83c[\\udde6-\\uddff]){2}",cs="[\\ud800-\\udbff][\\udc00-\\udfff]",ir="["+po+"]",br="\\u200d",Ea="(?:"+xa+"|"+Aa+")",yo="(?:"+ir+"|"+Aa+")",vo="(?:"+Ds+"(?:d|ll|m|re|s|t|ve))?",wa="(?:"+Ds+"(?:D|LL|M|RE|S|T|VE))?",Pa=us+"?",Gs="["+va+"]?",bo="(?:"+br+"(?:"+[go,Vs,cs].join("|")+")"+Gs+Pa+")*",So="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",El="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",xo=Gs+Pa+bo,hs="(?:"+[mo,Vs,cs].join("|")+")"+xo,wl="(?:"+[go+os+"?",os,Vs,cs,Sa].join("|")+")",Yr=RegExp(Ds,"g"),nr=RegExp(os,"g"),Ta=RegExp(Os+"(?="+Os+")|"+wl+xo,"g"),zs=RegExp([ir+"?"+xa+"+"+vo+"(?="+[as,ir,"$"].join("|")+")",yo+"+"+wa+"(?="+[as,ir+Ea,"$"].join("|")+")",ir+"?"+Ea+"+"+vo,ir+"+"+wa,El,So,ls,hs].join("|"),"g"),Us=RegExp("["+br+pn+ho+va+"]"),Pl=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Tl=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Cl=-1,gi={};gi[gt]=gi[Tt]=gi[Rt]=gi[Ht]=gi[mi]=gi[Zt]=gi[si]=gi[vi]=gi[At]=!0,gi[qe]=gi[Ge]=gi[vt]=gi[Qe]=gi[wt]=gi[We]=gi[lt]=gi[ht]=gi[Fe]=gi[Te]=gi[Ke]=gi[et]=gi[it]=gi[rt]=gi[dt]=!1;var Vt={};Vt[qe]=Vt[Ge]=Vt[vt]=Vt[wt]=Vt[Qe]=Vt[We]=Vt[gt]=Vt[Tt]=Vt[Rt]=Vt[Ht]=Vt[mi]=Vt[Fe]=Vt[Te]=Vt[Ke]=Vt[et]=Vt[it]=Vt[rt]=Vt[Je]=Vt[Zt]=Vt[si]=Vt[vi]=Vt[At]=!0,Vt[lt]=Vt[ht]=Vt[dt]=!1;var yi={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Hs={"&":"&","<":"<",">":">",'"':""","'":"'"},Sr={"&":"&","<":"<",">":">",""":'"',"'":"'"},Ca={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ao=parseFloat,Eo=parseInt,In=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,Ma=typeof self=="object"&&self&&self.Object===Object&&self,Ri=In||Ma||Function("return this")(),Ei=R&&!R.nodeType&&R,Pn=Ei&&!0&&F&&!F.nodeType&&F,on=Pn&&Pn.exports===Ei,xr=on&&In.process,Oi=function(){try{var ft=Pn&&Pn.require&&Pn.require("util").types;return ft||xr&&xr.binding&&xr.binding("util")}catch{}}(),Ki=Oi&&Oi.isArrayBuffer,_a=Oi&&Oi.isDate,Ia=Oi&&Oi.isMap,La=Oi&&Oi.isRegExp,jr=Oi&&Oi.isSet,Ra=Oi&&Oi.isTypedArray;function Zi(ft,$e,nt){switch(nt.length){case 0:return ft.call($e);case 1:return ft.call($e,nt[0]);case 2:return ft.call($e,nt[0],nt[1]);case 3:return ft.call($e,nt[0],nt[1],nt[2])}return ft.apply($e,nt)}function ln(ft,$e,nt,ut){for(var xt=-1,It=ft==null?0:ft.length;++xt-1}function kt(ft,$e,nt){for(var ut=-1,xt=ft==null?0:ft.length;++ut-1;);return nt}function Il(ft,$e){for(var nt=ft.length;nt--&&Ni($e,ft[nt],0)>-1;);return nt}function Yu(ft,$e){for(var nt=ft.length,ut=0;nt--;)ft[nt]===$e&&++ut;return ut}var dh=Na(yi),ph=Na(Hs);function mh(ft){return"\\"+Ca[ft]}function gh(ft,$e){return ft==null?B:ft[$e]}function qs(ft){return Us.test(ft)}function Xs(ft){return Pl.test(ft)}function yh(ft){for(var $e,nt=[];!($e=ft.next()).done;)nt.push($e.value);return nt}function Ll(ft){var $e=-1,nt=Array(ft.size);return ft.forEach(function(ut,xt){nt[++$e]=[xt,ut]}),nt}function Po(ft,$e){return function(nt){return ft($e(nt))}}function Er(ft,$e){for(var nt=-1,ut=ft.length,xt=0,It=[];++nt-1}function Hh(ue,J){var oe=this.__data__,de=$r(oe,ue);return de<0?(++this.size,oe.push([ue,J])):oe[de][1]=J,this}Mr.prototype.clear=_r,Mr.prototype.delete=Gh,Mr.prototype.get=zh,Mr.prototype.has=Uh,Mr.prototype.set=Hh;function Ir(ue){var J=-1,oe=ue==null?0:ue.length;for(this.clear();++J=J?ue:J)),ue}function Gi(ue,J,oe,de,be,Ce){var ke,Be=J&Z,ze=J&K,tt=J&ie;if(oe&&(ke=be?oe(ue,de,be,Ce):oe(ue)),ke!==B)return ke;if(!xi(ue))return ue;var at=zt(ue);if(at){if(ke=Mc(ue),!Be)return dn(ue,ke)}else{var ot=qi(ue),mt=ot==ht||ot==yt;if(ns(ue))return Jl(ue,Be);if(ot==Ke||ot==qe||mt&&!be){if(ke=ze||mt?{}:_c(ue),!Be)return ze?hf(ue,nc(ke,ue)):ur(ue,ic(ke,ue))}else{if(!Vt[ot])return be?ue:{};ke=Ic(ue,ot,Be)}}Ce||(Ce=new Xn);var St=Ce.get(ue);if(St)return St;Ce.set(ue,ke),Jc(ue)?ue.forEach(function(Mt){ke.add(Gi(Mt,J,oe,Mt,ue,Ce))}):Ti(ue)&&ue.forEach(function(Mt,_t){ke.set(_t,Gi(Mt,J,oe,_t,ue,Ce))});var Et=tt?ze?io:Kn:ze?li:Hi,Ct=at?B:Et(ue);return Ue(Ct||ue,function(Mt,_t){Ct&&(_t=Mt,Mt=ue[_t]),xs(ke,_t,Gi(Mt,J,oe,_t,ue,Ce))}),ke}function kn(ue){var J=Hi(ue);return function(oe){return rc(oe,ue,J)}}function rc(ue,J,oe){var de=oe.length;if(ue==null)return!de;for(ue=Xt(ue);de--;){var be=oe[de],Ce=J[be],ke=ue[be];if(ke===B&&!(be in ue)||!Ce(ke))return!1}return!0}function Ol(ue,J,oe){if(typeof ue!="function")throw new Rn(U);return ca(function(){ue.apply(B,oe)},J)}function ea(ue,J,oe,de){var be=-1,Ce=Ft,ke=!0,Be=ue.length,ze=[],tt=J.length;if(!Be)return ze;oe&&(J=Bt(J,vn(oe))),de?(Ce=kt,ke=!1):J.length>=D&&(Ce=fs,ke=!1,J=new bs(J));e:for(;++bebe?0:be+oe),de=de===B||de>be?be:Ut(de),de<0&&(de+=be),de=oe>de?0:Qt(de);oe0&&oe(Be)?J>1?zi(Be,J-1,oe,de,be):Nt(be,Be):de||(be[be.length]=Be)}return be}var Fi=iu(),Fo=iu(!0);function Qn(ue,J){return ue&&Fi(ue,J,Hi)}function Bn(ue,J){return ue&&Fo(ue,J,Hi)}function ta(ue,J){return Pt(J,function(oe){return zr(ue[oe])})}function ar(ue,J){J=lr(J,ue);for(var oe=0,de=J.length;ue!=null&&oeJ}function Vl(ue,J){return ue!=null&&ai.call(ue,J)}function ef(ue,J){return ue!=null&&J in Xt(ue)}function tf(ue,J,oe){return ue>=ii(J,oe)&&ue=120&&at.length>=120)?new bs(ke&&at):B}at=ue[0];var ot=-1,mt=Be[0];e:for(;++ot-1;)Be!==ue&&Ga.call(Be,ze,1),Ga.call(ue,ze,1);return ue}function zo(ue,J){for(var oe=ue?J.length:0,de=oe-1;oe--;){var be=J[oe];if(oe==de||be!==Ce){var Ce=be;Gr(be)?Ga.call(ue,be,1):or(ue,be)}}return ue}function Uo(ue,J){return ue+ps(Ju()*(J-ue+1))}function Ql(ue,J,oe,de){for(var be=-1,Ce=Bi(Lo((J-ue)/(oe||1)),0),ke=nt(Ce);Ce--;)ke[de?Ce:++be]=ue,ue+=oe;return ke}function Kl(ue,J){var oe="";if(!ue||J<1||J>Pe)return oe;do J%2&&(oe+=ue),J=ps(J/2),J&&(ue+=ue);while(J);return oe}function Kt(ue,J){return Ps(Rc(ue,J,An),ue+"")}function Jt(ue){return Fl(da(ue))}function of(ue,J){var oe=da(ue);return so(oe,kr(J,0,oe.length))}function Xa(ue,J,oe,de){if(!xi(ue))return ue;J=lr(J,ue);for(var be=-1,Ce=J.length,ke=Ce-1,Be=ue;Be!=null&&++bebe?0:be+J),oe=oe>be?be:oe,oe<0&&(oe+=be),be=J>oe?0:oe-J>>>0,J>>>=0;for(var Ce=nt(be);++de>>1,ke=ue[Ce];ke!==null&&!rn(ke)&&(oe?ke<=J:ke=D){var tt=J?null:ru(ue);if(tt)return Un(tt);ke=!1,be=fs,ze=new bs}else ze=J?[]:Be;e:for(;++de=de?ue:Fn(ue,J,oe)}var Br=Io||function(ue){return Ri.clearTimeout(ue)};function Jl(ue,J){if(J)return ue.slice();var oe=ue.length,de=Da?Da(oe):new ue.constructor(oe);return ue.copy(de),de}function Qo(ue){var J=new ue.constructor(ue.byteLength);return new Wn(J).set(new Wn(ue)),J}function $l(ue,J){var oe=J?Qo(ue.buffer):ue.buffer;return new ue.constructor(oe,ue.byteOffset,ue.byteLength)}function uf(ue){var J=new ue.constructor(ue.source,qr.exec(ue));return J.lastIndex=ue.lastIndex,J}function cf(ue){return Jr?Xt(Jr.call(ue)):{}}function gc(ue,J){var oe=J?Qo(ue.buffer):ue.buffer;return new ue.constructor(oe,ue.byteOffset,ue.length)}function eu(ue,J){if(ue!==J){var oe=ue!==B,de=ue===null,be=ue===ue,Ce=rn(ue),ke=J!==B,Be=J===null,ze=J===J,tt=rn(J);if(!Be&&!tt&&!Ce&&ue>J||Ce&&ke&&ze&&!Be&&!tt||de&&ke&&ze||!oe&&ze||!be)return 1;if(!de&&!Ce&&!tt&&ue=Be)return ze;var tt=oe[de];return ze*(tt=="desc"?-1:1)}}return ue.index-J.index}function vc(ue,J,oe,de){for(var be=-1,Ce=ue.length,ke=oe.length,Be=-1,ze=J.length,tt=Bi(Ce-ke,0),at=nt(ze+tt),ot=!de;++Be1?oe[be-1]:B,ke=be>2?oe[2]:B;for(Ce=ue.length>3&&typeof Ce=="function"?(be--,Ce):B,ke&&Pi(oe[0],oe[1],ke)&&(Ce=be<3?B:Ce,be=1),J=Xt(J);++de-1?be[Ce?J[ke]:ke]:B}}function nu(ue){return Dr(function(J){var oe=J.length,de=oe,be=fn.prototype.thru;for(ue&&J.reverse();de--;){var Ce=J[de];if(typeof Ce!="function")throw new Rn(U);if(be&&!ke&&oa(Ce)=="wrapper")var ke=new fn([],!0)}for(de=ke?de:oe;++de1&&Lt.reverse(),at&&ze<_t&&(Lt.length=ze),this&&this!==Ri&&this instanceof Mt&&(Di=Ct||cr(Di)),Di.apply(ui,Lt)}return Mt}function Ja(ue,J){return function(oe,de){return zl(oe,ue,J(de),{})}}function $a(ue,J){return function(oe,de){var be;if(oe===B&&de===B)return J;if(oe!==B&&(be=oe),de!==B){if(be===B)return de;typeof oe=="string"||typeof de=="string"?(oe=bn(oe),de=bn(de)):(oe=Zl(oe),de=Zl(de)),be=ue(oe,de)}return be}}function sa(ue){return Dr(function(J){return J=Bt(J,vn(Dt())),Kt(function(oe){var de=this;return ue(J,function(be){return Zi(be,de,oe)})})})}function aa(ue,J){J=J===B?" ":bn(J);var oe=J.length;if(oe<2)return oe?Kl(J,ue):J;var de=Kl(J,Lo(ue/Ys(J)));return qs(J)?is(Ji(de),0,ue).join(""):de.slice(0,ue)}function Zo(ue,J,oe,de){var be=J&se,Ce=cr(ue);function ke(){for(var Be=-1,ze=arguments.length,tt=-1,at=de.length,ot=nt(at+ze),mt=this&&this!==Ri&&this instanceof ke?Ce:ue;++ttBe))return!1;var tt=Ce.get(ue),at=Ce.get(J);if(tt&&at)return tt==J&&at==ue;var ot=-1,mt=!0,St=oe&ne?new bs:B;for(Ce.set(ue,J),Ce.set(J,ue);++ot1?"& ":"")+J[de],J=J.join(oe>2?", ":" "),ue.replace(Is,`{ /* [wrapped with `+J+`] */ `)}function mf(ue){return zt(ue)||Ms(ue)||!!(za&&ue&&ue[za])}function Gr(ue,J){var oe=typeof ue;return J=J==null?Pe:J,!!J&&(oe=="number"||oe!="symbol"&&yl.test(ue))&&ue>-1&&ue%1==0&&ue0){if(++J>=ve)return arguments[0]}else J=0;return ue.apply(B,arguments)}}function so(ue,J){var oe=-1,de=ue.length,be=de-1;for(J=J===B?de:J;++oe1?ue[J-1]:B;return oe=typeof oe=="function"?(ue.pop(),oe):B,nl(ue,oe)});function Hc(ue){var J=Ye(ue);return J.__chain__=!0,J}function Wc(ue,J){return J(ue),ue}function rl(ue,J){return J(ue)}var sl=Dr(function(ue){var J=ue.length,oe=J?ue[0]:0,de=this.__wrapped__,be=function(Ce){return jn(Ce,ue)};return J>1||this.__actions__.length||!(de instanceof Wt)||!Gr(oe)?this.thru(be):(de=de.slice(oe,+oe+(J?1:0)),de.__actions__.push({func:rl,args:[be],thisArg:B}),new fn(de,this.__chain__).thru(function(Ce){return J&&!Ce.length&&Ce.push(B),Ce}))});function md(){return Hc(this)}function gd(){return new fn(this.value(),this.__chain__)}function yd(){this.__values__===B&&(this.__values__=$c(this.value()));var ue=this.__index__>=this.__values__.length,J=ue?B:this.__values__[this.__index__++];return{done:ue,value:J}}function vd(){return this}function bd(ue){for(var J,oe=this;oe instanceof Cr;){var de=Nc(oe);de.__index__=0,de.__values__=B,J?be.__wrapped__=de:J=de;var be=de;oe=oe.__wrapped__}return be.__wrapped__=ue,J}function Sd(){var ue=this.__wrapped__;if(ue instanceof Wt){var J=ue;return this.__actions__.length&&(J=new Wt(this)),J=J.reverse(),J.__actions__.push({func:rl,args:[gu],thisArg:B}),new fn(J,this.__chain__)}return this.thru(gu)}function xd(){return ja(this.__wrapped__,this.__actions__)}var Ad=Ko(function(ue,J,oe){ai.call(ue,oe)?++ue[oe]:Rr(ue,oe,1)});function Ed(ue,J,oe){var de=zt(ue)?bt:sc;return oe&&Pi(ue,J,oe)&&(J=B),de(ue,Dt(J,3))}function wd(ue,J){var oe=zt(ue)?Pt:ac;return oe(ue,Dt(J,3))}var Pd=xc(Fc),Td=xc(pu);function Cd(ue,J){return zi(al(ue,J),1)}function Md(ue,J){return zi(al(ue,J),Re)}function _d(ue,J,oe){return oe=oe===B?1:Ut(oe),zi(al(ue,J),oe)}function qc(ue,J){var oe=zt(ue)?Ue:Nn;return oe(ue,Dt(J,3))}function bu(ue,J){var oe=zt(ue)?st:Nr;return oe(ue,Dt(J,3))}var Xc=Ko(function(ue,J,oe){ai.call(ue,oe)?ue[oe].push(J):Rr(ue,oe,[J])});function Id(ue,J,oe,de){ue=Sn(ue)?ue:da(ue),oe=oe&&!de?Ut(oe):0;var be=ue.length;return oe<0&&(oe=Bi(be+oe,0)),lo(ue)?oe<=be&&ue.indexOf(J,oe)>-1:!!be&&Ni(ue,J,oe)>-1}var Ld=Kt(function(ue,J,oe){var de=-1,be=typeof J=="function",Ce=Sn(ue)?nt(ue.length):[];return Nn(ue,function(ke){Ce[++de]=be?Zi(J,ke,oe):Ua(ke,J,oe)}),Ce}),Rd=Ko(function(ue,J,oe){Rr(ue,oe,J)});function al(ue,J){var oe=zt(ue)?Bt:Vo;return oe(ue,Dt(J,3))}function ol(ue,J,oe,de){return ue==null?[]:(zt(J)||(J=J==null?[]:[J]),oe=de?B:oe,zt(oe)||(oe=oe==null?[]:[oe]),Yl(ue,J,oe))}var kd=Ko(function(ue,J,oe){ue[oe?0:1].push(J)},function(){return[[],[]]});function Nd(ue,J,oe){var de=zt(ue)?ti:wo,be=arguments.length<3;return de(ue,Dt(J,4),oe,be,Nn)}function Bd(ue,J,oe){var de=zt(ue)?Ci:wo,be=arguments.length<3;return de(ue,Dt(J,4),oe,be,Nr)}function Fd(ue,J){var oe=zt(ue)?Pt:ac;return oe(ue,Cs(Dt(J,3)))}function Dd(ue){var J=zt(ue)?Fl:Jt;return J(ue)}function Od(ue,J,oe){(oe?Pi(ue,J,oe):J===B)?J=1:J=Ut(J);var de=zt(ue)?tc:of;return de(ue,J)}function Vd(ue){var J=zt(ue)?$h:lf;return J(ue)}function Gd(ue){if(ue==null)return 0;if(Sn(ue))return lo(ue)?Ys(ue):ue.length;var J=qi(ue);return J==Fe||J==it?ue.size:Oo(ue).length}function zd(ue,J,oe){var de=zt(ue)?ki:Dn;return oe&&Pi(ue,J,oe)&&(J=B),de(ue,Dt(J,3))}var Ud=Kt(function(ue,J){if(ue==null)return[];var oe=J.length;return oe>1&&Pi(ue,J[0],J[1])?J=[]:oe>2&&Pi(J[0],J[1],J[2])&&(J=[J[0]]),Yl(ue,zi(J,1),[])}),ll=Th||function(){return Ri.Date.now()};function ul(ue,J){if(typeof J!="function")throw new Rn(U);return ue=Ut(ue),function(){if(--ue<1)return J.apply(this,arguments)}}function Yc(ue,J,oe){return J=oe?B:J,J=ue&&J==null?ue.length:J,hr(ue,me,B,B,B,B,J)}function Su(ue,J){var oe;if(typeof J!="function")throw new Rn(U);return ue=Ut(ue),function(){return--ue>0&&(oe=J.apply(this,arguments)),ue<=1&&(J=B),oe}}var cl=Kt(function(ue,J,oe){var de=se;if(oe.length){var be=Er(oe,Or(cl));de|=he}return hr(ue,de,J,oe,be)}),hl=Kt(function(ue,J,oe){var de=se|re;if(oe.length){var be=Er(oe,Or(hl));de|=he}return hr(J,de,ue,oe,be)});function xu(ue,J,oe){J=oe?B:J;var de=hr(ue,le,B,B,B,B,B,J);return de.placeholder=xu.placeholder,de}function Au(ue,J,oe){J=oe?B:J;var de=hr(ue,ce,B,B,B,B,B,J);return de.placeholder=Au.placeholder,de}function Eu(ue,J,oe){var de,be,Ce,ke,Be,ze,tt=0,at=!1,ot=!1,mt=!0;if(typeof ue!="function")throw new Rn(U);J=Tn(J)||0,xi(oe)&&(at=!!oe.leading,ot="maxWait"in oe,Ce=ot?Bi(Tn(oe.maxWait)||0,J):Ce,mt="trailing"in oe?!!oe.trailing:mt);function St(ri){var ui=de,Di=be;return de=be=B,tt=ri,ke=ue.apply(Di,ui),ke}function Et(ri){return tt=ri,Be=ca(_t,J),at?St(ri):ke}function Ct(ri){var ui=ri-ze,Di=ri-tt,gr=J-ui;return ot?ii(gr,Ce-Di):gr}function Mt(ri){var ui=ri-ze,Di=ri-tt;return ze===B||ui>=J||ui<0||ot&&Di>=Ce}function _t(){var ri=ll();if(Mt(ri))return Lt(ri);Be=ca(_t,Ct(ri))}function Lt(ri){return Be=B,mt&&de?St(ri):(de=be=B,ke)}function qt(){Be!==B&&Br(Be),tt=0,de=ze=be=Be=B}function bi(){return Be===B?ke:Lt(ll())}function Si(){var ri=ll(),ui=Mt(ri);if(de=arguments,be=this,ze=ri,ui){if(Be===B)return Et(ze);if(ot)return Br(Be),Be=ca(_t,J),St(ze)}return Be===B&&(Be=ca(_t,J)),ke}return Si.cancel=qt,Si.flush=bi,Si}var jc=Kt(function(ue,J){return Ol(ue,1,J)}),Hd=Kt(function(ue,J,oe){return Ol(ue,Tn(J)||0,oe)});function Wd(ue){return hr(ue,ge)}function fl(ue,J){if(typeof ue!="function"||J!=null&&typeof J!="function")throw new Rn(U);var oe=function(){var de=arguments,be=J?J.apply(this,de):de[0],Ce=oe.cache;if(Ce.has(be))return Ce.get(be);var ke=ue.apply(this,de);return oe.cache=Ce.set(be,ke)||Ce,ke};return oe.cache=new(fl.Cache||Ir),oe}fl.Cache=Ir;function Cs(ue){if(typeof ue!="function")throw new Rn(U);return function(){var J=arguments;switch(J.length){case 0:return!ue.call(this);case 1:return!ue.call(this,J[0]);case 2:return!ue.call(this,J[0],J[1]);case 3:return!ue.call(this,J[0],J[1],J[2])}return!ue.apply(this,J)}}function dl(ue){return Su(2,ue)}var qd=ts(function(ue,J){J=J.length==1&&zt(J[0])?Bt(J[0],vn(Dt())):Bt(zi(J,1),vn(Dt()));var oe=J.length;return Kt(function(de){for(var be=-1,Ce=ii(de.length,oe);++be=J}),Ms=ia(function(){return arguments}())?ia:function(ue){return Yt(ue)&&ai.call(ue,"callee")&&!kl.call(ue,"callee")},zt=nt.isArray,jt=Ki?vn(Ki):oc;function Sn(ue){return ue!=null&&oo(ue.length)&&!zr(ue)}function ni(ue){return Yt(ue)&&Sn(ue)}function _i(ue){return ue===!0||ue===!1||Yt(ue)&&en(ue)==Qe}var ns=Nl||co,rs=_a?vn(_a):nf;function sp(ue){return Yt(ue)&&ue.nodeType===1&&!ha(ue)}function ap(ue){if(ue==null)return!0;if(Sn(ue)&&(zt(ue)||typeof ue=="string"||typeof ue.splice=="function"||ns(ue)||Ui(ue)||Ms(ue)))return!ue.length;var J=qi(ue);if(J==Fe||J==it)return!ue.size;if(ro(ue))return!Oo(ue).length;for(var oe in ue)if(ai.call(ue,oe))return!1;return!0}function lp(ue,J){return Ha(ue,J)}function up(ue,J,oe){oe=typeof oe=="function"?oe:B;var de=oe?oe(ue,J):B;return de===B?Ha(ue,J,B,oe):!!de}function Pu(ue){if(!Yt(ue))return!1;var J=en(ue);return J==lt||J==Ze||typeof ue.message=="string"&&typeof ue.name=="string"&&!ha(ue)}function Tu(ue){return typeof ue=="number"&&Ku(ue)}function zr(ue){if(!xi(ue))return!1;var J=en(ue);return J==ht||J==yt||J==He||J==De}function pr(ue){return typeof ue=="number"&&ue==Ut(ue)}function oo(ue){return typeof ue=="number"&&ue>-1&&ue%1==0&&ue<=Pe}function xi(ue){var J=typeof ue;return ue!=null&&(J=="object"||J=="function")}function Yt(ue){return ue!=null&&typeof ue=="object"}var Ti=Ia?vn(Ia):rf;function Kc(ue,J){return ue===J||Ul(ue,J,la(J))}function cp(ue,J,oe){return oe=typeof oe=="function"?oe:B,Ul(ue,J,la(J),oe)}function hp(ue){return Zc(ue)&&ue!=+ue}function fp(ue){if(gf(ue))throw new xt(G);return Do(ue)}function dp(ue){return ue===null}function pp(ue){return ue==null}function Zc(ue){return typeof ue=="number"||Yt(ue)&&en(ue)==Te}function ha(ue){if(!Yt(ue)||en(ue)!=Ke)return!1;var J=Oa(ue);if(J===null)return!0;var oe=ai.call(J,"constructor")&&J.constructor;return typeof oe=="function"&&oe instanceof oe&&ds.call(oe)==Mo}var _s=La?vn(La):lc;function Cu(ue){return pr(ue)&&ue>=-Pe&&ue<=Pe}var Jc=jr?vn(jr):sf;function lo(ue){return typeof ue=="string"||!zt(ue)&&Yt(ue)&&en(ue)==rt}function rn(ue){return typeof ue=="symbol"||Yt(ue)&&en(ue)==Je}var Ui=Ra?vn(Ra):af;function fa(ue){return ue===B}function mp(ue){return Yt(ue)&&qi(ue)==dt}function gp(ue){return Yt(ue)&&en(ue)==pt}var yp=eo(Wl),vp=eo(function(ue,J){return ue<=J});function $c(ue){if(!ue)return[];if(Sn(ue))return lo(ue)?Ji(ue):dn(ue);if(Ks&&ue[Ks])return yh(ue[Ks]());var J=qi(ue),oe=J==Fe?Ll:J==it?Un:da;return oe(ue)}function mr(ue){if(!ue)return ue===0?ue:0;if(ue=Tn(ue),ue===Re||ue===-Re){var J=ue<0?-1:1;return J*Ae}return ue===ue?ue:0}function Ut(ue){var J=mr(ue),oe=J%1;return J===J?oe?J-oe:J:0}function Qt(ue){return ue?kr(Ut(ue),0,Ne):0}function Tn(ue){if(typeof ue=="number")return ue;if(rn(ue))return Le;if(xi(ue)){var J=typeof ue.valueOf=="function"?ue.valueOf():ue;ue=xi(J)?J+"":J}if(typeof ue!="string")return ue===0?ue:+ue;ue=Xu(ue);var oe=ma.test(ue);return oe||ga.test(ue)?Eo(ue.slice(2),oe?2:8):ks.test(ue)?Le:+ue}function Cn(ue){return wi(ue,li(ue))}function eh(ue){return ue?kr(Ut(ue),-Pe,Pe):ue===0?ue:0}function ci(ue){return ue==null?"":bn(ue)}var hi=Fr(function(ue,J){if(ro(J)||Sn(J)){wi(J,Hi(J),ue);return}for(var oe in J)ai.call(J,oe)&&xs(ue,oe,J[oe])}),th=Fr(function(ue,J){wi(J,li(J),ue)}),uo=Fr(function(ue,J,oe,de){wi(J,li(J),ue,de)}),ml=Fr(function(ue,J,oe,de){wi(J,Hi(J),ue,de)}),bp=Dr(jn);function Sp(ue,J){var oe=Xe(ue);return J==null?oe:ic(oe,J)}var xp=Kt(function(ue,J){ue=Xt(ue);var oe=-1,de=J.length,be=de>2?J[2]:B;for(be&&Pi(J[0],J[1],be)&&(de=1);++oe1),Ce}),wi(ue,io(ue),oe),de&&(oe=Gi(oe,Z|K|ie,wc));for(var be=J.length;be--;)or(oe,J[be]);return oe});function Bp(ue,J){return rh(ue,Cs(Dt(J)))}var Fp=Dr(function(ue,J){return ue==null?{}:hc(ue,J)});function rh(ue,J){if(ue==null)return{};var oe=Bt(io(ue),function(de){return[de]});return J=Dt(J),fc(ue,oe,function(de,be){return J(de,be[0])})}function sh(ue,J,oe){J=lr(J,ue);var de=-1,be=J.length;for(be||(be=1,ue=B);++deJ){var de=ue;ue=J,J=de}if(oe||ue%1||J%1){var be=Ju();return ii(ue+be*(J-ue+Ao("1e-"+((be+"").length-1))),J)}return Uo(ue,J)}var qp=Es(function(ue,J,oe){return J=J.toLowerCase(),ue+(oe?lh(J):J)});function lh(ue){return Nu(ci(ue).toLowerCase())}function ku(ue){return ue=ci(ue),ue&&ue.replace(vl,dh).replace(nr,"")}function uh(ue,J,oe){ue=ci(ue),J=bn(J);var de=ue.length;oe=oe===B?de:kr(Ut(oe),0,de);var be=oe;return oe-=J.length,oe>=0&&ue.slice(oe,be)==J}function Xp(ue){return ue=ci(ue),ue&&er.test(ue)?ue.replace(Yi,ph):ue}function Yp(ue){return ue=ci(ue),ue&&tr.test(ue)?ue.replace(ji,"\\$&"):ue}var jp=Es(function(ue,J,oe){return ue+(oe?"-":"")+J.toLowerCase()}),Qp=Es(function(ue,J,oe){return ue+(oe?" ":"")+J.toLowerCase()}),Kp=Sc("toLowerCase");function Zp(ue,J,oe){ue=ci(ue),J=Ut(J);var de=J?Ys(ue):0;if(!J||de>=J)return ue;var be=(J-de)/2;return aa(ps(be),oe)+ue+aa(Lo(be),oe)}function Jp(ue,J,oe){ue=ci(ue),J=Ut(J);var de=J?Ys(ue):0;return J&&de>>0,oe?(ue=ci(ue),ue&&(typeof J=="string"||J!=null&&!_s(J))&&(J=bn(J),!J&&qs(ue))?is(Ji(ue),0,oe):ue.split(J,oe)):[]}var am=Es(function(ue,J,oe){return ue+(oe?" ":"")+Nu(J)});function om(ue,J,oe){return ue=ci(ue),oe=oe==null?0:kr(Ut(oe),0,ue.length),J=bn(J),ue.slice(oe,oe+J.length)==J}function lm(ue,J,oe){var de=Ye.templateSettings;oe&&Pi(ue,J,oe)&&(J=B),ue=ci(ue),J=uo({},J,de,dr);var be=uo({},J.imports,de.imports,dr),Ce=Hi(be),ke=cn(be,Ce),Be,ze,tt=0,at=J.interpolate||Ns,ot="__p += '",mt=di((J.escape||Ns).source+"|"+at.source+"|"+(at===Hr?Rs:Ns).source+"|"+(J.evaluate||Ns).source+"|$","g"),St="//# sourceURL="+(ai.call(J,"sourceURL")?(J.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Cl+"]")+` `;ue.replace(mt,function(Mt,_t,Lt,qt,bi,Si){return Lt||(Lt=qt),ot+=ue.slice(tt,Si).replace(Bs,mh),_t&&(Be=!0,ot+=`' + __e(`+_t+`) + '`),bi&&(ze=!0,ot+=`'; `+bi+`; __p += '`),Lt&&(ot+=`' + ((__t = (`+Lt+`)) == null ? '' : __t) + '`),tt=Si+Mt.length,Mt}),ot+=`'; `;var Et=ai.call(J,"variable")&&J.variable;if(!Et)ot=`with (obj) { `+ot+` } `;else if(_n.test(Et))throw new xt(W);ot=(ze?ot.replace(oi,""):ot).replace(Mi,"$1").replace(Ai,"$1;"),ot="function("+(Et||"obj")+`) { `+(Et?"":`obj || (obj = {}); `)+"var __t, __p = ''"+(Be?", __e = _.escape":"")+(ze?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; `)+ot+`return __p }`;var Ct=Bu(function(){return It(Ce,St+"return "+ot).apply(B,ke)});if(Ct.source=ot,Pu(Ct))throw Ct;return Ct}function um(ue){return ci(ue).toLowerCase()}function cm(ue){return ci(ue).toUpperCase()}function hm(ue,J,oe){if(ue=ci(ue),ue&&(oe||J===B))return Xu(ue);if(!ue||!(J=bn(J)))return ue;var de=Ji(ue),be=Ji(J),Ce=Ws(de,be),ke=Il(de,be)+1;return is(de,Ce,ke).join("")}function fm(ue,J,oe){if(ue=ci(ue),ue&&(oe||J===B))return ue.slice(0,Ln(ue)+1);if(!ue||!(J=bn(J)))return ue;var de=Ji(ue),be=Il(de,Ji(J))+1;return is(de,0,be).join("")}function dm(ue,J,oe){if(ue=ci(ue),ue&&(oe||J===B))return ue.replace(ss,"");if(!ue||!(J=bn(J)))return ue;var de=Ji(ue),be=Ws(de,Ji(J));return is(de,be).join("")}function pm(ue,J){var oe=Se,de=Ee;if(xi(J)){var be="separator"in J?J.separator:be;oe="length"in J?Ut(J.length):oe,de="omission"in J?bn(J.omission):de}ue=ci(ue);var Ce=ue.length;if(qs(ue)){var ke=Ji(ue);Ce=ke.length}if(oe>=Ce)return ue;var Be=oe-Ys(de);if(Be<1)return de;var ze=ke?is(ke,0,Be).join(""):ue.slice(0,Be);if(be===B)return ze+de;if(ke&&(Be+=ze.length-Be),_s(be)){if(ue.slice(Be).search(be)){var tt,at=ze;for(be.global||(be=di(be.source,ci(qr.exec(be))+"g")),be.lastIndex=0;tt=be.exec(at);)var ot=tt.index;ze=ze.slice(0,ot===B?Be:ot)}}else if(ue.indexOf(bn(be),Be)!=Be){var mt=ze.lastIndexOf(be);mt>-1&&(ze=ze.slice(0,mt))}return ze+de}function mm(ue){return ue=ci(ue),ue&&fi.test(ue)?ue.replace(En,ju):ue}var gm=Es(function(ue,J,oe){return ue+(oe?" ":"")+J.toUpperCase()}),Nu=Sc("toUpperCase");function gl(ue,J,oe){return ue=ci(ue),J=oe?B:J,J===B?Xs(ue)?Ah(ue):mn(ue):ue.match(J)||[]}var Bu=Kt(function(ue,J){try{return Zi(ue,B,J)}catch(oe){return Pu(oe)?oe:new xt(oe)}}),ch=Dr(function(ue,J){return Ue(J,function(oe){oe=Zn(oe),Rr(ue,oe,cl(ue[oe],ue))}),ue});function ym(ue){var J=ue==null?0:ue.length,oe=Dt();return ue=J?Bt(ue,function(de){if(typeof de[1]!="function")throw new Rn(U);return[oe(de[0]),de[1]]}):[],Kt(function(de){for(var be=-1;++bePe)return[];var oe=Ne,de=ii(ue,Ne);J=Dt(J),ue-=Ne;for(var be=Ba(de,J);++oe0||J<0)?new Wt(oe):(ue<0?oe=oe.takeRight(-ue):ue&&(oe=oe.drop(ue)),J!==B&&(J=Ut(J),oe=J<0?oe.dropRight(-J):oe.take(J-ue)),oe)},Wt.prototype.takeRightWhile=function(ue){return this.reverse().takeWhile(ue).reverse()},Wt.prototype.toArray=function(){return this.take(Ne)},Qn(Wt.prototype,function(ue,J){var oe=/^(?:filter|find|map|reject)|While$/.test(J),de=/^(?:head|last)$/.test(J),be=Ye[de?"take"+(J=="last"?"Right":""):J],Ce=de||/^find/.test(J);!be||(Ye.prototype[J]=function(){var ke=this.__wrapped__,Be=de?[1]:arguments,ze=ke instanceof Wt,tt=Be[0],at=ze||zt(ke),ot=function(_t){var Lt=be.apply(Ye,Nt([_t],Be));return de&&mt?Lt[0]:Lt};at&&oe&&typeof tt=="function"&&tt.length!=1&&(ze=at=!1);var mt=this.__chain__,St=!!this.__actions__.length,Et=Ce&&!mt,Ct=ze&&!St;if(!Ce&&at){ke=Ct?ke:new Wt(this);var Mt=ue.apply(ke,Be);return Mt.__actions__.push({func:rl,args:[ot],thisArg:B}),new fn(Mt,mt)}return Et&&Ct?ue.apply(this,Be):(Mt=this.thru(ot),Et?de?Mt.value()[0]:Mt.value():Mt)})}),Ue(["pop","push","shift","sort","splice","unshift"],function(ue){var J=hn[ue],oe=/^(?:push|sort|unshift)$/.test(ue)?"tap":"thru",de=/^(?:pop|shift)$/.test(ue);Ye.prototype[ue]=function(){var be=arguments;if(de&&!this.__chain__){var Ce=this.value();return J.apply(zt(Ce)?Ce:[],be)}return this[oe](function(ke){return J.apply(zt(ke)?ke:[],be)})}}),Qn(Wt.prototype,function(ue,J){var oe=Ye[J];if(oe){var de=oe.name+"";ai.call(Tr,de)||(Tr[de]=[]),Tr[de].push({name:J,func:oe})}}),Tr[Za(B,re).name]=[{name:"wrapper",func:B}],Wt.prototype.clone=$t,Wt.prototype.reverse=Nh,Wt.prototype.value=Bh,Ye.prototype.at=sl,Ye.prototype.chain=md,Ye.prototype.commit=gd,Ye.prototype.next=yd,Ye.prototype.plant=bd,Ye.prototype.reverse=Sd,Ye.prototype.toJSON=Ye.prototype.valueOf=Ye.prototype.value=xd,Ye.prototype.first=Ye.prototype.head,Ks&&(Ye.prototype[Ks]=vd),Ye},js=Eh();Pn?((Pn.exports=js)._=js,Ei._=js):Ri._=js}).call(commonjsGlobal)})(lodash,lodash.exports);var _export_sfc=(F,R)=>{const B=F.__vccOpts||F;for(const[D,G]of R)B[D]=G;return B};const _sfc_main=defineComponent({props:{animationData:{type:Object,default:()=>({})},animationLink:{type:String,default:""},loop:{type:[Boolean,Number],default:!0},autoPlay:{type:Boolean,default:!0},width:{type:[Number,String],default:"100%"},height:{type:[Number,String],default:"100%"},speed:{type:Number,default:1},delay:{type:Number,default:0},direction:{type:String,default:"forward"},pauseOnHover:{type:Boolean,default:!1},playOnHover:{type:Boolean,default:!1},backgroundColor:{type:String,default:"transparent"},pauseAnimation:{type:Boolean,default:!1},renderer:{type:String,default:"svg"},rendererSettings:{type:Object,default:()=>({})}},emits:{onComplete:null,onLoopComplete:null,onEnterFrame:null,onSegmentStart:null,onAnimationLoaded:null},setup(F,{emit:R}){let B=ref(null);const D=ref("");let G=1;const U=ge=>document.querySelector(`[data-id="${ge}"]`)!==null,W=async ge=>{let Se=F.autoPlay;F.playOnHover&&(Se=!1);let Ee={};if(lodash.exports.isEqual(F.animationData,{})===!1&&(Ee=lodash.exports.cloneDeep(F.animationData)),F.animationLink!="")try{Ee=await(await fetch(F.animationLink)).json()}catch(Me){console.error(Me);return}let ve=F.loop;typeof ve=="number"&&ve>0&&(ve=ve-1),F.delay>0&&(Se=!1);const xe={container:ge,renderer:F.renderer,loop:ve,autoplay:Se,animationData:Ee};lodash.exports.isEqual(F.rendererSettings,{})===!1&&(xe.rendererSettings=F.rendererSettings),B=Lottie.loadAnimation(xe),setTimeout(()=>{Se=F.autoPlay,F.playOnHover?B.pause():Se?B.play():B.pause(),R("onAnimationLoaded")},F.delay),B.setSpeed(F.speed),F.direction==="reverse"&&B.setDirection(-1),F.direction==="normal"&&B.setDirection(1),(F.pauseAnimation||F.playOnHover)&&B.pause(),B.addEventListener("loopComplete",()=>{F.direction==="alternate"&&(B.stop(),G=G*-1,B.setDirection(G),B.play()),R("onLoopComplete")}),B.addEventListener("complete",()=>{R("onComplete")}),B.addEventListener("enterFrame",()=>{R("onEnterFrame")}),B.addEventListener("segmentStart",()=>{R("onSegmentStart")})},q=computed(()=>{let ge=F.width,Se=F.height;return typeof F.width=="number"&&(ge=`${F.width}px`),typeof F.height=="number"&&(Se=`${F.height}px`),{"--lottie-animation-container-width":ge,"--lottie-animation-container-height":Se,"--lottie-animation-container-background-color":F.backgroundColor}}),Y=()=>{B&&F.pauseOnHover&&B.pause(),B&&F.playOnHover&&B.play()},Q=()=>{B&&F.pauseOnHover&&B.play(),B&&F.playOnHover&&B.pause()};watch(()=>F.pauseAnimation,()=>{if((F.pauseOnHover||F.playOnHover)&&F.pauseAnimation){console.error("If you are using pauseAnimation prop for Vue3-Lottie, please remove the props pauseOnHover and playOnHover");return}B&&(F.pauseAnimation?B.pause():B.play())});const Z=()=>{B&&B.play()},K=()=>{B&&B.pause()},ie=()=>{B&&B.stop()},te=()=>{B&&B.destroy()},ne=(ge=1)=>{if(ge<=0)throw new Error("Speed must be greater than 0");B&&B.setSpeed(ge)},se=ge=>{B&&(ge==="forward"?B.setDirection(1):ge==="reverse"&&B.setDirection(-1))},re=(ge,Se=!0)=>{B&&B.goToAndStop(ge,Se)},ae=(ge,Se=!0)=>{B&&B.goToAndPlay(ge,Se)},le=(ge,Se=!1)=>{B&&B.playSegments(ge,Se)},ce=(ge=!0)=>{B&&B.setSubframe(ge)},he=(ge=!0)=>{if(B)return B.getDuration(ge)},pe=(ge,Se=0)=>{B&&B.renderer.elements[Se].updateDocumentData(ge)},me=ge=>{for(var Se="",Ee="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",ve=Ee.length,xe=0;xe{if(F.pauseOnHover&&F.playOnHover)throw new Error("You cannot set pauseOnHover and playOnHover for Vue3-Lottie at the same time.");if(F.animationLink===""&&lodash.exports.isEqual(F.animationData,{}))throw console.log(F.animationData,"animationData",F.animationLink,"animationLink"),new Error("You must provide either animationLink or animationData");const Se=setInterval(()=>{if(U(ge)){clearInterval(Se);const Ee=document.querySelector(`[data-id="${ge}" ]`);Ee&&W(Ee)}},0)};return onMounted(async()=>{D.value=me(20),fe(D.value)}),{elementid:D,hoverEnded:Q,hoverStarted:Y,getCurrentStyle:q,play:Z,pause:K,stop:ie,destroy:te,setSpeed:ne,setDirection:se,goToAndStop:re,goToAndPlay:ae,playSegments:le,setSubFrame:ce,getDuration:he,updateDocumentData:pe}}}),_hoisted_1=["data-id"];function _sfc_render(F,R,B,D,G,U){return openBlock(),createElementBlock("div",{"data-id":F.elementid,class:"lottie-animation-container",style:normalizeStyle(F.getCurrentStyle),onMouseenter:R[0]||(R[0]=(...W)=>F.hoverStarted&&F.hoverStarted(...W)),onMouseleave:R[1]||(R[1]=(...W)=>F.hoverEnded&&F.hoverEnded(...W))},null,44,_hoisted_1)}var Vue3Lottie=_export_sfc(_sfc_main,[["render",_sfc_render]]);const v$1="5.7.1",fr$1=60,ip$1=0,op$1=240,w$1=450,h$1=500,nm$1="\u8BC4\u6D4B\u524D 2",ddd$1=0,assets$1=[{id:"image_0",w:69,h:58,u:"",p:"data:image/png;base64,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",e:1},{id:"image_1",w:69,h:58,u:"",p:"data:image/png;base64,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",e:1},{id:"image_2",w:214,h:86,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAABWCAYAAACzU2j2AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nOy9ebRl91Xf+fkNZ7rjm1+9qlJVqWRN5XnEBhvJtDHGMWEUgwlp6O4FJg14scgihE4jlIRAAu1OVrtDB0IIDaTdiA6YYBs7TpAdjOVBeFRJKmsq1fzm++5w7hl+v1//8TvnvvuqSkOVJCwJ77XuOrdu3fvuuXvv797fvX+T4Ksozjmx54U77hCP89ZL5fbb3cUvCSEuee1r8vySF4pPPPWbfpqyR2G1sm6v/n3nMcFt1fO7jk/d0y1Tf+Fju09vPeaVdWf179uOO+6onk8p92tAe27LC9knnlVgXaK4i5V213FBe8W/Jzkn4Jj//5PnBddf5g9+pboe3ufgOKQrXkn9Gxx8zCv3TrxSAe7ga0B7jsnEJ6aBNO0P3ALtE8+OT1wEtGfTH54VYD2u8hanFJecE5ycEyRtQbTl3xc2BcGOgGX/hzb7e+9vru3gAhQdr5B86FiZdZR9x1eAw5uOdMXtUSpfA9lXW54UTJPgOisIzwtOP0M+kU+BrX/OXQKyZxFg+pn8Y3sUeDtwrFbeouDoCUFyTBB+SaDbgo0VyYEdgVYC1RWooaCHwC4I1MD/nSjbVWIrdjAAs+BQ22AaDqkdZ6yjUI4DIw+q+dDS/ZIjP+a4Z8vRv8WD7NgxB3dQRy3nvC6/BrBnT57UH46fE6RzAsIaSIJyRrDUf3yfmBcwGPvnT+QT7RlLseXIO44sdKRzjnu2LIs3OO5CTPvDs+ELzwiwLolIx4756+Ki4J4TgvS85EhbsLElKWcE/UISI7ELgt6WZNYJ+kgCK5ClIHUCqQVhc/dLciApHeMRWOFIrIPI0k0dW7nDLljIHZm1ZLVSh46DX7LkONpbjrtw3F5lsepevwawZ14uC6i7jgsWF5n4A21B3hEcyCRaCfpaAgIxkBAJBqVEtgRBttcngIlf1D4hSsdQQBhYNA6ROkRmQVmkdiyNLGlkyYfyEn94lgD2tKngJUrkmOCuRUH7hGA1k9zcFmzkkqSUhEaSakVqJUFDEhhJZiVBphgNNU0ko1KRZBIiGGWSEK/AQDsC5Rgbh1IGE1tUaNChoZSWMrWEHUsyshTSkitLS1uywDJct2SzjqWmJd3yVPHWtQpg/LVw7r8Jcokv1PS/veKpfzgnWCslYVNM/GHQrvzCSAIr0bbyiVxROIlNNSUSlUnCJ/AJg0U1Dcp4nwgi7xeFtORDS9g0e/xhUVvyunQ451g75p5Jivi0MpZzTlwSldpbgiUEjVACktFIglb0MkXYlERSEfU1aT8gHwaURUiWBdgiYjMLMSZgXCgcCuEEWfVlpXAMMOTKEukCpwt0UODCAt3IcbogLQukLMkjgw4MvZEllIZFbTk9sqS5pR9altasp4nPXsT6mySXzVDgGcsSkjATrHUkzUwyNycZlHLiD2VPYRJJNNBYqxn1QvJxwNgGmCxEFAFlGeBKBVajgaz6vlI4es5itCGWJXmYo4MCHeeIOEM0C2xYELZKAmvopYZQGua6hlFgGZaWxczCioVF4BjcXrGZ2293zjlxtb5wVRnrcbPU0sfkJCplkaKtFflQEWtFpBRpP6QcRGTDGDlsQJ4wHjehaOLyBmWZIG2EtSHSapyQOCcQwuGsA1UiRI4QOTocY8QYHY2QUYqMRuhWiojHqCQjjHJcKyc3Bp0YQmNISsNpZWnrCmB1Brs0Yn0NXE9NnpSxzJSSppFEc5J0R5EHilgpCqmIBppsFFJkIW4Uk/YTTJ7g0gbSJNgiQZQJ1kQ4F4LRWOEDbvXlSFniRAEiR+oUoVPCeIgJhwTJkCBOCVspQSPDNXNEUhAaw7gwJB3DoDTMh5bRRb5w/Lh7OpnrioF1WUXesyVJZgWNoWRnXRHNSfJMkytFUmqyrQhZRow2mrhRm3G/i0lnMNkslB1M2UWYFpYGwsY4GwIBDglCgHMILEKWOAqEGINMEXKE0gOs6iNUnyDeQSc9SAYE7QEEKaI1pjk3JlMlUpd7ABZlPpv1Ivs1enjlsscXjk3TvsoXNnLJWCuaU4ByaYDLAuQwYjhqUI4aiEGbdNxGZh2KrIMtO7iyBa6JsAnGJUgb4AiwTiNE5bfOIkWJpQCRoeQI1BChdhCqjwu2ieJtXHObqLtD1BogZlKCKEMkBTooSY2hX5q9vvD0wXVFwHpcUNWRqc5SptC4UiNNSNhPGG00SbdnKYdzmHQRxovYcgFn5sDM4GwLRwNcDISARqABgUPg+0UWh8GJEkEBZB5gYgSyj5A7CNVD602INlHBJrK1RdjaoWgMaMyMUPGYaD4jswYVliT20oj16ln7NXA9uewpA+48JlisslQ3k3sYS6IUZaFxaUCRRZidmHzQotxpY0ez2PEM5XgeilkoZzG2i7MdsE2EiLEmRogQ6wIQCukkrvJbgQMMCB9wIUOSghyA3AG5jVAbyGgNGa0RNNdwM9vEMzu0WyOKpTFQ7PGFfmhZOmlZvcWytuZZDFfuB1cOrFqZdyFpr+ym+26kyBsak2tkHmIGMen5Fmoww2BrCTdcxo73Y4t9OLMMdhbnukADRwzCAwqhAN8hkkJMfTmA9Q9ngRJHCeTgxsAIKQc42QO5gdTr6GAN2VhFN9ZQrS1se4doZkBzbgxBfknE2taWpWcmYr2QZY8fTJcBq4cl7VzS0mrCWCCg2IwQOw2KnTbF1gzFYAGXLWLzRSgWKMsFnJtFuI7PUi7BighBACgQyrMX5CU+4QOu9wmHAQpwGZDiRB8pthFyHcILKH0WlZwn7FxAzG4ws9Qjb6dEjYxhWrKoS0aZobNgGD09cD1lYF0WVN1M0osUY63oZJoy1uRrEXHaoH92lvHOAmXvAGZ8ELJrcOUK1i4CMyBaSCJrVdAPXxQMghfJUXhAFGpWGNXC6hZOhAghcM4inEGaAcoMUKbnkuKCaxSP2bZ5yETFlkE4H7EcKeAVilzH6VWC8BwyOUfQuoBobhDObdPqDvdErKE1xKWhm5lnig68EOUSUNVlQO+0orkgKVI9yVLZKCLsJ/Q32+Qb87j+Inm6D5ut4Mp9WLOEcLM410HQBB9grVN6EB7Vg+CwTMODIpdzwsg2VjexMkFIT2GcNUgzRJkhyuwQFxdss3zUdooHTFRul2C9PwixgxCbCHUeoU+j4lNEzdNE8+dhdhPdHSLmUpwrUEFJkJR0zNMC11MC1mWVWYOqjk5OBJiNhHzYZHxuHru9QjY4jBkfwRWHMXYfws6DaJeiEW80XhtuRy9TaXyD0HFLRFFEEARorVFKIaVECFEBy+Gcw1qLtZayLCnLkjzPyfMcmV1wjfFDrpPdZ+bSewolinwKYFsgV3H6HDo4jWyeJmqfI5hfp7WwM4lYwhWMSoOOSvqhpZ2br4Frr1zWD6bLgJlcYxqapNSUmwm99TZqMMN4cxkz2k+eXoMtDyLMMtbMA10QTRDRIDwUbIWv0oP4RTKLDhPETREEwSU+UftFdT9YazHGYIyhKAqKoiDLMtTotGuP77Pz6d1lyz42xroRgm2EWEUEpyF8lKD5CGHnDGpulca+HnImxYY5UFwWXFfgB08KrN35fneIPcpcqkC12QuQMiAsYwanuhSbC5Sb11CMroPsKLY8jLP7EMyM5VLzbOtbw53mq2TcmhNJkhBFEWEYopS6RHliT9Z3ewBWK7Msy4kyx+Mx2bDnGum9biH9TDmXfS4Dl2JdHyXXQZxDRo8ho5OErVOo+fPo+U0aiwNyPabdKghHng5sLhjPtbFfA9eTgKouA1w/QJYh480G5XaXYmOBrHcQmx7C5YexxUGcWwJmQTTGci5aa3xjtB2/XNK6Zo8/BEGwxyeEEEgpAfYA64mCbpqmjEYj1OBBuzj8WLmUfTIF1wexDvIMInwYHT9EOPMIwewFgqVNwuXh5cG11w+eGWBNuj6LgvRLiplSYruaTp2phgnDszNkq0sUG9fihtdTZtfjzCGEW8rFTOdk5/sbo84rZas9IxqNBnEc74lGNZBqpU2Daupe9lyttTjn9kSsGmCj0Yiif9bND//SrPQ/PFayGOLcNogLyOAkRI8StR4mmD2NXlijM7tDVtGBOVtMwHWZzPU3DViPG1yn/aCMNeVWjFxvsr05i9tYwe4cpkiPYosjYA6AmwfZ3glvbJxtfnOQtV8iGo2WaDQaE0BdjrE8kU9U97fHJ+rAW5YlWZaRpimDwYBy55Rb2fnTfHF89wDhNhHyDC58CB2fQHUfprFyivbiFnZ+sAuunXKPH9yKfSpDMk84QLwXVMcFS8ckvSpCmSlQDU51KdaXKbeOUvZvguIGXHkYIRZPN/92d6P7lqDZXRL72m3iOJ4o8HLKeyK5+D1KKZxzaK1xzhFFEUmSTBQ67nbFcHhIf3nnm5ozO5+Irxn8cSJd2cQVLTAdirKJKRqEWcBOqZFsE8wN2ZQwF0GRO/ohtFcMHIfbcdxxh3DO/Y3JWpe21Bf9BICZ03v9oNyKUFst0rUFyrVrcP2jlOmLsOW1CFbAzfbCl7TOdN4R2vaNstVqMVcBqg6wNVsBnrJP1O+tpfaJOotFUUSj0aDZbDJqt8Vq+2C0vvWG4HD//w0a5ZkQ8ojS+sZZ7gR9ICgd4TIUwtGNHEXu6GbODyTPCm4//qS2f1xgTRR6O7szkFeHkrkFSb6hcV1NuRVRnG9jtpYwW9dS7NyMy2/C2cO5mF16cO5HO2LuJWqx26XZbBJF0SWAeroy/XeklCilCIKAMAxJksQrtNUS/fai/vL2a9or/feHi+ndIZgEmyc4l1CYAJwmxPcj7dyQvOEoR9CmvJxSn86o/PNO9oDqY5JeR+3SP+f9IF/tUFxYJFs/hB3cgM2u96By+3JmZk7O/EBjPPMa2el0Re0L04B6pvwB2BOspZRorQmCYBJ4d5LXyxOb17ZXencGy8OPa0SpsKkkw8/maBSgI4uYs+QNR0s41oaO7j7HXYuCtWNw/A6eKMA+8ZSmO+4Q3H7MT1PqZr7dWaChodHbIWqrxWh1kXzjMGX/RshvxNkj2/FL9p3s/t12e/Gw6HQ6NBqNCWd+JhV4sTwZyIbNpljt/Vi8sfV1wXVbvxUGth8ibESBxqEwVTCJtcMuOGwJraajB6xmcNeiq5V6udWqLzTZ2wmugmvjsKRUVXA1AWURY9fbjM8tUW4eody5EZvdhLNHEG75fOPW2fPd7wzbs8tiud0mSZJJTf1MA+piuZhGSimpGyJRFIm1+H+IB5vXLx7t/TbCFvi2PSWZKCEu6WDptx2N0GeuxtCxdBzAPhl7uSyw9lDAu6rUv3ZaMtdUGKcg0/Q3G2QXZsm3D1D0r8flN2DtkY3m61ZOz/5wa3ZhWXQ6HZIk2ROV/rpECLGnGaK1JgxDoihiJ369ui880L1m+3f17PgLCpdLCieRwpFJi3IWWzpke0SeORLnmCkd3Y85wHLsGNzxxBHrBSN1s6IOrjs7iqJTBddhiFxvUqwuYLYPYXduxGU3gzlqZLT8UPeHZ4u5N+jFmRlardazwlieqkw3QGp/0FqLLf3m8H41s3zj+r9EysJgKSh1jlob0xMFcaOkLC15ZCnXHY05RzsSMCsma/0uI4+fserVvvecEKyGEiJFKhVyrGEzodjpkG+uUA6PYvMX4cyhteQbDpyb/6HmfAWqOI7RWv+1K3FaaoDVSp3KYuKx8H9uptt/rPb3PyRwhaMYGCyGTJYoaWgEhrJjMT1Hc8GxOuto545beWGDics0rZYQ9LYUJQpRaFQQkO00Ga/PUaxdg+ndQJndBOboWM6vnJj7ydlk4Qa5NDNDo9GYZKmvti/U3x1F0cQfNuWr9f3i7y/ftPGeUtoipximCD0iCjJkI4f9hmZh6UWOInIks54SPkHWugRYl3YBz0uWkHSNpJdrZBGyvdnCri1i+4cw4+tw5vBG/NpDZxd+qLmwuG8CqjpjPBfk4oillEJrLTaD74tz0V0+svM+iysNJs0Z9zJCnSPaBTI0lE1Ha9tSRI7VzE1Twhdi1rqkvl5C0jgsoZQYrRjlGtdPyM7PUGzsJx9eh8lvAHPtIDy88vDc35ttL1wru90ujUbjksbEV1sulzE3ebm+n5/ef2zjVwtsMSLv97FBH9Ue0e3klAuGRmHZKC3zQ0l7y8Gxx21kXD5jTWerI23BaCRZKzVdpRlsNnD9GbL+CmZ8BJsfGYaHDpye/zud+cXl5ySoaqmVWWfRythiQ3xr/BDR/ut6v2Mgy5ByhFEjBvGYiBIZGdZKi206Zoa7lPD2F3DmqoPr0S1BmAl21hVFRyEzjR5HpGttsu1Fip0jmPRFmPLaQXx0/4NzPzE3u3RIdLvdr1oZ8FSktn8YhpPX1u3LgofLH77m6M6/T3HlDm64TbbeZ5SkyLBAtgxtLBu5fbIAuwdYl81W4NdTxYlf9mF2mqTbizA6hCsOF7K98uDsjy115/eLdtVOfy6Calrqe4uiaGLwdffm6DE3OnCof2dGmQ1hMEBtDwjiFNcsaM5Y7I5FGks4Z2lHgjtnxQs1a02yVXKsqq/nJONUI0UAvQZmfY5y5yAuvQ5XXpvqpZWH5/7e3OzSITEzMzMB1VeT+j2ZXAwuay2r5S3ROXP+0Mrww33caIsy2iTb2iFujUnigl5msV3LzaFl44Tg1tndTWqm5PIZ6zZ8topKybipmHWKtNAEawm9rVlUf4VsfAhbHnh47kcONeaOqDpCPddBVUsdRcMwpN1u45xj3X1rfM70Dq0M//MIm/XIetvIpE+nO8ZFBXlo6HYMaz1Jd9OxeE680LLWnuB6dGt3iCU1ftlHvh2TbnXI+suUgyPY4kghk/0nFn5qubNwSE5nqucyqGqZ7hY2m03m5uZYzb+t0xnfd7BpTm/hhmuY3ga2PSCdHRPPGGxh2EBOstZlfOBSYN2O3+wjPS9ZagooJVmgKNYi0p0WdmeBMt8P5sBa602Hi5lXREtToHq2FHn2kYe4+8Mf4MzDD7F65jTpaECWjrHWEkYhUZwwu7TM8sFD3Pzq1/G6t7wVIdUT/s26sVGDy1orVvPvaLXyR65plw/twHgTs73JqN0nbmbESUEqFc0FS6hfuFlrOlvlpwWpVnSlIssD3HaC6c1h+gdxxWGkPfDQ3I8dbM4fVVeTqc499gh3f+gDnH7kQdZOn2Y06JNlY6wxhFFEGMXMLS6zfM1hbnz1a3jdW74FpZ7RPZD2ZK5Wq0U+tyQezX9o5cXr/2wNkR2kGJzH9bZZWBtSxAX50NCNDDe3fdbimLi4Szz55btjFtWUlflQMRppellI2IwITnVYP3OA8vyLKXdeU4j4FffO/8KLF/YfVbOzs0RR9IwD64F7PsNffPBPuPfTf8nq2TMooZBSIERVfE79AmsdTjissThnCeOE61/6cl795rfwxnd8B3Gj+bjfU0+BSdOUra0teue/Yo6t/uIDWrgvoRv3kCx/mcbBxwiXt4nCMT1bYMuC7o5hFcutWHj+T3W6KFv5idajGY0YhIzyEN1vMXxsmfGF68m3X4Ubv+JU69tf0V/+js7i4iLtdpsgCJ60pjrx+Xv4xAfez5c+9UnWzp5GIvfaVQAOEGCdwznrr9YSxjHXvfjlvOabvF2TZusZ+/3WWoqiYDAYsLq6Smv1/VvX9P/404j4HuKlz9E88DDBtetIkWIjP+UpmS1ZPX6JD+yF/qQLdMzvqIRWxEZhxwHDUQM3mMOM92HMysmZ7zvanF1RrVaLMAyf0QL1Ux/5EO977//G2ulTaOXnjjXCBCkFUsjJsoHdhaQORzXbWVuctZjScP9ffYZ7P303v/eeX+FNb/923vkzP3dZQ9TUNY5jOp0OeX5YPVr+yJEXbfzGBja/QNZfRe9sEc+k5ElB1DTIdUk4Z+GlcOea4LYXECW8DTh+zu9TIbcVXSmJraa32SDvz1IO9yPyg0N96JrN7lvbizMzNJvNJwXVZ//rR3jfv/pVzp8+hZYSpTRJEO/aVQgQj2NXZ3HWzws98bnPct89n+L33/MrfP3bvo0f/Jmfo9npPu2fXTe2kiSh2+2yOrq1uzz685XQDFYwg9O43hpma0CymGOMZMNJ+kNJe8XVzAUfEi4C1p11F+i8YFVJ5oVkrBRuLcb12tjhAq5YGevl/cPmK5rL7fZkPOCZqKtOfP4efu9Xf4lH7j9OoBVJlKCkREmFkn6N22S6ChKHq5aV+MWk1vnB88nkXGswymejj//J/8enPvpnfMv3/xDf9a6fuIQm1rSwBteF0auSXvriQ93x/Rcw6RnKnVXG233CKCM3hmLOMOxJ2iesL2BfIHMIJ6XAnN+azApJHihkFlGMWtjRAi7fj7P7TnbfeaAzOy9ardYTgurBL32e3/vVX+Khe7+EVpokjFBSe9tWNGzXrtWiceH8dic4n60AZw3Gaayy3rbG8IkPvJ/P/vlHeOv3/SDf+a6felo0sb6HIAhoNBq0ugvyVPo911639e/OYMb7GA3PEe1sU86NKKKSJDPYLUGyI7httt6QSAghnIQpClDvlb1WSlZiQWAlkdGYNKIYdSnGyxi7/Fj3uw+3un7ZR63QpyPOGt77s+/mn/xPP8ipE/eTBCGRjoiDgDgIiXVAGASEKiDQAYEK0EoR6oBAKkKl/L+VIpCaUAeE2n820iFREJJEMWac8f7f+nV+6u238uCXPn+JUusittFo0J2ZE4+1v2c/zvmFeWV/jvGoicsCgoYkrrfxmvW7U93+OD/u+SR33CG485hfYn9zW9Cfk4RtSSEVo50YtdPFpcs4s+9C65uPus4NYbsKrpcrA5yz/Po/+vv84x/+Pk7ef5wkCL09g9DbtrJrEAQESnu7au3tqIIpu2oCqQh0QFTZNQ5CojAiCSNslvMn/+43ePfbbuHE5+95WiqoxzijKKLVajFovLyVqYX9WLNMPpwj7zcpehFlqoiM3yjn5JyoBox3/87k2aRgnRWETb9hYq4U4yzADBoUo1lEuTCK9u9Pk2PNeorK06WA/a1N/tE7v4tP/5cPEylNHEZEoQdVqENCqdFKEVRZS4v6KlBCTKJendUCpdCVIbTShFoT6YBIBcRBQBKEDDY2+OUf/SE+8ad/tOdepovYZrOJbB0OVpu3HoVyGZstMN5pI7KQKFWERtIvJatDv5r6zmPP7fbXk8hkUHix8oGN3AePbKRgHFAME/LxDGW2hDBLFxrftDA9Ze1iHxju9PjFv/M9fPJD/4lQ7wIhDkJC5YNkbVct1JRd5V67imq2jJTerkqja5Cpyrba23W4vcWvvOuH+fP/+AdPSxd11kqShGZnTjzW+a6jCLOIzBcQwzZFFqITH3R0w2+T3j6xxwcuSjW3wOrQO0xo/OaJsheSDlrYbB5nl84333pts90V09OVrlYePf5l/uH3voMzDz5AHAREQUikA0KlK3BIlJITGiilQEpQgoqX4x9SoKhew/NbJQUaSaA82AJdZbLAZzBKy7/5xZ/jff/yVy5Ras2zO50OF5pvXgS3iMkWMMMuW9sNSuP3c1iJd/cYv40rO3LmuSi3A9wC4XlBkAhCIwkSSbkTIYdNxGgeaRfPN972oqC9ouu66uIO4JkHH+Af3va3OPnAcQ+oIJiyqyJQCiU9eKSU3oZKeLvWtsV5u1Y2ldLvLqQAXQFw2q5RZVdhLb/9S/8rv/sv/slVq+HiADtqHGuWRItYs4jJurhRTFRqUuNxEm35DUmnfGAXWDUFiLbEhAaWRpOOI2TaxpTzzjHXj4+1ms3m025YPPjFz/GP/8cfYLC1WUWdsKIDCi3VJHLJ+lHdrHD48vDiR/V/Vf1bKQekkCghCapsFipNpCqQSc0Hfue3+L/+l5/Zo9Rpni1bB4LV5E1HsXYRPe5CFjPOAgLrN56cpoNc5nyn55PUPqDbfhvw1EqKscL0IkbDNtbOY+3CauMbFmvGcvG45aPHv8wv/N3b6G+se6o+AZS8Ors6qk26vF3rgKqk2GPXoLJrDeCPvO//5r0/+1NXrYrpABs3Z+T55tuux5l5ynSWctQg2wwpU8XAeB84ObfHB7xG6voqObdLA9OGxOSKMk1wWQdhZs+3vuX6sDGnnm626m2s8b//9LtwRUFcpfJQeqfXQlUUoAIHDuGs/7ET5UqkkiitUIFGB4F/rqvZ7EJW2zxVW/sIMQGYrqJcVEc6HfCJD76fD/7735jc3zTPbjabbDRfvw/n5inLWYpRE4YBmZVVRPfNHm7heV1nTfvAuS3B8lCgAoG1GptHkHZxdn4revm1srkS1PX1tA8Me9v82rt/FJvnvhbSAXFN3aSu7Orb6R5QrgqAyjOTypY6CFCBntizDpQ4B84iqs96YHpG4+lhRf2VD9Sf+s8f5I/+zf9xVeq4eOB4K375PNg5hOlS9JsEaHQiSZ1neEl7jw/shpq7jnvUBTsCFQoCI8nTkGgcYfMu1s5uxS9fqtdWXW22ctbwL378RxhubfnMIX09pJSqqIDY7f5VgxlCSK9MP3GWIAyIkoQoSYgbTeJmk7jRJGo0COMYHQaoIEApjajoo8D5KAdoISbNjjqD/cH/+R6++Jcf36NYrTWNRoM8PJRkwcISzsygR03KQYi2PqL3C8npimM/3+Wu4wKO+aNzBtVe6uwEiHGCMx1cObPWeNPBeqHixd3gf/6u/57BxjrhtF2FRCuJdFR2rWwsFUqH6DD0A8FJgzhJiBsNb88kIYwTwjgmCEKUquYc1gOXziGEQ0hPD5UU3q5SEWhFKBWRCnj/b76Xz33so1eljtoH4jjGJfuCXnTzIYSbRWQtdrZigkwxG3qGdwSm6yzpnBMTbp20BZsNQbrlN6Z3maYYN8F1SxnPFdH+qN6r4mqz1Xt/9ic59ZX7iXRAoDWB1r7xIDxtC+OIa26+me7iYqU8n/6DMCKMY+JWm+bMLO3ZWcI4wRYlaa8PpSFOGrTn5ml2Z0haTcIkQVdBQEo/6lgbVktv8LDKXHvQ5f8AACAASURBVNI63vuz72bt9GMTpdazMpJmW5xP3nw9wnYxpoUsQ4JcoQKBHu7WWc/nBsbF9ZWKBHriAzHWdJxw3WF0baP2gWlQ/frP/zSP3n+v7+BpTaDV7jAJEMYxh26+mbl9KyilCaKAqBHTaLdpzc7S6HaQMmA8TBn3B0ipaXa6tGa6JJ0OUSMhiGOUDiqASu8fzoKo2IkQaFkFzSp7KQf/+ud/hnMnH75ildTMJQxDGo0GG/FrD2LKGQrTxhURg9wf8KGGPstP1Vm+6X/nMX9e0XwIWSxwTpBninQUYosGzrXXm9/4oihuyqdTW33hL+7i0x/9MFEQoqtaSla10PLhI7z9x9/NwRtv9nwPSPs73P1Hf8gX/suHCWIfwdZOnmb99Fl6q2uYovCZrd5IBAiiiJl9yyxcs5+5A/sYD4cU4zEmz8GVOGew+FSthMRJ56OcUoyHfX7zF/8BP/9v/589VCCOY/rRdV1GdDBlkyyNkFYTW3/kDFGl1Nm6eH1+jmW1T/hD35b6/jdlqSQfB9hxgjPtjegNL4qSjrq4vX7fZz7JJz/4fsIgJNAaLSRSKqSEhWuu4R0//m4O3nwMIT3zyEYj/urDH+RzH/4QZx98hM2z5xlsbnnATNkS52jMzTC/ssLydYdpJAl5mpKPU2xZYozf0l9MqVvi6SZSYqXCKk06GvKbv/AP+IXfufPS3/wkUi+KjOOY7ehIB0kHUbSQWUiUanItGThfZ3GwPtbV7R1NO7clWNSCXiRgLBF5gCsbSNvpBTcuTkeqqwHW+97zy2hZFZxVy1wLwQ2v/jq+9cd/CqUVw9725P1CCF7/nd/N4Ze+jDt/+Zd46HN/QTYYVjxdENQbj0jp98cXAlcUbDx2itWTj9GcneG6V72MVrfDeDSkSFNM6aOctQ5c1YZSEuc01lnu/+ynuO/Tn+Tm171hQgWiKGIrWI6N1B3lyhYqizBDRRoIIicwDSZHej5fxU8OgCP44DooJVoL8lLjZAMh2lvRS5cv5wO//6v/FCV963xiW+C6l7+ad/zET6OCgNFOr2oM+c+9+E1vRumYX3/Xu8Baggp0orJpPeMi6/U5tb3DY/c9wPLRIxx92c0opchHI3BZNeXJISp24zck8cAKlMShsFbz4Bfu4YufuIuXfcOtV6SWmrlEUYQNFsMxC0sx/SZ5FhFlGjnnkSwTwcnzgsR/zv+K6cZFL/IdQZMrTBYiZQNDK9UrjaczH/Av3v+HnHn4RKX8iiJIQaPb4eu/+3sZ93cYbm9NHqPeNml/h3QwIGy06C4fJBuOUFL6yFc9fAEl/L+ra839h9s9/uqjH+PRex+g2ekQNhKU1p6n1zQTUPjWb1AVwr//a/90otTJPglRIjfiN1yHVA2ciWiWinbgKVNQKXXPIdTPUzm35U9SlJmgzBWhCxAmAdscByvti33gUx/+U04+cLwaN5QTuyatFm+87fsZD/sMe1ukvR7jfp/h9jYXHj3J+pkzLB46xDe+850Tm9W2rB81eFV1PffQI9z9gY+SpWPidosgipBqKsjXxzDhfLxEVLZVaCn5D7/2z65YHTWwgiAgimOx1njDUZBNMDHKKKQWDMaCzX51RrJvYMjdsZcq4qqRIM0EZqgQZUBZNEZ6eUGGLT29IcyVyh/+6/f4gUApUNL/aOng5q/7BorxmMHWJoPNTQZbmxNQjft9zpx4kPVTp3nt29+O0qpSOjgcpXNYASX+YXGY6jXftPDjYCcfeJDP/7e7SZotwjhB1oWwA0G1olgIlFYEQnHy/nu5+0N/smdhZBiGDPXhRRAxRgSMkKSXV+rzUi4OrioQSCUoRwHWJkYGTRvMBBf7wB/8q39OoGQ1tlS1z53gxte9nrLIqyDZIx302V5b5/SJr7B94QI7a2vsrK/zire8BRkGl9pSMHnNCSa2NEXBX/3Xv2Dz3Bpxs0kQhJ5Cgm/NO3+KhnCV/SfsSHHm4a/w8T+68sHjaR9IwwNdqLbDHhQamVfNvtgPU1RNLJ+x7jruI26wI2AGZCBQSKwKsSLeSV56oN4L8GrW2Nz9oT9h49zZSvkKhfIDgQga3S7Drc1LMlU2GnHygQdYP3OG7bU1Br0e3X0rGBwlghKBFYLSTU5KqAwiMK4CGOAqzr1x9gLHP/sFomYDHdZUxvNz4bwidF38Ssmf/e6/nSi1LmDHarGNI0HKEDtWyFzQ7cAScLr9/M9WF9PZIpVoqZEi6oWvuEYHkZxeEfxXf/4RVk8/hkZVA7l+SEPiaHRnGW55UI0HffqbWzx2/wNsr66ytbbK9toaW6ur7Gxu0l3Zf6ktnfO2hD32FELgrOXLn7qH4WBE2EiQlV8651c2+JrL+k4kVSCXEi0FH/4Pv33FWpn2gVzONXAk4CKCUiO1D0ILUx+485i4aMbiMqiBIARKJcidQspoqA/O15HqauYFfuYjH5xMU6m7c9JPrwTnGGxveWomJUprgiji3COPsb2xubuBIxA0mxghdk9eZLK6gN0X3KT5gXVVdvPU4swjJ2nPdNl3cBlbljhT4oSbjPb7KOebKo/cfy/j0YAwbkwK2EJ2IpQIUU5jrZ/FOxgLisR/4Quh5Q4VaxECVQowGkU4VIeWpnctBrj7z/6Tb0BVg7XVxFOQvq0+6vWqoY+Qxx58BFOW1XjU7riUA4JGg7J6fqktYbd48uIqEH3uv93NG9/2TYRRRGYMzhp/PqHw45dVqYV0u2Ndpx98gNFOj8YVzIavSwKtNaVqhwgihAmxuUJoARa2hwJbTs7NrlByC1wPbPardpwWlJkEAoQMcznbrCPV1ch999ztlwlUA79K+q+RAjZOP8Zgc2OSrcaDPv2tLR65/wEf1dZ8hNtcW2XjwgXKKnoZ5yjZvfrnTK7GQSn81VBTCsGJL9+HDkKCMPCUEH+mnXR+qpTCX11Z8sk//aM9SrUyUlgCjApQSKQWdKofeeSqVPPck5q1NJsglIBQ41SQBzPNi/evuO8zn0RVWV7VTuyZOltnT5Hu9MiGQx65/wFWz5xha3XVP9ZW2VxdZXNtja21NdbPn39yW+IwCH8VnpmMs4z7vngvYZKg9N5ayz+zk5kduqq5KA0ff/+VdwfrrCV1rIbB4SXQETaQZLmvR+f3vv9SpAzG/p6EEb5QEdqIKLjaTUEe+Ozd9Lc2feMEPP8FJBbhHJtnTjPc2mC4vekNMRpy3+e+6A2wvsbmqlf+2tmz7Oz0PDUQ1cNNXR0Uzk6uk+eVcWxFHfO84L4v3ecL36nfU1NCVU+DkpLPfPTPJkqVUiJUpPJgrgEo73QvDHHOiUk5MC3CCCwSJ2Qpm/F0tnr4y19ge221squ3aj2bQuLYPn+O8WCHwfY2D997P721dbbX1iswrbNVgWrt3Fl621tPzZbOYhBY54EFgtOPnqLICnQQetaB2zNDo6b5ojpuTSnJ5/78ygaM6/Kn2tmLVK/MIJzCOlV3AS+Wx1+8UmoBgQapnIz01bbYP/nBP57MpPA/3Cu/JnIbp04SxjFh0iCIIowxPHL/iWp1cLWaFMGZhx6itBcNDwk8Id/LH3ZfmNDCatP8ilGcPnmKF7/8ZpTWlDneCHX1SzUXDTjxhXsmSq07jSNxYCZUq+KFBKyJHN7nKE/u/luWAqWh1MqIKJj2gU/86X/cY1eJ8+qrQvX2hXPMLK2wur7N+vlzSCFxopoTOOVHZx95hMLYp25L5yYUUgDGWh78ysPcdPNRilRioKqz6j/oqn6Xq4Km4MEvXvnSkmk/KNRMC6ckUl2690NyTsDsEwCrUFXGCoQhUFe7e+mpBx/YnWhpHVJWBhB+HMk5w9qjD9Pdt0Kj0+HUY2fZXF0F6UtQKQSDnR166+vVIrj67FQ/ziHYrbm87D73dnATO7qK/6fjjI2NLRqhz8L1YKTybNlHYCEYDwasnTrJzL79gO9M2SAOQDu09F+0c0XqeE6KEMI59weO40DRcahtoAVWO7SCQuNQctoHTp+4v5o866oJtBX9cg4hfQbbvnCWh048Rr8/8Dxx+jsRDPs79NbW8R+7AltWDQwhBc7AhXMXeMnLbkLWG4JWn/VBvLKpqGpoB6NxypmHHuDAdTdeqZ48sHQ3oZTisnkpXbnMCmKAVuzIgUA6rIICEFpc7Y47G2fPVPP/qE65rM7pdpI6IpV5xs7qBYRzPHjfA6yvriKkxJiSMi8w1gBVJKoK1/qH1q9Vb9gtemHXLtO2sh6ap0+d5abrD0+imZ04h6sm73ojPnLvF3jlvv2T7zAkChTo2GFL/4WzY8ejDeAGB+euWEfPSRkOQZeOUgMSd1GGXj93Ckk9Q91VDm0RrmIlUlCWJfd97gvoJEGHgQ+IUmDKkiLPscbsNqKu0pYIwc7OgGyc+3FNV52a6sCvQvYBvbarqLLmo1/+4lUBSwhBKeIAEQq09McbXgZf1Usfg6/MwYG2gwEkpT8qORUOGTo/Xnd1zGfY297N7tRRDZhMLLLV0gCHNSVb6+sM+n1c1eDg4u+dimgXdwXrbOaou4aXyXBCgLOMRmM/SZe6S+W8AeqlJ9Wn1k6f2vv9MnCUyqBDyzh0mKGDCA72HaevSkXPITkOrIBpOBLrpzOUQ4sKzcXvHGxtTwbYwWcu3K4lpJAMhyNKZynGKWTjS205JVdsy/ozVTDsD4a0Qk/Xbel27YqfrIt1k7FnKWDt7NUZq8qIDqEtSjrC0FFYx0a2530XYe0CmAXHeAQqsojIIFTpvFzVjeTZmFCIijJUD2ylIjtRkKhuephmmL3d1ccVZ+1kXGP3xYuB53aNVdEV4SAdj30Hq/pyZ2z1Hr9pia/LIB3uTD7rnCOQ2YAwLnGx/6JW7ChbjrCainXHVanpqy93Ai8G8qFjUTv6LUcytgTNEtJCCldO+0CRj1HO60lUzu3PXK+aQQKGgxH1qNKT2fOKbUlNQf3/jdIx7ahRfcbtZjym5hNW9RlAOuhflZoqymoIohKVWFzpaBqHaDoi6djI4bbj1VzBW485juNItzy/tsIRYSkDg9SlT62OqwGXKQpEGFSTK3dVXCvI+3VlIBzG+q2uLFNR6Yl/6RP9555rbRwFGFN9Q6VsUTU4/HSYCoDCkY3SPQeZBXa8Q5iUWGGJpKUMHfICfCWC5GNXrJ/nlKQrDoawAejCYaVFKIOIc2GtqTfpcc5R5jlK1XS+tp+X2p5labBVgDI8O7as6/eiKHbvZQ993AWVqO5R4MjS0RUqZze4+nHrqCRslOSlY0f4kqkA2v69cvecp+P+YhqOsGOxsUVHJTLKhTN2WqlXIlIr77vTEeNxHn7fuGgyTmXwI/AG9jwvndvz/HH/f+pqnKNwfscfgyOIw8luTs76gWpX38fU8zCOgfoITuMihuuEUU4cl9jSYXJH0XEc3ue49djVpfXngtxWbe6/Musomw5TOMqGJWgW6CiT0o5rfQEorS+135QdnXU0mgnWucmMimfaltOvNRpJZUd7WTu6i+4zqux6JVIHVyXtEBUWjJXBhpUPjB0H+47+DQ5qinwnPlrlQ0eZOWzhUIGBOEcnqRJlPq3UK5EwinBVNphcLwMoZwymLAnDYEq51s8dc5bS2clrT9k4U9f6uZ8iA1Ec4coS6ikwU1mrHgfBOaIkmWzoKVxZai37GFlQqhJT+CM086GbBKbn84F0/RscZd87ickdLnSIpEBFaci4V5blJBgFYVj5w65tJza1DmdK2kk8GaAvnK3s9AzZsvo/i2c3zUaIM8ZTyj0Zqs5ge33vSjf63HP8qhmsI6OMVuSDayt2zLUdXwH4GNxx8QDxdLRSqqTVyFGNVGHSaaVeiTRa7ap+qQDkqudTV2cN1hpMkTM/P4O1dTSqFQ2lqw0wBZCLHhcbZ8/D2t05Z86xtDCLMX5DW6zxv80apvcltNYxv3LQU5+yRJFnqEaKbI8JpCWRFtN0rMw60hXHlQ/oP3fkDvBNLGBu5EhmLaG0oHJkMo5I16Z9oNnp4Kx3NHATG4PDVvYMNDSajUrnz6Atpx7GOcIwpNtsYE3ps1Z1T1iDMxbrjM9klf9Z55hdWnnKqqlBVR8Y3lSbjyJ1jpIlkbTkylKke1hLtWzkuNsTrRJZKTXKUVGqZdEvyxIz1R59qjK/bz8OO6Fb9Q+kKnbroteZElvkXHvNCuBnSzhqSugfPsLtRr3C7l4L66NffX28h3UOrSRHDixh8rxStqu2/2QqizoclsPHXjLZelhT9NGNAbqRUeiSQlrOjb3e+je4CZ16vsqtxxyHNz21NbmjcIYoKtCdUVtunSiKYuIDC/sOeLvWVJpdx8UZbFlQZmNW9i3ioLIhmCkbXrUt3W4NDrC0PE+Zj7FFUTVQmNRZdQ/RVf5U2/vIi1/2lNUyDSxTFqYhRhcIuiOKdkEh7SWshRpYdbTK9zna2mIyRxEbRJKTdIZN+qfyPL8qYO0/ch3W+i2CbZUFql9Z0S2vIVuWlHlONw7odtpQ04SaV7M30l0u6j1ulKuyla1As7S0gCtyTD72Ua6aFe2moppxljCK2Xft9ZRlSZ7nNER6mqA9QMsMFZSYzOurpgDPZ7n9djcpCeZDS0tb4tQiRUEQj9p68LAzeVEUBdZa9h25DmO9Tq2zVZKoqaCtgJXzosMrVFsUV/UtT8+WF9VazjpedM0ByizDlLmfWD0Zy6qzlc+izlosDhUEHLrpyhamGmMoioJAFGNEc4ATGdL4cuDCRazl9tudnGyJfOsxj7h86Ggpi1EWEeTYZDQrLtxTFLm7Gjr42m95BxaLqVJy7bTUf6dWgjWYPCNPh7zqJTdMikwzrUwu4t2X8PLd694IubvUWwrB6192A8VohCkLMOVucVt1JE1llOte+vJJthqPx3TV9ufRzQFhNKZwhkxZ8qGP8rcec9zhZzFckcWeSzLNXM6NHZkxSFkQhiNUZycQWb8OsK9727dV+6kbjLU4jNebdf61oqQcj1hsJxxYWazsXtnT2quzJbvLR2zV5l9amOWapS7lOPU1lrNVB9ru1nvOQh3creXosZc+6Uk001JnqzzPiUS6QdTuE3VTTGxIpKUd2ItZi89Y09FqZdaRK0uIgSAjaA2T0J2jzLI8z68YWK9487eQNNrYiirYSSG5SwdrimiLgmKccmSxy77FOUS17KM2Rmntnqg1vRhu+vluVLPVcoTdNuzRQ/tpBZIySzF5UWUqH/lsRRWstRhreeUtb50oFJONu/HoBDYeUkQ5Wd/QVpZsb6R6yop5zsoUc8mVpQxLCFJUo99U2aNpmlKWJTd93RtpdroeVM5iTWVX6oBZYvKcbDDg9S+9YbII0k6B64psif+Mb1Z4W2oBr3vpDYwHfcpsjCmLSZlRUz6HZ0kWb1NjLK9681ufsjbqhkVZlmRZRkMNH0Y1+mg5RqhiUl/l+1zduIDp5kUdre7rO8qRI9s2FLbEkaLbvUhl61mWUWetK5HrX/VaSuN/mLVmMpWlLnyZOHRJOR4zHuzwzV/3MlpxjLRuMp1yuu1aOt9yra9FFfHqa/0+VylHWMd8p82tr7yJfOgN4TeXqWq8qmlhqozqhOAN334bZVkyGo1oheNT6HaPZnOI1AWhMZQjR/oCqa/AO8Wtx/x4Zj50tLRFZQVEKWG7t0+f+ug4Hdksy7DWctNrXu/1Zbz+jPHNAuec3+ylLCjGI9qB4A2veAmymnEOuxT/KdkSKlAxofPSOV714htYbIaU6dCPl07V7HXQ9nSw8j1ncRLe+J3f/5RVMp2tsnFq59X63YhwgNAZxdDQ0p61pFuTxsXkUIRdpa55WjNUllFpkLpAxUOC5s6s7H12NBpxNVnrNd/89urHGX+OlfMRRNTjW+xmLVMW5KMRuhjztq9/JbGSSOfT/qSZ4WoA1PSgXrMDxu7SxvoepXV04pB3fMMrKQY7FNUuP5OoZl11b5bSGEprOHD0Bpozc2RZRpqmbkmtf5yw1cOJEXnpI9VQWU8D1y57XObzSYQQbsJc+jc4FrUlCywFBhFlyGAQRc1zocy2xuMxZVny2m/+W5TWVODytczEnoCzBWWekQ36vPiaeV5y9DDa7s7UqOsz4yzGuktt6XaDaX3iiHAObR03XLOfVx9dYdzvUeYZzpa7PumqZkXVtTQVXS2sYd+Ro8wuX1lHsCxLxuMxocx7cZScRXf6iDAjdIYssCxqS/+GPaxFTpQKu+NZ2awjVT5ahTJFN3tLzcHdphhntVKvJGu98Tu+j+bMHEXlwMYaf0BcVVD6esvgzG43KRsOmA0c3/NNb2C2kaCdX8pRj947fP1kp4FmbEXnfIaSgLaOfTMdvve/ez1hOSaraIOz5WRAsaappqaBxnLLbe+cKFSYdNhucB826SF0isoK+qVhUdvpNvvzur6q5bbjbkIHi9Sh+wV5mSObfWSyNRMMvjQcDsnznNe+/TvozC36NrSzkza7qw7/c8ZgC183p9tbvOnF1/KGl95ISL02b1dMBbRpW+7WbJ61KOsIHbz6pqO89VU3MtrepkhHvrtrjG+zW+PBbQ0Wn6Ws2aWBb/7uH3zKqqhZVVEUjEYj2np8L0FjGxUMyWVOOC730MAp1jJ12sjtns70zzmWmpa2tqRFSU6GavbR3c2Gzk+PRiPqztBTzVo6jPjbP/qTlNb4wrUuJOtxrHogb9J6LyhHI7LBDi2X8wNvfh03HlwhcqCdQ1UZTHqeB65a0CZAOb9aNAAaQvKK6w7zvbe8CjUe8v+3d+7Bdl31ff+stR9nn9c993WudK+uZCHLr2uc2CbBgDOWiAnUKRDcwc4YmjFgJg3NEGhLMkwS4nFS2oEwcUubuk0bMh0KSSOX8GqBNkychsTF2HQY1wo2Qpatq8d9nffZ77VW/9h7n3uurmxfCZsW27+Zo63RSLpn/96/72/9fisc9DKjSjPYGG1QKotSymgSpUi0YnbfJdz8zvcSxzGDwYC6Gz2BrLWxrD6RCbGHSVaD7M74ddtR8+Kor8gyl7U8Hey7mjO2RoYxWg5x6+1dbufrUegnYRiiDbz1lz5InEesVBfgwmZ9Y7TCpElmXN0W113S5K2vu565WhV3TJZWLkuRy1II8u254AhwjGG2VuGWG67ltQf3MGy3iIMBOk0yoxqr143K1tulSmUfo0lUysyeRW557/t3zIoiWgVBQBgE6bzT+nPsiQ6O9LGShDBV9F1N0DasLW3JWrY2iMdz7BlX44YpURxjmT5urb1Q7XzRHw50UcBeSDp4y13vZ2ZhkURnypvm3k0XwEFR6+ReQquEJAgI+130sMct1x7knW94LVcs7KZhO5QMuMbgkD3HP5Ouwyv3LfCuN93IoSsWiTptwn4eqVTxvc3oGk5jCmBEkRjN7R/8zRFD/eFA7SoNvoJV28Cye4gw4pTeZOjhpR/5NLCgUTo47mC9VBFECZgAUe5Ib2q1bKWnh8MhURTx0++4i7l9lxDnMi3SruIGRmMMKk1QcUzs+/jtNvMVyZ0338DN1y6xONXAQ2SyIzMgJ5djyRg8bZifqHPox67kPW+4gUsaLn6nTeIPUXGMTtPsy+f9qwz1z0GOPPqlKpPr23/lwzvmxXhtNRwOqTnJ03a1fhYpe8Q6IIgSAltvqbHvPs9VqdmwmwHugf4hw+qjhrmSoi5jEgIcp1N1Kt8v28np4XC4eDE3o7/9Ax/mvl/7h1lkyediHFMMkOWb2rMRU7Q2SBISrVAqRcURtZLHm687iFNa4ntn26x3B/TCiChOqHgu1VKJPTMN9k1PkIQhSTTAz7fgKpXkcLrOofexAlpl+XeqFPuvvIbr3/hmfN+n1+vRKKtjnlc+iet0CJIAexjjpYqpKc3qUwbObGHoi4LuAe5eMjySO9iVOKUehNilHqrW2lfv3f941/1AtVq1Xdfltg/+Bv/6H70XS6hsFitPPoTI9/BLsgMAmMz4kpgkClhq1vjxvdcSasPjp9fpBxHDMEQDdc+jVna5bNc0NdcmDgOG7fWsXxUnWeummEhAIRAodN5KyxvQyowc+d7LruLGW+/YMQsKJND3fYaDgbpiovNnWBMtjOgjkwg3Tqm4GfL/qrzGvnvz328f0boHuHvN8EhJM+MKdJAgJgIsr0vZ3lhg8IVjG877KpXKaN30Tsf2b7z1Dh448p944lt/g2VMtrZK5xOnSo428hQDaUYJEJkxxGmKjCNSf4i0bfZ4Lnsrk9l0tBCjek2lCb21sxkqlSSjXL8YjjT5LwUEm46YrxGuy52//QnSNGU4HBL6g/jqmeGf4E5tkER9RBhyKk4JXA1FtDr6o7tL8FnpqKF/yFBe09jtFDmIiBs+ntsuy/r3J8Pk8V6vd3W5XOb6N76FV772Jv72wf+Z3VOWoVKZgQmBNDLzoqlBCwUqxaQZAhwPB1i2w1XTZaSsbW7CzetdHQzo9+IcZUwxumj4FkORBWps8o5KNiGhTC5XpTGOw3t+594dv7nOf3YURQwGAyquWi7X68fB6ZDoAZYf4WvFqb6hfI3hyNq2/+P8o/lHgOblGVPTMKUyDKHaR3qtmsff1lx1vNfrHfQ8b7QOa6dR65/8+z/h1//ujbROnUSoFCMkmOzKCKGz/W/k0SzjlMgMg2xdmS5uVw8shAQhskbfyHC0HkP7Nk+KZE+Rw68FhKtItCHW2cKSu37r4+y96scYDAZ0u11mq+lDtlc7i7TaaDlAmBB7mDI3Fq1eZDTKXO65R2QONq+1Gl5C2fgYuojaxr6Jjf/8f1btXx8MBp7jOPzKv/k0H3nrIVrLJzLHaAyIbJcf5DWwJKuJVW40SqCSON9gbLE5UFvsCMzlafK1ZsXJ9XyWDyNG7RRD5iyLxnKSqhy617z7N/4ZB69/9Y7evyhFivp6OOwnVzaDz2JPbGBMhyTyOR0k9JVirpRHq6PbspYtNdaWHPvwWlZrtZTCd2Li0MeoDlZ1ff9k+Jko9MN+v0/R09hpveVV6/zqtSgSKgAAEipJREFUp+7HqVSJVabQqc6Agwx+VaN+UsZchTEqjzIKnSpUkiGHSRCSBH72CQOSICCJQtIkRqcJWqtRL8Pk/76AcFOdEitNrFNilXLzHe/hdbfeQRRF9Ho9dBL090yZL2NX1zCig1FDgrMJjUhtqa1ebGngFhqrtbonU2QQgtXHlRuyVF9tTqhvdDodfN9H2i4f+sMj2JU6sdbERUO/aGWQ186mqL9StEpQSYyKY5LQJw3DTIZB9vs0DFBxlGUeSm3qmVH5+T09GlFRRcNZa+I0q6nCNOX1t/8Cr3/HXTt+4wKw8H2fbrfLTFk95Hm1k1hWCyN7GQ/aCXPVDGLn/P3L8y8KvGecqU9p2scThjrAiC6WtW6XG2d21dTXO52OKaDXCzGu+QOX875P/FuUEMSpIsrRwkSr0fmz7CjK5kFLjNps/o19shRQjaDz0adApkwB4yoUmlSnpColSjWxVoSp5sobfop3fuRjIy/V7XTMfEN+Cae2hjYbGNVD+CGemxC3Mr7wIkICz6GRgx1HCFcjRa8XEQVDEtHGLq/ON5yvoeJ2t9slCAJm9uzjl+/9dygpiZUi1opEqawXpTaBKkzR6cqHIk1Wm23KUuUpXyHP7O+MZM4m4KXQmWyNyp1lpk9hqrj8J17Duz/6yR2/d1FXhWFIr9fDpFFn77T9JURpjcRpE0c+vV606VzXntG5bjOsbUxdPaRZjRQMcqaqNqK+smvK+4uKo461220uBoK//mfezAfv+zRWpUqsFVEOdScFRJojTMWMzchDFUuIzdjT6Dw1yI+z5MdYTNEXyXtUico+hdBDpXj1m97Cr/3Hz5MkCYPBgHa7baar4pGZuvNNTGkVy2kh1IBuK6KHYvWQHodWX7zRis0WzKumNHMlTStKMdpH+13wNnDrq5c21R8OB72o1+sRBAFX/9Qb+Mf3fRa7WifK+RynaZaZFHI1CpOqzbQdk2UlzyLb8Xm+LUeUdCHTLFJFShErxXU3/x1+84//245ftZi5K4xq0O8mr5jVf4RTWkW665igS6/nU41SuiU9cq7PQOctjMzoHt17BCwJHmlLZlwLe76Cu2cKp7qApS5BxfseW44/VCrXpqanp6lWq1zoYs/T33+cj9/5NtpnTuFIgZvn5ZLsEudRT0MKhCZfrbX1y5tzn8aMtmmo/OS1FuSjCYZEaZSUvO2Xf5W3vv/DI6NaX1/HMuGJyxZK9yFKJ0E/ie6fodPtwomQjVjxqimdMfTFnAJmZIwR3HOPYGlJ0DwqmEPCksvsvipOYw7LWcSY/Z3e4DVPtXjHzMys3Wg08DyPtZNP8rvv/ntsnHyKkiWxEThWvg2ZYmNXJluLzVV38OxyNSKrpYwApczoYG4mW0iF4C3/4AO8/UM774EURhVFEd1ul/X1Nb04yedmpmp/Ac4JVHCStL/G2okBELPa1KytGY5ur60KOi94kRewIgtzRw19DGU0MwsRRvcxagPjetiWd3DB/MF3n+p+QErpCSGoVCoXZFwLl17BP//qN/n4u97GsW8/hJEGZbJ7szQGK9+XJLVBGpEdzKXYpLTJ+KKozf1fDqczOgaVaPJ00+BUa7zvY7/P9W/6OZIkYTgc0m630WnUunKx9ClkeQ0tV0nDDsnAZ2MQQ6wyL3VmG7T6YqUxIAOWloCmhhMpbiugWu9SFR6IymS98p1Yh82zrdabpJRSCEFz7yv46Jf/mt977208/q2/wRESjcnWUSOw5Ob2XJM7T23MNrlmaWMhWz3KDIuTGokxpDpzmnalyi999JO89udu3/E7jhtVr9ej1WqZmZr9zZlp70G0s0Iab2CZHv1uwOowpR4bDmOey7k+q+Zv9VhNweKjFpPXu0T1BtVKE8tdRIjFYTC88vung1+s1Rve5OQkF3tP8TeOfJr7/8U/pXX6FLYUOHkfxMq9WrZuK+N8sdlp863yZY8iG//RGJRmzKMZcBxe87O38s6PfIzyxOToqEq73WY47PtX76/ca1vlp9FyGZUso8I1zEqf7qMJyy3F2tKzeqkXI503e4mnbPYulqk3p9ByHkvuxai9T68Hb+8M9U/Mzs6Ker1OqVTCtm0e/Pwfc/+9H2Vj+ensNhchsCnuhhbYAsjlO56NFEfXhBFooTFGbM50FT1IYzDS4tU/+zZ+4bd+l/pMc6fvNWoCh2FIv99nY2PDNMrikX1N735sb5kkOUkSniHutzBP+ay001HG8hzA1XMbFrDFuPZjAx7e7kkq3i5kaQ8ki8HQv/R7Z4NfrFTrI+Ma73PtlIzRfOGTH+Mrf/SvCHrd0U3rFmJ09U9hq+Ic16ZNHrGM2Tygqw1GCK6+8fXc+Tu/x9y+S0dwahGpwmA4PLir+qlKrfxdjLWMTk/hD9Yo9Tu0HopYvkaNh/7sZ780DAvGHOzdMDKuhQUHua+GXZ7BducR9h6EWjhxtndHL9DXTE9Py3q9jud5owzmv973Cb70B/+SoNcek2t+2Tebuyu3ypV8a1cGwSuyVDDN5b30upu487fvZeEClm+Oj4IURtVqtcxUzX54b7P2OeAMmlOo+DSJvw5nh2x0E1aPag6jd4IGP2c42eaxHmgKDpYchFXBmWpQru5GyD2IdCGKkn3fO917j22XJicnJ6nVariuO7r+50KiVxz6/PXnPsu3vvIFnvjfDxEP+wiy6CXGvNv4mxUnoLNbUAULBy7nmkNv4PDtd7Jw+dKWsJ8DFVhSnb5sof4fpO2uIsRpEnUKna5Cp0OnE3KClLW1fCzkpWdUBW0xrgeQzC1Jmk0X5mqUazMIewHMHjC7VjZ6N51txW9sTE7aExMTlMvlUQajkphv/JfP8PBXv8jj3/5fRMP+lmxk5DTZlO25cp1/xWVcc9PNHLr9TvZedc2FvMOWg7VBENDr9eh02mpXw/ur+bn6V8FeAXMa1BmC/jpmpc/aWszqUX0hGcuONH2bx3qgKbii7gIVqrsmEdZuhJjHErtRycyxU52/H8TmQKPREONe60KbyZs/X/PwVz7PI//jy5x98hgbZ04R+n3iMMJohe2WKJXKNGabNBcv4dLrfpJDt7+Lqfk925hZeKhOp6MbZevRS+Ybf4a019HmLEafRqdnEcMuvccCjjWTl41qk7aDGUuSuYUSzNaxqrO41jyIBUjn+oPh5U+eDe4oV6rlRqMxymDGnawxmm//9y/y8Ne+NJJrMOgRxxFGZXJ1vTKN6Sazi/s4eO1Pcujn72R6Ye8Ff/cCsS7WLBR9qjAYhvvnyn86MVE7CvYqmDMk+gxquI5Z69HpxSw/tKUMgOfWgx1r+PZ04IBkAYdavYKxpxDeHELsRlq7IJk+s9Y/tNoJbyqXK27htYqc+2IvWLgQGjeogpmFhxr0++niXO1rzen6gyBaCHmWNDmLDlYZpB3Moz4rB1KOH9fc9tz59EuFtpcGRwWLr7ZgusTUVB2vMgPW7uyjm2mazn7vZPuu1NCcnJykWq1y7uXgF3vn2g6/75ZaqnCs+cka47ni9P5d9c+4rreKJddQnIX4LKG/Qbvdh1Z0MUYFF2BY+RfdNK4jS4IDByQLZxxqB8vo6iTCbWKzC6xdmHQqTdOpJ890f94Pk0tq9bqo1Wp4njfyXOMR7PkwsnFGFmlfHMeEYchwOKTf75uSw5n985N/WnLcMwi7BWqF1Kxg4nXEoEOvG7DivmxUz0BbjKtwssdqNpMHXISYoNSYwjZNlNiNZBajps6s9X96te2/zitXnFqtNopehYE9n452XAfGDSqKInzfp9/vk6aJv2em9tWZqep3EE4Hna5jcZaUVaJuG2N6dI7HHByk40AF7DxjueA32VJzHVkSHGhLdl1jQ6NMvdrAqU5jmSZGzmHMNELXez3/4OmNwRujWM1Vq1VZqVRGnqtIEc9l7nMxevwM4LmMTNN0CzMHg4GxLNGZny5/fbox8SjC7qLTNjYrKLFKPGjRG/SQg5CVR1OOT+mXKlCxEzqvcR292mKuXcLsqeK5DXDmsM0cUjYxZjKNksbTq91be4PwUq9ctsed7Pg1vBeqA+fTgyJLSZJklKkMBgOUSoPpRvk7i836nyOsPkZ2EXqdVKxCukYYdRCnhqxORSw9pi7WqOAiDOv8jD0kOYHN5H4P7dRw7UlsaxYjZzF6GkEDoSv+wJ8/te7fMgzjecdxnEqlQqlUorg4vIhi4wx+JsaOM7GITkXKl4/TE0WhLjn2+q6Z2ten6pUnEI6PpIs2Gwi9RpquE6Ud5MqAbj9iPyn8pb5YZr7UaFsGczUWM1c4aK9MtTKJU57GmCZSzGLEFMJU0ySZWF7t3NIbRJcLKUuFkx03sJ3oQGFQRe2k8rOE4041DEOCIDC2JfszU5WHd0/VHkTaPoI+RrYRbKCjDZK0hR92Eb7PxuMJj6F+0GzlomPvNuN64JBkMbBoXOJgylUatQmUnMQSMxgxjWACTR2jyqBKqx3/+nYv+PEwSmaFEI7ruiPmni+KFcw916DSNB0ZVBzHpEmiLUv2GzXvid0z1b9ybKePsAIMA6TsoGkh4hZStugOeohgyNpj8bnMhJeNaie0re66rSlYLjnUax56to5rTWHkNK6cRjONoIYxVbQutXr9qza6wQ1BlM6BcEqlknAcZ5sOjC54F2JLhCocapHuFREqSRJtW8KvVUpP7p6uf8Mrl9bACjHGR8geRnUQcp00bmOlHeLWkHY9YP+JlCPPT1vlB05qt0evN1ss77KppSW0U6Pm1VFiCikaCCYxcgJMBaPKaOOCcQZhMtfpDl/px/FikuiG1rpkDLYBeW56MG5UgLKkjG1b+q5rtxoV9/HZyeqjSCcBESNMBGKIoY+gg6aNirvEqovdGdKbCFhcSTly/OXU7wegZ3SykwdcylMVlJjAlpNY9iRaTSKYwFBDiDKYElq5fhLPbrT96/wo2aNSXU+V8rQ2dnaQYyvIUeiAMcYIIVIpZWxJQs+1VuuV0rHpRu2oFDJGygQpIgw+RvQx9BBpB206WKZL0h8QpgGd4zHLZcXh5y9beV5gufMy9vCcZGXGoZJ6KFnDLlWxmEDSQFt1bFNFmwraeFjCRWsHhAXYYCQGGUVRNVamkWpd0ql2tRG27Vi+Y8m+51hd27YSDNmxZ2mnYFKEiMBEGOEjxRAj+mjVxaKHH/WxB0OCRkBzLeaBVf18MvOlTud3srFNbb6EW6ugqGOJCSQTSKuOoI42VRAewrho7Z6rA0EYTSSJnkiUqhpjLCllLG0rtJFBrWq3MLI4sauQtsp0QMa5DgRIMSRVA6TooZMeFn3S4YBYBwxXYlbclFd9WT3fOvC84t3nN7BFi7XYwWuUsCmTlqp4ThVlaghTRcsKlvAQuoQWLggHtIM2FpaUaJ1dyz5OGoOUOj8SrcAkGBmDiZEiwEgfo4YYNcQSA7QYkEYBoR0y24l5pKtfCGa+TOfoAMDdSwKutjgT2FSaJRxRJvWqWE4Vy9QQVhWtq1jSQ2jvGXRAbpnDKIbBt+pAjJFJrgNhpgM60wMlBthyiIp8Yidk+N3coI7rYkgRnl8deEEaSduZe0hybNHiYNWiU3Zx4hKWLpM4Hp5VAllG6RJCeqBchOOglIMlLPRoU9b4QReNzAdxLBljTGZURodoGaBVgGOFqCQgdSOi5Zimm8Cy4p6/zMTyskG9oLSJHpM72hw5XJqwaFczHbC1R+KU8Wwv1wEPIUugSwjbQSkbS9hkez63mpbMNuChTIplEoxMMCYCHaFliK0CjBWi0zBbbtiLmC0lPLKhXkiDKuiF69ByHuYuLQluOyA5MWOxv2zRCRzsWQcrchGWg7BcksRGSAdXWKQiu1naEVsNKzEGg8LRKbFJcZwUEyRoK8rGUksxE3HCcpiyuJLCVkbCywb1w6TzAhwn9tsjHbBmbOy4NKYDDiVpg7AzHRASZ4uuZjP3xigckxIbhWMnmQ7Y8UgH0tUU30sIQ83BZcWRNcNtt40WYr6QOvCCGta5tMXQjhyR3HZAQlmwPGFRKlk0LUnPtxGWRNRz1CLIusijU2RFw6KcbYgxXU29qiBVnEkU80MFXc0DfZMdR/rhMPJl2hlt14GmgDm5qQO2RW9ojemARARyUwdG8h+7bK2rqVdSUPr/Fx34oRrWuTTG5Oz5wAOSel1QLguWAFxBPlSw+UzN6Hk0NgSBod/P/uzw4dG1SS8b0Y8GXbgOjMkf2KIDhw8Xkyb/z3Xg/wKN5qiu1cEDCQAAAABJRU5ErkJggg==",e:1},{id:"image_3",w:194,h:14,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAAAOCAYAAAB9y8P+AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADaUlEQVRoge2YT2gcVQDGv+/t7mx202iwmxrXBDbV9iI9RVPFHlY9JGl2S2lZCmKttFAU9CqKIoN48yDiQSh6skFhD1ZjUmvBv61ab4JasDRLoKbtZkvRuEln/8znxWhMa03WzU6ys7/jvDfv/R583wwzGNrY9kj69rY++BDbts3QJmvP7kRnp9cuXtLKgLUHtm2bwZg1OhyzXnoikWjzWqxRpLojA4Ox0Bep7siA1y5e08pAZIAAkOnpiczOX/4UYK8MX70l3HUke+HCvNeiq8FILNRfAV+ElCLN3o8LzodeO60F/J4BLgym4x2xknNtHMAAiDzF10Lh8Ftj07MFD53rgiSmuiLJCtxnIQ0BKAM4dOJK+R2v3dYSfs4AF09Ox+PRcqnwnqT0n4MlgWPG8O0NyV2fZLPZauOPUDvDd0Z6UKoekHBQ0mYAIDFrjNk7kXdOeu23FvFrBrj0xkwmE/jts2NvQHhq8XWSlwCOw2i8Q7eezM7M/L76x1g5g93WPaaMlKgRCA8KMH8NktMho50f5cvfe6i45vFjBq4rwgLDm0KPu1W8DuC6PyoESiC+gviNyG8tyzrjxeszk8kEip8f2+bKbJe0ncBDghI3mkvyA8PQkxMzxUsN1ly3+CkD/1oEANgVi8ZLqByRNPKfRmSOwE+CzhmZn90gz4VcTUU6ovns5NVfl3uwpRzu7w9NTZ2NAeU7QN5NYKtcbCG0VcQ2CO031QKuknzmeKE0WquDn/FLBm5ahAWGNlqPiXgZUk3/mgmURBYA5AkVATgCHQAOgZKEAIgwBQtUWEIbyNsgdeEGT6Nl7lkFeFQMPn+iMHexljVa/E2zZ2BZRQAAO5kMfvfj6f2u+IKku2oRaxAVgkcZ4CvH8855r2WaiWbOwLKLsICdTAbP/PD1Plc6QOBhAYGVe9Yfgr+AeDcQMG+OX7426bVPM9OMGVhxERazs6u9u4rKPrjuowTu/cfXeWO4Qpr3AY7e//RzX9q27TZ4f9/TLBn4X0VYzO5EZ6dTnH8Arna41A4C90mI1Gt9ACA5CeA0oVMI8tTERecsSdVzjxa1s54zULciLEUS073ReMVBn9xKH8nNAHsFbSAQBRSF0C4yAqgCoAhwjsIciCKgAmlyFHLVoHKWieXGpqfnVsu3Rf1ZTxn4AyaTUIFwF6KQAAAAAElFTkSuQmCC",e:1},{id:"image_4",w:65,h:65,u:"",p:"data:image/png;base64,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",e:1},{id:"image_5",w:337,h:242,u:"",p:"data:image/png;base64,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",e:1},{id:"image_6",w:114,h:135,u:"",p:"data:image/png;base64,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",e:1},{id:"image_7",w:88,h:106,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAABqCAYAAAA4J5aSAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAXXklEQVR4nO2deZAlVZXGf+fm9mrpphe0AQFbDUCiHUQZkEGcsAmFcVDZUXAbFUWFcEDUGRFHUGaMQHZhlEEgFFBsEdcRQaV1cGtA2aIhGFQWnYYWGKGr6i253fkj7828+aqqa3uvCqvnRGTne6/qZb386qvvfOecm9nCNELfcUfAn+7ajyQ7CPRadL43SAQ8gOImtNzIG0+8VUT0dI63LYVM9gW9/ivb02y9nqRzGDp/LVk2hM4hzwAN2mApAqIA73codRlRdJW84cQn5+fjP/ujBrBev94n3nQ0Sfv9JPGB5KkiTyBLC2BzsxcxAOviEBZk5YHyYjz/2/jhVRy+6maRY7OFObVnR5QA61vWHUonvpi080LSDqRxseWJ2dICaHQBsqZ4LAIoUMqA7LvbJvzgcgbDL8ihJz2+UCe5kCEA+sc3nE3c/HgBrNmSNmSx2SzImdny4p3aAgyIVzBYPPCCYu+HBdBemOBHVzPof3xbA1r0+m+dQNK6nLgNabsANmlRsjjrFABnhsV5CuQFuNqRCBR4FmQfPAtuYLYQvGgLgX8WK/e+WNauTRf43OclRP/o+kdJWruQtApgEwfkrANJB/IOpI5UaA06LzYRCpAdBluJ8ELwfFBhwWY/BC8CP7ydxsDxcthJv11oAPodCtKs1Nc8LUDMOgZcl9VNSFvFloyZrQkds09GITZbMgbxmHltrHoej0FnFDpj+9IcuVPfcNE7FxqAfociy64vkpYBObUJLamDnVmwLdObDtAGyLhp9g7InbGux81ii5vDtMeu1OvO/6LeuC5caCD6FaLXX7Mzo83f0xkLiMuTd/YtA24MeVzJRJ5Bbr2w+Uf5jl0LK5lQVoND8BvgR0YyGoVkhAO/YGDZkXLYezYvJBj9CCVr3/pHdH5toalZweIyoSUFs/OkANcmvsSyulXJRtquZCNpQdosNvta7Dy3bLeMjscOYPSpO/QNF71koQHpdajiX+8cQJfJC+0UF0k9waVt81qnAN1KR9Y2v4C20ekWxDZpWploQqdZSYn9vqQFaWtn2q1b9dfPf9WCItLjUADy+vfcj86/VVZneUZhxTLIMrM3LM7SwlXkieOT4yoZlkC3ILOsbVVsT5zX4mYFfAH6MuLWzfr6Cw5fWFh6F6p85Mlnaj0GrU1B4ViyLAMcGcksuw3IOi6elyyOHedhAM0Me22y6zQrp9FpQqfVoD12vV53/vELA0lvowRYjvrw7aDuLp7ZppgDbp5TsrrsS6SgHaAzU5jkBuisbfQ6rtidWL1uVVodGzmxDI9bHp2xq/V15719/iHpbaiuZz8oCwco9rbnYNldAp07Op0BaaXViSsfVq87lNViWgPTSEbTkYoWxE1F0rxKX3f+X7RXrgMs/m8Lm6VMh8xWaU7TTVPYM6vXukur8wRICmZbFmcdiDuVPpfluMPmuFXJRjJmJUWRjH1RrzvvTfOISU+jDrCnNxe9XdMZs+BquzffZx9bdue6ALeUD6PTOq2KFu0ULm5DKXWkwnUV1abotK7W6y44dF6R6VF0Aez/vuglKMDpiolHCboo550GXHTF7CyvQNaZA7LbmYsdoJ1yvLR1zaovUshFQGfsev21C/92XtHpQdQBPuqf7sfzxsA2bsomegWuba5rs7dtSxwPnZuk6Gp0nkPa7T4MyJnL6KaTBJsukxukzW/p6z/34oUAarZRA1hEcpR/W9EB8wtgS+b6VSmsjXxogdzsbZSTjrxgdG4Yra1kGBZn1tKZyjBtV9272EhH7Hb4WtBpLqczeqP+9oWr5hOkuYQa94r4PyjbjfhdMiGAA7pyEqK27kODIXJp73KTBDPDZKvJWVL1ONK4AjltG5A7FYPLfnVrNaPt7+jvXxzNI06zjvEA+40bC1nwi16ueEWzxjbSrWTgFey1Vs7O6bQFOa9LR+66DSsfpvxOHJDdJJi2CkZbxxFbnW7tx9PtS+YXqtnFOIDl2A/dix8Uyc6VCnH2tYRnNwdsMAzWkGlDbENr6zS6QU5NEoyd9mhiQE47FdDVQOAE/dXPvnuecJp1jGcwgPhfww8MuAGIlQkLrmGwmwC1GRuJFBJhQxtnIVSstkwmr7p21mlYJieub7Y9DHcA0Iakc6led+4+fUdpDjExwGF4XQmoZbDVYisb4siEKMNcOwCdgM2Zm/T0eLnIzFDV9jbK5Ge32LFyZeKLSOJv6BsuWdl3pGYZEwIsR3/kHvzw3mJYaROddREO6Fqq5Kc8UCbZucDiPnbKba2r5IcFOXY02ToNl7Gt8Y/j9vNpjlzTX5hmHxMzGEC8K0o3Ic50uNRkO9w0kqGVSXqOhYPSsVWPu0B25SIzbdEsq5pH1sql7TqjE8c7J52/018956S+IjXLmBzgge2uwQviClyHvVYurNvAq2RB2YRHvbyuhS2v82pf9jKceWCa1m1cHlc6bJltQY475+h1F+7Re4jmFpMCLEee/BTifbNcPOJKBF5VdNQKESMb1hPXkh3V89y8kFNVfbZDp/NqFVHZY46rIqSbvbGdGbYHiVtX6/Xr/f5ANbuYnMEAwcClJYOtXPiBY9+MNotPwVrbIHJsm0123bpsCxGoEp/bw8iTYp9YiYiprzxy9rHdt/Zl021n9BylOcRWAZbjPnorfngPKqgWjuAXtk05eozq6leoisXdvrj2HMNe6u7CJr/UXXSYVpWfW1LXCpMOZO2P63UXPWus29YZDOCFlxQyEdSXQilr1/xKh23RoakaQ7UCxCml3ShdRV4UJrZDZ4HNLZPNMq44rjpyLpOTDsSxT9y8TK9b5/USqNnG1ACHjWtQ/hOFXYsMuEG11kGcgsO6CltwuCw22FZ2jfqW62L+Z3sXaebose0l27ZnpwK77MK1KxbHrX3IHnlWuIopAZZjP9TCiy4pwLXrzQLHPTi2DQW553jk7kYQTufNARkKBqdu29NJemlaOYzUNImSTuUiasWIBblztv7253bqNWAzjakZDDC87FK8sFmumLTJzm5WPsT64i4WW7vm+uFy1lftKtCtV7ZMtpNsR4vt3jbyk9iRihiS9hK2jFzUO6hmF9MCWI48+Sl8/wo8A6gXmqVRrovwiuWr4oM2j93Cw53tacdZ6C4m53mV/KxHLqu+tNqSuALTMrdkdAn60fpr5x7SY8xmFNNjMEAQno8fZJUOG7kobVsAOE35smdsddgF1Tlut6sAapMRrU2F54yiurtwiV1lZNcz22ZRDJ34vIVMeNMGWI772MP4ja+XLsKPDJhhYds8q8Wq0merxVYupEuLXf2F+i8gs07CWWVUrjCyQJu1c1nqeGXTFKq88xqyR97VI7xmHNNnMEAQnFMAbBNeUGew9cee44kxLHY7bN2snUgqXDtn18zlecHkcmWRkQqrwYkDcmbBjiFJPqVv+vLQXMGaTcwIYDnuY3fiN35Y6rAXVVLhmQmIZ3vFTltTC+UczzI5h5LNZRh07cgJR4fzvHIXeVokv9wB2l6sYweqiWPlkvYOPPH4R+eI1axiZgwG8IOzqmsunHW/ZTltCxFndudKRHc7c9xmJyAYoN0+smkK5a6zyBxQ44rR5fTaaLFOTtPfPXf7XoA2k5gxwPLW03+OH/6wLJ2tFltgxSQ5cTyycljsrhbSUJtIw3g7V9s7X7TltFvtld24uALdAh2PDrFl5NQZIzTHmDmDAaLGJ6tV6xOw2LOJz7BYO2sq3NK5tG3UgbV+GJyOm21rWldhWZxBaibViQXW8ch5DFkLslFInjhZf/PMZbNGaxYxK4Dl+NN/SRDeVGdxUGex51UstuU0XSyGisUTTj+otpK5Vot19ThPq/FTOb22Kzw7BbjpU6QD4dL/feGr/nFWSM0yZsdggCA8s6bF5WVaVoODisW2P6EVeF2tzO5EV66pYDzoqe1XmErPemNs8jO6nBorp2PQo5D/mWT5Skb3PIwwGv6g/sMfBmZ93jOMWQMsbz3jVwTRD/BDCIyjsFJhqzs75hfHF+dUjqKW7KZgcU4Brk2Elr32cek2UiADEpAm8AzJqhcw9ldHEkbDhEG0Ikn/PG+rNWfPYAAvqljsd7G5ZHHXMiwMi2tNIEcu7N51Fe5rOfXOnAu2ZbNkQAvUKPGue9Pc62iiYIjQD/ElQOG9f07nPYOYE8Dy9tM3EDS+X12iFVVgu3ZN2UUslsVmCZZy5MH6Yj3BD3IBF11PhuXOyIfk4HXAb9Ja8zpaex1FGA4QeCGe8lBKUKL20w9t3Hsu5z7dmBuDAfzG6QShJjDA+qHDaNsYcta3ia3ynB5FbZG327NwfLPb0yiHqVIxXAAvhyABv83YAe8lefEhROEAoRfgKQ8xfy1FnSPHzfncpxFzBlje9s93E0TX4kcmqUUVyO7kw651w3UUzjTaAloy2U1+3UnRqQhFgS8FuGEGQx5bDvkE+ep9icIGgReglI+Iqv0cpfy/n+u5TyfmzmCAKPoEfhQTNhwGO47CjpxwHIV4FUAug2ujfpex9rGd+VEcywMCgUZOvnIFz7zhM6idXkwUNvC9ACXKgDvuzNdorft+CW9PAC46beHnK1DtPnISneesErIJz/HF3X/6tYrP7O0iFyiO5SuIPBjISHd7GSOHnYu/8vlEwQC+H+GJhygzxRepHKEoUMFmCrvR1+jdGoJo6Gzi+J0EjaVltytNC/baywgkA5UVcmEtlk6MVEB5ewR7HwqrvS7TlRQgRx40BAZzWvu/i84+RxGFQ/jKxxNBaYrfoetC7C/J8zoE0bEi0neAeyMRgBz/4ScJos/Wyuey+LAXhPuVFttrQaxUlKMmF0zb7jTf45u/goaCAWDZICOHf5bkb95CY3A7gsDIgupKpGJ/MQo8P8H3j5Hn7nRrr859a9HbVTD+wAWEyUmk8Q4VixOQuHAV2pS0khdJKc+LX3FmCgjHSFTOQVOupg+V0Vsh23V3Rg/9NN7KXQm9AF8plBbEjpfsMeyBRUD5MX5wjOyw63d7et5bie6G7JxDX3X2+2iPfJ7OKLTMPSI6o+ZCcLv01M7PzFLV3K4TNiWwBUVRgBsYpxAJDArtA95Ne//jCQeWEXg+nqhCEnRWjf3t4FQbrfDUKF7jKFm10829PuetRc8koozVr/wiQXRfcR+IqGoGlfbN9cfmdjP2/hK2ae/7EPgQBhB6ECkYEvKddmbL268kXvs+GkufQxgN4gehkQSnIiyXbpnxVb4FHr3uA/MNLvQBYFm7NsUfOLXU3iAyAAcV2MoUIoHtwoUFqFafvaAAOPBgiQdLhc4Bb2bLP3wJ70X70RjajiAawvMDpNRbqOu30evWo3DrMXDvpxdkutxzibChrzjre7RHD6U9Cm3nlgUdexsDO5g0l3ZpcwcVlYHSEGoIcrIdV9Nceyr6hfsQDG5HMLgUlYMq1xan1dVL9no8KBj9+I/gNx+BeAREEkJeIO9o/U+/znmi6N9Sz7BxGml8MH4UEKZVc9w3t2Ysw1ZvGUhaaK2foZc2aB5wIsmeBxEMryAYWILXGEKpAFF2sbZ5vzjSYBPj/efBA583rwtAQMrJwMf6ds4TRN8YDKCv+tQFtMZOKe9yYplcXgfXNuztgCTgJeCntPc+nPZLj8Df7rn4jWH8aBgVDaCCqPjTr63yyZzWJRA/BRtOhj/9YqLT/TO7LtlFDtk81s/zdqO/i5WXLTmLPH8bOltJnhRJzzJVTCWWU2SCUNHa8wji3dailu9I1BjCj4bwggYShohvlmXpLva7fnnzf8GGU6E1yc0FlwXLQb8D+Pe+nnfXJ+xr6C+d/QHaI5cSjxaWLR2huNXMGORj6MijtdvriFfvize0Aj8cwA8HCsb6IRLaJGmudEI764YNc5MRuPNM+N21VAbYnpp5vDSA7UIQeZCDN+8xX7fi7T/A69Z5jG64m87Ta0i2QDqCJqWz494kz92TbPnO+OEgftDACyJU0EAFIeJHENiFLUFl4dyLy7WGx9bDhlNgdNPkZ7g8gqGgek3JYXLw5u/0+9ztj+976K+f8erO0JL1qb+EvLGUbGh7PC/C8wM8L8ALQsQLUH6EeD5lb7n0xc7SLHuVaOtJ+M2n4MGrnaqtK0IPVkSF3at1P+UncvDja+fj3OcFYICRRzZeQ3vsLSrNirXwnl/0aT0P8QKjsabI8Bw/bAuPcnG3bvL0767hu3/7XpKRCX6SLkZSSwMYDjAdn/GnqtTL5bWb7uz3efe+kpskhhvbnxZGw89EjUGCYBDfb+D5YaGz7vV35S1y7XO7SlNlaH0FonaTFbufSDq6ftwPCRWsGIAdh2A4ck5vAh7l+pS+nrCJeQNYVq3aLFHjDPEaqDBCfHes5NWZWlZ1HnheglLrENlLPO8EEdlkPvkleAKRD8sasOMwrBqG4bDqpG19e7Nev3qHvp93v3+AG1prTz/2yG2S5y8vu2T2nsNeCagdNT2EJ5fjh1eKyLh7Wmp9jMfNP3sIkV1qN4quXRAy/mndZMin5eBN/9LPc55XgAH0k4+/giz9JYigbM+gZHCCqO/hqcvwo5unslL65uedDvpf5/BxniAId5W1D7fncIytxrxJhA3ZfocNRAOXEzWgMZgRDdxPFF1GGBxBY2ilNAaPlKBx07R8amPgclCdsuDoHjW5c77yAziviTyHLH1Lr8/RjXlnMIDWehlJaw+CgXtEpDWnY/1w5y8Db6uN72umYZLCw2qGyEZ5zR/7dtfXeWcwgIg8LeHghrmCC4DnX2oOWmdvbd1bzQQ7ewHNGn3LLn1rZS4IwL0MOejhDaDumhzgrq1bQoqp9Yf69fn+4gEGQOnLJmVsF2G7v2zWtx2s17+oLzKxOACOBq9FGAW6kxjTZnSWfLgfH21RACwHPjCCVl+Z2EVMU5NFHa9/vPvzev3ZFgXAACjvP2qGoRxOS7WfCPBqWBqgkp6Xzwti0/oV+serfw28vP4iW6nkukO2sJ3sKn/9+2d69ZkWD4OhYPE4jaXau48n1GSWskV/sKcfqZcHW/AI/K8A9XmbXVnp3pp3otWWVZyi168Z7tVHWlQAy4EPjKDkuprHha2VyuM3ZAW0enYzj0WlwQD6lt1eAdmvJi2Nx8UEpbRIG60fBRlBZBTyUVCPIdyH4j4yNsra3/5xOp9n0QEMoG950d0IexXPugC0rU33v8x0253dX5805D5E3wDqG7L2wbsm/a45ncmzNPRPdz+JPC9ufzsVoOPezAxch/0e+RGaj0wE9KLS4DKGllyDSBN3rdqkSa6rlp7SdbjvMY+1fg3Cr/X63S/R+pjazT8WJYMB9E/3uAKt3zX9P/lJYqYSInwH/bw3ydqftGGxMhhA6y8AU7uGqTa3GpyoMhzvQt6IPHa1/RiLFmB59X/fjsjt5tnWvtPZTyAB4748DclAH61/sucRsIgBBkCpz43X2Jlq8ky/3+71xVof4y1aDQbQG9eEPJU9RK53mtw1zNBlTPlDneN5snZRM1jWbIxBLpzRhGOmI6etHU+roxY1wACoFV9AvKcn/4apNLgrSbqvTXU8rfdf9ADLgT8fQbhkyn7wbGd6UAe89gtROyx6gAEYDs5Dy9O1Km1SBZiCsd33tBjX0HePwaptAmB52V1P48k502Jo8Q733c5+AgaP98HVXvPUNgEwAI3oIpQ8MmUSm+nQdOu/oJsWtU3rDv3zlxxKLt/b6kqfqbo7U5bKNZv32m0KYAD9s72uRev+/4+3Ivfyyrtfuu1IhI0lvBcl9/bNBwOgMpScICJ6mwNYXnrPGD6HIfLw9N7QNdMr7NdWbJoC0efLAXffBou9FzFJyCvueQjFgYjaOLUvpg7guIONS4pfYvke5f/lsc1psBv6oVc32PTMmWhOg3ziizLH9YOp58QqIabAJ+XAu/6t9va+fPK/sNC/3H81Oj4J9DvRrJzRDA+aiFyJ1ufKK+98pPvY/w+wE1qfqfjFf+4D6UGIvABYjmYZoiPAR4sG/RTCk2geRHk/Y/vn3CG73diZ7Jj/B+402MadLMibAAAAAElFTkSuQmCC",e:1},{id:"image_8",w:90,h:107,u:"",p:"data:image/png;base64,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",e:1}],layers$1=[{ddd:0,ind:1,ty:2,nm:"\u53F3\u89E6\u89D2",parent:8,refId:"image_0",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0],e:[5]},{i:{x:[.169],y:[1]},o:{x:[.333],y:[0]},t:30,s:[5],e:[0]},{i:{x:[.199],y:[1]},o:{x:[.786],y:[0]},t:60,s:[0],e:[20]},{i:{x:[.667],y:[1]},o:{x:[.786],y:[0]},t:120,s:[20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:180,s:[0],e:[5]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:210,s:[5],e:[0]},{t:240}],ix:10},p:{a:0,k:[193.146,30.9,0],ix:2},a:{a:0,k:[3.25,56.25,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:2,ty:2,nm:"\u5DE6\u89E6\u89D2",parent:8,refId:"image_1",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0],e:[-5]},{i:{x:[.148],y:[1]},o:{x:[.333],y:[0]},t:30,s:[-5],e:[0]},{i:{x:[.347],y:[1]},o:{x:[.659],y:[0]},t:60,s:[0],e:[-20]},{i:{x:[.667],y:[1]},o:{x:[.659],y:[0]},t:120,s:[-20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:180,s:[0],e:[-5]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:210,s:[-5],e:[0]},{t:240}],ix:10},p:{a:0,k:[142.598,31.15,0],ix:2},a:{a:0,k:[66.75,56.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:3,ty:2,nm:"\u7741\u773C",parent:8,refId:"image_2",sr:1,ks:{o:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:35,s:[100],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:36,s:[0],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:42,s:[0],e:[100]},{t:43}],ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[167.386,118.854,0],ix:2},a:{a:0,k:[107,43,0],ix:1},s:{a:1,k:[{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:0,s:[100,100,100],e:[100,100,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:30,s:[100,100,100],e:[100,35,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:35,s:[100,35,100],e:[100,35,100]},{i:{x:[.667,.667,.667],y:[1,1,1]},o:{x:[.333,.333,.333],y:[0,0,0]},t:43,s:[100,35,100],e:[100,100,100]},{t:48}],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:4,ty:2,nm:"\u95ED\u773C",parent:8,refId:"image_3",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[167.35,123.559,0],ix:2},a:{a:0,k:[97,7,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:5,ty:2,nm:"\u5F20\u5634",parent:8,refId:"image_4",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[170.241,192.829,0],ix:2},a:{a:0,k:[32.5,32.5,0],ix:1},s:{a:0,k:[110,75,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:8,ty:2,nm:"\u8111\u888B",refId:"image_5",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:60,s:[0],e:[6]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:120,s:[6],e:[0]},{t:180}],ix:10},p:{a:0,k:[224.85,392.35,0],ix:2},a:{a:0,k:[168.5,240,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:9,ty:2,nm:"\u8EAB\u4F53",refId:"image_6",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[224.603,432.311,0],ix:2},a:{a:0,k:[57,67.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:10,ty:2,nm:"\u53F3\u624B",refId:"image_7",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:60,s:[0],e:[-5]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:90,s:[-5],e:[-5]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:120,s:[-5],e:[0]},{t:150}],ix:10},p:{a:0,k:[257.383,384.131,0],ix:2},a:{a:0,k:[11,6.25,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:11,ty:2,nm:"\u5DE6\u624B",refId:"image_8",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:60,s:[0],e:[73]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:90,s:[73],e:[46]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:105,s:[46],e:[73]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:120,s:[73],e:[0]},{t:150}],ix:10},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},t:60,s:[192.861,387.971,0],e:[188.861,401.971,0],to:[-.667,2.333,0],ti:[.667,-1.333,0]},{i:{x:.667,y:1},o:{x:.333,y:0},t:90,s:[188.861,401.971,0],e:[188.861,395.971,0],to:[-.667,1.333,0],ti:[0,0,0]},{i:{x:.667,y:1},o:{x:.333,y:0},t:105,s:[188.861,395.971,0],e:[188.861,401.971,0],to:[0,0,0],ti:[-.667,1.333,0]},{i:{x:.667,y:1},o:{x:.333,y:0},t:120,s:[188.861,401.971,0],e:[192.861,387.971,0],to:[.667,-1.333,0],ti:[-.667,2.333,0]},{t:150}],ix:2},a:{a:0,k:[76.5,13.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0}],markers$1=[];var startData={v:v$1,fr:fr$1,ip:ip$1,op:op$1,w:w$1,h:h$1,nm:nm$1,ddd:ddd$1,assets:assets$1,layers:layers$1,markers:markers$1};const v="5.7.1",fr=60,ip=0,op=239,w=450,h=500,nm="\u8BC4\u6D4B\u4E2D",ddd=0,assets=[{id:"image_0",w:69,h:58,u:"",p:"data:image/png;base64,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",e:1},{id:"image_1",w:69,h:58,u:"",p:"data:image/png;base64,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",e:1},{id:"image_2",w:214,h:86,u:"",p:"data:image/png;base64,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",e:1},{id:"image_3",w:194,h:14,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAAAOCAYAAAB9y8P+AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADaUlEQVRoge2YT2gcVQDGv+/t7mx202iwmxrXBDbV9iI9RVPFHlY9JGl2S2lZCmKttFAU9CqKIoN48yDiQSh6skFhD1ZjUmvBv61ab4JasDRLoKbtZkvRuEln/8znxWhMa03WzU6ys7/jvDfv/R583wwzGNrY9kj69rY++BDbts3QJmvP7kRnp9cuXtLKgLUHtm2bwZg1OhyzXnoikWjzWqxRpLojA4Ox0Bep7siA1y5e08pAZIAAkOnpiczOX/4UYK8MX70l3HUke+HCvNeiq8FILNRfAV+ElCLN3o8LzodeO60F/J4BLgym4x2xknNtHMAAiDzF10Lh8Ftj07MFD53rgiSmuiLJCtxnIQ0BKAM4dOJK+R2v3dYSfs4AF09Ox+PRcqnwnqT0n4MlgWPG8O0NyV2fZLPZauOPUDvDd0Z6UKoekHBQ0mYAIDFrjNk7kXdOeu23FvFrBrj0xkwmE/jts2NvQHhq8XWSlwCOw2i8Q7eezM7M/L76x1g5g93WPaaMlKgRCA8KMH8NktMho50f5cvfe6i45vFjBq4rwgLDm0KPu1W8DuC6PyoESiC+gviNyG8tyzrjxeszk8kEip8f2+bKbJe0ncBDghI3mkvyA8PQkxMzxUsN1ly3+CkD/1oEANgVi8ZLqByRNPKfRmSOwE+CzhmZn90gz4VcTUU6ovns5NVfl3uwpRzu7w9NTZ2NAeU7QN5NYKtcbCG0VcQ2CO031QKuknzmeKE0WquDn/FLBm5ahAWGNlqPiXgZUk3/mgmURBYA5AkVATgCHQAOgZKEAIgwBQtUWEIbyNsgdeEGT6Nl7lkFeFQMPn+iMHexljVa/E2zZ2BZRQAAO5kMfvfj6f2u+IKku2oRaxAVgkcZ4CvH8855r2WaiWbOwLKLsICdTAbP/PD1Plc6QOBhAYGVe9Yfgr+AeDcQMG+OX7426bVPM9OMGVhxERazs6u9u4rKPrjuowTu/cfXeWO4Qpr3AY7e//RzX9q27TZ4f9/TLBn4X0VYzO5EZ6dTnH8Arna41A4C90mI1Gt9ACA5CeA0oVMI8tTERecsSdVzjxa1s54zULciLEUS073ReMVBn9xKH8nNAHsFbSAQBRSF0C4yAqgCoAhwjsIciCKgAmlyFHLVoHKWieXGpqfnVsu3Rf1ZTxn4AyaTUIFwF6KQAAAAAElFTkSuQmCC",e:1},{id:"image_4",w:62,h:19,u:"",p:"data:image/png;base64,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",e:1},{id:"image_5",w:337,h:242,u:"",p:"data:image/png;base64,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",e:1},{id:"image_6",w:114,h:135,u:"",p:"data:image/png;base64,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",e:1},{id:"image_7",w:27,h:37,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAlCAYAAACzpJKIAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADqElEQVRIib2XXYhVZRSG37XPPtPQZBFTQRgFhRZERkKGkcL044XRZRQGZT8MQsWkJBgSBYEZFMnQRUMXXYgUo11INBJDNSB4EUPphWM4pTNhJJUyY9qMc771vl3sn7PnZ580z5kFh29zPs56vvdda5+1N1ASmvx0Wdne/42ofCt0aqJv3eLAjD+D4c1mwhqGzvRO6M/eJ5qVr4GNABhOQLX3pb7qIsB4EvTl+GOyZxFgflLuQAjv6Pedd7cYFsYhh+TtCjN7pN6rWgeD/hIdcAfo9/LXMx9LstbA3M+CDsiRQGsbMbb9g9bALExYBqLDRNB9s49ufVd6+z9cuVyYQhtIgKGujgEQt2n03AGNvnFj82A1XisGJMDETii5pod18n9+1LGeDVJ/5cph9OuLACWNAjGkltaWus/s0cjQT+Hophd0+vWORukadpYf37wLZA8kAMKsNf1IhBkgEgYEST+Y6aCE7yvGcyCmEWEaMcbihsqCrxUIgyAqWVVfIQJIQAAgMQawSuQqSPD0cEb8FtXs/lJlGnntZiGcIj3Kk0OwVA0AWPpdDs6VAwABASZORTHW2srPh0uVURe3iIwgQRAsOXkOTSzMrjMQcmuROQC8aCv7h0trpmMvd7I2Mw6gI/9xsVbQnKQAxCS16geLDO9VHti3Lcu7oDLWLu4Q2ZEWBPk6p0FsXtMwB0E4FK2ubC/mnQcLh196Su7ds5sgtYh1hfNrmCoiYdDfFVQ2mO31UphGNi7jTPhEdCg9YW5RQY0KqurdSQhJ0xi00x7aPz5XSA7TkU03cerCl5KWAMXETBMg78KF4IVGORXFHR8uVJ4YADTcfQPD+UHS70yUFE+f30OpZapbVoAiPViEqM8e3Du1IExHnrmFtfODIu/Kk2X2QQBZb/2sZulNPutfJa1fVLXPFgIhsbi/grGBKuILhrPtEWrTnXAsdfqtklaD3mWGe0Ra/V6aDS1Yebjt4W/uK4WVbRRDBx+/3aEtAJ4X/eoMmnYe6jXG7viR754ty3NJA9DWfHUiXjPwSiXgDpAHQAc8wJRO8Xwa+PFGeS5r2lrXwOlq1+D6yPQqSM9GTzZYTfylabAsKl3ffmSGp8FQy1QhezBqNgwA4keH9pnpSQMDlAFDe0tgABA/dmi/GLbCEysptg4GAG3rh3dB3J3ULHS2FAYA1Wuu6zbwKOgrWg6zrqFpOJ4j/YrfBy45al8sf0tfryh9wmqKsizi25bswKSXvnz8Cy4B9gv8OEwoAAAAAElFTkSuQmCC",e:1},{id:"image_8",w:28,h:39,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAnCAYAAAAcsCj6AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADrklEQVRYhb2XTWwVVRTHf7evwEvBhWKMokabJk2EuNEu2EhiEFQUTIx2IwqaFlCDJmqIMSxeXChJpYT6FWJCqlWQFkmLBo07wPCxMH4sqIGEhQtDYlAJ2tfXzj1/FzPz3rzpTKv0tTeZ3Dtn5p7fPef+z9z3INW044uVaVsjW9MUi9O92nHkrvkDirP4iXfnD9iy9EcIVurVga55AbrS/QHSGaRevfZJ65wDAZBOY/46Jif7NThYmA/gKcyDtIrvruyZe2Cx+QySkAfz27X9w62NArq8B9q+7yKyVmQAAc496d57YXi2wOwIAeTPISO6mvHBYT2/99m5A5pGo30k7H0B2X5t631dUm5mrh2IPx9G56PLQrAP3mZLz3F1725vLNB0tQqppTa+7sMqP6l71069+NbS/wPMF83W3vXIHw1vFIEETmFP1EsTOI4g9xF3+BOuVAquEfjOGsy+DVWaANRA0diiCQZoEtwFsFFwvyALkC1BWoJU4bGOV5pzlyK/DEvCko6pRVxdCCBbACxHtrxugeF4o+vs9PlAszawjEjisWr3GFjCeTobaMQd6P0MYLoI20PRxE5gSnqVcl61JxfKHxSbt8VuM1Wq0uBC5NdUVx+XB2m1+oSKo3Fcu3F2nL3s+nsuxb6zI/x19BHMbqilj5qDaqREUaXtiegdx93Bvk+TrrOB3j9dS5VFGU0JZ0oaU3uNPK7wUtr1FKC631xBpbKhLpIsQD4IzKDJHXIH9/48I5BKpQdZIVcQSZAsrOTYniwjV+jLSl4dUM+8sRHzD2fIOl3g0YxIxel3Hd+7z98/Oy1QXTtbGQ/6qgqM01NXc+liz+vt6yxYFajNpSLjY4cxu34KaKb9UiyqhFqdTuYBm1QqNRGMDWD+nnBS8jiy+j5dh3EN1tk9uOKp/Agv/PMA5v+kSbuQLoMTZkWciki347gb2QrQomnVGkfrKLuhD/7OA/6nk1tb9i3gyg8PYrYZs/VIC+uOquQHwvG7Gx64aVbAOvhTXbcx5neDOmsRk4z2ovvyQFvDgFXwE5tWM2kfI7s1NFRFdsl9deiWhgMBtOG5ZVAeQepIfAjEjYtbXH//eNacaX5Ezdzc0f2/sejmVaCR8DQRmHdcvnpn3pxZAQHc0J4yResE+6a6p4HP/RM0a2AIHZqgpfA4ZiexALCOOQVG0DJu8aM4zmH+odz3GgWMm9atayew07QU29zw8F/p5w2LMG7u2LHzYJsol1c32ve0TWvXZgrnX5F0z/KsOpRxAAAAAElFTkSuQmCC",e:1},{id:"image_9",w:29,h:42,u:"",p:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAqCAYAAABP7FAaAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAD60lEQVRYhb2Xb2hVZRzHP79z7zTZJMWx9SZiJYER4ougP29yQQ7CMCwGaWTSGBYGlbFIX2QKQZM2WGGgEMFAMV3ImObE2Iv+vIjeRIhSEdGfVSNQdFfZds/v24t77t1z1/237c4Dh3POc37P83m+vz/PeQ4swdH/pe6u9D6qN/BTKTU1zdZKNul6Q3/+gi7geiWbuip97yutdOeAiW9vGXQmw153mu9Ic6mSndULeHBUbRKXZPz5dofdU8m2bjF1OORiOeJyNdu6uPedc2qPnaddIPh9yaF932hFLI4kQORcqdZn0e69cpUDLtYKQGDREkP3jeiRrPMalgMm4GvV+i3YvftGdafDZ4KUOzjgDojGJYEeGlVjdoZhF60ukHJAAS5urzt0/5iaJ6YYdbHBE1hOYO4ai1XVxphXTHtGtC5znTOCNhKFAkzgSoyMil+YmqH7x9Q0eY034pg9giZjFgg5hSRtETwsycxMZYarvAzuvaDW6Rs8K/GWi5Z8u1TcU5ptk2BZA+vef9LKrkxFSgfOavk43JfNsil2ttzM8JA0O7yCuUskvg3aE/XTWdqh/HKY7hlRexzzJnDXrzOsdZFOyq4wyFyY2ay6ouekDxEvAx+Vg0a9m21McN7Fve6kJYiTxMhnp8J7IPbcc16sB5NzwGPu33VKHWWhAH1brE8Rm2VkPFDg4ZVkwKAtf8Y+OxFPwBJ7ykGLEmn3sB6zLCMuVuRdGcasELo5LjWCkgnsDHYe7bRPKkIBdp9Sh4xhF8tCcOF+DjwEzX0GMukUDxx5pjiTS5bMS0N61Z3+UoCi4gviWmoSyfHD6ogH+zvtZkWoJNs1xOcSHUVum3tvJUAqnpjnQnF+TYqn8uCSa6+ZKTa6XEwXkirI2PBadIbrcHEibpqY4Vz3MTWXVZo/Xjyho4KuMGHC2BVUlki28H1Qv5dTt/Foxa9MnKLXQfkZx0l5hGWUr9uCBxLFid2M4GuHg1GK9jWr2DC41SaqbkF3HNf3LtYXZh+qCHYMeVUGGcEZIoZWpzl7uNMm545Z9SsTiwvA+pJJ5LM1i/GvwQDw4fHtVnGfVBUaRYxls7z+v7gpUAmHl8X0DD5vmWrj1QSNI34RiaqgPUmuvzF2nnzOztUCqxnKNH/kEySf6y6IjPGGiI3HtttP8wFCjf8ynYOalGgsJIzxV1psPLHDfpwvEGrcmLlzo6AWJknz+EKBUOMeSZAKXNx9eptdXCiwZmisgkdOnn7Bji8GWDNUTlrGVZbzymKBUENMu79TQwxNDu8Ob7N/bgl0/CItwG9trQzUA1gTNJqhxUXvB0/Y1C2DTkVY40o+rhcQ4D9Qr1wB2LWqAAAAAABJRU5ErkJggg==",e:1},{id:"image_10",w:42,h:70,u:"",p:"data:image/png;base64,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",e:1},{id:"image_11",w:67,h:55,u:"",p:"data:image/png;base64,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",e:1},{id:"image_12",w:88,h:106,u:"",p:"data:image/png;base64,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",e:1},{id:"image_13",w:90,h:107,u:"",p:"data:image/png;base64,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",e:1}],layers=[{ddd:0,ind:1,ty:2,nm:"\u53F3\u89E6\u89D2",parent:9,refId:"image_0",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0],e:[20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:30,s:[20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:60,s:[0],e:[20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:90,s:[20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:120,s:[0],e:[20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:150,s:[20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:180,s:[0],e:[20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:210,s:[20],e:[0]},{t:240}],ix:10},p:{a:0,k:[193.146,30.9,0],ix:2},a:{a:0,k:[3.25,56.25,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:2,ty:2,nm:"\u5DE6\u89E6\u89D2",parent:9,refId:"image_1",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:0,s:[0],e:[-20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:30,s:[-20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:60,s:[0],e:[-20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:90,s:[-20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:120,s:[0],e:[-20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:150,s:[-20],e:[0]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:180,s:[0],e:[-20]},{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:210,s:[-20],e:[0]},{t:240}],ix:10},p:{a:0,k:[142.598,31.15,0],ix:2},a:{a:0,k:[66.75,56.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:3,ty:2,nm:"\u7741\u773C 2",parent:9,refId:"image_2",sr:1,ks:{o:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:0,s:[0],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:102,s:[0],e:[100]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:103,s:[100],e:[100]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:138,s:[100],e:[0]},{t:139}],ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[167.386,118.854,0],ix:2},a:{a:0,k:[107,43,0],ix:1},s:{a:1,k:[{i:{x:[.833,.833,.833],y:[.833,.833,.833]},o:{x:[.167,.167,.167],y:[.167,.167,.167]},t:103,s:[100,35,100],e:[100,100,100]},{i:{x:[.833,.833,.833],y:[.833,.833,.833]},o:{x:[.167,.167,.167],y:[.167,.167,.167]},t:108,s:[100,100,100],e:[100,100,100]},{i:{x:[.833,.833,.833],y:[.833,.833,.833]},o:{x:[.167,.167,.167],y:[.167,.167,.167]},t:133,s:[100,100,100],e:[100,35,100]},{t:138}],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:4,ty:2,nm:"\u95ED\u773C 2",parent:9,refId:"image_3",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[167.35,123.559,0],ix:2},a:{a:0,k:[97,7,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:6,ty:2,nm:"\u95ED\u773C",parent:9,refId:"image_3",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[167.35,123.559,0],ix:2},a:{a:0,k:[97,7,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:8,ty:2,nm:"\u95ED\u5634",parent:9,refId:"image_4",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[168.804,184.705,0],ix:2},a:{a:0,k:[31,9.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:9,ty:2,nm:"\u8111\u888B",refId:"image_5",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:0,s:[0],e:[-5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:30,s:[-5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:60,s:[0],e:[5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:90,s:[5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:120,s:[0],e:[-5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:150,s:[-5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:180,s:[0],e:[5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:210,s:[5],e:[0]},{t:240}],ix:10},p:{a:0,k:[224.85,392.35,0],ix:2},a:{a:0,k:[168.5,240,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:10,ty:2,nm:"\u8EAB\u4F53",refId:"image_6",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:0,k:[224.603,432.311,0],ix:2},a:{a:0,k:[57,67.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:11,ty:2,nm:"1.png",cl:"png",refId:"image_7",sr:1,ks:{o:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:135,s:[100],e:[0]},{t:150}],ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},t:30,s:[223,298,0],e:[16,181.5,0],to:[-34.5,-19.417,0],ti:[34.5,19.417,0]},{t:150}],ix:2},a:{a:0,k:[13.5,18.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:12,ty:2,nm:"2.png",cl:"png",refId:"image_8",sr:1,ks:{o:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:135,s:[100],e:[0]},{t:150}],ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},t:30,s:[223,297,0],e:[431,206,0],to:[34.667,-15.167,0],ti:[-34.667,15.167,0]},{t:150}],ix:2},a:{a:0,k:[14,19.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:13,ty:2,nm:"3.png",cl:"png",refId:"image_9",sr:1,ks:{o:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:135,s:[100],e:[0]},{t:150}],ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},t:30,s:[222,300,0],e:[249,23,0],to:[4.5,-46.167,0],ti:[-4.5,46.167,0]},{t:150}],ix:2},a:{a:0,k:[14.5,21,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:14,ty:2,nm:"4.png",cl:"png",refId:"image_10",sr:1,ks:{o:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:135,s:[100],e:[0]},{t:150}],ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},t:30,s:[223,293,0],e:[393,86,0],to:[28.333,-34.5,0],ti:[-28.333,34.5,0]},{t:150}],ix:2},a:{a:0,k:[21,35,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:15,ty:2,nm:"5.png",cl:"png",refId:"image_11",sr:1,ks:{o:{a:1,k:[{i:{x:[.667],y:[1]},o:{x:[.333],y:[0]},t:135,s:[100],e:[0]},{t:150}],ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.667,y:1},o:{x:.333,y:0},t:30,s:[211.5,296.5,0],e:[76,72,0],to:[-26.25,-25.75,0],ti:[22.583,37.417,0]},{t:150}],ix:2},a:{a:0,k:[33.5,27.5,0],ix:1},s:{a:0,k:[90,90,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:16,ty:2,nm:"\u53F3\u624B",refId:"image_12",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:0,s:[0],e:[-5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:30,s:[-5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:60,s:[0],e:[5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:90,s:[5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:120,s:[0],e:[-5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:150,s:[-5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:180,s:[0],e:[5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:210,s:[5],e:[0]},{t:240}],ix:10},p:{a:0,k:[257.383,384.131,0],ix:2},a:{a:0,k:[14,11.25,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0},{ddd:0,ind:17,ty:2,nm:"\u5DE6\u624B",refId:"image_13",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:1,k:[{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:0,s:[0],e:[5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:30,s:[5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:60,s:[0],e:[-5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:90,s:[-5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:120,s:[0],e:[5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:150,s:[5],e:[0]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:180,s:[0],e:[-5]},{i:{x:[.833],y:[.833]},o:{x:[.167],y:[.167]},t:210,s:[-5],e:[0]},{t:240}],ix:10},p:{a:0,k:[198,382,0],ix:2},a:{a:0,k:[79.5,10.5,0],ix:1},s:{a:0,k:[100,100,100],ix:6}},ao:0,ip:0,op:300,st:0,bm:0}],markers=[];var startingData={v,fr,ip,op,w,h,nm,ddd,assets,layers,markers};let backtime=0;const initBehaviorId$2=""+new Date().valueOf(),evaluating=ref(!1),playStatus=ref("stop"),endloading=ref(!1),connentLoading=ref(!1),playUrl=ref(""),endResult=ref(null),animate={mounted:F=>{F.addEventListener("click",R=>{R.target.classList.add("animate__animated","animate__tada")}),F.addEventListener("animationend",R=>{R.target.classList.remove("animate__animated","animate__tada")})}},browserInfo$4=browser(),formatPitch=F=>F?state$3.sett.hertz&&state$3.sett.hertz!==442?F/442*state$3.sett.hertz:F:-1,formatTimes=()=>{var U,W,q,Y,Q,Z,K,ie,te,ne;const F=((W=(U=state$2.times)==null?void 0:U[0])==null?void 0:W.difftime)||0;let R=!1,B=!1,D=!1;const G=[];for(let se=0;se{var W,q,Y,Q;const F=useOriginSearch();connentLoading.value=!0;const R=sessionStorage.getItem("behaviorId")||F.behaviorId||initBehaviorId$2,B=state.speed/state$2.baseSpeed,D={musicXmlInfos:formatTimes(),subjectId:state$2.subjectId,detailId:(W=state$2.activeDetail)==null?void 0:W.id,examSongId:F.id,xmlUrl:(q=state$2==null?void 0:state$2.activeDetail)==null?void 0:q.xmlUrl,partIndex:state$2.partIndex,behaviorId:R,platform:"WEB",clientId:"STUDENT",hertz:state$3.sett.hertz,feature:"EVALUATION",practiceSource:F.unitId?"UNIT_TEST":"PRACTICE",reactionTimeMs:parseFloat(""+state$3.eva.reactionTimeMs)||0,speed:state.speed,heardLevel:state$3.eva.difficulty,beatLength:Math.round(getFixTime(state$2.times[0].beatSpeed)*1e3/B)},G=useClientType();G==="student"?D.clientId="STUDENT":G==="teacher"?D.clientId="TEACHER":D.clientId="BACKEND",browserInfo$4.android&&(D.platform="ANDROID"),browserInfo$4.ios&&(D.platform="IOS");const U=await promisefiyPostMessage({api:"startEvaluating",content:D});if((Y=U==null?void 0:U.content)!=null&&Y.reson)throw Toast.fail({message:(Q=U==null?void 0:U.content)==null?void 0:Q.reson}),connentLoading.value=!1,U;connentLoading.value=!1},sendOffsetTime=F=>{postMessage({api:"proxyServiceMessage",content:{header:{commond:"audioPlayStart",type:"SOUND_COMPARE"},body:{offsetTime:F}}},()=>{backtime=0})},cancelTheEvaluation=()=>{const F=useOriginSearch();resetPlayStatus(),clearIntervalTimeline(),setCurrentTime(0),playStatus.value="stop",postMessage({api:"endEvaluating",content:{musicScoreId:F.id}},R=>{evaluating.value=!1,Toast.clear()})},stopPlay=(F=!0)=>{console.log("\u8C03\u7528stopPlay"),startButtonShow.value=!0,cancelTheEvaluation()},evaluatStopPlay=stopPlay,startPlay=()=>{console.log("\u8FDE\u63A5\u670D\u52A1\u6210\u529F,\u5F00\u59CB\u64AD\u653E",new Date().getTime()-state.clickTime),state$3.eva.mute?changeMode("background"):changeAllMode(),startButtonShow.value=!1,setPlayState()},setPlayer=async()=>{if(console.log("\u8C03\u7528setPlayer"),state.clickTime=new Date().getTime(),resetPlayStatus(),state.evaluatingTips=!1,state$2.isPauseRecording){evaluating.value=!1,startPlay();return}state$2.evaluatings={},setCurrentTime(0);const F=Toast({duration:0,message:"\u670D\u52A1\u8FDE\u63A5\u4E2D...",type:"loading"});try{await connect(),startPlay(),setTimeout(()=>{console.log("\u5173\u95ED\u5F39\u7A97"),Toast.clear(),F.close()},100)}catch{state.evaluatingStatus=!1,Toast.clear()}},togglePlay=()=>{if(state$2.isPauseRecording){evaluating.value=!1,startPlay();return}evaluating.value?stopPlay():setPlayer()},cancelEvaluating=F=>{F!=null&&F.content.reson&&stopPlay()},timeupdate=()=>{var F;if(console.log("\u64AD\u653E\u4E8B\u4EF6\u88AB\u89E6\u53D1",playUrl.value,evaluating.value),playUrl.value){const R=new Date().getTime();console.log("\u7B2C\u4E00\u6B21\u64AD\u653E\u65F6\u95F4",R);const B=(F=state.audiosInstance)==null?void 0:F.audios[playUrl.value].currentTime;console.log("\u5DF2\u64AD\u653E\u65F6\u957F: ",B*1e3),console.log("\u4E0D\u51CF\u6389\u5DF2\u64AD\u653E\u65F6\u95F4: ",R-backtime);const D=R-backtime-B*1e3;console.log("\u771F\u6B63\u64AD\u653E\u5EF6\u8FDF",D),setTimeout(()=>{sendOffsetTime(D)},220)}},playerStop=()=>{console.log("playerStop\u64AD\u653E\u5668\u505C\u6B62\u4E8B\u4EF6",endloading.value),!endloading.value&&(playStatus.value="stop",endloading.value=!0,startButtonShow.value=!0,resetPlayStatus(),clearIntervalTimeline(),setCurrentTime(0),Toast({duration:0,message:"\u8BC4\u5206\u4E2D...",type:"loading"}),postMessage({api:"endEvaluating",content:{musicScoreId:useOriginSearch().id}},F=>{console.log("\u8C03\u7528endEvaluating\u7ED3\u675F",F),endloading.value=!1,evaluating.value=!1}))},evaluatPlayerStop=playerStop,endevent=F=>{var R;((R=F.target)==null?void 0:R.src)===playUrl.value&&playStatus.value==="play"&&(playerStop(),canSubmit.value=!0),state$2.isAppPlay&&(playerStop(),canSubmit.value=!0)},start=()=>{if(playStatus.value="play",state$2.isPauseRecording){postMessage({api:"resumeRecording"},()=>{evaluating.value=!0,state$2.isPauseRecording=!1,setCaptureMode()});return}console.log("\u5F00\u59CB\u5F55\u97F3",new Date().getTime()),postMessage({api:"startRecording"},()=>{var F,R;console.log("\u5F00\u59CB\u5F55\u97F3\u56DE\u8C03\u65F6\u95F4",new Date().getTime()),backtime=new Date().getTime(),evaluating.value=!0,console.log("midiUrl",(F=state$2.activeDetail)==null?void 0:F.midiUrl),(R=state$2.activeDetail)!=null&&R.midiUrl&&setTimeout(()=>{sendOffsetTime(0)},220)})},submitEvaluationScore=async F=>{var B;const R=useOriginSearch();if(R.unitId){if(!canSubmit.value){Toast("\u5B8C\u6574\u6F14\u594F\u7ED3\u675F\u624D\u7B97\u6D4B\u9A8C\u5206\u6570\uFF01");return}postMessage({api:"setCache",content:{key:"h5-orchestra-unit",value:JSON.stringify({musicId:R.id||"",unitId:R.unitId||"",questionId:R.questionId||"",score:canSubmit.value&&((B=endResult.value)==null?void 0:B.score)||0})}}),canSubmit.value=!1}},canSubmit=ref(!1),sendResult=F=>{var R,B;if(console.log("\u8BC4\u6D4B\u8FD4\u56DE",F==null?void 0:F.content),F!=null&&F.content){const D=(R=F==null?void 0:F.content)==null?void 0:R.body;if((F==null?void 0:F.content.header.commond)==="overall")Toast.clear(),endResult.value=D,evaluatingShow.value=!0,submitEvaluationScore();else if((F==null?void 0:F.content.header.commond)!=="checkDone"){if((F==null?void 0:F.content.header.commond)!=="checking"){const G=W=>{for(;W>=0;){const q=state$2.times[W];if(q.stave)return q;W--}},U=(W,q,Y=!1)=>{const Q=getBoundingBoxByverticalNote(W);state$2.evaluatings={...state$2.evaluatings,[Q.measureIndex]:{...Q,...getLeveByScoreMeasure(q.score),score:q.score,dontTransition:Y}}};for(let W=0;W{var F;state.currentTimeNum>=((F=state$2.times[state$2.times.length-1])==null?void 0:F.time)-2&&(canSubmit.value=!0)},cloudMetronome=F=>{startButtonShow.value=!0};var Evaluating=defineComponent({name:"ColexiuButtonEvaluating",directives:{animate},setup(F,{expose:R}){return onMounted(async()=>{var B,D,G,U;state.evaluatingTips=!0,state$2.section=[],state$2.sectionStatus=!1,changeAllMode(),playUrl.value=state.songs.background||state.songs.music,(D=(B=state.audiosInstance)==null?void 0:B.audios[playUrl.value])==null||D.addEventListener("play",timeupdate),(U=(G=state.audiosInstance)==null?void 0:G.audios[playUrl.value])==null||U.addEventListener("timeupdate",onProgress),event$1.on("next-click",playerStop),event$1.on("ended",endevent),listenerMessage("sendResult",sendResult),listenerMessage("cancelEvaluating",cancelEvaluating),listenerMessage("cloudTimeUpdae",onProgress),event$1.on("tickDestroy",cloudMetronome),event$1.on("tickEnd",start),await pause(),setCurrentTime(0)}),onBeforeUnmount(()=>{var B,D,G,U;(D=(B=state.audiosInstance)==null?void 0:B.audios[playUrl.value])==null||D.removeEventListener("play",timeupdate),(U=(G=state.audiosInstance)==null?void 0:G.audios[playUrl.value])==null||U.removeEventListener("timeupdate",onProgress),event$1.off("next-click",playerStop),event$1.off("ended",endevent),event$1.off("tickDestroy",cloudMetronome),removeListenerMessage("sendResult",sendResult),removeListenerMessage("cancelEvaluating",cancelEvaluating),removeListenerMessage("cloudTimeUpdae",onProgress),event$1.off("tickEnd",start)}),R({setPlayer,startPlay,stopPlay,togglePlay,playerStop,evaluating,connentLoading,playStatus,cancelTheEvaluation}),()=>createVNode(Fragment,null,[createVNode(Evaluating$1,{data:endResult.value},null),evaluating.value?createVNode(Teleport,{to:"body",key:"Recording"},{default:()=>[createVNode("div",{class:styles$4.dialogueBox},[createVNode("div",{class:styles$4.inRadio},[createTextVNode("\u6536\u97F3\u4E2D...")]),createVNode(Vue3Lottie,{class:styles$4.inRadioIcon,animationData:startingData},null)])]}):createVNode(Teleport,{to:"body",key:"StartEvaluating"},{default:()=>[createVNode("div",{class:styles$4.dialogueBox},[createVNode("div",{class:styles$4.dialogue},[createVNode("div",null,[createTextVNode("\u6F14\u594F\u524D\u8BF7\u8C03\u6574\u597D\u4E50\u5668\uFF0C\u4FDD\u8BC1\u6700\u4F73\u6F14\u594F\u72B6\u6001\u3002"),createVNode("span",{class:styles$4.triangle},null)])]),createVNode(Vue3Lottie,{class:styles$4.dialogueIcon,animationData:startData},null)])]})])}});const event$1=new EventEmitter,browserInfo$3=browser(),initBehaviorId$1=""+new Date().valueOf(),getLinkId$1=()=>{const F=useOriginSearch().id;return location.hash.split("?")[0].split("/").pop()||F||""},getFixTime=F=>{const R=getDuration(state.osmd);let B=R.numerator||0,D=R.denominator||4;const G=R.beatUnit||"quarter";return state$2.repeatedBeats&&(B=B===2?4:B),!state$2.needTick&&!state$2.skipTick?60/F*formatBeatUnit(G)*(B/D):0};let prevIndex=0;const state=reactive({songs:{},playState:"init",sectionHint:new SectionHint,audiosInstance:null,mode:"music",isFirstPlay:!0,metro:null,metroing:!1,duration:"0:00",durationNum:0,currentTime:"0:00",currentTimeNum:0,loading:!1,speed:90,browser:browser(),speedShow:!1,progressShow:!1,touched:!1,osmd:null,tickPlayer:null,evaluatingStatus:!1,evaluatingTips:!1,clickTime:0,evaluatingFixTime:0,cameraStatus:!1,captureStatus:!1,ticking:!1,partIndex:0,activeIndex:0}),syncStepIndex=F=>{var R;state.osmd.hidden!==!1&&state.osmd.cursor.show(),prevIndex=F,setStepIndex(state.osmd,F),refreshIndex((R=state$2.times[F])==null?void 0:R.time)};watchEffect(()=>{state$2.maskStatus=state.playState==="play"});const syncPlayState=async()=>{if(state$2.activeDetail.isAppPlay){const F=await promisefiyPostMessage({api:"cloudGetMediaStatus"}),R=F==null?void 0:F.content.status;state.playState=R}else state.playState=state.audiosInstance.getStatus()},setCurrentTime=F=>{console.log("setCurrentTime",F);const R=F;state$2.fixedKey=0,state.currentTimeNum=R,state.currentTime=formatTime(R),state$2.activeDetail.isAppPlay?promisefiyPostMessage({api:"cloudSetCurrentTime",content:{currentTime:F*1e3,songID:state$2.activeDetail.examSongId}}):state.audiosInstance.setCurrentTime(R),refreshView(),syncPlayState();const B=getIndex(state$2.times,state.currentTimeNum);syncStepIndex(B)},getActiveMidiId=()=>{var F,R,B,D,G,U,W;return(W=(U=(G=(D=(B=(R=(F=state.osmd)==null?void 0:F.sheet)==null?void 0:R.instruments)==null?void 0:B[0])==null?void 0:D.subInstruments)==null?void 0:G[0])==null?void 0:U.midiInstrumentID)!=null?W:0},changeMode=async F=>{var B,D;const R=F==="background"?"music":"background";if(state$2.activeDetail.isAppPlay){const G=new Map;for(const U of state$2.partListNames)G.set(U,60);for(const U of getVoicePartInfo().partListNames)G.set(U,R==="background"?100:0);promisefiyPostMessage({api:"cloudVolume",content:{activeMidiId:getActiveMidiId(),activeMidiVolume:R==="background"?100:0,parts:Array.from(G.keys()).map(U=>({name:U,volume:G.get(U)}))}})}state.mode=F,(B=state.audiosInstance)==null||B.setMute(!0,state.songs[R]),(D=state.audiosInstance)==null||D.setMute(!1,state.songs[F])},changeAllMode=()=>{var F,R;if((F=state$2.activeDetail)!=null&&F.isAppPlay){const B=new Map;for(const D of state$2.partListNames)B.set(D,1);promisefiyPostMessage({api:"cloudVolume",content:{activeMidiId:getActiveMidiId(),activeMidiVolume:100,parts:Array.from(B.keys()).map(D=>({name:D,volume:B.get(D)}))}})}else state.mode="background",(R=state.audiosInstance)==null||R.setMute(!0)},changeSpeed=(F,R=!0)=>{var D;const B=store_legacy.get("speeds")||{};R&&(B[getLinkId$1()]=F,store_legacy.set("speeds",B)),state.speed=F,state$2.activeDetail&&((D=state.audiosInstance)==null||D.setSpeed(F/state$2.baseSpeed),promisefiyPostMessage({api:"cloudChangeSpeed",content:{speed:F,originalSpeed:state$2.activeDetail.originalSpeed,songID:state$2.activeDetail.examSongId}}),state.playState==="play"&&syncStepIndex(getIndex(state$2.times,state.currentTimeNum)))},resetCursor=()=>{state.osmd&&(state.osmd.product?state.osmd.cursor.setPosition({...state$2.times[0].cursorBox}):state.osmd.cursor.reset(),state.osmd.cursor.hide(),state$2.fixedKey=0)},refreshIndexBase=F=>{if(F<0)return;const{osmd:R}=state;R&&state$2.times[F]&&(state$2.sectionStatus||state.sectionHint.show(),state$2.times[F]&&state$2.times[F].noteElement&&state.sectionHint.showForElement(state$2.times[F]),R.product||R.cursor.hidden!==!1&&(R.cursor.reset(),R.cursor.show(),state$2.fixedKey=0),prevIndex!==F&&(setStepIndex(state.osmd,state$2.times[F].i,prevIndex),prevIndex=F),state$2.fixedKey=state$2.times[F].realKey,state$2.activeNote=state$2.times[F])},refreshIndex=F=>{const{osmd:R}=state;if(R&&(F||state.audiosInstance.audio)){const B=F||state.audiosInstance.audio.currentTime,D=getIndex(state$2.times,B);state.activeIndex=D,removeRepateBackground(D);const G=state$2.times[state$2.times.length-1],U=(G==null?void 0:G.sourceEndTime)||(G==null?void 0:G.endtime);B>U?(state.osmd.cursor.hide(),state.sectionHint.destroy()):state$2.times[D]&&refreshIndexBase(D)}},removeRepateBackground=F=>{var R,B;if(state.evaluatingStatus&&F){const D=state$2.times[F],G=state$2.times[F+1]||D,U=(B=(R=G==null?void 0:G.noteElement)==null?void 0:R.sourceMeasure)==null?void 0:B.measureListIndex;G&&state$2.evaluatings[U]&&F>0&&(state$2.evaluatings={...state$2.evaluatings,[U]:void 0})}},refreshPlayer=async F=>{var B,D;const{osmd:R}=state;if(R&&(F||state.audiosInstance.audio)){const G=F||state.audiosInstance.audio.currentTime,U=0;if(G+1{if(state$2.sectionStatus&&state$2.section.length===2){G>=state$2.section[0].time&&(state$2.sectionFlash=!1);const Y=state$2.times[state$2.section[1].i+1],Q=Y?Y.halfTone===0?state$2.section[1].endtime:Y.time:state.durationNum;return G+(browserInfo$3.xiaomi?.2:.08)>=Q}return!1})()){state.audiosInstance.setMute(!0),state.osmd.cursor.hide(),(B=state$2.activeDetail)!=null&&B.isAppPlay?pause():await state.audiosInstance.pause(),setSectionModeCurrentTime(),clearAccelerateRefreshPlayer(),setTimeout(()=>setPlayState(),1e3),state.loading=!1;return}((D=state$2.activeDetail)==null?void 0:D.isAppPlay)&&state.durationNum+3{try{prevIndex=0,state.osmd.cursor.reset(),state.osmd.cursor.hide(),state$2.fixedKey=0,state$2.sectionFlash=!1,state.sectionHint&&state.sectionHint.destroy(),F||(state$2.activeDetail.isAppPlay?(await promisefiyPostMessage({api:"cloudSuspend",content:{songID:state$2.activeDetail.examSongId}}),endCapture()):(console.log("resetPlayStatus\u8C03\u7528\u6682\u505C"),state.audiosInstance.pause())),syncPlayState()}catch(R){console.log("resetPlayStatus\u9519\u8BEF",R)}},play=async()=>{state.isFirstPlay&&(resetPlayStatus(),state$2.fixedKey=0),state$2.activeDetail.isAppPlay?(await syncPlayState(),promisefiyPostMessage({api:"cloudSuspend",content:{songID:state$2.activeDetail.examSongId}}),startCapture()):(state.playState=state.audiosInstance.getStatus(),clearAccelerateRefreshPlayer(),accelerateRefreshPlayer(),startCapture())},setDelayTime=async F=>new Promise(R=>{setTimeout(()=>{R(F)},F)}),pause=async()=>{state$2.sectionStatus&&state.osmd.cursor.hide(),state$2.activeDetail.isAppPlay?(await syncPlayState(),await promisefiyPostMessage({api:"cloudSuspend"}),await setDelayTime(200),endCapture()):(state.playState=state.audiosInstance.getStatus(),clearAccelerateRefreshPlayer(),state.audiosInstance.pause(),setTimeout(()=>{endCapture()},200))},waiting=()=>{state.loading=!0},playing=()=>{state.loading=!1},ended=lodash$1.exports.debounce(async F=>{resetPlayStatus(),state$2.fixedKey=0,state.evaluatingStatus||(refreshPlayer(0),state$3.sett.loop&&await setPlayState()),setCurrentTime(0),event$1.emit("ended",F)},300,{leading:!0,trailing:!1});let timer$1=null;const accelerateRefreshPlayer=()=>{timer$1||!state.audiosInstance||(timer$1=setInterval(()=>{requestAnimationFrame(()=>{refreshPlayer(),state.audiosInstance.getStatus()==="play"&&refreshIndex()})},16.7))},clearAccelerateRefreshPlayer=()=>{clearInterval(timer$1),timer$1=null},sectionChange=()=>{state$2.sectionStatus=!state$2.sectionStatus,clearAccelerateRefreshPlayer(),resetPlayStatus(),state$2.sectionStatus||(setCurrentTime(0),state$2.fixedKey=0),state$2.sectionStatus&&state$2.section.length!=2&&resetCursor()},getFirsrNoteByMeasureListIndex=(F,R=!0)=>{var B,D,G;for(const U of state$2.times)if(((D=(B=U==null?void 0:U.noteElement)==null?void 0:B.sourceMeasure)==null?void 0:D.measureListIndex)===F){let W=null;for(const q of U.measures)getSlursNote(q)&&(W=getSlursNote(q));if(W&&((G=W.sourceMeasure)==null?void 0:G.measureListIndex)!==F){for(const q of state$2.times)if(q.noteElement.NoteToGraphicalNoteObjectId===W.NoteToGraphicalNoteObjectId)return q}return U}return null},setSectionModeCurrentTime=()=>{var F,R;if(console.log(state$2.needTick,"setSectionModeCurrentTime"),state$2.needTick)setCurrentTime(state$2.section[0].sourceStartTime||state$2.section[0].time);else{const B=(R=(F=state$2.section[0].noteElement)==null?void 0:F.sourceMeasure)==null?void 0:R.measureListIndex;B>0?(setCurrentTime(getFirsrNoteByMeasureListIndex(B-1).time),state$2.sectionFlash=!0):setCurrentTime(0)}},setPlayerView=()=>{state$2.sectionStatus&&(syncStepIndex(getIndex(state$2.times,state.currentTimeNum)),state$2.section.length===2?setSectionModeCurrentTime():(state$2.section=[],state$2.sectionBoundingBoxs=[],state$2.sectionStatus=!1,Toast.clear()))},cloudToggleState=async()=>{const F=await promisefiyPostMessage({api:"cloudGetMediaStatus"}),R=F==null?void 0:F.content.status;if(R==="init")return;R==="suspend"?(await promisefiyPostMessage({api:"cloudPlay",content:{songID:state$2.activeDetail.examSongId,startTime:state.currentTimeNum*1e3,originalSpeed:state$2.activeDetail.originalSpeed,speed:state.speed,hertz:440}}),startCapture()):(await promisefiyPostMessage({api:"cloudSuspend"}),endCapture());const B=await promisefiyPostMessage({api:"cloudGetMediaStatus"});state.playState=B==null?void 0:B.content.status,console.log(B,"cloudGetMediaStatused")},toggleState=async F=>{state$2.activeDetail.isAppPlay?await cloudToggleState():(state.isFirstPlay=!1,setPlayerView(),await state.audiosInstance.togglePlay(F),state.evaluatingStatus||changeMode(state.mode),state.playState=state.audiosInstance.getStatus())},setActiveKey=F=>{state$2.activeTick=F},setTickStop=()=>{state$2.activeTick=-1,state$2.activeTickRepeat=1,toggleState(getTickTime(state.speed/state$2.baseSpeed))};let timeliner=-1;const clearIntervalTimeline=()=>{clearInterval(timeliner)},onTickDestroy=()=>{event$1.emit("tickDestroy")},setTick=(F,R)=>{var D,G,U,W,q,Y,Q;const B=()=>{F(),event$1.emit("tickEnd")};if(state$2.needTick){let{numerator:Z,denominator:K}=getDuration(state.osmd);if(state.osmd.numerator&&state.osmd.denominator&&(Z=state.osmd.numerator,K=state.osmd.denominator),state$2.activeDetail.isAppPlay)state.ticking=!0,postMessage({api:"cloudMetronome",content:{repeat:Z===2?2:1,denominator:K,numerator:Z}},ie=>{state.ticking=!1,(ie==null?void 0:ie.content.status)==="finish"?B():(ie==null?void 0:ie.content.status)==="cancel"&&event$1.emit("tickDestroy")});else{const ie=Z===2?2:1;state$2.activeTickRepeat=ie,console.log("ticking"),state.tickPlayer=new Player(Z,(R||state.speed)/90),(D=state.tickPlayer)==null||D.start(Z,(R||state.speed)/90,ie),(G=state.tickPlayer)==null||G.event.off("tick",setActiveKey),(U=state.tickPlayer)==null||U.event.off("stop",B),(W=state.tickPlayer)==null||W.event.off("destroy",onTickDestroy),(q=state.tickPlayer)==null||q.event.on("tick",setActiveKey),(Y=state.tickPlayer)==null||Y.event.on("stop",B),(Q=state.tickPlayer)==null||Q.event.on("destroy",onTickDestroy)}}else B()},setPlayState=async()=>{if(!(state$2.activeTick>-1||state.ticking)){if(await syncPlayState(),state.playState!=="pause"&&state.playState!=="suspend"){await toggleState();return}setPlayerView(),setTick(setTickStop)}},stopTick=()=>{state.tickPlayer&&state.tickPlayer.destroy(),event$1.emit("stopTick"),state$2.activeTickRepeat=1,state$2.activeTick=-1},windowResize=()=>{const F=getIndex(state$2.times,state.currentTimeNum);setTimeout(()=>{var R,B;(B=state.sectionHint)==null||B.showForElement((R=state$2.times[F])==null?void 0:R.noteElement)},200)},loadedmetadata=()=>{state.duration=formatTime(state.audiosInstance.duration),state.durationNum=state.audiosInstance.duration};let prevDiff=0,viewing=!1;const refreshView=()=>{var D;let F,R;(D=state==null?void 0:state.osmd)!=null&&D.product&&(F=state.osmd.cursor.img,R=document.querySelector("#colexiu-detail-music-sheet"));const B=Math.max(parseFloat((F||state.osmd.cursor.cursorElement).style.top),0);Math.abs(prevDiff-B)>10&&!viewing&&(viewing=!0,setTimeout(()=>{viewing=!1,(R||(state$4.clintNmae==="colexiu"?state.osmd.container.parentElement.parentElement:state.osmd.container.parentElement)).scrollTo({top:B,left:0,behavior:"smooth"}),prevDiff=B},100))},updatePlayTime=async F=>{const R=useOriginSearch();sessionStorage.getItem("behaviorId")||R.behaviorId,getRequestHostname(),useClientType()},setAudioInit=()=>{state.audiosInstance.event.on("loadedmetadata",loadedmetadata),state.audiosInstance.event.on("waiting",waiting),state.audiosInstance.event.on("playing",playing),state.audiosInstance.event.on("play",play,!1),state.audiosInstance.event.on("pause",pause,!1),state.audiosInstance.event.on("ended",ended,!1),state.audiosInstance.event.on("updatePlayTime",updatePlayTime,!1),listenerMessage("cloudplayed",async()=>{await syncPlayState(),state.currentTimeNum=0,state.currentTime="00:00",state.audiosInstance.event.emit("ended",new Event("ended"))}),listenerMessage("cloudTimeUpdae",F=>{const R=(F==null?void 0:F.content.currentTime)/1e3;state.playState==="play"&&(state.currentTimeNum=R,state.currentTime=formatTime(R),refreshPlayer(R),refreshIndex(R)),refreshView()}),state.audiosInstance.event.on("timeupdate",()=>{state.currentTimeNum=state.audiosInstance.currentTime,state.currentTime=formatTime(state.audiosInstance.currentTime),requestAnimationFrame(()=>{state.audiosInstance.getStatus()==="play"&&refreshPlayer(),refreshView()})}),window.addEventListener("resize",windowResize)},setStepView=(F,R)=>{prevIndex=Math.max(F.i,0),syncStepIndex(F.i),R&&refreshPlayer(R),refreshView()},noteClick=F=>{if(state.isFirstPlay){Toast("\u5F00\u59CB\u64AD\u653E\u540E\u624D\u80FD\u8C03\u6574\u8FDB\u5EA6");return}let R=getNoteBySlursStart(getActtiveNoteByTimes(F));if(R){const B=R.sourceStartTime||R.time;setCurrentTime(B),setStepView(R.i,B),state$2.fixedKey=R.realKey,state$2.activeNote=R}};let playStartTime$1=0;const startCapture=async()=>{var F;(F=state$2.activeDetail)!=null&&F.isAppPlay&&(playStartTime$1=new Date().getTime(),console.log("startCapture",playStartTime$1)),state$3.sett.camera&&browserInfo$3.isApp&&!state.captureStatus&&state.evaluatingStatus&&state$3.eva.save&&(state.captureStatus=!0,postMessage({api:"startCapture"},()=>{postMessage({api:"setCaptureMode",content:{mode:"evaluating"}})}))},endCapture=async()=>{var F,R;if((F=state$2.activeDetail)!=null&&F.isAppPlay){const B=new Date().getTime()-playStartTime$1;playStartTime$1!==0&&B>0&&((R=state.audiosInstance)==null||R.event.emit("updatePlayTime",B/1e3),playStartTime$1=0)}browserInfo$3.isApp&&state.evaluatingStatus&&state$3.sett.camera&&state.captureStatus&&(postMessage({api:"endCapture"},()=>{state.captureStatus=!1}),evaluatPlayerStop())},setCaptureMode=async()=>{browserInfo$3.isApp&&state$3.sett.camera&&postMessage({api:"setCaptureMode",content:{mode:state.evaluatingStatus?"evaluating":"practice"}})};class AJAX{static ajax(R,B=9e3){let D;const G=R.indexOf(".mxl")>-1?"text/plain; charset=x-user-defined":"application/xml";if(XMLHttpRequest)D=new XMLHttpRequest;else if(ActiveXObject)D=new ActiveXObject("Microsoft.XMLHTTP");else return Promise.reject(new Error("XMLHttp not supported."));return D.timeout=B,new Promise((U,W)=>{D.onreadystatechange=()=>{D.readyState===XMLHttpRequest.DONE&&(D.status===200||D.status===0&&D.responseText?U(D.responseText):W(new Error("Could not retrieve requested URL "+D.status)))},D.ontimeout=q=>{W(new Error("Server request Timeout"))},D.overrideMimeType(G),D.open("GET",R,!0),D.send()})}}const _Fraction=class{constructor(F=0,R=1,B=0,D=!0){this.numerator=0,this.denominator=1,this.wholeValue=0,this.numerator=F,this.denominator=R,this.wholeValue=B,D&&this.simplify(),this.setRealValue()}static max(F,R){return F.RealValue>R.RealValue?F:R}static Equal(F,R){return F.wholeValue===R.wholeValue&&F.Denominator===R.Denominator&&F.Numerator===R.Numerator}static createFromFraction(F){return new _Fraction(F.numerator,F.denominator,F.wholeValue,!1)}static plus(F,R){const B=F.clone();return B.Add(R),B}static minus(F,R){const B=F.clone();return B.Sub(R),B}static multiply(F,R){return new _Fraction((F.wholeValue*F.denominator+F.numerator)*(R.wholeValue*R.denominator+R.numerator),F.denominator*R.denominator)}static greatestCommonDenominator(F,R){if(F===0)return R;if(R===1)return 1;for(;Math.abs(R)>1e-8;)F>R?F-=R:R-=F;return Math.round(F)}toString(){let F=this.numerator+"/"+this.denominator;return this.wholeValue!==0&&(F=this.wholeValue+" "+F),F}clone(){return new _Fraction(this.numerator,this.denominator,this.wholeValue,!1)}get Numerator(){return this.numerator}set Numerator(F){this.numerator!==F&&(this.numerator=F,this.simplify(),this.setRealValue())}get Denominator(){return this.denominator}set Denominator(F){this.denominator!==F&&(this.denominator=F,this.numerator!==0&&this.simplify(),this.setRealValue())}get WholeValue(){return this.wholeValue}set WholeValue(F){this.wholeValue!==F&&(this.wholeValue=F,this.setRealValue())}GetExpandedNumerator(){return this.wholeValue*this.denominator+this.numerator}calculateNumberOfNeededDots(){let F=1,R=2;const B=this.GetExpandedNumerator();for(;RF;)R.Numerator++;if(this.numerator>this.denominator){const B=new _Fraction(this.numerator-1,this.denominator,this.wholeValue);for(;B.Denominator>F;)B.Numerator--;if(B.Denominator_Fraction.maximumAllowedNumber){const B=this.denominator/_Fraction.maximumAllowedNumber;this.numerator=Math.round(this.numerator/B),this.denominator=Math.round(this.denominator/B)}if(this.numerator>_Fraction.maximumAllowedNumber){const B=this.numerator/_Fraction.maximumAllowedNumber;this.numerator=Math.round(this.numerator/B),this.denominator=Math.round(this.denominator/B)}}isOnBeat(F){const R=this.distanceFromBeat(F);return Math.abs(R)<_Fraction.FloatInaccuracyTolerance}distanceFromBeat(F){const R=new _Fraction(1,F.Denominator);return this.RealValue%R.RealValue}};let Fraction$1=_Fraction;Fraction$1.maximumAllowedNumber=46340;Fraction$1.FloatInaccuracyTolerance=1e-4;class AbstractExpression{constructor(R){this.placement=R}static isStringInStringList(R,B){for(let D=0,G=R.length;D(F[F.Above=0]="Above",F[F.Below=1]="Below",F[F.Left=2]="Left",F[F.Right=3]="Right",F[F.NotYetDefined=4]="NotYetDefined",F[F.AboveOrBelow=5]="AboveOrBelow",F))(PlacementEnum||{});const _ContinuousDynamicExpression=class extends AbstractExpression{constructor(F,R,B,D,G,U,W=""){super(R),super.parentMeasure=D,this.NumberXml=U,this.dynamicType=F,this.label=W,this.staffNumber=B,this.activeInstantaneousDynamic=G,this.startVolume=1,this.endVolume=1,this.setStartAndEndVolume(),W!==""&&this.setType()}setStartAndEndVolume(){this.activeInstantaneousDynamic&&(this.dynamicType===ContDynamicEnum.crescendo&&(this.startVolume=this.activeInstantaneousDynamic.Volume,this.endVolume=this.activeInstantaneousDynamic.Volume*1.2),this.dynamicType===ContDynamicEnum.diminuendo&&(this.startVolume=this.activeInstantaneousDynamic.Volume,this.endVolume=this.activeInstantaneousDynamic.Volume*.8))}get DynamicType(){return this.dynamicType}set DynamicType(F){this.dynamicType=F}get StartMultiExpression(){return this.startMultiExpression}set StartMultiExpression(F){this.startMultiExpression=F}get EndMultiExpression(){return this.endMultiExpression}set EndMultiExpression(F){this.endMultiExpression=F}get Placement(){return this.placement}set Placement(F){this.placement=F}get StartVolume(){return this.startVolume}set StartVolume(F){this.startVolume=F}get EndVolume(){return this.endVolume}set EndVolume(F){this.endVolume=F}get StaffNumber(){return this.staffNumber}set StaffNumber(F){this.staffNumber=F}get Label(){return this.label}set Label(F){this.label=F,this.setType()}static isInputStringContinuousDynamic(F){return F?_ContinuousDynamicExpression.isStringInStringList(_ContinuousDynamicExpression.listContinuousDynamicIncreasing,F)||_ContinuousDynamicExpression.isStringInStringList(_ContinuousDynamicExpression.listContinuousDynamicDecreasing,F):!1}getInterpolatedDynamic(F){const R=this.StartMultiExpression.AbsoluteTimestamp;let B;if(this.EndMultiExpression?B=this.EndMultiExpression.AbsoluteTimestamp:B=Fraction$1.plus(this.startMultiExpression.SourceMeasureParent.AbsoluteTimestamp,this.startMultiExpression.SourceMeasureParent.Duration),F.lt(R))return-1;if(B.lt(F))return-2;const D=Fraction$1.minus(F,R).RealValue/Fraction$1.minus(B,R).RealValue;return Math.max(0,Math.min(99.9,this.startVolume+(this.endVolume-this.startVolume)*D))}isWedge(){return!this.label}setType(){_ContinuousDynamicExpression.isStringInStringList(_ContinuousDynamicExpression.listContinuousDynamicIncreasing,this.label)?this.dynamicType=ContDynamicEnum.crescendo:_ContinuousDynamicExpression.isStringInStringList(_ContinuousDynamicExpression.listContinuousDynamicDecreasing,this.label)&&(this.dynamicType=ContDynamicEnum.diminuendo)}};let ContinuousDynamicExpression=_ContinuousDynamicExpression;ContinuousDynamicExpression.listContinuousDynamicIncreasing=["crescendo","cresc","cresc.","cres."];ContinuousDynamicExpression.listContinuousDynamicDecreasing=["decrescendo","decresc","decr.","diminuendo","dim.","dim"];var ContDynamicEnum=(F=>(F[F.crescendo=0]="crescendo",F[F.diminuendo=1]="diminuendo",F))(ContDynamicEnum||{}),DynamicExpressionSymbolEnum=(F=>(F[F.p=0]="p",F[F.f=1]="f",F[F.s=2]="s",F[F.z=3]="z",F[F.m=4]="m",F[F.r=5]="r",F))(DynamicExpressionSymbolEnum||{});class MusicSheetReadingException{constructor(R,B){this.message=R,B&&(this.message+=" "+B.toString())}}class ArgumentOutOfRangeException{constructor(R){this.message=R}}class InvalidEnumArgumentException{constructor(R){this.message=R}}var loglevel={exports:{}};(function(F){(function(R,B){F.exports?F.exports=B():R.log=B()})(commonjsGlobal$2,function(){var R=function(){},B="undefined",D=typeof window!==B&&typeof window.navigator!==B&&/Trident\/|MSIE /.test(window.navigator.userAgent),G=["trace","debug","info","warn","error"];function U(se,re){var ae=se[re];if(typeof ae.bind=="function")return ae.bind(se);try{return Function.prototype.bind.call(ae,se)}catch{return function(){return Function.prototype.apply.apply(ae,[se,arguments])}}}function W(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function q(se){return se==="debug"&&(se="log"),typeof console===B?!1:se==="trace"&&D?W:console[se]!==void 0?U(console,se):console.log!==void 0?U(console,"log"):R}function Y(se,re){for(var ae=0;ae=0&&Se<=le.levels.SILENT){if(ce=Se,Ee!==!1&&pe(Se),Y.call(le,Se,se),typeof console===B&&Se=0;U--)if(D(F[U],R))return U;return-1}arrays$4.lastIndexOf=lastIndexOf;function contains(F,R,B){return indexOf$1(F,R,B)>=0}arrays$4.contains=contains;function remove(F,R,B){var D=indexOf$1(F,R,B);return D<0?!1:(F.splice(D,1),!0)}arrays$4.remove=remove;function frequency(F,R,B){for(var D=B||util$9.defaultEquals,G=F.length,U=0,W=0;W=F.length||B<0||B>=F.length)return!1;var D=F[R];return F[R]=F[B],F[B]=D,!0}arrays$4.swap=swap;function toString$1(F){return"["+F.toString()+"]"}arrays$4.toString=toString$1;function forEach(F,R){for(var B=0,D=F;BR.size())return!1;var B=!0;return this.forEach(function(D){return R.contains(D)?!0:(B=!1,!1)}),B},F.prototype.remove=function(R){return this.contains(R)?(this.dictionary.remove(R),!0):!1},F.prototype.forEach=function(R){this.dictionary.forEach(function(B,D){return R(D)})},F.prototype.toArray=function(){return this.dictionary.values()},F.prototype.isEmpty=function(){return this.dictionary.isEmpty()},F.prototype.size=function(){return this.dictionary.size()},F.prototype.clear=function(){this.dictionary.clear()},F.prototype.toString=function(){return arrays$3.toString(this.toArray())},F}();_Set.default=Set$1;Object.defineProperty(Bag$1,"__esModule",{value:!0});var util$6=util$a,Dictionary_1$4=Dictionary$2,Set_1$1=_Set,Bag=function(){function F(R){this.toStrF=R||util$6.defaultToString,this.dictionary=new Dictionary_1$4.default(this.toStrF),this.nElements=0}return F.prototype.add=function(R,B){if(B===void 0&&(B=1),util$6.isUndefined(R)||B<=0)return!1;if(this.contains(R))this.dictionary.getValue(R).copies+=B;else{var D={value:R,copies:B};this.dictionary.setValue(R,D)}return this.nElements+=B,!0},F.prototype.count=function(R){return this.contains(R)?this.dictionary.getValue(R).copies:0},F.prototype.contains=function(R){return this.dictionary.containsKey(R)},F.prototype.remove=function(R,B){if(B===void 0&&(B=1),util$6.isUndefined(R)||B<=0)return!1;if(this.contains(R)){var D=this.dictionary.getValue(R);return B>D.copies?this.nElements-=D.copies:this.nElements-=B,D.copies-=B,D.copies<=0&&this.dictionary.remove(R),!0}else return!1},F.prototype.toArray=function(){for(var R=[],B=this.dictionary.values(),D=0,G=B;Dthis.nElements||util$5.isUndefined(R))return!1;var D=this.createNode(R);if(this.nElements===0||this.lastNode===null)this.firstNode=D,this.lastNode=D;else if(B===this.nElements)this.lastNode.next=D,this.lastNode=D;else if(B===0)D.next=this.firstNode,this.firstNode=D;else{var G=this.nodeAtIndex(B-1);if(G===null)return!1;D.next=G.next,G.next=D}return this.nElements++,!0},F.prototype.first=function(){if(this.firstNode!==null)return this.firstNode.element},F.prototype.last=function(){if(this.lastNode!==null)return this.lastNode.element},F.prototype.elementAtIndex=function(R){var B=this.nodeAtIndex(R);if(B!==null)return B.element},F.prototype.indexOf=function(R,B){var D=B||util$5.defaultEquals;if(util$5.isUndefined(R))return-1;for(var G=this.firstNode,U=0;G!==null;){if(D(G.element,R))return U;U++,G=G.next}return-1},F.prototype.contains=function(R,B){return this.indexOf(R,B)>=0},F.prototype.remove=function(R,B){var D=B||util$5.defaultEquals;if(this.nElements<1||util$5.isUndefined(R))return!1;for(var G=null,U=this.firstNode;U!==null;){if(D(U.element,R))return G===null?(this.firstNode=U.next,U===this.lastNode&&(this.lastNode=null)):U===this.lastNode?(this.lastNode=G,G.next=U.next,U.next=null):(G.next=U.next,U.next=null),this.nElements--,!0;G=U,U=U.next}return!1},F.prototype.clear=function(){this.firstNode=null,this.lastNode=null,this.nElements=0},F.prototype.equals=function(R,B){var D=B||util$5.defaultEquals;return!(R instanceof F)||this.size()!==R.size()?!1:this.equalsAux(this.firstNode,R.firstNode,D)},F.prototype.equalsAux=function(R,B,D){for(;R!==null&&B!==null;){if(!D(R.element,B.element))return!1;R=R.next,B=B.next}return!0},F.prototype.removeElementAtIndex=function(R){if(!(R<0||R>=this.nElements||this.firstNode===null||this.lastNode===null)){var B;if(this.nElements===1)B=this.firstNode.element,this.firstNode=null,this.lastNode=null;else{var D=this.nodeAtIndex(R-1);D===null?(B=this.firstNode.element,this.firstNode=this.firstNode.next):D.next===this.lastNode&&(B=this.lastNode.element,this.lastNode=D),D!==null&&D.next!==null&&(B=D.next.element,D.next=D.next.next)}return this.nElements--,B}},F.prototype.forEach=function(R){for(var B=this.firstNode;B!==null&&R(B.element)!==!1;)B=B.next},F.prototype.reverse=function(){for(var R=null,B=this.firstNode,D=null;B!==null;)D=B.next,B.next=R,R=B,B=D;D=this.firstNode,this.firstNode=this.lastNode,this.lastNode=D},F.prototype.toArray=function(){for(var R=[],B=this.firstNode;B!==null;)R.push(B.element),B=B.next;return R},F.prototype.size=function(){return this.nElements},F.prototype.isEmpty=function(){return this.nElements<=0},F.prototype.toString=function(){return arrays$2.toString(this.toArray())},F.prototype.nodeAtIndex=function(R){if(R<0||R>=this.nElements)return null;if(R===this.nElements-1)return this.lastNode;for(var B=this.firstNode,D=0;D0&&(R=R.rightCh);return R},F.prototype.transplant=function(R,B){R.parent===null?this.root=B:R===R.parent.leftCh?R.parent.leftCh=B:R.parent.rightCh=B,B!==null&&(B.parent=R.parent)},F.prototype.removeNode=function(R){if(R.leftCh===null)this.transplant(R,R.rightCh);else if(R.rightCh===null)this.transplant(R,R.leftCh);else{var B=this.minimumAux(R.rightCh);B.parent!==R&&(this.transplant(B,B.rightCh),B.rightCh=R.rightCh,B.rightCh.parent=B),this.transplant(R,B),B.leftCh=R.leftCh,B.leftCh.parent=B}},F.prototype.inorderTraversalAux=function(R,B,D){R===null||D.stop||(this.inorderTraversalAux(R.leftCh,B,D),!D.stop&&(D.stop=B(R.element)===!1,!D.stop&&this.inorderTraversalAux(R.rightCh,B,D)))},F.prototype.levelTraversalAux=function(R,B){var D=new Queue_1$1.default;for(R!==null&&D.enqueue(R),R=D.dequeue()||null;R!=null;){if(B(R.element)===!1)return;R.leftCh!==null&&D.enqueue(R.leftCh),R.rightCh!==null&&D.enqueue(R.rightCh),R=D.dequeue()||null}},F.prototype.preorderTraversalAux=function(R,B,D){R===null||D.stop||(D.stop=B(R.element)===!1,!D.stop&&(this.preorderTraversalAux(R.leftCh,B,D),!D.stop&&this.preorderTraversalAux(R.rightCh,B,D)))},F.prototype.postorderTraversalAux=function(R,B,D){R===null||D.stop||(this.postorderTraversalAux(R.leftCh,B,D),!D.stop&&(this.postorderTraversalAux(R.rightCh,B,D),!D.stop&&(D.stop=B(R.element)===!1)))},F.prototype.minimumAux=function(R){for(;R!=null&&R.leftCh!==null;)R=R.leftCh;return R},F.prototype.maximumAux=function(R){for(;R!=null&&R.rightCh!==null;)R=R.rightCh;return R},F.prototype.heightAux=function(R){return R===null?-1:Math.max(this.heightAux(R.leftCh),this.heightAux(R.rightCh))+1},F.prototype.insertNode=function(R){for(var B=null,D=this.root;D!==null;){var G=this.compare(R.element,D.element);if(G===0)return null;G<0?(B=D,D=D.leftCh):(B=D,D=D.rightCh)}return R.parent=B,B===null?this.root=R:this.compare(R.element,B.element)<0?B.leftCh=R:B.rightCh=R,R},F.prototype.createNode=function(R){return{element:R,leftCh:null,rightCh:null,parent:null}},F}();BSTreeKV$1.default=BSTreeKV;var __extends$2=commonjsGlobal$2&&commonjsGlobal$2.__extends||function(){var F=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(R,B){R.__proto__=B}||function(R,B){for(var D in B)B.hasOwnProperty(D)&&(R[D]=B[D])};return function(R,B){F(R,B);function D(){this.constructor=R}R.prototype=B===null?Object.create(B):(D.prototype=B.prototype,new D)}}();Object.defineProperty(BSTree$1,"__esModule",{value:!0});var BSTreeKV_1$1=BSTreeKV$1,BSTree=function(F){__extends$2(R,F);function R(){return F!==null&&F.apply(this,arguments)||this}return R}(BSTreeKV_1$1.default);BSTree$1.default=BSTree;var Heap$1={};Object.defineProperty(Heap$1,"__esModule",{value:!0});var collections=util$a,arrays$1=arrays$4,Heap=function(){function F(R){this.data=[],this.compare=R||collections.defaultCompare}return F.prototype.leftChildIndex=function(R){return 2*R+1},F.prototype.rightChildIndex=function(R){return 2*R+2},F.prototype.parentIndex=function(R){return Math.floor((R-1)/2)},F.prototype.minIndex=function(R,B){return B>=this.data.length?R>=this.data.length?-1:R:this.compare(this.data[R],this.data[B])<=0?R:B},F.prototype.siftUp=function(R){for(var B=this.parentIndex(R);R>0&&this.compare(this.data[B],this.data[R])>0;)arrays$1.swap(this.data,B,R),R=B,B=this.parentIndex(R)},F.prototype.siftDown=function(R){for(var B=this.minIndex(this.leftChildIndex(R),this.rightChildIndex(R));B>=0&&this.compare(this.data[R],this.data[B])>0;)arrays$1.swap(this.data,B,R),R=B,B=this.minIndex(this.leftChildIndex(R),this.rightChildIndex(R))},F.prototype.peek=function(){if(this.data.length>0)return this.data[0]},F.prototype.add=function(R){return collections.isUndefined(R)?!1:(this.data.push(R),this.siftUp(this.data.length-1),!0)},F.prototype.removeRoot=function(){if(this.data.length>0){var R=this.data[0];return this.data[0]=this.data[this.data.length-1],this.data.splice(this.data.length-1,1),this.data.length>0&&this.siftDown(0),R}},F.prototype.contains=function(R){var B=collections.compareToEquals(this.compare);return arrays$1.contains(this.data,R,B)},F.prototype.size=function(){return this.data.length},F.prototype.isEmpty=function(){return this.data.length<=0},F.prototype.clear=function(){this.data.length=0},F.prototype.forEach=function(R){arrays$1.forEach(this.data,R)},F}();Heap$1.default=Heap;var LinkedDictionary$1={},__extends$1=commonjsGlobal$2&&commonjsGlobal$2.__extends||function(){var F=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(R,B){R.__proto__=B}||function(R,B){for(var D in B)B.hasOwnProperty(D)&&(R[D]=B[D])};return function(R,B){F(R,B);function D(){this.constructor=R}R.prototype=B===null?Object.create(B):(D.prototype=B.prototype,new D)}}();Object.defineProperty(LinkedDictionary$1,"__esModule",{value:!0});var Dictionary_1$3=Dictionary$2,util$3=util$a,LinkedDictionaryPair=function(){function F(R,B){this.key=R,this.value=B}return F.prototype.unlink=function(){this.prev.next=this.next,this.next.prev=this.prev},F}(),HeadOrTailLinkedDictionaryPair=function(){function F(){this.key=null,this.value=null}return F.prototype.unlink=function(){this.prev.next=this.next,this.next.prev=this.prev},F}();function isHeadOrTailLinkedDictionaryPair(F){return!F.next}var LinkedDictionary=function(F){__extends$1(R,F);function R(B){var D=F.call(this,B)||this;return D.head=new HeadOrTailLinkedDictionaryPair,D.tail=new HeadOrTailLinkedDictionaryPair,D.head.next=D.tail,D.tail.prev=D.head,D}return R.prototype.appendToTail=function(B){var D=this.tail.prev;D.next=B,B.prev=D,B.next=this.tail,this.tail.prev=B},R.prototype.getLinkedDictionaryPair=function(B){if(!util$3.isUndefined(B)){var D="$"+this.toStr(B),G=this.table[D];return G}},R.prototype.getValue=function(B){var D=this.getLinkedDictionaryPair(B);if(!util$3.isUndefined(D))return D.value},R.prototype.remove=function(B){var D=this.getLinkedDictionaryPair(B);if(!util$3.isUndefined(D))return F.prototype.remove.call(this,B),D.unlink(),D.value},R.prototype.clear=function(){F.prototype.clear.call(this),this.head.next=this.tail,this.tail.prev=this.head},R.prototype.replace=function(B,D){var G="$"+this.toStr(D.key);D.next=B.next,D.prev=B.prev,this.remove(B.key),D.prev.next=D,D.next.prev=D,this.table[G]=D,++this.nElements},R.prototype.setValue=function(B,D){if(!(util$3.isUndefined(B)||util$3.isUndefined(D))){var G=this.getLinkedDictionaryPair(B),U=new LinkedDictionaryPair(B,D),W="$"+this.toStr(B);if(util$3.isUndefined(G)){this.appendToTail(U),this.table[W]=U,++this.nElements;return}else return this.replace(G,U),G.value}},R.prototype.keys=function(){var B=[];return this.forEach(function(D,G){B.push(D)}),B},R.prototype.values=function(){var B=[];return this.forEach(function(D,G){B.push(G)}),B},R.prototype.forEach=function(B){for(var D=this.head.next;!isHeadOrTailLinkedDictionaryPair(D);){var G=B(D.key,D.value);if(G===!1)return;D=D.next}},R}(Dictionary_1$3.default);LinkedDictionary$1.default=LinkedDictionary;var MultiDictionary$1={};Object.defineProperty(MultiDictionary$1,"__esModule",{value:!0});var util$2=util$a,Dictionary_1$2=Dictionary$2,arrays=arrays$4,MultiDictionary=function(){function F(R,B,D){D===void 0&&(D=!1),this.dict=new Dictionary_1$2.default(R),this.equalsF=B||util$2.defaultEquals,this.allowDuplicate=D}return F.prototype.getValue=function(R){var B=this.dict.getValue(R);return util$2.isUndefined(B)?[]:arrays.copy(B)},F.prototype.setValue=function(R,B){if(util$2.isUndefined(R)||util$2.isUndefined(B))return!1;var D=this.dict.getValue(R);return util$2.isUndefined(D)?(this.dict.setValue(R,[B]),!0):!this.allowDuplicate&&arrays.contains(D,B,this.equalsF)?!1:(D.push(B),!0)},F.prototype.remove=function(R,B){if(util$2.isUndefined(B)){var D=this.dict.remove(R);return!util$2.isUndefined(D)}var G=this.dict.getValue(R);return!util$2.isUndefined(G)&&arrays.remove(G,B,this.equalsF)?(G.length===0&&this.dict.remove(R),!0):!1},F.prototype.keys=function(){return this.dict.keys()},F.prototype.values=function(){for(var R=this.dict.values(),B=[],D=0,G=R;D-1&&this.insertIdIntoRoot(B,D);for(var G in this.nodes)if(this.nodes.hasOwnProperty(G)){var U=this.findNodeId(G,R);U>-1&&this.insertIdIntoNode(G,B,U)}},F.prototype.insertIdAfterId=function(R,B){var D=this.findRootId(R);D>-1&&this.insertIdIntoRoot(B,D+1);for(var G in this.nodes)if(this.nodes.hasOwnProperty(G)){var U=this.findNodeId(G,R);U>-1&&this.insertIdIntoNode(G,B,U+1)}},F.prototype.insertIdIntoId=function(R,B){this.nodeInsertAtEnd(R,B),this.nodes[B]=[]},F.prototype.insertIdIntoRoot=function(R,B){if(B===void 0)this.rootInsertAtEnd(R);else if(B<0){var D=this.rootIds.length;this.rootIds.splice(B+D+1,0,R)}else this.rootIds.splice(B,0,R);this.nodes[R]=this.nodes[R]||[]},F.prototype.insertIdIntoNode=function(R,B,D){if(this.nodes[R]=this.nodes[R]||[],this.nodes[B]=this.nodes[B]||[],D===void 0)this.nodeInsertAtEnd(R,B);else if(D<0){var G=this.nodes[R].length;this.nodes[R].splice(D+G+1,0,B)}else this.nodes[R].splice(D,0,B)},F.prototype.moveId=function(R,B,D){var G=R,U=this.findRootId(G);this.nodes[B];for(var W in this.nodes)if(this.nodes.hasOwnProperty(W)){this.findNodeId(W,B);break}var q=B,Y=this.findRootId(q);this.nodes[B];for(var W in this.nodes)if(this.nodes.hasOwnProperty(W)){this.findNodeId(W,B);break}if(U>-1)if(Y>-1)switch(this.rootDelete(U),Y>U&&Y--,D){case Direction.BEFORE:this.insertIdIntoRoot(G,Y);break;case Direction.AFTER:this.insertIdIntoRoot(G,Y+1);break;case Direction.INSIDE_AT_START:this.nodeInsertAtStart(q,G);break;case Direction.INSIDE_AT_END:this.nodeInsertAtEnd(q,G);break}else{this.rootDelete(U);for(var W in this.nodes)if(this.nodes.hasOwnProperty(W)){var Q=this.findNodeId(W,q);if(Q>-1){switch(D){case Direction.BEFORE:this.insertIdIntoNode(W,G,Q);break;case Direction.AFTER:this.insertIdIntoNode(W,G,Q+1);break;case Direction.INSIDE_AT_START:this.nodeInsertAtStart(q,G);break;case Direction.INSIDE_AT_END:this.nodeInsertAtEnd(q,G);break}break}}}else if(Y>-1){for(var W in this.nodes)if(this.nodes.hasOwnProperty(W)){var Q=this.findNodeId(W,G);if(Q>-1){this.nodeDeleteAtIndex(W,Q);break}}switch(D){case Direction.BEFORE:this.insertIdIntoRoot(G,Y);break;case Direction.AFTER:this.insertIdIntoRoot(G,Y+1);break;case Direction.INSIDE_AT_START:this.nodeInsertAtStart(q,G);break;case Direction.INSIDE_AT_END:this.nodeInsertAtEnd(q,G);break}}else{for(var W in this.nodes)if(this.nodes.hasOwnProperty(W)){var Q=this.findNodeId(W,G);if(Q>-1){this.nodeDeleteAtIndex(W,Q);break}}for(var W in this.nodes)if(this.nodes.hasOwnProperty(W)){var Q=this.findNodeId(W,q);if(Q>-1){switch(D){case Direction.BEFORE:this.insertIdIntoNode(W,G,Q);break;case Direction.AFTER:this.insertIdIntoNode(W,G,Q+1);break;case Direction.INSIDE_AT_START:this.nodeInsertAtStart(q,G);break;case Direction.INSIDE_AT_END:this.nodeInsertAtEnd(q,G);break}break}}}},F.prototype.swapArrayElements=function(R,B,D){var G=R[B];return R[B]=R[D],R[D]=G,R},F.prototype.rootDeleteId=function(R){var B=this.findRootId(R);B>-1&&this.rootDelete(B)},F.prototype.nodeAndSubNodesDelete=function(R){for(var B=[],D=0;D(F[F.pppppp=0]="pppppp",F[F.ppppp=1]="ppppp",F[F.pppp=2]="pppp",F[F.ppp=3]="ppp",F[F.pp=4]="pp",F[F.p=5]="p",F[F.mp=6]="mp",F[F.mf=7]="mf",F[F.f=8]="f",F[F.ff=9]="ff",F[F.fff=10]="fff",F[F.ffff=11]="ffff",F[F.fffff=12]="fffff",F[F.ffffff=13]="ffffff",F[F.sf=14]="sf",F[F.sff=15]="sff",F[F.sfp=16]="sfp",F[F.sfpp=17]="sfpp",F[F.fp=18]="fp",F[F.rf=19]="rf",F[F.rfz=20]="rfz",F[F.sfz=21]="sfz",F[F.sffz=22]="sffz",F[F.fz=23]="fz",F[F.other=24]="other",F))(DynamicEnum||{});InstantaneousDynamicExpression.staticConstructor();class DynamicsContainer{constructor(R,B){R instanceof ContinuousDynamicExpression?this.continuousDynamicExpression=R:R instanceof InstantaneousDynamicExpression&&(this.instantaneousDynamicExpression=R),this.staffNumber=B}static Compare(R,B){return R.parMultiExpression().AbsoluteTimestamp.CompareTo(B.parMultiExpression().AbsoluteTimestamp)}parMultiExpression(){if(this.continuousDynamicExpression)return this.continuousDynamicExpression.StartMultiExpression;if(this.instantaneousDynamicExpression)return this.instantaneousDynamicExpression.ParentMultiExpression}}class AbstractNotationInstruction{constructor(R){this.printObject=!0,this.parent=R}get Parent(){return this.parent}set Parent(R){this.parent=R}get PrintObject(){return this.printObject}set PrintObject(R){this.printObject=R}}class RhythmInstruction extends AbstractNotationInstruction{constructor(R,B){super(void 0),this.rhythm=R,this.numerator=R.Numerator,this.denominator=R.Denominator,this.symbolEnum=B}get Rhythm(){return this.rhythm}set Rhythm(R){this.rhythm=R}get SymbolEnum(){return this.symbolEnum}set SymbolEnum(R){this.symbolEnum=R}clone(){return new RhythmInstruction(this.rhythm.clone(),this.symbolEnum)}OperatorEquals(R){const B=this;return B===R?!0:!B||!R?!1:B.numerator===R.numerator&&B.denominator===R.denominator}OperatorNotEqual(R){return this!==R}ToString(){return"Rhythm: "+this.rhythm.toString()}}var RhythmSymbolEnum=(F=>(F[F.NONE=0]="NONE",F[F.COMMON=1]="COMMON",F[F.CUT=2]="CUT",F))(RhythmSymbolEnum||{});class MusicPartManagerIterator{constructor(R,B,D){this.currentMeasureIndex=0,this.currentPartIndex=0,this.currentVoiceEntryIndex=-1,this.currentDynamicEntryIndex=0,this.currentTempoEntryIndex=0,this.currentDynamicChangingExpressions=[],this.repetitionIterationCountDictKeys=[],this.repetitionIterationCountDictValues=[],this.currentRepetition=void 0,this.endReached=!1,this.frontReached=!1,this.currentTimeStamp=new Fraction$1(0,1),this.currentEnrolledMeasureTimestamp=new Fraction$1(0,1),this.currentRelativeInMeasureTimestamp=new Fraction$1(0,1),this.currentVerticalContainerInMeasureTimestamp=new Fraction$1(0,1),this.jumpResponsibleRepetition=void 0,this.activeDynamicExpressions=[];try{this.frontReached=!0,this.musicSheet=R,this.currentBpm=R.userStartTempoInBPM,this.currentVoiceEntries=void 0,this.frontReached=!1;for(const G of this.musicSheet.Repetitions)this.setRepetitionIterationCount(G,1);for(let G=0;G=this.JumpResponsibleRepetition.StartIndex&&G.EndIndex<=this.JumpResponsibleRepetition.EndIndex&&this.resetRepetitionIterationCount(G)}}handleRepetitionsAtMeasureEnd(){for(let R=0,B=this.currentMeasure.LastRepetitionInstructions.length;R-1&&this.getRepetitionIterationCount(G)=this.JumpResponsibleRepetition.StartIndex&&G.EndIndex<=this.JumpResponsibleRepetition.EndIndex&&this.resetRepetitionIterationCount(G),this.repetitionIterationCountDictKeys.contains(G))){const U=G.getForwardJumpTargetForIteration(this.getRepetitionIterationCount(G));if(U>=0){this.currentMeasureIndex=U,this.currentMeasure=this.musicSheet.SourceMeasures[this.currentMeasureIndex],this.currentVoiceEntryIndex=-1,this.jumpResponsibleRepetition=G,this.forwardJumpOccurred=!0;return}U===-2&&(this.endReached=!0)}}}this.currentMeasureIndex++,this.JumpResponsibleRepetition!==void 0&&this.currentMeasureIndex>this.JumpResponsibleRepetition.EndIndex&&(this.jumpResponsibleRepetition=void 0)}doBackJump(R){this.currentMeasureIndex=R.getBackwardJumpTarget(),this.currentMeasure=this.musicSheet.SourceMeasures[this.currentMeasureIndex],this.currentVoiceEntryIndex=-1,this.incrementRepetitionIterationCount(R),this.jumpResponsibleRepetition=R,this.backJumpOccurred=!0}activateCurrentRhythmInstructions(){if(this.currentMeasure!==void 0&&this.currentMeasure.FirstInstructionsStaffEntries.length>0&&this.currentMeasure.FirstInstructionsStaffEntries[0]!==void 0){const R=this.currentMeasure.FirstInstructionsStaffEntries[0].Instructions;for(let B=0,D=R.length;B0&&(this.currentDynamicEntryIndex>=R.length||R[this.currentDynamicEntryIndex].parMultiExpression().AbsoluteTimestamp.gte(this.CurrentSourceTimestamp));)this.currentDynamicEntryIndex--;for(;this.currentDynamicEntryIndex0&&(this.currentTempoEntryIndex>=B.length||B[this.currentTempoEntryIndex].AbsoluteTimestamp.gte(this.CurrentSourceTimestamp));)this.currentTempoEntryIndex--;for(;this.currentTempoEntryIndex=0&&this.currentVoiceEntryIndex=0&&this.currentMeasureIndex0){if(!R)return!0;for(let D=0,G=B.length;DB&&(this.openSheetMusicDisplay.Sheet.SelectionStart=this.openSheetMusicDisplay.Sheet.SourceMeasures[B].AbsoluteTimestamp),this.openSheetMusicDisplay.Sheet&&this.openSheetMusicDisplay.Sheet.SourceMeasures.length>D){const U=this.openSheetMusicDisplay.Sheet.SourceMeasures[D];this.openSheetMusicDisplay.Sheet.SelectionEnd=Fraction$1.plus(U.AbsoluteTimestamp,U.Duration)}this.iterator=this.manager.getIterator()}getStaffEntryFromVoiceEntry(R){const B=R.ParentSourceStaffEntry.VerticalContainerParent.ParentMeasure.measureListIndex,D=R.ParentSourceStaffEntry.ParentStaff.idInMusicSheet;return this.graphic.findGraphicalStaffEntryFromMeasureList(D,B,R.ParentSourceStaffEntry)}updateWithTimestamp(R){const B=this.manager.absoluteEnrolledToSheetTimestamp(R),D=this.graphic.calculateXPositionFromTimestamp(B),G=D[0],U=D[1];this.updateCurrentPageFromSystem(U);const W=D[2];if(!W)return;const q=Math.max(W.parentMeasure.MeasureNumber,1);let Y;for(const ie of this.graphic.MeasureList[q-1])if(ie){Y=ie;break}const Q=this.graphic.calculateCursorPoints(G,U),Z=Q[0].y,K=Q[1].y-Z;if(!!Y){if(this.updateWidthAndStyle(Y.PositionAndShape,G,Z,K),this.openSheetMusicDisplay.FollowCursor){const ie=this.cursorElement.getBoundingClientRect().top;this.cursorElement.scrollIntoView({behavior:ie<1e3?"smooth":"auto",block:"center"})}this.cursorElement.style.display=""}}update(){if(this.hidden||this.hidden===void 0||this.hidden===null)return;this.updateCurrentPage();const R=this.Iterator,B=R.CurrentVisibleVoiceEntries();if(R.EndReached||!R.CurrentVoiceEntries||B.length===0)return;let D=0,G=0,U=0,W;if(R.CurrentMeasure.isReducedToMultiRest){const Z=this.graphic.findGraphicalMeasure(R.CurrentMeasureIndex,0),K=Z.parentSourceMeasure.multipleRestMeasures,te=R.CurrentMeasure.multipleRestMeasureNumber/(K+1),ne=Z.PositionAndShape.Size.width-Z.beginInstructionsWidth;D=Z.PositionAndShape.AbsolutePosition.x+Z.beginInstructionsWidth+te*ne,W=Z.ParentMusicSystem}else{const K=B.map(ie=>this.getStaffEntryFromVoiceEntry(ie)).sort((ie,te)=>{var ne,se,re,ae;return((se=(ne=ie==null?void 0:ie.PositionAndShape)==null?void 0:ne.AbsolutePosition)==null?void 0:se.x)<=((ae=(re=te==null?void 0:te.PositionAndShape)==null?void 0:re.AbsolutePosition)==null?void 0:ae.x)?-1:1})[0];K&&(D=K.PositionAndShape.AbsolutePosition.x,W=K.parentMeasure.ParentMusicSystem)}if(!W)return;G=W.PositionAndShape.AbsolutePosition.y+W.StaffLines[0].PositionAndShape.RelativePosition.y;const q=W.StaffLines[W.StaffLines.length-1];U=W.PositionAndShape.AbsolutePosition.y+q.PositionAndShape.RelativePosition.y+q.StaffHeight-G;const Q=this.graphic.findGraphicalMeasure(R.CurrentMeasureIndex,0).PositionAndShape;if(this.updateWidthAndStyle(Q,D,G,U),this.openSheetMusicDisplay.FollowCursor&&this.cursorOptions.follow)if(this.openSheetMusicDisplay.EngravingRules.RenderSingleHorizontalStaffline)this.cursorElement.scrollIntoView({behavior:"smooth",inline:"center"});else{const Z=this.cursorElement.getBoundingClientRect().top;this.cursorElement.scrollIntoView({behavior:Z<1e3?"smooth":"auto",block:"center"})}this.cursorElement.style.display=""}updateWidthAndStyle(R,B,D,G){const U=this.cursorElement;let W=0,q=G;switch(this.cursorOptions.type){case 1:U.style.top=D*10*this.openSheetMusicDisplay.zoom+"px",U.style.left=(B-1.5)*10*this.openSheetMusicDisplay.zoom+"px",q=G*10*this.openSheetMusicDisplay.zoom,U.height=q,U.style.height=q+"px",W=5*this.openSheetMusicDisplay.zoom;break;case 2:U.style.top=(D-2.5)*10*this.openSheetMusicDisplay.zoom+"px",U.style.left=B*10*this.openSheetMusicDisplay.zoom+"px",q=1.5*10*this.openSheetMusicDisplay.zoom,U.height=q,U.style.height=q+"px",W=5*this.openSheetMusicDisplay.zoom;break;case 3:U.style.top=R.AbsolutePosition.y*10*this.openSheetMusicDisplay.zoom+"px",U.style.left=R.AbsolutePosition.x*10*this.openSheetMusicDisplay.zoom+"px",q=G*10*this.openSheetMusicDisplay.zoom,U.height=q,U.style.height=q+"px",W=R.Size.width*10*this.openSheetMusicDisplay.zoom;break;case 4:U.style.top=R.AbsolutePosition.y*10*this.openSheetMusicDisplay.zoom+"px",U.style.left=R.AbsolutePosition.x*10*this.openSheetMusicDisplay.zoom+"px",q=G*10*this.openSheetMusicDisplay.zoom,U.height=q,U.style.height=q+"px",W=(B-R.AbsolutePosition.x)*10*this.openSheetMusicDisplay.zoom;break;default:U.style.top=D*10*this.openSheetMusicDisplay.zoom+"px",U.style.left=(B-1.5)*10*this.openSheetMusicDisplay.zoom+"px",q=G*10*this.openSheetMusicDisplay.zoom,U.height=q,U.style.height=q+"px",W=3*10*this.openSheetMusicDisplay.zoom;break}W!==U.width&&(U.width=W,this.updateStyle(W,this.cursorOptions))}hide(){this.cursorElement.style.display="none",this.hidden=!0}next(){this.Iterator.moveToNextVisibleVoiceEntry(!1),this.update()}reset(){this.resetIterator();const R=this.manager.getIterator(this.graphic.ParentMusicSheet.SelectionStart);this.updateWithTimestamp(R.CurrentEnrolledTimestamp)}updateStyle(R,B=void 0){B!==void 0&&(this.cursorOptions=B);const D=document.createElement("canvas");D.width=this.cursorElement.width,D.height=1;const G=D.getContext("2d");G.globalAlpha=this.cursorOptions.alpha;const U=G.createLinearGradient(0,0,this.cursorElement.width,0);switch(this.cursorOptions.type){case 1:case 2:case 3:case 4:U.addColorStop(1,this.cursorOptions.color);break;default:U.addColorStop(0,"white"),U.addColorStop(.2,this.cursorOptions.color),U.addColorStop(.8,this.cursorOptions.color),U.addColorStop(1,"white");break}G.fillStyle=U,G.fillRect(0,0,R,1),this.cursorElement.src=D.toDataURL("image/png")}get Iterator(){return this.iterator}get Hidden(){return this.hidden}VoicesUnderCursor(R){return this.Iterator.CurrentVisibleVoiceEntries(R)}NotesUnderCursor(R){const B=this.VoicesUnderCursor(R),D=[];return B.forEach(G=>{D.push.apply(D,G.Notes)}),D}GNotesUnderCursor(R){const B=this.VoicesUnderCursor(R),D=[];return B.forEach(G=>{D.push(...G.Notes.map(U=>this.rules.GNote(U)))}),D}updateCurrentPage(){const R=this.Iterator.currentTimeStamp;for(const B of this.graphic.MusicPages)if(B.MusicSystems.last().GetSystemsLastTimeStamp().gt(R)){const G=B.PageNumber;return G!==this.currentPageNumber&&(this.container.removeChild(this.cursorElement),this.container=document.getElementById(this.rules.DYContainerId+G),this.container.appendChild(this.cursorElement)),this.currentPageNumber=G}return 1}updateCurrentPageFromSystem(R){if(R!=null&&R.Parent){const B=R.Parent.PageNumber;return B!==this.currentPageNumber&&(this.container.removeChild(this.cursorElement),this.container=document.getElementById(this.rules.DYContainerId+B),this.container.appendChild(this.cursorElement)),this.currentPageNumber=B}return 1}}class PointF2D{constructor(R=0,B=0){this.x=0,this.y=0,this.x=R,this.y=B}static get Empty(){return new PointF2D}static pointsAreEqual(R,B){return R.x===B.x&&R.y===B.y}ToString(){return"["+this.x+", "+this.y+"]"}}class SizeF2D{constructor(R=0,B=0){this.width=R,this.height=B}}class RectangleF2D{constructor(R,B,D,G){this.x=0,this.y=0,this.width=0,this.height=0,this.x=R,this.y=B,this.width=D,this.height=G}static createFromLocationAndSize(R,B){return new RectangleF2D(R.x,R.y,B.width,B.height)}get Location(){return new PointF2D(this.x,this.y)}get Size(){return new SizeF2D(this.width,this.height)}}class AClassHierarchyTrackable{isInstanceOfClass(R){let B=this.constructor.prototype;for(;B;){if(R===B.constructor.name)return!0;B=B.__proto__}return!1}}class GraphicalObject extends AClassHierarchyTrackable{get PositionAndShape(){return this.boundingBox}set PositionAndShape(R){this.boundingBox=R}}class StaffLineActivitySymbol extends GraphicalObject{constructor(R){super(),this.parentStaffLine=R;const B=R.PositionAndShape;this.boundingBox=new BoundingBox$1(this,B),this.boundingBox.BorderRight=6,this.boundingBox.BorderBottom=4.5,this.boundingBox.BorderLeft=-1.5,this.boundingBox.BorderTop=-1.5}}class Clickable extends GraphicalObject{}class BoundingBox$1{constructor(R=void 0,B=void 0,D=!1){this.isSymbol=!1,this.relativePositionHasBeenSet=!1,this.xBordersHaveBeenSet=!1,this.yBordersHaveBeenSet=!1,this.absolutePosition=new PointF2D,this.relativePosition=new PointF2D,this.size=new SizeF2D,this.marginSize=new SizeF2D,this.upperLeftCorner=new PointF2D,this.upperLeftMarginCorner=new PointF2D,this.borderLeft=0,this.borderRight=0,this.borderTop=0,this.borderBottom=0,this.borderMarginLeft=0,this.borderMarginRight=0,this.borderMarginTop=0,this.borderMarginBottom=0,this.childElements=[],this.parent=B,this.dataObject=R,this.isSymbol=D,this.xBordersHaveBeenSet=!1,this.yBordersHaveBeenSet=!1,B&&(this.Parent=B)}get RelativePositionHasBeenSet(){return this.relativePositionHasBeenSet}get XBordersHaveBeenSet(){return this.xBordersHaveBeenSet}set XBordersHaveBeenSet(R){this.xBordersHaveBeenSet=R}get YBordersHaveBeenSet(){return this.yBordersHaveBeenSet}set YBordersHaveBeenSet(R){this.yBordersHaveBeenSet=R}get AbsolutePosition(){return this.absolutePosition}set AbsolutePosition(R){this.absolutePosition=R}get RelativePosition(){return this.relativePosition}set RelativePosition(R){this.relativePosition=R,this.relativePositionHasBeenSet=!0}get Size(){return this.size}set Size(R){this.size=R}get MarginSize(){return this.marginSize}get UpperLeftCorner(){return this.upperLeftCorner}get UpperLeftMarginCorner(){return this.upperLeftMarginCorner}get BorderLeft(){return this.borderLeft}set BorderLeft(R){this.borderLeft=R,this.calculateRectangle()}get BorderRight(){return this.borderRight}set BorderRight(R){this.borderRight=R,this.calculateRectangle()}get BorderTop(){return this.borderTop}set BorderTop(R){this.borderTop=R,this.calculateRectangle()}get BorderBottom(){return this.borderBottom}set BorderBottom(R){this.borderBottom=R,this.calculateRectangle()}get BorderMarginLeft(){return this.borderMarginLeft>this.borderLeft?this.borderLeft:this.borderMarginLeft}set BorderMarginLeft(R){this.borderMarginLeft=R,this.calculateMarginRectangle()}get BorderMarginRight(){return this.borderMarginRightthis.borderTop?this.borderTop:this.borderMarginTop}set BorderMarginTop(R){this.borderMarginTop=R,this.calculateMarginRectangle()}get BorderMarginBottom(){return this.borderMarginBottom-1&&this.parent.ChildElements.splice(W,1)}this.parent=R,((D=(B=this.parent)==null?void 0:B.ChildElements)==null?void 0:D.indexOf(this))>-1?log$2.error("BoundingBox of "+this.dataObject.constructor.name+" already in children list of "+this.parent.dataObject.constructor.name+"'s BoundingBox"):(U=(G=this.parent)==null?void 0:G.ChildElements)==null||U.push(this)}get DataObject(){return this.dataObject}get Center(){return new PointF2D(this.RelativePosition.x+(this.BorderMarginRight+this.BorderMarginLeft),this.RelativePosition.y+(this.BorderMarginBottom+this.BorderMarginTop))}setAbsolutePositionFromParent(){this.parent?(this.absolutePosition.x=this.parent.AbsolutePosition.x+this.relativePosition.x,this.absolutePosition.y=this.parent.AbsolutePosition.y+this.relativePosition.y):this.absolutePosition=this.relativePosition}calculateAbsolutePosition(){this.absolutePosition.x=this.relativePosition.x,this.absolutePosition.y=this.relativePosition.y;let R=this.parent;for(;R;)this.absolutePosition.x+=R.relativePosition.x,this.absolutePosition.y+=R.relativePosition.y,R=R.parent}calculateAbsolutePositionsRecursiveWithoutTopelement(){this.absolutePosition.x=0,this.absolutePosition.y=0;for(let R=0,B=this.ChildElements.length;R.001;break;case ColDirEnum.Up:case ColDirEnum.Down:G=this.relativePosition.y,R.calculateMarginPositionAlongDirection(this,B),U=Math.abs(G-this.relativePosition.y)>.001;break;default:throw new ArgumentOutOfRangeException("direction")}while(U)}collisionDetection(R){const B=Math.min(this.AbsolutePosition.x+this.borderRight,R.absolutePosition.x+R.borderRight)-Math.max(this.AbsolutePosition.x+this.borderLeft,R.absolutePosition.x+R.borderLeft),D=Math.min(this.AbsolutePosition.y+this.borderBottom,R.absolutePosition.y+R.borderBottom)-Math.max(this.AbsolutePosition.y+this.borderTop,R.absolutePosition.y+R.borderTop);return B>0&&D>0}liesInsideBorders(R){const B=this.AbsolutePosition.x+this.borderLeft<=R.absolutePosition.x+R.borderLeft&&R.absolutePosition.x+R.borderLeft<=this.AbsolutePosition.x+this.borderRight,D=this.AbsolutePosition.x+this.borderLeft<=R.absolutePosition.x+R.borderRight&&R.absolutePosition.x+R.borderRight<=this.AbsolutePosition.x+this.borderRight;if(B&&D){const G=this.AbsolutePosition.y+this.borderTop<=R.absolutePosition.y+R.borderTop&&R.absolutePosition.y+R.borderTop<=this.AbsolutePosition.y+this.borderBottom,U=this.AbsolutePosition.y+this.borderTop<=R.absolutePosition.y+R.borderBottom&&R.absolutePosition.y+R.borderBottom<=this.AbsolutePosition.y+this.borderBottom;if(G&&U)return!0}return!1}pointLiesInsideBorders(R){return this.AbsolutePosition.x+this.borderLeft<=R.x&&R.x<=this.AbsolutePosition.x+this.borderRight&&this.AbsolutePosition.y+this.borderTop<=R.y&&R.y<=this.AbsolutePosition.y+this.borderBottom}marginCollisionDetection(R){const B=Math.min(this.AbsolutePosition.x+this.borderMarginRight,R.absolutePosition.x+R.borderMarginRight)-Math.max(this.AbsolutePosition.x+this.borderMarginLeft,R.absolutePosition.x+R.borderMarginLeft),D=Math.min(this.AbsolutePosition.y+this.borderMarginBottom,R.absolutePosition.y+R.borderMarginBottom)-Math.max(this.AbsolutePosition.y+this.borderMarginTop,R.absolutePosition.y+R.borderMarginTop);return B>0&&D>0}liesInsideMargins(R){const B=this.AbsolutePosition.x+this.borderMarginLeft<=R.absolutePosition.x+R.borderMarginLeft&&R.absolutePosition.x+R.borderMarginLeft<=this.AbsolutePosition.x+this.borderMarginRight,D=this.AbsolutePosition.x+this.borderMarginLeft<=R.absolutePosition.x+R.borderMarginRight&&R.absolutePosition.x+R.borderMarginRight<=this.AbsolutePosition.x+this.borderMarginRight;if(B&&D){const G=this.AbsolutePosition.y+this.borderMarginTop<=R.absolutePosition.y+R.borderMarginTop&&R.absolutePosition.y+R.borderMarginTop<=this.AbsolutePosition.y+this.borderMarginBottom,U=this.AbsolutePosition.y+this.borderMarginTop<=R.absolutePosition.y+R.borderMarginBottom&&R.absolutePosition.y+R.borderMarginBottom<=this.AbsolutePosition.y+this.borderMarginBottom;if(G&&U)return!0}return!1}pointLiesInsideMargins(R){return this.AbsolutePosition.x+this.borderMarginLeft<=R.x&&R.x<=this.AbsolutePosition.x+this.borderMarginRight&&this.AbsolutePosition.y+this.borderMarginTop<=R.y&&R.y<=this.AbsolutePosition.y+this.borderMarginBottom}computeNonOverlappingPosition(R,B,D){this.RelativePosition=new PointF2D(D.x,D.y),this.setAbsolutePositionFromParent();let G=0,U=!1;do switch(B){case ColDirEnum.Left:case ColDirEnum.Right:G=this.relativePosition.x,R.calculatePositionAlongDirection(this,B),U=Math.abs(G-this.relativePosition.x)>1e-4;break;case ColDirEnum.Up:case ColDirEnum.Down:G=this.relativePosition.y,R.calculatePositionAlongDirection(this,B),U=Math.abs(G-this.relativePosition.y)>1e-4;break;default:throw new ArgumentOutOfRangeException("direction")}while(U)}getClickedObjectOfType(R){const B=this.dataObject;if(this.pointLiesInsideBorders(R)&&B)return B;for(let D=0,G=this.childElements.length;D(F[F.Left=0]="Left",F[F.Right=1]="Right",F[F.Up=2]="Up",F[F.Down=3]="Down",F))(ColDirEnum||{});class GraphicalMusicPage extends GraphicalObject{constructor(R){super(),this.musicSystems=[],this.labels=[],this.parent=R,this.boundingBox=new BoundingBox$1(this,void 0)}get MusicSystems(){return this.musicSystems}set MusicSystems(R){this.musicSystems=R}get Labels(){return this.labels}set Labels(R){this.labels=R}get Parent(){return this.parent}set Parent(R){this.parent=R}get PageNumber(){return this.pageNumber}set PageNumber(R){this.pageNumber=R}setMusicPageAbsolutePosition(R,B){return new PointF2D(0,0)}}var PagePlacementEnum=(F=>(F[F.Down=0]="Down",F[F.Right=1]="Right",F[F.RightDown=2]="RightDown",F))(PagePlacementEnum||{}),TextAlignmentEnum=(F=>(F[F.LeftTop=0]="LeftTop",F[F.LeftCenter=1]="LeftCenter",F[F.LeftBottom=2]="LeftBottom",F[F.CenterTop=3]="CenterTop",F[F.CenterCenter=4]="CenterCenter",F[F.CenterBottom=5]="CenterBottom",F[F.RightTop=6]="RightTop",F[F.RightCenter=7]="RightCenter",F[F.RightBottom=8]="RightBottom",F))(TextAlignmentEnum||{});class TextAlignment{static IsLeft(R){return R===0||R===1||R===2}static IsCenterAligned(R){return R===3||R===4||R===5}static IsRight(R){return R===6||R===7||R===8}}var FontStyles=(F=>(F[F.Regular=0]="Regular",F[F.Bold=1]="Bold",F[F.Italic=2]="Italic",F[F.BoldItalic=3]="BoldItalic",F[F.Underlined=4]="Underlined",F))(FontStyles||{}),Fonts=(F=>(F[F.TimesNewRoman=0]="TimesNewRoman",F[F.Kokila=1]="Kokila",F[F.Gonville=2]="Gonville",F))(Fonts||{});const FontStringNames={0:"Times New Roman",1:"Kokila",2:"Gonville"};var TieTypes=(F=>(F.SIMPLE="",F.HAMMERON="H",F.PULLOFF="P",F.SLIDE="S",F.TAPPING="T",F))(TieTypes||{});const Additional={"-2":[4,12,23],"-7":[13],"-9":[6]};var NoteEnum=(F=>(F[F.C=0]="C",F[F.D=2]="D",F[F.E=4]="E",F[F.F=5]="F",F[F.G=7]="G",F[F.A=9]="A",F[F.B=11]="B",F))(NoteEnum||{}),AccidentalEnum=(F=>(F[F.SHARP=0]="SHARP",F[F.FLAT=1]="FLAT",F[F.NONE=2]="NONE",F[F.NATURAL=3]="NATURAL",F[F.DOUBLESHARP=4]="DOUBLESHARP",F[F.DOUBLEFLAT=5]="DOUBLEFLAT",F[F.TRIPLESHARP=6]="TRIPLESHARP",F[F.TRIPLEFLAT=7]="TRIPLEFLAT",F[F.QUARTERTONESHARP=8]="QUARTERTONESHARP",F[F.QUARTERTONEFLAT=9]="QUARTERTONEFLAT",F[F.SLASHFLAT=10]="SLASHFLAT",F[F.THREEQUARTERSSHARP=11]="THREEQUARTERSSHARP",F[F.THREEQUARTERSFLAT=12]="THREEQUARTERSFLAT",F[F.SLASHQUARTERSHARP=13]="SLASHQUARTERSHARP",F[F.SLASHSHARP=14]="SLASHSHARP",F[F.DOUBLESLASHFLAT=15]="DOUBLESLASHFLAT",F[F.SORI=16]="SORI",F[F.KORON=17]="KORON",F))(AccidentalEnum||{});const _Pitch=class{constructor(F,R,B,D=void 0){this.accidental=2,this.fundamentalNote=F,this.octave=R,this.accidental=B,this.accidentalXml=D,this.halfTone=F+(R+_Pitch.octXmlDiff)*12+_Pitch.HalfTonesFromAccidental(B),this.frequency=_Pitch.calcFrequency(this),this.nextFrequency=_Pitch.calcFrequency(this,"next"),this.prevFrequency=_Pitch.calcFrequency(this,"prev")}static getNoteEnumString(F){switch(F){case 0:return"C";case 2:return"D";case 4:return"E";case 5:return"F";case 7:return"G";case 9:return"A";case 11:return"B";default:return""}}static lineShiftFromNoteEnum(F,R){if(R===0)return[F,0];const B=_Pitch.pitchEnumValues,D=B.indexOf(F);let G=0,U=(D+R)%B.length;return D+R>B.length-1&&(G=1),U<0&&(U=B.length+U,G=-1),[B[U],G]}static CalculateTransposedHalfTone(F,R){const B=F.fundamentalNote+F.AccidentalHalfTones+R;return _Pitch.WrapAroundCheck(B,12)}static WrapAroundCheck(F,R){let B=0;for(;F<0;)F+=R,B--;for(;F>=R;)F-=R,B++;return{overflow:B,halftone:F}}static calcFrequency(F,R){let B=0,D;if(F instanceof _Pitch){const q=F;B=q.octave-1,D=q.fundamentalNote-9+q.AccidentalHalfTones}else typeof F=="number"&&(D=F-57);const G=window.DYSubjectId;let U=0;window.DYEnvironment==="COLEXIU"&&(Additional[12]=[120]);for(const q in Additional)if(Object.prototype.hasOwnProperty.call(Additional,q)&&Additional[q].includes(G)){U=parseFloat(q);break}let W=D+U;return R==="next"&&W++,R==="prev"&&W--,442*Math.pow(2,B)*Math.pow(2,W/12)}static calcFractionalKey(F){return Math.log(F/440)/Math.LN10*_Pitch.halftoneFactor+57}static fromFrequency(F){const R=_Pitch.calcFractionalKey(F)+.5,B=Math.floor(R/12)-_Pitch.octXmlDiff,D=Math.floor(R)%12;let G=D,U=2;return this.pitchEnumValues.indexOf(G)===-1&&(G=D-1,U=0),new _Pitch(G,B,U)}static fromHalftone(F){const R=Math.floor(F/12)-_Pitch.octXmlDiff,B=F%12;let D=B,G=2;return this.pitchEnumValues.indexOf(D)===-1&&(D=B-1,G=0),new _Pitch(D,R,G)}static ceiling(F){F=F%12;let R=F;return this.pitchEnumValues.indexOf(R)===-1&&(R=F+1),R}static floor(F){F=F%12;let R=F;return this.pitchEnumValues.indexOf(R)===-1&&(R=F-1),R}static HalfTonesFromAccidental(F){switch(F){case 2:return 0;case 0:return 1;case 1:return-1;case 3:return 0;case 4:return 2;case 5:return-2;case 6:return 3;case 7:return-3;case 8:return .5;case 9:return-.5;case 10:return-.51;case 11:return 1.5;case 12:return-1.5;case 13:return .0013;case 14:return .0014;case 15:return-.0015;case 16:return .0016;case 17:return .0017;default:throw new Error("Unhandled AccidentalEnum value")}}static AccidentalFromHalfTones(F){switch(F){case 0:return 2;case 1:return 0;case-1:return 1;case 2:return 4;case-2:return 5;case 3:return 6;case-3:return 7;case .5:return 8;case-.5:return 9;case 1.5:return 11;case-1.5:return 12;default:return F>0&&F<1?8:F<0&&F>-1?9:8}}static accidentalVexflow(F){let R;switch(F){case 3:R="n";break;case 1:R="b";break;case 0:R="#";break;case 4:R="##";break;case 6:R="###";break;case 5:R="bb";break;case 7:R="bbs";break;case 8:R="+";break;case 9:R="d";break;case 10:R="bs";break;case 11:R="++";break;case 12:R="db";break;case 13:R="+-";break;case 14:R="++-";break;case 15:R="bss";break;case 16:R="o";break;case 17:R="k";break}return R}get AccidentalHalfTones(){return _Pitch.HalfTonesFromAccidental(this.accidental)}get Octave(){return this.octave}get FundamentalNote(){return this.fundamentalNote}get Accidental(){return this.accidental}get AccidentalXml(){return this.accidentalXml}get Frequency(){return this.frequency}static get OctaveXmlDifference(){return _Pitch.octXmlDiff}getHalfTone(){return this.halfTone}getTransposedPitch(F){if(F>12)throw new Error("rewrite this method to handle bigger octave changes or don't use is with bigger octave changes!");return F>0?this.getHigherPitchByTransposeFactor(F):F<0?this.getLowerPitchByTransposeFactor(-F):this}DoEnharmonicChange(){switch(this.accidental){case 1:case 5:this.fundamentalNote=this.getPreviousFundamentalNote(this.fundamentalNote),this.accidental=_Pitch.AccidentalFromHalfTones(this.halfTone-(this.fundamentalNote+(this.octave+_Pitch.octXmlDiff)*12));break;case 0:case 4:this.fundamentalNote=this.getNextFundamentalNote(this.fundamentalNote),this.accidental=_Pitch.AccidentalFromHalfTones(this.halfTone-(this.fundamentalNote+(this.octave+_Pitch.octXmlDiff)*12));break;default:return}}ToString(){let F=_Pitch.accidentalVexflow(this.accidental);return F||(F=""),"Key: "+_Pitch.getNoteEnumString(this.fundamentalNote)+F+", Note: "+this.fundamentalNote+", octave: "+this.octave.toString()}OperatorEquals(F){const R=this;return!R||!F?!1:R.FundamentalNote===F.FundamentalNote&&R.Octave===F.Octave&&R.Accidental===F.Accidental}OperatorNotEqual(F){return this!==F}OperatorFundamentalGreaterThan(F){const R=this;return R.Octave===F.Octave?R.FundamentalNote>F.FundamentalNote:R.Octave>F.Octave}OperatorFundamentalLessThan(F){const R=this;return R.Octave===F.Octave?R.FundamentalNote_Pitch.pitchEnumValues.length-1?(D=_Pitch.pitchEnumValues[R+F-_Pitch.pitchEnumValues.length],B++):D=_Pitch.pitchEnumValues[R+F],new _Pitch(D,B,2)}getLowerPitchByTransposeFactor(F){const R=_Pitch.pitchEnumValues.indexOf(this.fundamentalNote);let B=this.octave,D;return R-F<0?(D=_Pitch.pitchEnumValues[_Pitch.pitchEnumValues.length+R-F],B--):D=_Pitch.pitchEnumValues[R-F],new _Pitch(D,B,2)}getNextFundamentalNote(F){let R=_Pitch.pitchEnumValues.indexOf(F);return R=(R+1)%_Pitch.pitchEnumValues.length,_Pitch.pitchEnumValues[R]}getPreviousFundamentalNote(F){const R=_Pitch.pitchEnumValues.indexOf(F);return R>0?_Pitch.pitchEnumValues[R-1]:_Pitch.pitchEnumValues[_Pitch.pitchEnumValues.length-1]}};let Pitch=_Pitch;Pitch.pitchEnumValues=[0,2,4,5,7,9,11];Pitch.halftoneFactor=12/(Math.LN2/Math.LN10);Pitch.octXmlDiff=3;class VerticalGraphicalStaffEntryContainer{constructor(R,B){this.staffEntries=[],this.absoluteTimestamp=B,this.staffEntries=new Array(R)}get Index(){return this.index}set Index(R){this.index=R}get AbsoluteTimestamp(){return this.absoluteTimestamp}get StaffEntries(){return this.staffEntries}set StaffEntries(R){this.staffEntries=R}static compareByTimestamp(R,B){const D=R.absoluteTimestamp.RealValue,G=B.absoluteTimestamp.RealValue;return DG?1:0}getFirstNonNullStaffEntry(){for(let R=0,B=this.staffEntries.length;R(F[F.BaseWritingColor=0]="BaseWritingColor",F[F.FollowingCursor=1]="FollowingCursor",F[F.AlternativeFollowingCursor=2]="AlternativeFollowingCursor",F[F.PlaybackCursor=3]="PlaybackCursor",F[F.Highlighted=4]="Highlighted",F[F.ErrorUnderlay=5]="ErrorUnderlay",F[F.Selected=6]="Selected",F[F.SelectionSymbol=7]="SelectionSymbol",F[F.DebugColor1=8]="DebugColor1",F[F.DebugColor2=9]="DebugColor2",F[F.DebugColor3=10]="DebugColor3",F[F.SplitScreenDivision=11]="SplitScreenDivision",F[F.GreyTransparentOverlay=12]="GreyTransparentOverlay",F[F.MarkedArea1=13]="MarkedArea1",F[F.MarkedArea2=14]="MarkedArea2",F[F.MarkedArea3=15]="MarkedArea3",F[F.MarkedArea4=16]="MarkedArea4",F[F.MarkedArea5=17]="MarkedArea5",F[F.MarkedArea6=18]="MarkedArea6",F[F.MarkedArea7=19]="MarkedArea7",F[F.MarkedArea8=20]="MarkedArea8",F[F.MarkedArea9=21]="MarkedArea9",F[F.MarkedArea10=22]="MarkedArea10",F[F.Comment1=23]="Comment1",F[F.Comment2=24]="Comment2",F[F.Comment3=25]="Comment3",F[F.Comment4=26]="Comment4",F[F.Comment5=27]="Comment5",F[F.Comment6=28]="Comment6",F[F.Comment7=29]="Comment7",F[F.Comment8=30]="Comment8",F[F.Comment9=31]="Comment9",F[F.Comment10=32]="Comment10",F))(OutlineAndFillStyleEnum||{});const OUTLINE_AND_FILL_STYLE_DICT=new Dictionary;OUTLINE_AND_FILL_STYLE_DICT.setValue(0,"Thistle");OUTLINE_AND_FILL_STYLE_DICT.setValue(1,"Aqua");OUTLINE_AND_FILL_STYLE_DICT.setValue(2,"Azure");OUTLINE_AND_FILL_STYLE_DICT.setValue(3,"Bisque");OUTLINE_AND_FILL_STYLE_DICT.setValue(4,"CadetBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(5,"DarkBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(6,"DarkGoldenRod");OUTLINE_AND_FILL_STYLE_DICT.setValue(7,"BlanchedAlmond");OUTLINE_AND_FILL_STYLE_DICT.setValue(8,"Chartreuse");OUTLINE_AND_FILL_STYLE_DICT.setValue(9,"DarkGreen");OUTLINE_AND_FILL_STYLE_DICT.setValue(10,"DarkOrange");OUTLINE_AND_FILL_STYLE_DICT.setValue(11,"FireBrick");OUTLINE_AND_FILL_STYLE_DICT.setValue(12,"DarkSalmon");OUTLINE_AND_FILL_STYLE_DICT.setValue(13,"DarkSeaGreen");OUTLINE_AND_FILL_STYLE_DICT.setValue(14,"DarkOrchid");OUTLINE_AND_FILL_STYLE_DICT.setValue(15,"Aquamarine");OUTLINE_AND_FILL_STYLE_DICT.setValue(16,"DarkKhaki");OUTLINE_AND_FILL_STYLE_DICT.setValue(17,"ForestGreen");OUTLINE_AND_FILL_STYLE_DICT.setValue(18,"AliceBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(19,"DeepPink");OUTLINE_AND_FILL_STYLE_DICT.setValue(20,"Coral");OUTLINE_AND_FILL_STYLE_DICT.setValue(21,"DarkOliveGreen");OUTLINE_AND_FILL_STYLE_DICT.setValue(22,"Chocolate");OUTLINE_AND_FILL_STYLE_DICT.setValue(23,"DodgerBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(24,"Blue");OUTLINE_AND_FILL_STYLE_DICT.setValue(25,"Beige");OUTLINE_AND_FILL_STYLE_DICT.setValue(26,"Crimson");OUTLINE_AND_FILL_STYLE_DICT.setValue(27,"Fuchsia");OUTLINE_AND_FILL_STYLE_DICT.setValue(28,"Brown");OUTLINE_AND_FILL_STYLE_DICT.setValue(29,"BlanchedAlmond");OUTLINE_AND_FILL_STYLE_DICT.setValue(30,"CornflowerBlue");OUTLINE_AND_FILL_STYLE_DICT.setValue(31,"Cornsilk");OUTLINE_AND_FILL_STYLE_DICT.setValue(32,"DarkGrey");var GraphicalLayers=(F=>(F[F.Background=0]="Background",F[F.Highlight=1]="Highlight",F[F.MeasureError=2]="MeasureError",F[F.SelectionSymbol=3]="SelectionSymbol",F[F.Cursor=4]="Cursor",F[F.PSI_Debug=5]="PSI_Debug",F[F.Notes=6]="Notes",F[F.Comment=7]="Comment",F[F.Debug_above=8]="Debug_above",F))(GraphicalLayers||{}),NoteState=(F=>(F[F.Normal=0]="Normal",F[F.Selected=1]="Selected",F[F.Follow_Confirmed=2]="Follow_Confirmed",F[F.QFeedback_NotFound=3]="QFeedback_NotFound",F[F.QFeedback_OK=4]="QFeedback_OK",F[F.QFeedback_Perfect=5]="QFeedback_Perfect",F[F.Debug1=6]="Debug1",F[F.Debug2=7]="Debug2",F[F.Debug3=8]="Debug3",F))(NoteState||{}),AutoColorSet=(F=>(F.C="#d82c6b",F.D="#F89D15",F.E="#FFE21A",F.F="#4dbd5c",F.G="#009D96",F.A="#43469d",F.B="#76429c",F.Rest="#000000",F))(AutoColorSet||{});class GraphicalLine{constructor(R,B,D=0,G=OutlineAndFillStyleEnum.BaseWritingColor,U=void 0){this.start=R,this.end=B,this.width=D,this.styleId=G,this.colorHex=U}get Start(){return this.start}set Start(R){this.start=R}get End(){return this.end}set End(R){this.end=R}get Width(){return this.width}set Width(R){this.width=R}}class ClefInstruction extends AbstractNotationInstruction{constructor(R=ClefEnum.G,B=0,D=2){super(void 0),this.clefType=ClefEnum.G,this.line=2,this.octaveOffset=0,this.line=D,this.clefType=R,this.octaveOffset=B,this.calcParameters()}static getDefaultClefFromMidiInstrument(R){switch(R){case MidiInstrument.Acoustic_Grand_Piano:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Electric_Bass_finger:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Electric_Bass_pick:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Fretless_Bass:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Slap_Bass_1:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Slap_Bass_2:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Synth_Bass_1:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Synth_Bass_2:return new ClefInstruction(ClefEnum.F,0,4);case MidiInstrument.Contrabass:return new ClefInstruction(ClefEnum.F,0,4);default:return new ClefInstruction(ClefEnum.G,0,2)}}static getAllPossibleClefs(){const R=[];for(let B=0;B<=2;B++){const D=new ClefInstruction(ClefEnum.G,B,2);R.push(D)}for(let B=-2;B<=0;B++){const D=new ClefInstruction(ClefEnum.F,B,4);R.push(D)}return R}static isSupportedClef(R){switch(R){case ClefEnum.G:case ClefEnum.F:case ClefEnum.C:case ClefEnum.percussion:case ClefEnum.TAB:return!0;default:return!1}}get ClefType(){return this.clefType}set ClefType(R){this.clefType=R}get Line(){return this.line}set Line(R){this.line=R}get OctaveOffset(){return this.octaveOffset}set OctaveOffset(R){this.octaveOffset=R}get ClefPitch(){return this.clefPitch}set ClefPitch(R){this.clefPitch=R}get ReferenceCyPosition(){return this.referenceCyPosition}set ReferenceCyPosition(R){this.referenceCyPosition=R}Equals(R){return this===R?!0:!this||!R?!1:this.clefPitch===R.clefPitch&&this.Line===R.Line}NotEqual(R){return!this.Equals(R)}ToString(){return"ClefType: "+this.clefType}calcParameters(){switch(this.clefType){case ClefEnum.G:this.clefPitch=new Pitch(NoteEnum.G,1+this.octaveOffset,AccidentalEnum.NONE),this.referenceCyPosition=5-this.line+2;break;case ClefEnum.F:this.clefPitch=new Pitch(NoteEnum.F,0+this.octaveOffset,AccidentalEnum.NONE),this.referenceCyPosition=5-this.line+1.5;break;case ClefEnum.C:this.clefPitch=new Pitch(NoteEnum.C,1+this.octaveOffset,AccidentalEnum.NONE),this.referenceCyPosition=5-this.line;break;case ClefEnum.percussion:this.clefPitch=new Pitch(NoteEnum.C,2,AccidentalEnum.NONE),this.referenceCyPosition=2;break;case ClefEnum.TAB:this.clefPitch=new Pitch(NoteEnum.G,0,AccidentalEnum.NONE),this.referenceCyPosition=0;break;default:throw new ArgumentOutOfRangeException("clefType")}}}var ClefEnum=(F=>(F[F.G=0]="G",F[F.F=1]="F",F[F.C=2]="C",F[F.percussion=3]="percussion",F[F.TAB=4]="TAB",F))(ClefEnum||{}),MidiInstrument=(F=>(F[F.None=-1]="None",F[F.Acoustic_Grand_Piano=0]="Acoustic_Grand_Piano",F[F.Bright_Acoustic_Piano=1]="Bright_Acoustic_Piano",F[F.Electric_Grand_Piano=2]="Electric_Grand_Piano",F[F.Honky_tonk_Piano=3]="Honky_tonk_Piano",F[F.Electric_Piano_1=4]="Electric_Piano_1",F[F.Electric_Piano_2=5]="Electric_Piano_2",F[F.Harpsichord=6]="Harpsichord",F[F.Clavinet=7]="Clavinet",F[F.Celesta=8]="Celesta",F[F.Glockenspiel=9]="Glockenspiel",F[F.Music_Box=10]="Music_Box",F[F.Vibraphone=11]="Vibraphone",F[F.Marimba=12]="Marimba",F[F.Xylophone=13]="Xylophone",F[F.Tubular_Bells=14]="Tubular_Bells",F[F.Dulcimer=15]="Dulcimer",F[F.Drawbar_Organ=16]="Drawbar_Organ",F[F.Percussive_Organ=17]="Percussive_Organ",F[F.Rock_Organ=18]="Rock_Organ",F[F.Church_Organ=19]="Church_Organ",F[F.Reed_Organ=20]="Reed_Organ",F[F.Accordion=21]="Accordion",F[F.Harmonica=22]="Harmonica",F[F.Tango_Accordion=23]="Tango_Accordion",F[F.Acoustic_Guitar_nylon=24]="Acoustic_Guitar_nylon",F[F.Acoustic_Guitar_steel=25]="Acoustic_Guitar_steel",F[F.Electric_Guitar_jazz=26]="Electric_Guitar_jazz",F[F.Electric_Guitar_clean=27]="Electric_Guitar_clean",F[F.Electric_Guitar_muted=28]="Electric_Guitar_muted",F[F.Overdriven_Guitar=29]="Overdriven_Guitar",F[F.Distortion_Guitar=30]="Distortion_Guitar",F[F.Guitar_harmonics=31]="Guitar_harmonics",F[F.Acoustic_Bass=32]="Acoustic_Bass",F[F.Electric_Bass_finger=33]="Electric_Bass_finger",F[F.Electric_Bass_pick=34]="Electric_Bass_pick",F[F.Fretless_Bass=35]="Fretless_Bass",F[F.Slap_Bass_1=36]="Slap_Bass_1",F[F.Slap_Bass_2=37]="Slap_Bass_2",F[F.Synth_Bass_1=38]="Synth_Bass_1",F[F.Synth_Bass_2=39]="Synth_Bass_2",F[F.Violin=40]="Violin",F[F.Viola=41]="Viola",F[F.Cello=42]="Cello",F[F.Contrabass=43]="Contrabass",F[F.Tremolo_Strings=44]="Tremolo_Strings",F[F.Pizzicato_Strings=45]="Pizzicato_Strings",F[F.Orchestral_Harp=46]="Orchestral_Harp",F[F.Timpani=47]="Timpani",F[F.String_Ensemble_1=48]="String_Ensemble_1",F[F.String_Ensemble_2=49]="String_Ensemble_2",F[F.Synth_Strings_1=50]="Synth_Strings_1",F[F.Synth_Strings_2=51]="Synth_Strings_2",F[F.Choir_Aahs=52]="Choir_Aahs",F[F.Voice_Oohs=53]="Voice_Oohs",F[F.Synth_Voice=54]="Synth_Voice",F[F.Orchestra_Hit=55]="Orchestra_Hit",F[F.Trumpet=56]="Trumpet",F[F.Trombone=57]="Trombone",F[F.Tuba=58]="Tuba",F[F.Muted_Trumpet=59]="Muted_Trumpet",F[F.French_Horn=60]="French_Horn",F[F.Brass_Section=61]="Brass_Section",F[F.Synth_Brass_1=62]="Synth_Brass_1",F[F.Synth_Brass_2=63]="Synth_Brass_2",F[F.Soprano_Sax=64]="Soprano_Sax",F[F.Alto_Sax=65]="Alto_Sax",F[F.Tenor_Sax=66]="Tenor_Sax",F[F.Baritone_Sax=67]="Baritone_Sax",F[F.Oboe=68]="Oboe",F[F.English_Horn=69]="English_Horn",F[F.Bassoon=70]="Bassoon",F[F.Clarinet=71]="Clarinet",F[F.Piccolo=72]="Piccolo",F[F.Flute=73]="Flute",F[F.Recorder=74]="Recorder",F[F.Pan_Flute=75]="Pan_Flute",F[F.Blown_Bottle=76]="Blown_Bottle",F[F.Shakuhachi=77]="Shakuhachi",F[F.Whistle=78]="Whistle",F[F.Ocarina=79]="Ocarina",F[F.Lead_1_square=80]="Lead_1_square",F[F.Lead_2_sawtooth=81]="Lead_2_sawtooth",F[F.Lead_3_calliope=82]="Lead_3_calliope",F[F.Lead_4_chiff=83]="Lead_4_chiff",F[F.Lead_5_charang=84]="Lead_5_charang",F[F.Lead_6_voice=85]="Lead_6_voice",F[F.Lead_7_fifths=86]="Lead_7_fifths",F[F.Lead_8_bass_lead=87]="Lead_8_bass_lead",F[F.Pad_1_new_age=88]="Pad_1_new_age",F[F.Pad_2_warm=89]="Pad_2_warm",F[F.Pad_3_polysynth=90]="Pad_3_polysynth",F[F.Pad_4_choir=91]="Pad_4_choir",F[F.Pad_5_bowed=92]="Pad_5_bowed",F[F.Pad_6_metallic=93]="Pad_6_metallic",F[F.Pad_7_halo=94]="Pad_7_halo",F[F.Pad_8_sweep=95]="Pad_8_sweep",F[F.FX_1_rain=96]="FX_1_rain",F[F.FX_2_soundtrack=97]="FX_2_soundtrack",F[F.FX_3_crystal=98]="FX_3_crystal",F[F.FX_4_atmosphere=99]="FX_4_atmosphere",F[F.FX_5_brightness=100]="FX_5_brightness",F[F.FX_6_goblins=101]="FX_6_goblins",F[F.FX_7_echoes=102]="FX_7_echoes",F[F.FX_8_scifi=103]="FX_8_scifi",F[F.Sitar=104]="Sitar",F[F.Banjo=105]="Banjo",F[F.Shamisen=106]="Shamisen",F[F.Koto=107]="Koto",F[F.Kalimba=108]="Kalimba",F[F.Bag_pipe=109]="Bag_pipe",F[F.Fiddle=110]="Fiddle",F[F.Shanai=111]="Shanai",F[F.Tinkle_Bell=112]="Tinkle_Bell",F[F.Agogo=113]="Agogo",F[F.Steel_Drums=114]="Steel_Drums",F[F.Woodblock=115]="Woodblock",F[F.Taiko_Drum=116]="Taiko_Drum",F[F.Melodic_Tom=117]="Melodic_Tom",F[F.Synth_Drum=118]="Synth_Drum",F[F.Reverse_Cymbal=119]="Reverse_Cymbal",F[F.Guitar_Fret_Noise=120]="Guitar_Fret_Noise",F[F.Breath_Noise=121]="Breath_Noise",F[F.Seashore=122]="Seashore",F[F.Bird_Tweet=123]="Bird_Tweet",F[F.Telephone_Ring=124]="Telephone_Ring",F[F.Helicopter=125]="Helicopter",F[F.Applause=126]="Applause",F[F.Gunshot=127]="Gunshot",F[F.euphonium=128]="euphonium",F[F.AltoClarinetInEb=200]="AltoClarinetInEb",F[F.TrumpetInBb=201]="TrumpetInBb",F[F.BaritoneSaxophone=202]="BaritoneSaxophone",F[F.TenorSaxophone=203]="TenorSaxophone",F[F.ClarinetInEb=204]="ClarinetInEb",F[F.Euphonium=205]="Euphonium",F[F.Alto_Clarinet=206]="Alto_Clarinet",F[F.Bass_Clarinet=207]="Bass_Clarinet",F[F.Bass_Trombone=208]="Bass_Trombone",F[F.clarinet_in_bb=209]="clarinet_in_bb",F[F.clarinet_in_eb=210]="clarinet_in_eb",F[F.Percussion=135]="Percussion",F))(MidiInstrument||{});const _KeyInstruction=class extends AbstractNotationInstruction{constructor(F=void 0,R=0,B=KeyEnum.major){super(F),this.isTransposedBy=0,this.Key=R,this.keyTypeOriginal=R,this.mode=B,this.alteratedNotes=this.calcAlteratedNotes()}static copy(F){const R=new _KeyInstruction(F.parent,F.Key,F.Mode);return R.keyTypeOriginal=F.keyTypeOriginal,R}static getAllPossibleMajorKeyInstructions(){const F=[];for(let R=-7;R<7;R++){const B=new _KeyInstruction(void 0,R,KeyEnum.major);F.push(B)}return F}get Key(){return this.keyType}set Key(F){this.keyType=F,this.alteratedNotes=this.calcAlteratedNotes()}get Mode(){return this.mode}set Mode(F){this.mode=F}get AlteratedNotes(){return this.alteratedNotes}calcAlteratedNotes(){const F=[];if(this.keyType>0)for(let R=0;R=0}getAlterationForPitch(F){return this.keyType>0&&this.alteratedNotes.indexOf(F.FundamentalNote)<=this.keyType?AccidentalEnum.SHARP:this.keyType<0&&this.alteratedNotes.indexOf(F.FundamentalNote)<=Math.abs(this.keyType)?AccidentalEnum.FLAT:AccidentalEnum.NONE}ToString(){return"Key: "+this.keyType+this.mode}OperatorEquals(F){const R=this;return R===F?!0:!R||!F?!1:R.Key===F.Key&&R.Mode===F.Mode}OperatorNotEqual(F){return!this.OperatorEquals(F)}};let KeyInstruction=_KeyInstruction;KeyInstruction.sharpPositionList=[NoteEnum.F,NoteEnum.C,NoteEnum.G,NoteEnum.D,NoteEnum.A,NoteEnum.E,NoteEnum.B];KeyInstruction.flatPositionList=[NoteEnum.B,NoteEnum.E,NoteEnum.A,NoteEnum.D,NoteEnum.G,NoteEnum.C,NoteEnum.F];var KeyEnum=(F=>(F[F.major=0]="major",F[F.minor=1]="minor",F[F.none=2]="none",F[F.dorian=3]="dorian",F[F.phrygian=4]="phrygian",F[F.lydian=5]="lydian",F[F.mixolydian=6]="mixolydian",F[F.aeolian=7]="aeolian",F[F.ionian=8]="ionian",F[F.locrian=9]="locrian",F))(KeyEnum||{});Array.prototype.last||Object.defineProperty(Array.prototype,"last",{enumerable:!1,value:function(){return this[this.length-1]}});Array.prototype.clear||Object.defineProperty(Array.prototype,"clear",{enumerable:!1,value:function(){this.length=0}});Array.prototype.contains||Object.defineProperty(Array.prototype,"contains",{enumerable:!1,value:function(F){return this.indexOf(F)!==-1}});class CollectionUtil{static contains2(R,B){for(let D=0;D{var D,G,U,W;return((G=(D=B.sourceNote.Pitch)==null?void 0:D.getHalfTone())!=null?G:0)-((W=(U=R.sourceNote.Pitch)==null?void 0:U.getHalfTone())!=null?W:0)}),this.notes}sortForVexflow(){return this.notes.sort((R,B)=>{var D,G,U;return((G=(D=R.sourceNote.Pitch)==null?void 0:D.getHalfTone())!=null?G:0)-((U=B.sourceNote.Pitch.getHalfTone())!=null?U:0)}),this.notes}color(){}}class GraphicalMusicSheet{constructor(R,B){this.musicPages=[],this.measureList=[],this.verticalGraphicalStaffEntryContainers=[],this.cursors=[],this.leadSheet=!1,this.musicSheet=R,this.numberOfStaves=this.musicSheet.Staves.length,this.calculator=B,this.calculator.initialize(this)}get ParentMusicSheet(){return this.musicSheet}get GetCalculator(){return this.calculator}get JianpuKeySignature(){return this.jianpuKeySignature}set JianpuKeySignature(R){this.jianpuKeySignature=R}get MusicPages(){return this.musicPages}set MusicPages(R){this.musicPages=R}get MeasureList(){return this.measureList}set MeasureList(R){this.measureList=R}get VerticalGraphicalStaffEntryContainers(){return this.verticalGraphicalStaffEntryContainers}set VerticalGraphicalStaffEntryContainers(R){this.verticalGraphicalStaffEntryContainers=R}get Title(){return this.title}set Title(R){this.title=R}get Subtitle(){return this.subtitle}set Subtitle(R){this.subtitle=R}get Composer(){return this.composer}set Composer(R){this.composer=R}get Lyricist(){return this.lyricist}set Lyricist(R){this.lyricist=R}get Cursors(){return this.cursors}get SelectionStartSymbol(){return this.selectionStartSymbol}get SelectionEndSymbol(){return this.selectionEndSymbol}get MinAllowedSystemWidth(){return this.minAllowedSystemWidth}set MinAllowedSystemWidth(R){this.minAllowedSystemWidth=R}get NumberOfStaves(){return this.numberOfStaves}get LeadSheet(){return this.leadSheet}set LeadSheet(R){this.leadSheet=R}static transformRelativeToAbsolutePosition(R){for(let B=0;B=0;D--){const G=this.measureList[D][B];if(G)return G}}findGraphicalStaffEntryFromMeasureList(R,B,D){for(let G=B;G0)return W.staffEntries[0]}}getFirstVisibleMeasuresListFromIndices(R,B){const D=[],G=this.measureList[0].length;for(let U=R;U<=B;U++)for(let W=0;W=0;B--){if(this.verticalGraphicalStaffEntryContainers[B].AbsoluteTimestamp.lt(R)){const D=new VerticalGraphicalStaffEntryContainer(this.numberOfStaves,R);return this.verticalGraphicalStaffEntryContainers.splice(B+1,0,D),D}if(this.verticalGraphicalStaffEntryContainers[B].AbsoluteTimestamp.Equals(R))return this.verticalGraphicalStaffEntryContainers[B]}}GetVerticalContainerFromTimestamp(R,B=0){const D=CollectionUtil.binarySearch(this.verticalGraphicalStaffEntryContainers,new VerticalGraphicalStaffEntryContainer(0,R),VerticalGraphicalStaffEntryContainer.compareByTimestamp,B);if(D>=0)return this.verticalGraphicalStaffEntryContainers[D]}GetInterpolatedIndexInVerticalContainers(R){const B=this.verticalGraphicalStaffEntryContainers;let D=0,G=B.length-1,U,W;if(R.lte(B[B.length-1].AbsoluteTimestamp)){for(;G-D>1;){const Z=Math.floor((G+D)/2);if(B[D].AbsoluteTimestamp.Equals(R)){G=D;break}else if(B[G].AbsoluteTimestamp.Equals(R)){D=G;break}else{if(B[Z].AbsoluteTimestamp.Equals(R))return this.verticalGraphicalStaffEntryContainers.indexOf(B[Z]);R.lt(B[Z].AbsoluteTimestamp)?G=Z:D=Z}}if(D===G)return this.verticalGraphicalStaffEntryContainers.indexOf(B[D]);U=B[D].AbsoluteTimestamp,W=B[G].AbsoluteTimestamp}else U=B[B.length-1].AbsoluteTimestamp,W=Fraction$1.plus(this.getLongestStaffEntryDuration(B.length-1),U),G=B.length;const q=W.RealValue-U.RealValue,Y=W.RealValue-R.RealValue,Q=G-Y/q;return Math.min(Q,this.verticalGraphicalStaffEntryContainers.length)}getVisibleStavesIndicesFromSourceMeasure(R){const B=[],D=[];for(let G=0,U=R.length;G{var D;return((D=B.parentStaffEntry)==null?void 0:D.relInMeasureTimestamp)!==void 0})}GetNearestNote(R,B){const D=this.GetNearestVoiceEntry(R);if(!D)return;let G,U=Number.MAX_SAFE_INTEGER;for(const W of D.notes){const q=W.PositionAndShape.AbsolutePosition.y,Y=Math.abs(W.PositionAndShape.AbsolutePosition.x-R.x),Q=Math.abs(q-R.y);Y+QW.PositionAndShape.RelativePosition.x&&(D=W):D=W)}}catch(G){log$2.info("GraphicalMusicSheet.getStaffEntry",G)}return D}GetPreviousVisibleContainerIndex(R){for(let B=R-1;B>=0;B--){const D=this.verticalGraphicalStaffEntryContainers[B].StaffEntries;for(let G=0,U=D.length;G=0;U--)if(D=this.getStaffEntry(U),D)if(B){if(D.sourceStaffEntry.ParentStaff.ParentInstrument.Visible)return D}else return D}findClosestRightStaffEntry(R,B){let D;const G=Math.max(0,Math.ceil(R));for(let U=G;U{};Vex.L=(F,R)=>{if(!R)return;const B=Array.prototype.slice.call(R).join(" ");window.console.log(F+": "+B)};Vex.MakeException=F=>class extends Error{constructor(B,D){super(B),this.name=F,this.message=B,this.data=D}};class RuntimeError{constructor(R,B){this.code=R,this.message=B}toString(){return"[RuntimeError] "+this.code+":"+this.message}}Vex.RuntimeError=RuntimeError;Vex.RERR=Vex.RuntimeError;Vex.Merge=(F,R)=>{for(const B in R)F[B]=R[B];return F};Vex.Min=Math.min;Vex.Max=Math.max;Vex.forEach=(F,R)=>{for(let B=0;BF%R>=R/2?parseInt(F/R,10)*R+R:parseInt(F/R,10)*R;Vex.MidLine=(F,R)=>{let B=R+(F-R)/2;return B%2>0&&(B=Vex.RoundN(B*10,5)/10),B};Vex.SortAndUnique=(F,R,B)=>{if(F.length>1){const D=[];let G;F.sort(R);for(let U=0;U{let B=F.length;for(;B--;)if(F[B]===R)return!0;return!1};Vex.getCanvasContext=F=>{if(!F)throw new Vex.RERR("BadArgument","Invalid canvas selector: "+F);const R=document.getElementById(F);if(!(R&&R.getContext))throw new Vex.RERR("UnsupportedBrowserError","This browser does not support HTML5 Canvas");return R.getContext("2d")};Vex.drawDot=(F,R,B,D="#55")=>{F.save(),F.setFillStyle(D),F.beginPath(),F.arc(R,B,3,0,Math.PI*2,!0),F.closePath(),F.fill(),F.restore()};Vex.BM=(F,R)=>{const B=new Date().getTime();R();const D=new Date().getTime()-B;Vex.L(F+D+"ms")};Vex.StackTrace=()=>new Error().stack;Vex.W=(...F)=>{const R=F.join(" ");window.console.log("Warning: ",R,Vex.StackTrace())};Vex.Prefix=F=>Vex.Prefix.prefix+F;Vex.Prefix.prefix="vf-";class Fraction{static GCD(R,B){if(typeof R!="number"||typeof B!="number")throw new Vex.RERR("BadArgument",`Invalid numbers: ${R}, ${B}`);let D;for(;B!==0;)D=B,B=R%B,R=D;return R}static LCM(R,B){return R*B/Fraction.GCD(R,B)}static LCMM(R){if(R.length===0)return 0;if(R.length===1)return R[0];if(R.length===2)return Fraction.LCM(R[0],R[1]);{const B=R[0];return R.shift(),Fraction.LCM(B,Fraction.LCMM(R))}}constructor(R,B){this.set(R,B)}set(R,B){return this.numerator=R===void 0?1:R,this.denominator=B===void 0?1:B,this}value(){return this.numerator/this.denominator}simplify(){let R=this.numerator,B=this.denominator;const D=Fraction.GCD(R,B);return R/=D,B/=D,B<0&&(B=-B,R=-R),this.set(R,B)}add(R,B){let D,G;R instanceof Fraction?(D=R.numerator,G=R.denominator):(R!==void 0?D=R:D=0,B!==void 0?G=B:G=1);const U=Fraction.LCM(this.denominator,G),W=U/this.denominator,q=U/G,Y=this.numerator*W+D*q;return this.set(Y,U)}subtract(R,B){let D,G;R instanceof Fraction?(D=R.numerator,G=R.denominator):(R!==void 0?D=R:D=0,B!==void 0?G=B:G=1);const U=Fraction.LCM(this.denominator,G),W=U/this.denominator,q=U/G,Y=this.numerator*W-D*q;return this.set(Y,U)}multiply(R,B){let D,G;return R instanceof Fraction?(D=R.numerator,G=R.denominator):(R!==void 0?D=R:D=1,B!==void 0?G=B:G=1),this.set(this.numerator*D,this.denominator*G)}divide(R,B){let D,G;return R instanceof Fraction?(D=R.numerator,G=R.denominator):(R!==void 0?D=R:D=1,B!==void 0?G=B:G=1),this.set(this.numerator*G,this.denominator*D)}equals(R){const B=Fraction.__compareA.copy(R).simplify(),D=Fraction.__compareB.copy(this).simplify();return B.numerator===D.numerator&&B.denominator===D.denominator}greaterThan(R){const B=Fraction.__compareB.copy(this);return B.subtract(R),B.numerator>0}greaterThanEquals(R){const B=Fraction.__compareB.copy(this);return B.subtract(R),B.numerator>=0}lessThan(R){return!this.greaterThanEquals(R)}lessThanEquals(R){return!this.greaterThan(R)}clone(){return new Fraction(this.numerator,this.denominator)}copy(R){return typeof R=="number"?this.set(R||0,1):this.set(R.numerator,R.denominator)}quotient(){return Math.floor(this.numerator/this.denominator)}fraction(){return this.numerator%this.denominator}abs(){return this.denominator=Math.abs(this.denominator),this.numerator=Math.abs(this.numerator),this}toString(){return this.numerator+"/"+this.denominator}toSimplifiedString(){return Fraction.__tmp.copy(this).simplify().toString()}toMixedString(){let R="";const B=this.quotient(),D=Fraction.__tmp.copy(this);return B<0?D.abs().fraction():D.fraction(),B!==0?(R+=B,D.numerator!==0&&(R+=" "+D.toSimplifiedString())):D.numerator===0?R="0":R=D.toSimplifiedString(),R}parse(R){const B=R.split("/"),D=parseInt(B[0],10),G=B[1]?parseInt(B[1],10):1;return this.set(D,G)}}Fraction.__compareA=new Fraction;Fraction.__compareB=new Fraction;Fraction.__tmp=new Fraction;const X$3=Vex.MakeException("RegistryError");function setIndexValue(F,R,B,D,G){F[R][B]||(F[R][B]={}),F[R][B][D]=G}class Registry{static get INDEXES(){return["type"]}constructor(){this.clear()}static enableDefaultRegistry(R){Registry.defaultRegistry=R}static getDefaultRegistry(){return Registry.defaultRegistry}static disableDefaultRegistry(){Registry.defaultRegistry=null}clear(){return this.index={id:{},type:{},class:{}},this}updateIndex({id:R,name:B,value:D,oldValue:G}){const U=this.getElementById(R);G!==null&&this.index[B][G]&&delete this.index[B][G][R],D!==null&&setIndexValue(this.index,B,D,U.getAttribute("id"),U)}register(R,B){if(B=B||R.getAttribute("id"),!B)throw new X$3("Can't add element without `id` attribute to registry",R);return R.setAttribute("id",B),setIndexValue(this.index,"id",B,B,R),Registry.INDEXES.forEach(D=>{this.updateIndex({id:B,name:D,value:R.getAttribute(D),oldValue:null})}),R.onRegister(this),this}getElementById(R){return this.index.id[R]?this.index.id[R][R]:null}getElementsByAttribute(R,B){const D=this.index[R];return D&&D[B]?Object.keys(D[B]).map(G=>D[B][G]):[]}getElementsByType(R){return this.getElementsByAttribute("type",R)}getElementsByClass(R){return this.getElementsByAttribute("class",R)}onUpdate({id:R,name:B,value:D,oldValue:G}){function U(W,q){return W.filter(Y=>Y===q).length>0}return U(Registry.INDEXES.concat(["id","class"]),B)?(this.updateIndex({id:R,name:B,value:D,oldValue:G}),this):this}}Registry.defaultRegistry=null;class Element$1{static newID(){return"auto"+Element$1.ID++}constructor({type:R}={}){this.attrs={id:Element$1.newID(),el:null,type:R||"Base",classes:{}},this.boundingBox=null,this.context=null,this.rendered=!1,Registry.getDefaultRegistry()&&Registry.getDefaultRegistry().register(this)}setStyle(R){return this.style=R,this}getStyle(){return this.style}applyStyle(R=this.context,B=this.getStyle()){return B?(R.save(),B.shadowColor&&R.setShadowColor(B.shadowColor),B.shadowBlur&&R.setShadowBlur(B.shadowBlur),B.fillStyle&&R.setFillStyle(B.fillStyle),B.strokeStyle&&R.setStrokeStyle(B.strokeStyle),B.lineWidth&&R.setLineWidth(B.lineWidth),this):this}restoreStyle(R=this.context,B=this.getStyle()){return B?(R.restore(),this):this}drawWithStyle(){this.checkContext(),this.applyStyle(),this.draw(),this.restoreStyle()}hasClass(R){return this.attrs.classes[R]===!0}addClass(R){return this.attrs.classes[R]=!0,this.registry&&this.registry.onUpdate({id:this.getAttribute("id"),name:"class",value:R,oldValue:null}),this}removeClass(R){return delete this.attrs.classes[R],this.registry&&this.registry.onUpdate({id:this.getAttribute("id"),name:"class",value:null,oldValue:R}),this}onRegister(R){return this.registry=R,this}isRendered(){return this.rendered}setRendered(R=!0){return this.rendered=R,this}getAttributes(){return this.attrs}getAttribute(R){return this.attrs[R]}setAttribute(R,B){const D=this.attrs.id,G=this.attrs[R];return this.attrs[R]=B,this.registry&&this.registry.onUpdate({id:D,name:R,value:B,oldValue:G}),this}getContext(){return this.context}setContext(R){return this.context=R,this}getBoundingBox(){return this.boundingBox}checkContext(){if(!this.context)throw new Vex.RERR("NoContext","No rendering context attached to instance");return this.context}}Element$1.ID=1e3;class BoundingBoxComputation{constructor(R,B,D,G){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN,this.addPoint(R,B),this.addPoint(D,G)}width(){return this.x2-this.x1}height(){return this.y2-this.y1}addPoint(R,B){R!=null&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=R,this.x2=R),Rthis.x2&&(this.x2=R)),B!=null&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=B,this.y2=B),Bthis.y2&&(this.y2=B))}addX(R){this.addPoint(R,null)}addY(R){this.addPoint(null,R)}addQuadraticCurve(R,B,D,G,U,W){const q=R+.6666666666666666*(D-R),Y=B+2/3*(G-B),Q=q+1/3*(U-R),Z=Y+1/3*(W-B);this.addBezierCurve(R,B,q,Y,Q,Z,U,W)}addBezierCurve(R,B,D,G,U,W,q,Y){const Q=[R,B],Z=[D,G],K=[U,W],ie=[q,Y];let te;this.addPoint(Q[0],Q[1]),this.addPoint(ie[0],ie[1]);const ne=(se,re)=>Math.pow(1-se,3)*Q[re]+3*Math.pow(1-se,2)*se*Z[re]+3*(1-se)*Math.pow(se,2)*K[re]+Math.pow(se,3)*ie[re];for(te=0;te<=1;te++){const se=6*Q[te]-12*Z[te]+6*K[te],re=-3*Q[te]+9*Z[te]-9*K[te]+3*ie[te],ae=3*Z[te]-3*Q[te];if(re===0){if(se===0)continue;const pe=-ae/se;0{if(!F)throw new Vex.RERR("BadArgument","Invalid clef: "+F);const R=Flow.clefProperties.values[F];if(!R)throw new Vex.RERR("BadArgument","Invalid clef: "+F);return R};Flow.clefProperties.values={treble:{line_shift:0},bass:{line_shift:6},tenor:{line_shift:4},alto:{line_shift:3},soprano:{line_shift:1},percussion:{line_shift:0},"mezzo-soprano":{line_shift:2},"baritone-c":{line_shift:5},"baritone-f":{line_shift:5},subbass:{line_shift:7},french:{line_shift:-1}};Flow.keyProperties=(F,R,B)=>{R===void 0&&(R="treble");const D={octave_shift:0};typeof B=="object"&&Vex.Merge(D,B);const G=F.split("/");if(G.length<2)throw new Vex.RERR("BadArguments",`Key must have note + octave and an optional glyph: ${F}`);const U=G[0].toUpperCase(),W=Flow.keyProperties.note_values[U];if(!W)throw new Vex.RERR("BadArguments","Invalid key name: "+U);W.octave&&(G[1]=W.octave);let q=parseInt(G[1],10);q+=-1*D.octave_shift;let Q=(q*7-4*7+W.index)/2;Q+=Flow.clefProperties(R).line_shift;let Z=0;Q<=0&&Q*2%2===0&&(Z=1),Q>=6&&Q*2%2===0&&(Z=-1);const K=typeof W.int_val!="undefined"?q*12+W.int_val:null,ie=W.code,te=W.shift_right;let ne={};if(G.length>2&&G[2]){const se=G[2].toUpperCase();ne=Flow.keyProperties.customNoteHeads[se]||{}}return{key:U,octave:q,line:Q,int_value:K,accidental:W.accidental,code:ie,stroke:Z,shift_right:te,displaced:!1,...ne}};Flow.keyProperties.note_values={C:{index:0,int_val:0,accidental:null},CN:{index:0,int_val:0,accidental:"n"},"C#":{index:0,int_val:1,accidental:"#"},"C##":{index:0,int_val:2,accidental:"##"},CB:{index:0,int_val:-1,accidental:"b"},CBB:{index:0,int_val:-2,accidental:"bb"},D:{index:1,int_val:2,accidental:null},DN:{index:1,int_val:2,accidental:"n"},"D#":{index:1,int_val:3,accidental:"#"},"D##":{index:1,int_val:4,accidental:"##"},DB:{index:1,int_val:1,accidental:"b"},DBB:{index:1,int_val:0,accidental:"bb"},E:{index:2,int_val:4,accidental:null},EN:{index:2,int_val:4,accidental:"n"},"E#":{index:2,int_val:5,accidental:"#"},"E##":{index:2,int_val:6,accidental:"##"},EB:{index:2,int_val:3,accidental:"b"},EBB:{index:2,int_val:2,accidental:"bb"},F:{index:3,int_val:5,accidental:null},FN:{index:3,int_val:5,accidental:"n"},"F#":{index:3,int_val:6,accidental:"#"},"F##":{index:3,int_val:7,accidental:"##"},FB:{index:3,int_val:4,accidental:"b"},FBB:{index:3,int_val:3,accidental:"bb"},G:{index:4,int_val:7,accidental:null},GN:{index:4,int_val:7,accidental:"n"},"G#":{index:4,int_val:8,accidental:"#"},"G##":{index:4,int_val:9,accidental:"##"},GB:{index:4,int_val:6,accidental:"b"},GBB:{index:4,int_val:5,accidental:"bb"},A:{index:5,int_val:9,accidental:null},AN:{index:5,int_val:9,accidental:"n"},"A#":{index:5,int_val:10,accidental:"#"},"A##":{index:5,int_val:11,accidental:"##"},AB:{index:5,int_val:8,accidental:"b"},ABB:{index:5,int_val:7,accidental:"bb"},B:{index:6,int_val:11,accidental:null},BN:{index:6,int_val:11,accidental:"n"},"B#":{index:6,int_val:12,accidental:"#"},"B##":{index:6,int_val:13,accidental:"##"},BB:{index:6,int_val:10,accidental:"b"},BBB:{index:6,int_val:9,accidental:"bb"},R:{index:6,int_val:9,rest:!0},X:{index:6,accidental:"",octave:4,code:"v3e",shift_right:5.5}};Flow.keyProperties.customNoteHeads={D0:{code:"v27",shift_right:0,stem_up_x_offset:0,stem_down_x_offset:0,stem_up_y_offset:-1,stem_down_y_offset:0},D1:{code:"v2d",shift_right:-.5},D2:{code:"v22",shift_right:-.5},D3:{code:"v70",shift_right:-.5},T0:{code:"v49",shift_right:-2,stem_up_y_offset:-4,stem_down_y_offset:4},T1:{code:"v93",shift_right:.5,stem_up_y_offset:-4,stem_down_y_offset:4},T2:{code:"v40",shift_right:.5,stem_up_y_offset:-4,stem_down_y_offset:4},T3:{code:"v7d",shift_right:.5,stem_up_y_offset:-4,stem_down_y_offset:4},X0:{code:"v92",stem_up_x_offset:-2,stem_down_x_offset:0,stem_up_y_offset:4,stem_down_y_offset:4},X1:{code:"v95",shift_right:-.5,stem_up_y_offset:4,stem_down_y_offset:4},X2:{code:"v3e",shift_right:.5,stem_up_y_offset:4,stem_down_y_offset:4},X3:{code:"v3b",shift_right:0,stem_up_x_offset:-1.2,stem_down_x_offset:0,stem_up_y_offset:-1,stem_down_y_offset:2},S1:{code:"vd3",shift_right:0},S2:{code:"vd2",shift_right:0},R1:{code:"vd5",shift_right:0},R2:{code:"vd4",shift_right:0}};Flow.integerToNote=F=>{if(typeof F=="undefined")throw new Vex.RERR("BadArguments","Undefined integer for integerToNote");if(F<-2)throw new Vex.RERR("BadArguments",`integerToNote requires integer > -2: ${F}`);const R=Flow.integerToNote.table[F];if(!R)throw new Vex.RERR("BadArguments",`Unknown note value for integer: ${F}`);return R};Flow.integerToNote.table={0:"C",1:"C#",2:"D",3:"D#",4:"E",5:"F",6:"F#",7:"G",8:"G#",9:"A",10:"A#",11:"B"};Flow.tabToGlyph=(F,R=1)=>{let B=null,D=0,G=0;if(F.toString().toUpperCase()==="X"){const U=new Glyph("v7f",Flow.DEFAULT_TABLATURE_FONT_SCALE).getMetrics();B="v7f",D=U.width,G=-U.height/2}else D=Flow.textWidth(F.toString());return{text:F,code:B,getWidth:()=>D*R,shift_y:G}};Flow.textWidth=F=>7*F.toString().length;Flow.articulationCodes=F=>Flow.articulationCodes.articulations[F];Flow.articulationCodes.articulations={"a.":{code:"v23",between_lines:!0},av:{code:"v28",between_lines:!0},"a>":{code:"v42",between_lines:!0},"a-":{code:"v25",between_lines:!0},"a^":{code:"va",between_lines:!1},"a+":{code:"v8b",between_lines:!1},ao:{code:"v94",between_lines:!1},ah:{code:"vb9",between_lines:!1},"a@a":{code:"v43",between_lines:!1},"a@u":{code:"v5b",between_lines:!1},"a|":{code:"v75",between_lines:!1},am:{code:"v97",between_lines:!1},"a,":{code:"vb3",between_lines:!1}};Flow.accidentalCodes=F=>Flow.accidentalCodes.accidentals[F];Flow.accidentalCodes.accidentals={"#":{code:"v18",parenRightPaddingAdjustment:-1},"##":{code:"v7f",parenRightPaddingAdjustment:-1},b:{code:"v44",parenRightPaddingAdjustment:-2},bb:{code:"v26",parenRightPaddingAdjustment:-2},n:{code:"v4e",parenRightPaddingAdjustment:-1},"{":{code:"v9c",parenRightPaddingAdjustment:-1},"}":{code:"v84",parenRightPaddingAdjustment:-1},db:{code:"v9e",parenRightPaddingAdjustment:-1},d:{code:"vab",parenRightPaddingAdjustment:0},bbs:{code:"v90",parenRightPaddingAdjustment:-1},"++":{code:"v51",parenRightPaddingAdjustment:-1},"+":{code:"v78",parenRightPaddingAdjustment:-1},"+-":{code:"v8d",parenRightPaddingAdjustment:-1},"++-":{code:"v7a",parenRightPaddingAdjustment:-1},bs:{code:"vb7",parenRightPaddingAdjustment:-1},bss:{code:"v39",parenRightPaddingAdjustment:-1},o:{code:"vd0",parenRightPaddingAdjustment:-1},k:{code:"vd1",parenRightPaddingAdjustment:-1},ashs:{code:"vd6",parenRightPaddingAdjustment:-1},afhf:{code:"vd7",parenRightPaddingAdjustment:-1}};Flow.accidentalColumnsTable={1:{a:[1],b:[1]},2:{a:[1,2]},3:{a:[1,3,2],b:[1,2,1],second_on_bottom:[1,2,3]},4:{a:[1,3,4,2],b:[1,2,3,1],spaced_out_tetrachord:[1,2,1,2]},5:{a:[1,3,5,4,2],b:[1,2,4,3,1],spaced_out_pentachord:[1,2,3,2,1],very_spaced_out_pentachord:[1,2,1,2,1]},6:{a:[1,3,5,6,4,2],b:[1,2,4,5,3,1],spaced_out_hexachord:[1,3,2,1,3,2],very_spaced_out_hexachord:[1,2,1,2,1,2]}};Flow.ornamentCodes=F=>Flow.ornamentCodes.ornaments[F];Flow.ornamentCodes.ornaments={mordent:{code:"v1e"},mordent_inverted:{code:"v45"},turn:{code:"v72"},turn_inverted:{code:"v33"},tr:{code:"v1f"},upprall:{code:"v60"},downprall:{code:"vb4"},prallup:{code:"v6d"},pralldown:{code:"v2c"},upmordent:{code:"v29"},downmordent:{code:"v68"},lineprall:{code:"v20"},prallprall:{code:"v86"}};Flow.keySignature=F=>{const R=Flow.keySignature.keySpecs[F];if(!R)throw new Vex.RERR("BadKeySignature",`Bad key signature spec: '${F}'`);if(!R.acc)return[];const B=Flow.keySignature.accidentalList(R.acc),D=[];for(let G=0;G({b:[2,.5,2.5,1,3,1.5,3.5],"#":[0,1.5,-.5,1,2.5,.5,2]})[F];Flow.parseNoteDurationString=F=>{if(typeof F!="string")return null;const B=/(\d*\/?\d+|[a-z])(d*)([nrhms]|$)/.exec(F);if(!B)return null;const D=B[1],G=B[2].length;let U=B[3];return U.length===0&&(U="n"),{duration:D,dots:G,type:U}};Flow.parseNoteStruct=F=>{const R=F.duration,B=Flow.parseNoteDurationString(R);if(!B)return null;let D=Flow.durationToTicks(B.duration);if(D==null)return null;let G=F.type;const U=[];if(G){if(!Flow.getGlyphProps.validTypes[G])return null}else G=B.type||"n",F.keys!==void 0&&F.keys.forEach((Y,Q)=>{const Z=Y.split("/");Z&&Z.length===3&&(U[Q]=Z[2])});const W=F.dots?F.dots:B.dots;if(typeof W!="number")return null;let q=D;for(let Y=0;Y{const R=Flow.durationAliases[F];if(R!==void 0&&(F=R),Flow.durationToTicks.durations[F]===void 0)throw new Vex.RERR("BadArguments",`The provided duration is not valid: ${F}`);return F};Flow.durationToFraction=F=>new Fraction().parse(Flow.sanitizeDuration(F));Flow.durationToNumber=F=>Flow.durationToFraction(F).value();Flow.durationToTicks=F=>{F=Flow.sanitizeDuration(F);const R=Flow.durationToTicks.durations[F];return R===void 0?null:R};Flow.durationToTicks.durations={"1/2":Flow.RESOLUTION*2,1:Flow.RESOLUTION/1,2:Flow.RESOLUTION/2,4:Flow.RESOLUTION/4,8:Flow.RESOLUTION/8,16:Flow.RESOLUTION/16,32:Flow.RESOLUTION/32,64:Flow.RESOLUTION/64,128:Flow.RESOLUTION/128,256:Flow.RESOLUTION/256};Flow.durationAliases={w:"1",h:"2",q:"4",b:"256"};Flow.getGlyphProps=(F,R)=>{F=Flow.sanitizeDuration(F);const B=Flow.getGlyphProps.duration_codes[F];if(B===void 0)return null;R||(R="n");let D=B.type[R];if(D===void 0){const G=Flow.keyProperties.customNoteHeads[R.toUpperCase()];if(G===void 0)return null;D={code_head:G.code,...G}}return{...B.common,...D}};Flow.getGlyphProps.validTypes={n:{name:"note"},r:{name:"rest"},h:{name:"harmonic"},m:{name:"muted"},s:{name:"slash"}};Flow.getGlyphProps.duration_codes={"1/2":{common:{getWidth(F=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"v53",F).getMetrics().width},stem:!1,stem_offset:0,flag:!1,stem_up_extension:-Flow.STEM_HEIGHT,stem_down_extension:-Flow.STEM_HEIGHT,tabnote_stem_up_extension:-Flow.STEM_HEIGHT,tabnote_stem_down_extension:-Flow.STEM_HEIGHT,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"v53"},h:{code_head:"v59"},m:{code_head:"vf",stem_offset:0},r:{code_head:"v31",rest:!0,position:"B/5",dot_shiftY:.5},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},1:{common:{getWidth(F=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"v1d",F).getMetrics().width},stem:!1,stem_offset:0,flag:!1,stem_up_extension:-Flow.STEM_HEIGHT,stem_down_extension:-Flow.STEM_HEIGHT,tabnote_stem_up_extension:-Flow.STEM_HEIGHT,tabnote_stem_down_extension:-Flow.STEM_HEIGHT,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"v1d"},h:{code_head:"v46"},m:{code_head:"v92",stem_offset:-3},r:{code_head:"v5c",rest:!0,position:"D/5",dot_shiftY:.5},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},2:{common:{getWidth(F=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"v81",F).getMetrics().width},stem:!0,stem_offset:0,flag:!1,stem_up_extension:0,stem_down_extension:0,tabnote_stem_up_extension:0,tabnote_stem_down_extension:0,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"v81"},h:{code_head:"v2d"},m:{code_head:"v95",stem_offset:-3},r:{code_head:"vc",stem:!1,rest:!0,position:"B/4",dot_shiftY:-.5},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},4:{common:{getWidth(F=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",F).getMetrics().width},stem:!0,stem_offset:0,flag:!1,stem_up_extension:0,stem_down_extension:0,tabnote_stem_up_extension:0,tabnote_stem_down_extension:0,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e",stem_offset:-3},r:{code_head:"v7c",stem:!1,rest:!0,position:"B/4",dot_shiftY:-.5,line_above:1.5,line_below:1.5},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},8:{common:{getWidth(F=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",F).getMetrics().width},stem:!0,stem_offset:0,flag:!0,beam_count:1,code_flag_upstem:"v54",code_flag_downstem:"v9a",stem_up_extension:0,stem_down_extension:0,tabnote_stem_up_extension:0,tabnote_stem_down_extension:0,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"va5",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:-.5,line_above:1,line_below:1},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},16:{common:{beam_count:2,getWidth(F=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",F).getMetrics().width},stem:!0,stem_offset:0,flag:!0,code_flag_upstem:"v3f",code_flag_downstem:"v8f",stem_up_extension:0,stem_down_extension:0,tabnote_stem_up_extension:0,tabnote_stem_down_extension:0,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"v3c",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:-.5,line_above:1,line_below:2},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},32:{common:{beam_count:3,getWidth(F=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",F).getMetrics().width},stem:!0,stem_offset:0,flag:!0,code_flag_upstem:"v47",code_flag_downstem:"v2a",stem_up_extension:9,stem_down_extension:9,tabnote_stem_up_extension:8,tabnote_stem_down_extension:5,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"v55",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:-1.5,line_above:2,line_below:2},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},64:{common:{beam_count:4,getWidth(F=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",F).getMetrics().width},stem:!0,stem_offset:0,flag:!0,code_flag_upstem:"va9",code_flag_downstem:"v58",stem_up_extension:13,stem_down_extension:13,tabnote_stem_up_extension:12,tabnote_stem_down_extension:9,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"v38",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:-1.5,line_above:2,line_below:3},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}},128:{common:{beam_count:5,getWidth(F=Flow.DEFAULT_NOTATION_FONT_SCALE){return new Glyph(this.code_head||"vb",F).getMetrics().width},stem:!0,stem_offset:0,flag:!0,code_flag_upstem:"v9b",code_flag_downstem:"v30",stem_up_extension:22,stem_down_extension:22,tabnote_stem_up_extension:21,tabnote_stem_down_extension:18,dot_shiftY:0,line_above:0,line_below:0},type:{n:{code_head:"vb"},h:{code_head:"v22"},m:{code_head:"v3e"},r:{code_head:"vaa",stem:!1,flag:!1,rest:!0,position:"B/4",dot_shiftY:1.5,line_above:3,line_below:3},s:{getWidth:()=>Flow.SLASH_NOTEHEAD_WIDTH,position:"B/4"}}}};Flow.smufl={};Flow.smufl.to_code_points={bracketTop:"v1b",bracketBottom:"v10",barlineTick:"v6f",segno:"v8c",coda:"v4d",gClef:"v83",cClef:"vad",fClef:"v79",unpitchedPercussionClef1:"v59","6stringTabClef":"v2f",timeSig0:"v0",timeSig1:"v1",timeSig2:"v2",timeSig3:"v3",timeSig4:"v4",timeSig5:"v5",timeSig6:"v6",timeSig7:"v7",timeSig8:"v8",timeSig9:"v9",timeSigCommon:"v41",timeSigCutCommon:"vb6",noteheadDoubleWhole:"v53",noteheadWhole:"v1d",noteheadHalf:"v81",noteheadBlack:"vb",noteheadXWhole:"v92",noteheadXHalf:"v95",noteheadXBlack:"v3e",noteheadCircleX:"v3b",noteheadTriangleUpWhole:"v49",noteheadTriangleUpHalf:"v93",noteheadTriangleUpBlack:"v40",noteheadDiamondWhole:"v46",noteheadDiamondHalf:"v2d",noteheadDiamondBlack:"v22",augmentationDot:"v23",tremolo1:"v74",flag8thUp:"v54",flag8thDown:"v9a",flag16thUp:"v3f",flag16thDown:"v8f",flag32ndUp:"v47",flag32ndDown:"v2a",flag64thUp:"va9",flag64thDown:"v58",flag128thUp:"v9b",flag128thDown:"v30",accidentalFlat:"v44",accidentalNatural:"v4e",accidentalSharp:"v18",accidentalDoubleSharp:"v7f",accidentalDoubleFlat:"v26",accidentalParensLeft:"v9c",accidentalParensRight:"v84",accidentalQuarterToneFlatStein:"vab",accidentalThreeQuarterTonesFlatZimmermann:"v9e",accidentalQuarterToneSharpStein:"v78",accidentalThreeQuarterTonesSharpStein:"v51",accidentalBuyukMucennebFlat:"v39",accidentalBakiyeFlat:"vb7",accidentalKomaSharp:"v51",accidentalKucukMucennebSharp:"v8d",accidentalKoron:"vd1",accidentalSori:"vd0",articAccentAbove:"v42",articAccentBelow:"v42",articTenutoAbove:"v25",articTenutoBelow:"v25",articStaccatoAbove:"v23",articStaccatoBelow:"v23",articStaccatissimoAbove:"v28",articMarcatoAbove:"va",fermataAbove:"v43",fermataBelow:"v5b",breathMarkComma:"v6c",breathMarkUpbow:"v8a",caesura:"v34",caesuraCurved:"v4b",restMaxima:"v59",restDoubleWhole:"v31",restWhole:"v5c",restHalf:"vc",restQuarter:"v7c",rest8th:"va5",rest16th:"v3c",rest32nd:"v55",rest64th:"v38",rest128th:"vaa",dynamicPiano:"vbf",dynamicMezzo:"v62",dynamicForte:"vba",dynamicRinforzando:"vba",dynamicSforzando:"v4a",dynamicZ:"v80",ornamentTrill:"v1f",ornamentTurn:"v72",ornamentTurnSlash:"v33",ornamentMordent:"v45",ornamentMordentInverted:"v1e",ornamentTremblement:"v86",ornamentPrecompAppoggTrill:"v20",ornamentPrecompSlideTrillDAnglebert:"v60",ornamentPrecompSlideTrillBach:"v29",ornamentPrecompTrillSuffixDandrieu:"v6d",ornamentPrecompDoubleCadenceUpperPrefix:"vb4",ornamentPrecompDoubleCadenceUpperPrefixTurn:"v68",ornamentPrecompTrillLowerSuffix:"v2c",stringsDownBow:"v94",stringsUpBow:"v75",stringsHarmonic:"vb9",pluckedSnapPizzicatoAbove:"v94",pluckedLeftHandPizzicato:"v8b",keyboardPedalPed:"v36",keyboardPedalUp:"v5d",pictChokeCymbal:"vb3",wiggleArpeggiatoUp:"va3",arrowheadBlackUp:"vc3",arrowheadBlackDown:"v52"};Flow.TIME4_4={num_beats:4,beat_value:4,resolution:Flow.RESOLUTION};class CanvasContext{static get WIDTH(){return 600}static get HEIGHT(){return 400}static get CANVAS_BROWSER_SIZE_LIMIT(){return 32767}static SanitizeCanvasDims(R,B){return Math.max(R,B)>this.CANVAS_BROWSER_SIZE_LIMIT&&(Vex.W("Canvas dimensions exceed browser limit. Cropping to "+this.CANVAS_BROWSER_SIZE_LIMIT),R>this.CANVAS_BROWSER_SIZE_LIMIT&&(R=this.CANVAS_BROWSER_SIZE_LIMIT),B>this.CANVAS_BROWSER_SIZE_LIMIT&&(B=this.CANVAS_BROWSER_SIZE_LIMIT)),[R,B]}constructor(R){this.vexFlowCanvasContext=R,R.canvas?this.canvas=R.canvas:this.canvas={width:CanvasContext.WIDTH,height:CanvasContext.HEIGHT}}clear(){this.vexFlowCanvasContext.clearRect(0,0,this.canvas.width,this.canvas.height)}openGroup(){}closeGroup(){}add(){}setFont(R,B,D){return this.vexFlowCanvasContext.font=(D||"")+" "+B+"pt "+R,this}setRawFont(R){return this.vexFlowCanvasContext.font=R,this}setFillStyle(R){return this.vexFlowCanvasContext.fillStyle=R,this}setBackgroundFillStyle(R){return this.background_fillStyle=R,this}setStrokeStyle(R){return this.vexFlowCanvasContext.strokeStyle=R,this}setShadowColor(R){return this.vexFlowCanvasContext.shadowColor=R,this}setShadowBlur(R){return this.vexFlowCanvasContext.shadowBlur=R,this}setLineWidth(R){return this.vexFlowCanvasContext.lineWidth=R,this}setLineCap(R){return this.vexFlowCanvasContext.lineCap=R,this}setLineDash(R){return this.vexFlowCanvasContext.lineDash=R,this}scale(R,B){return this.vexFlowCanvasContext.scale(parseFloat(R),parseFloat(B))}resize(R,B){return[R,B]=this.SanitizeCanvasDims(parseInt(R,10),parseInt(B,10)),this.vexFlowCanvasContext.resize(R,B)}rect(R,B,D,G){return this.vexFlowCanvasContext.rect(R,B,D,G)}fillRect(R,B,D,G){return this.vexFlowCanvasContext.fillRect(R,B,D,G)}clearRect(R,B,D,G){return this.vexFlowCanvasContext.clearRect(R,B,D,G)}beginPath(){return this.vexFlowCanvasContext.beginPath()}moveTo(R,B){return this.vexFlowCanvasContext.moveTo(R,B)}lineTo(R,B){return this.vexFlowCanvasContext.lineTo(R,B)}bezierCurveTo(R,B,D,G,U,W){return this.vexFlowCanvasContext.bezierCurveTo(R,B,D,G,U,W)}quadraticCurveTo(R,B,D,G){return this.vexFlowCanvasContext.quadraticCurveTo(R,B,D,G)}arc(R,B,D,G,U,W){return this.vexFlowCanvasContext.arc(R,B,D,G,U,W)}glow(){return this.vexFlowCanvasContext.glow()}fill(){return this.vexFlowCanvasContext.fill()}stroke(){return this.vexFlowCanvasContext.stroke()}closePath(){return this.vexFlowCanvasContext.closePath()}measureText(R){return this.vexFlowCanvasContext.measureText(R)}fillText(R,B,D){return this.vexFlowCanvasContext.fillText(R,B,D)}save(){return this.vexFlowCanvasContext.save()}restore(){return this.vexFlowCanvasContext.restore()}}class RaphaelContext{constructor(R){this.element=R,this.paper=Raphael(R),this.path="",this.pen={x:0,y:0},this.lineWidth=1,this.state={scale:{x:1,y:1},font_family:"Arial",font_size:8,font_weight:800},this.attributes={"stroke-width":.3,fill:"black",stroke:"black",font:"10pt Arial"},this.background_attributes={"stroke-width":0,fill:"white",stroke:"white",font:"10pt Arial"},this.shadow_attributes={width:0,color:"black"},this.state_stack=[]}openGroup(){}closeGroup(){}add(){}setFont(R,B,D){return this.state.font_family=R,this.state.font_size=B,this.state.font_weight=D,this.attributes.font=(this.state.font_weight||"")+" "+this.state.font_size*this.state.scale.x+"pt "+this.state.font_family,this}setRawFont(R){return this.attributes.font=R,this}setFillStyle(R){return this.attributes.fill=R,this}setBackgroundFillStyle(R){return this.background_attributes.fill=R,this.background_attributes.stroke=R,this}setStrokeStyle(R){return this.attributes.stroke=R,this}setShadowColor(R){return this.shadow_attributes.color=R,this}setShadowBlur(R){return this.shadow_attributes.width=R,this}setLineWidth(R){this.attributes["stroke-width"]=R,this.lineWidth=R}setLineDash(){return this}setLineCap(){return this}scale(R,B){return this.state.scale={x:R,y:B},this.attributes.transform="S"+R+","+B+",0,0",this.attributes.scale=R+","+B+",0,0",this.attributes.font=this.state.font_size*this.state.scale.x+"pt "+this.state.font_family,this.background_attributes.transform="S"+R+","+B+",0,0",this.background_attributes.font=this.state.font_size*this.state.scale.x+"pt "+this.state.font_family,this}clear(){this.paper.clear()}resize(R,B){return this.element.style.width=R,this.paper.setSize(R,B),this}setViewBox(R){this.paper.canvas.setAttribute("viewBox",R)}rect(R,B,D,G){return G<0&&(B+=G,G=-G),this.paper.rect(R,B,D-.5,G-.5).attr(this.attributes).attr("fill","none").attr("stroke-width",this.lineWidth),this}fillRect(R,B,D,G){return G<0&&(B+=G,G=-G),this.paper.rect(R,B,D-.5,G-.5).attr(this.attributes),this}clearRect(R,B,D,G){return G<0&&(B+=G,G=-G),this.paper.rect(R,B,D-.5,G-.5).attr(this.background_attributes),this}beginPath(){return this.path="",this.pen.x=0,this.pen.y=0,this}moveTo(R,B){return this.path+="M"+R+","+B,this.pen.x=R,this.pen.y=B,this}lineTo(R,B){return this.path+="L"+R+","+B,this.pen.x=R,this.pen.y=B,this}bezierCurveTo(R,B,D,G,U,W){return this.path+="C"+R+","+B+","+D+","+G+","+U+","+W,this.pen.x=U,this.pen.y=W,this}quadraticCurveTo(R,B,D,G){return this.path+="Q"+R+","+B+","+D+","+G,this.pen.x=D,this.pen.y=G,this}arc(R,B,D,G,U,W){function q(Q){for(;Q<0;)Q+=Math.PI*2;for(;Q>Math.PI*2;)Q-=Math.PI*2;return Q}if(G=q(G),U=q(U),G>U){const Q=G;G=U,U=Q,W=!W}const Y=U-G;return Y>Math.PI?(this.arcHelper(R,B,D,G,G+Y/2,W),this.arcHelper(R,B,D,G+Y/2,U,W)):this.arcHelper(R,B,D,G,U,W),this}arcHelper(R,B,D,G,U,W){const q=R+D*Math.cos(G),Y=B+D*Math.sin(G),Q=R+D*Math.cos(U),Z=B+D*Math.sin(U);let K=0,ie=0;W?(ie=1,U-GMath.PI&&(K=1),this.path+="M"+q+","+Y+",A"+D+","+D+",0,"+K+","+ie+","+Q+","+Z+"M"+this.pen.x+","+this.pen.y}glow(){const R=this.paper.set();if(this.shadow_attributes.width>0){const B=this.shadow_attributes,D=B.width/2;for(let G=1;G<=D;G++)R.push(this.paper.path(this.path).attr({stroke:B.color,"stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(B.width/D*G).toFixed(3),opacity:+((B.opacity||.3)/D).toFixed(3),transform:this.attributes.transform,scale:this.attributes.scale}))}return R}fill(){const R=this.paper.path(this.path).attr(this.attributes).attr("stroke-width",0);return this.glow(R),this}stroke(){const R=this.lineWidth*(this.state.scale.x+this.state.scale.y)/2,B=this.paper.path(this.path).attr(this.attributes).attr("fill","none").attr("stroke-width",R);return this.glow(B),this}closePath(){return this.path+="Z",this}measureText(R){const B=this.paper.text(0,0,R).attr(this.attributes).attr("fill","none").attr("stroke","none"),D=B.getBBox();return B.remove(),{width:D.width,height:D.height}}fillText(R,B,D){return this.paper.text(B+this.measureText(R).width/2,D-this.state.font_size/(2.25*this.state.scale.y),R).attr(this.attributes),this}save(){return this.state_stack.push({state:{font_family:this.state.font_family},attributes:{font:this.attributes.font,fill:this.attributes.fill,stroke:this.attributes.stroke,"stroke-width":this.attributes["stroke-width"]},shadow_attributes:{width:this.shadow_attributes.width,color:this.shadow_attributes.color}}),this}restore(){const R=this.state_stack.pop();return this.state.font_family=R.state.font_family,this.attributes.font=R.attributes.font,this.attributes.fill=R.attributes.fill,this.attributes.stroke=R.attributes.stroke,this.attributes["stroke-width"]=R.attributes["stroke-width"],this.shadow_attributes.width=R.shadow_attributes.width,this.shadow_attributes.color=R.shadow_attributes.color,this}}const attrNamesToIgnoreMap={path:{x:!0,y:!0,width:!0,height:!0},rect:{},text:{width:!0,height:!0}};{const F={"font-family":!0,"font-weight":!0,"font-style":!0,"font-size":!0};Vex.Merge(attrNamesToIgnoreMap.rect,F),Vex.Merge(attrNamesToIgnoreMap.path,F)}class SVGContext{constructor(R){this.element=R,this.svgNS="http://www.w3.org/2000/svg";const B=this.create("svg");this.element.appendChild(B),this.svg=B,this.groups=[this.svg],this.parent=this.svg,this.path="",this.pen={x:NaN,y:NaN},this.lineWidth=1,this.state={scale:{x:1,y:1},"font-family":"Arial","font-size":"8pt","font-weight":"normal"},this.attributes={"stroke-width":.3,fill:"black",stroke:"black","stroke-dasharray":"none","font-family":"Arial","font-size":"10pt","font-weight":"normal","font-style":"normal"},this.background_attributes={"stroke-width":0,fill:"white",stroke:"white","stroke-dasharray":"none","font-family":"Arial","font-size":"10pt","font-weight":"normal","font-style":"normal"},this.shadow_attributes={width:0,color:"black"},this.state_stack=[],this.iePolyfill()}create(R){return document.createElementNS(this.svgNS,R)}openGroup(R,B,D){const G=this.create("g");return this.groups.push(G),this.parent.appendChild(G),this.parent=G,R&&G.setAttribute("class",Vex.Prefix(R)),B&&G.setAttribute("id",Vex.Prefix(B)),D&&D.pointerBBox&&G.setAttribute("pointer-events","bounding-box"),G}closeGroup(){this.groups.pop(),this.parent=this.groups[this.groups.length-1]}add(R){this.parent.appendChild(R)}iePolyfill(){typeof navigator!="undefined"&&(this.ie=/MSIE 9/i.test(navigator.userAgent)||/MSIE 10/i.test(navigator.userAgent)||/rv:11\.0/i.test(navigator.userAgent)||/Trident/i.test(navigator.userAgent))}setFont(R,B,D){let G=!1,U=!1,W="normal";typeof D=="string"&&(D.indexOf("italic")!==-1&&(D=D.replace(/italic/g,""),U=!0),D.indexOf("bold")!==-1&&(D=D.replace(/bold/g,""),G=!0),D=D.replace(/ /g,"")),D=G?"bold":D,D=typeof D=="undefined"||D===""?"normal":D,W=U?"italic":W;const q={"font-family":R,"font-size":B+"pt","font-weight":D,"font-style":W};return this.fontSize=Number(B),Vex.Merge(this.attributes,q),Vex.Merge(this.state,q),this}setRawFont(R){R=R.trim();const B=R.split(" ");return this.attributes["font-family"]=B[1],this.state["font-family"]=B[1],this.attributes["font-size"]=B[0],this.state["font-size"]=B[0],this.fontSize=Number(B[0].match(/\d+/)),this}setFillStyle(R){return this.attributes.fill=R,this}setBackgroundFillStyle(R){return this.background_attributes.fill=R,this.background_attributes.stroke=R,this}setStrokeStyle(R){return this.attributes.stroke=R,this}setShadowColor(R){return this.shadow_attributes.color=R,this}setShadowBlur(R){return this.shadow_attributes.width=R,this}setLineWidth(R){this.attributes["stroke-width"]=R,this.lineWidth=R}setLineDash(R){if(Object.prototype.toString.call(R)==="[object Array]")return R=R.join(", "),this.attributes["stroke-dasharray"]=R,this;throw new Vex.RERR("ArgumentError","lineDash must be an array of integers.")}setLineCap(R){return this.attributes["stroke-linecap"]=R,this}resize(R,B){this.width=R,this.height=B,this.element.style.width=R;const D={width:R,height:B};return this.applyAttributes(this.svg,D),this.scale(this.state.scale.x,this.state.scale.y),this}scale(R,B){this.state.scale={x:R,y:B};const D=this.width/R,G=this.height/B;return this.setViewBox(0,0,D,G),this}setViewBox(...R){if(R.length===1){const[B]=R;this.svg.setAttribute("viewBox",B)}else{const[B,D,G,U]=R,W=B+" "+D+" "+G+" "+U;this.svg.setAttribute("viewBox",W)}}applyAttributes(R,B){const D=attrNamesToIgnoreMap[R.nodeName];return Object.keys(B).forEach(G=>{var U;D&&D[G]||!G||!B[G]||G==="d"&&((U=B[G])==null?void 0:U.indexOf("NaN"))>-1||R.setAttributeNS(null,G,B[G])}),R}clear(){for(;this.svg.lastChild;)this.svg.removeChild(this.svg.lastChild);this.scale(this.state.scale.x,this.state.scale.y)}rect(R,B,D,G,U){G<0&&(B+=G,G*=-1);const W=this.create("rect");return typeof U=="undefined"&&(U={fill:"none","stroke-width":this.lineWidth,stroke:"black"}),Vex.Merge(U,{x:R,y:B,width:D,height:G}),this.applyAttributes(W,U),this.add(W),this}fillRect(R,B,D,G){return G<0&&(B+=G,G*=-1),this.rect(R,B,D,G,this.attributes),this}clearRect(R,B,D,G){return this.rect(R,B,D,G,this.background_attributes),this}beginPath(){return this.path="",this.pen.x=NaN,this.pen.y=NaN,this}moveTo(R,B){return this.path+="M"+R+" "+B,this.pen.x=R,this.pen.y=B,this}lineTo(R,B){return this.path+="L"+R+" "+B,this.pen.x=R,this.pen.y=B,this}bezierCurveTo(R,B,D,G,U,W){return this.path+="C"+R+" "+B+","+D+" "+G+","+U+" "+W,this.pen.x=U,this.pen.y=W,this}quadraticCurveTo(R,B,D,G){return this.path+="Q"+R+" "+B+","+D+" "+G,this.pen.x=D,this.pen.y=G,this}arc(R,B,D,G,U,W){function q(Q){for(;Q<0;)Q+=Math.PI*2;for(;Q>Math.PI*2;)Q-=Math.PI*2;return Q}if(G=q(G),U=q(U),G>U){const Q=G;G=U,U=Q,W=!W}const Y=U-G;return Y>Math.PI?(this.arcHelper(R,B,D,G,G+Y/2,W),this.arcHelper(R,B,D,G+Y/2,U,W)):this.arcHelper(R,B,D,G,U,W),this}arcHelper(R,B,D,G,U,W){const q=R+D*Math.cos(G),Y=B+D*Math.sin(G),Q=R+D*Math.cos(U),Z=B+D*Math.sin(U);let K=0,ie=0;W?(ie=1,U-GMath.PI&&(K=1),this.path+="M"+q+" "+Y+" A"+D+" "+D+" 0 "+K+" "+ie+" "+Q+" "+Z,!isNaN(this.pen.x)&&!isNaN(this.pen.y)&&(this.peth+="M"+this.pen.x+" "+this.pen.y)}closePath(){return this.path+="Z",this}glow(){if(this.shadow_attributes.width>0){const R=this.shadow_attributes,B=R.width/2;for(let D=1;D<=B;D++){const G={stroke:R.color,"stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(R.width*.4/B*D).toFixed(3),opacity:+((R.opacity||.3)/B).toFixed(3)},U=this.create("path");G.d=this.path,this.applyAttributes(U,G),this.add(U)}}return this}fill(R){this.glow();const B=this.create("path");let D=R;return typeof R=="undefined"?(R={},Vex.Merge(R,this.attributes),R.stroke="none",D=R):(D=R,Vex.Merge(D,this.attributes),R.class&&(D.class=R.class),R.id&&(D.id=R.id)),R.d=this.path,this.applyAttributes(B,R),this.add(B),this}stroke(R=void 0){this.glow();const B=this.create("path"),D={};return Vex.Merge(D,this.attributes),R&&Vex.Merge(D,R),D.fill="none",D["stroke-width"]=this.lineWidth,D.d=this.path,this.applyAttributes(B,D),this.add(B),this}measureText(R){const B=this.create("text");if(typeof B.getBBox!="function")return{x:0,y:0,width:0,height:0};B.textContent=R,this.applyAttributes(B,this.attributes),this.svg.appendChild(B);let D=B.getBBox();return this.ie&&R!==""&&this.attributes["font-style"]==="italic"&&(D=this.ieMeasureTextFix(D,R)),this.svg.removeChild(B),D}ieMeasureTextFix(R){const B=Number(this.fontSize),D=1.196,G=1.9598,U=D*B+G,W=R.width-U,q=R.height-1.5;return{x:R.x,y:R.y,width:W,height:q}}fillText(R,B,D){if(!R||R.length<=0)return;const G={};Vex.Merge(G,this.attributes),G.stroke="none",G.x=B,G.y=D;const U=this.create("text");U.textContent=R,this.applyAttributes(U,G),this.add(U)}save(){return this.state_stack.push({state:{"font-family":this.state["font-family"],"font-weight":this.state["font-weight"],"font-style":this.state["font-style"],"font-size":this.state["font-size"],scale:this.state.scale},attributes:{"font-family":this.attributes["font-family"],"font-weight":this.attributes["font-weight"],"font-style":this.attributes["font-style"],"font-size":this.attributes["font-size"],fill:this.attributes.fill,stroke:this.attributes.stroke,"stroke-width":this.attributes["stroke-width"],"stroke-dasharray":this.attributes["stroke-dasharray"]},shadow_attributes:{width:this.shadow_attributes.width,color:this.shadow_attributes.color},lineWidth:this.lineWidth}),this}restore(){const R=this.state_stack.pop();return this.state["font-family"]=R.state["font-family"],this.state["font-weight"]=R.state["font-weight"],this.state["font-style"]=R.state["font-style"],this.state["font-size"]=R.state["font-size"],this.state.scale=R.state.scale,this.attributes["font-family"]=R.attributes["font-family"],this.attributes["font-weight"]=R.attributes["font-weight"],this.attributes["font-style"]=R.attributes["font-style"],this.attributes["font-size"]=R.attributes["font-size"],this.attributes.fill=R.attributes.fill,this.attributes.stroke=R.attributes.stroke,this.attributes["stroke-width"]=R.attributes["stroke-width"],this.attributes["stroke-dasharray"]=R.attributes["stroke-dasharray"],this.shadow_attributes.width=R.shadow_attributes.width,this.shadow_attributes.color=R.shadow_attributes.color,this.lineWidth=R.lineWidth,this}}let lastContext=null;class Renderer{static get Backends(){return{CANVAS:1,RAPHAEL:2,SVG:3,VML:4}}static get LineEndType(){return{NONE:1,UP:2,DOWN:3}}static get USE_CANVAS_PROXY(){return!1}static get lastContext(){return lastContext}static set lastContext(R){lastContext=R}static buildContext(R,B,D,G,U){const W=new Renderer(R,B);D&&G&&W.resize(D,G),U||(U="#FFF");const q=W.getContext();return q.setBackgroundFillStyle(U),Renderer.lastContext=q,q}static getCanvasContext(R,B,D,G){return Renderer.buildContext(R,Renderer.Backends.CANVAS,B,D,G)}static getRaphaelContext(R,B,D,G){return Renderer.buildContext(R,Renderer.Backends.RAPHAEL,B,D,G)}static getSVGContext(R,B,D,G){return Renderer.buildContext(R,Renderer.Backends.SVG,B,D,G)}static bolsterCanvasContext(R){if(Renderer.USE_CANVAS_PROXY)return new CanvasContext(R);const B=["clear","setFont","setRawFont","setFillStyle","setBackgroundFillStyle","setStrokeStyle","setShadowColor","setShadowBlur","setLineWidth","setLineCap","setLineDash","openGroup","closeGroup","getGroup"];return R.vexFlowCanvasContext=R,B.forEach(D=>{R[D]=R[D]||CanvasContext.prototype[D]}),R}static drawDashedLine(R,B,D,G,U,W){R.beginPath();const q=G-B,Y=U-D,Q=Math.atan2(Y,q);let Z=B,K=D;R.moveTo(B,D);let ie=0,te=!0;for(;!((q<0?Z<=G:Z>=G)&&(Y<0?K<=U:K>=U));){const ne=W[ie++%W.length],se=Z+Math.cos(Q)*ne;Z=q<0?Math.max(G,se):Math.min(G,se);const re=K+Math.sin(Q)*ne;K=Y<0?Math.max(U,re):Math.min(U,re),te?R.lineTo(Z,K):R.moveTo(Z,K),te=!te}R.closePath(),R.stroke()}constructor(R,B){if(this.elementId=R,!this.elementId)throw new Vex.RERR("BadArgument","Invalid id for renderer.");if(this.element=document.getElementById(R),this.element||(this.element=R),this.ctx=null,this.paper=null,this.backend=B,this.backend===Renderer.Backends.CANVAS){if(!this.element.getContext)throw new Vex.RERR("BadElement",`Can't get canvas context from element: ${R}`);this.ctx=Renderer.bolsterCanvasContext(this.element.getContext("2d"))}else if(this.backend===Renderer.Backends.RAPHAEL)this.ctx=new RaphaelContext(this.element);else if(this.backend===Renderer.Backends.SVG)this.ctx=new SVGContext(this.element);else throw new Vex.RERR("InvalidBackend",`No support for backend: ${this.backend}`)}resize(R,B){if(this.backend===Renderer.Backends.CANVAS){if(!this.element.getContext)throw new Vex.RERR("BadElement",`Can't get canvas context from element: ${this.elementId}`);[R,B]=CanvasContext.SanitizeCanvasDims(R,B);const D=window.devicePixelRatio||1;this.element.width=R*D,this.element.height=B*D,this.element.style.width=R+"px",this.element.style.height=B+"px",this.ctx=Renderer.bolsterCanvasContext(this.element.getContext("2d")),this.ctx.scale(D,D)}else this.ctx.resize(R,B);return this}getContext(){return this.ctx}}function L$j(...F){Stem.DEBUG&&Vex.L("Vex.Flow.Stem",F)}class Stem extends Element$1{static get CATEGORY(){return"stem"}static get UP(){return 1}static get DOWN(){return-1}static get WIDTH(){return Flow.STEM_WIDTH}static get HEIGHT(){return Flow.STEM_HEIGHT}constructor(R={}){super(),this.setAttribute("type","Stem"),this.x_begin=R.x_begin||0,this.x_end=R.x_end||0,this.y_top=R.y_top||0,this.y_bottom=R.y_bottom||0,this.stem_extension=R.stem_extension||0,this.stem_direction=R.stem_direction||0,this.hide=R.hide||!1,this.isStemlet=R.isStemlet||!1,this.stemletHeight=R.stemletHeight||0,this.resetHeight=0,this.renderHeightAdjustment=0,this.setOptions(R)}setResetHeight(R){this.resetHeight=R}setOptions(R){this.stem_up_y_offset=R.stem_up_y_offset||0,this.stem_down_y_offset=R.stem_down_y_offset||0}setNoteHeadXBounds(R,B){return this.x_begin=R,this.x_end=B,this}setDirection(R){this.stem_direction=R}setExtension(R){this.stem_extension=R}getExtension(){return this.stem_extension}setYBounds(R,B){this.y_top=R,this.y_bottom=B}getCategory(){return Stem.CATEGORY}getHeight(){const R=this.stem_direction===Stem.UP?this.stem_up_y_offset:this.stem_down_y_offset;return(this.y_bottom-this.y_top)*this.stem_direction+(Stem.HEIGHT-R+this.stem_extension)*this.stem_direction}getBoundingBox(){throw new Vex.RERR("NotImplemented","getBoundingBox() not implemented.")}getExtents(){const R=this.stem_direction===Stem.UP,B=[this.y_top,this.y_bottom],D=Stem.HEIGHT+this.stem_extension,G=(R?Math.min:Math.max)(...B),U=(R?Math.max:Math.min)(...B);return{topY:G+D*-this.stem_direction+this.resetHeight*-this.stem_direction,baseY:U}}setVisibility(R){return this.hide=!R,this}setStemlet(R,B){return this.isStemlet=R,this.stemletHeight=B,this}draw(){if(this.setRendered(),this.hide)return;const R=this.checkContext();let B,D;const G=this.stem_direction;G===Stem.DOWN?(B=this.x_begin,D=this.y_top+this.stem_down_y_offset):(B=this.x_end,D=this.y_bottom-this.stem_up_y_offset);const U=this.getHeight();L$j("Rendering stem - ","Top Y: ",this.y_top,"Bottom Y: ",this.y_bottom);const W=this.isStemlet?U-this.stemletHeight*this.stem_direction:0;if(R.save(),this.applyStyle(R),R.beginPath(),R.setLineWidth(Stem.WIDTH),R.moveTo(B,D-W),R.lineTo(B,D-U-this.renderHeightAdjustment*G-this.resetHeight*G),R.svg){const q={class:Vex.Prefix("stem")};this.id&&(q.id=this.id),R.stroke(q)}else R.stroke();this.restoreStyle(R),R.restore()}}class Tuplet$1 extends Element$1{static get LOCATION_TOP(){return 1}static get LOCATION_BOTTOM(){return-1}static get NESTING_OFFSET(){return 15}constructor(R,B){if(super(),this.setAttribute("type","Tuplet"),!R||!R.length)throw new Vex.RuntimeError("BadArguments","No notes provided for tuplet.");this.options=Vex.Merge({},B),this.notes=R,this.num_notes="num_notes"in this.options?this.options.num_notes:R.length,this.options.beats_occupied&&this.beatsOccupiedDeprecationWarning(),this.notes_occupied=this.options.notes_occupied||this.options.beats_occupied||2,"bracketed"in this.options?this.bracketed=this.options.bracketed:this.bracketed=R.some(D=>D.beam===null),this.ratioed="ratioed"in this.options?this.options.ratioed:Math.abs(this.notes_occupied-this.num_notes)>1,this.point=28,this.y_pos=16,this.x_pos=100,this.width=200,this.location=this.options.location||Tuplet$1.LOCATION_TOP,Formatter.AlignRestsToNotes(R,!0,!0),this.resolveGlyphs(),this.attach()}attach(){for(let R=0;R=1;)this.numerator_glyphs.unshift(new Glyph("v"+R%10,this.point)),R=parseInt(R/10,10);for(this.denom_glyphs=[],R=this.notes_occupied;R>=1;)this.denom_glyphs.unshift(new Glyph("v"+R%10,this.point)),R=parseInt(R/10,10)}getNestedTupletCount(){const R=this.location,B=this.notes[0];let D=U(B,R),G=U(B,R);function U(W,q){return W.tupletStack.filter(Y=>Y.location===q).length}return this.notes.forEach(W=>{const q=U(W,R);D=q>D?q:D,G=qG&&(G=W)}}return G+R+B}draw(){this.checkContext(),this.setRendered();const R=this.notes[0],B=this.notes[this.notes.length-1];this.bracketed?(this.x_pos=R.getTieLeftX()-5,this.width=B.getTieRightX()-this.x_pos+5):(this.x_pos=R.getStemX(),this.width=B.getStemX()-this.x_pos),this.y_pos=this.getYPosition();const D=(Y,Q)=>Y+Q.getMetrics().width;let G=this.numerator_glyphs.reduce(D,0);this.ratioed&&(G=this.denom_glyphs.reduce(D,G),G+=this.point*.32);const W=this.x_pos+this.width/2-G/2;if(this.bracketed){const Y=this.width/2-G/2-5;Y>0&&(this.context.fillRect(this.x_pos,this.y_pos,Y,1),this.context.fillRect(this.x_pos+this.width/2+G/2+5,this.y_pos,Y,1),this.context.fillRect(this.x_pos,this.y_pos+(this.location===Tuplet$1.LOCATION_BOTTOM),1,this.location*10),this.context.fillRect(this.x_pos+this.width,this.y_pos+(this.location===Tuplet$1.LOCATION_BOTTOM),1,this.location*10))}let q=0;if(this.numerator_glyphs.forEach(Y=>{Y.render(this.context,W+q,this.y_pos+this.point/3-2),q+=Y.getMetrics().width}),this.ratioed){const Y=W+q+this.point*.16,Q=this.point*.06;this.context.beginPath(),this.context.arc(Y,this.y_pos-this.point*.08,Q,0,Math.PI*2,!0),this.context.closePath(),this.context.fill(),this.context.beginPath(),this.context.arc(Y,this.y_pos+this.point*.12,Q,0,Math.PI*2,!0),this.context.closePath(),this.context.fill(),q+=this.point*.32,this.denom_glyphs.forEach(Z=>{Z.render(this.context,W+q,this.y_pos+this.point/3-2),q+=Z.getMetrics().width})}}}function calculateStemDirection(F){let R=0;return F.forEach(B=>{B.keyProps&&B.keyProps.forEach(D=>{R+=D.line-3})}),R>=0?Stem.DOWN:Stem.UP}const getStemSlope=(F,R)=>{const B=F.getStemExtents().topY,D=F.getStemX(),G=R.getStemExtents().topY,U=R.getStemX();return(G-B)/(U-D)},BEAM_LEFT="L",BEAM_RIGHT="R",BEAM_BOTH="B";class Beam$1 extends Element$1{static getDefaultBeamGroups(R){(!R||R==="c")&&(R="4/4");const D={"1/2":["1/2"],"2/2":["1/2"],"3/2":["1/2"],"4/2":["1/2"],"1/4":["1/4"],"2/4":["1/4"],"3/4":["1/4"],"4/4":["1/4"],"1/8":["1/8"],"2/8":["2/8"],"3/8":["3/8"],"4/8":["2/8"],"1/16":["1/16"],"2/16":["2/16"],"3/16":["3/16"],"4/16":["2/16"]}[R];if(D===void 0){const G=parseInt(R.split("/")[0],10),U=parseInt(R.split("/")[1],10);if(G%3===0)return[new Fraction(3,U)];if(U>4)return[new Fraction(2,U)];if(U<=4)return[new Fraction(1,U)]}else return D.map(G=>new Fraction().parse(G));return[new Fraction(1,4)]}static applyAndGetBeams(R,B,D){return Beam$1.generateBeams(R.getTickables(),{groups:D,stem_direction:B})}static generateBeams(R,B){B||(B={}),(!B.groups||!B.groups.length)&&(B.groups=[new Fraction(2,8)]);const D=B.groups.map(he=>{if(!he.multiply)throw new Vex.RuntimeError("InvalidBeamGroups","The beam groups must be an array of Vex.Flow.Fractions");return he.clone().multiply(Flow.RESOLUTION,1)}),G=R;let U=0,W=[],q=[];function Y(he){return he.reduce((pe,me)=>me.getTicks().clone().add(pe),new Fraction(0,1))}function Q(){D.length-1>U?U+=1:U=0}function Z(){let he=[];G.forEach(pe=>{if(he=[],pe.shouldIgnoreTicks()){W.push(q),q=he;return}q.push(pe);const me=D[U].clone(),fe=Y(q),ge=Flow.durationToNumber(pe.duration)<8;ge&&pe.tuplet&&(me.numerator*=2),fe.greaterThan(me)?(ge||he.push(q.pop()),W.push(q),q=he,Q()):fe.equals(me)&&(W.push(q),q=he,Q())}),q.length>0&&W.push(q)}function K(){return W.filter(he=>{if(he.length>1){let pe=!0;return he.forEach(me=>{me.getIntrinsicTicks()>=Flow.durationToTicks("4")&&(pe=!1)}),pe}return!1})}function ie(){const he=[];W.forEach(pe=>{let me=[];pe.forEach((fe,ge,Se)=>{const Ee=ge===0||ge===Se.length-1,ve=Se[ge-1],xe=!B.beam_rests&&fe.isRest(),Me=B.beam_rests&&B.beam_middle_only&&fe.isRest()&&Ee;let ye=!1;if(B.maintain_stem_directions&&ve&&!fe.isRest()&&!ve.isRest()){const Pe=ve.getStemDirection();ye=fe.getStemDirection()!==Pe}const we=parseInt(fe.duration,10)<8;xe||Me||ye||we?(me.length>0&&he.push(me),me=ye?[fe]:[]):me.push(fe)}),me.length>0&&he.push(me)}),W=he}function te(){W.forEach(he=>{let pe;if(B.maintain_stem_directions){const me=ne(he);pe=me?me.getStemDirection():Stem.UP}else B.stem_direction?pe=B.stem_direction:pe=calculateStemDirection(he);se(he,pe)})}function ne(he){for(let pe=0;pe{me.setStemDirection(pe)})}function re(){const he=[];return W.forEach(pe=>{let me=null;pe.forEach(fe=>{fe.tuplet&&me!==fe.tuplet&&(me=fe.tuplet,he.push(me))})}),he}Z(),ie(),te();const ae=K(),le=re(),ce=[];return ae.forEach(he=>{const pe=new Beam$1(he);B.show_stemlets&&(pe.render_options.show_stemlets=!0),B.secondary_breaks&&(pe.render_options.secondary_break_ticks=Flow.durationToTicks(B.secondary_breaks)),B.flat_beams===!0&&(pe.render_options.flat_beams=!0,pe.render_options.flat_beam_offset=B.flat_beam_offset),ce.push(pe)}),le.forEach(he=>{const pe=he.notes[0].stem_direction===Stem.DOWN?Tuplet$1.LOCATION_BOTTOM:Tuplet$1.LOCATION_TOP;he.setTupletLocation(pe);let me=!1;for(let fe=0;fe=Flow.durationToTicks("4"))throw new Vex.RuntimeError("BadArguments","Beams can only be applied to notes shorter than a quarter note.");let D,G;for(this.stem_direction=Stem.UP,D=0;Dq+Y.stem_direction,0)>-1?Stem.UP:Stem.DOWN),D=0;DD.getGlyph().beam_count).reduce((D,G)=>G>D?G:D)}breakSecondaryAt(R){return this.break_on_indices=R,this}getSlopeY(R,B,D,G){return D+(R-B)*G}calculateSlope(){const{notes:R,stem_direction:B,render_options:{max_slope:D,min_slope:G,slope_iterations:U,slope_cost:W}}=this,q=R[0],Y=getStemSlope(q,R[R.length-1]),Q=(D-G)/U;let Z=Number.MAX_VALUE,K=0,ie=0;for(let te=G;te<=D;te+=Q){let ne=0,se=0;for(let ce=1;cere)&&(Q=re,q=Math.min(...se.getYs()),Y=se.getBeamCount())}let Z=W/R.length;const K=D*1.5,ie=G+Y*K,te=q+ie*-B;B===Stem.DOWN&&Zte&&(Z=q-ie),U+this.render_options.flat_beam_offset_per_beam>0?B===Stem.DOWN&&Z>U&&!this.render_options.flat_beams?this.render_options.flat_beam_offset=Z:B===Stem.UP&&Z0){let G=this.render_options.flat_beam_offset;this.render_options.flat_beam_offset_per_beam&&(G+=this.render_options.flat_beam_offset_per_beam*this.getBeamCount());let U=this.notes[0].note_heads[0].y;const W=this.stem_direction>0?Math.min:Math.max;for(const q of this.notes)for(const Y of q.note_heads)U=W(U,Y.y);D=U+G*-this.stem_direction}return D}applyStemExtensions(){const{notes:R,slope:B,y_shift:D,stem_direction:G,beam_count:U,render_options:{show_stemlets:W,stemlet_extension:q,beam_width:Y}}=this,Q=R[0],Z=this.getBeamYToDraw(),K=Q.getStemX();for(let ie=0;ie=8&&(te=this.break_on_indices.indexOf(Z)!==-1,this.render_options.secondary_break_ticks&&Y>=this.render_options.secondary_break_ticks&&(Y=0,te=!0));const ne=K.getIntrinsicTicks(){R.getStem()&&(this.context.openGroup("stem",R.getAttribute("id")+"-stem"),R.getStem().setContext(this.context).draw(),this.context.closeGroup())},this)}drawBeamLines(){this.checkContext();const R=["4","8","16","32","64"],B=this.notes[0];let D=this.getBeamYToDraw();const G=B.getStemX(),U=this.render_options.beam_width*this.stem_direction,W={};for(const q of this.notes)W[q.getAttribute("id")]=0;for(let q=0;q{R.getStave()||R.setStave(this.stave)}),this.preFormatted=!0,this)}draw(R=this.context,B=this.stave){this.setRendered();let D=null;for(let G=0;G0&&D){const W=U.getBoundingBox();W&&D.mergeWith(W)}U.setContext(R),U.drawWithStyle()}this.boundingBox=D}}function drawBoldDoubleLine(F,R,B,D,G){if(R!==StaveConnector.type.BOLD_DOUBLE_LEFT&&R!==StaveConnector.type.BOLD_DOUBLE_RIGHT)throw new Vex.RERR("InvalidConnector","A REPEAT_BEGIN or REPEAT_END type must be provided.");let U=3,W=3.5;const q=2;R===StaveConnector.type.BOLD_DOUBLE_RIGHT&&(U=-5,W=3),F.fillRect(B+U,D,1,G-D),F.fillRect(B-q,D,W,G-D)}class StaveConnector extends Element$1{static get type(){return{SINGLE_RIGHT:0,SINGLE_LEFT:1,SINGLE:1,DOUBLE:2,BRACE:3,BRACKET:4,BOLD_DOUBLE_LEFT:5,BOLD_DOUBLE_RIGHT:6,THIN_DOUBLE:7,NONE:8}}static get typeString(){return{singleRight:StaveConnector.type.SINGLE_RIGHT,singleLeft:StaveConnector.type.SINGLE_LEFT,single:StaveConnector.type.SINGLE,double:StaveConnector.type.DOUBLE,brace:StaveConnector.type.BRACE,bracket:StaveConnector.type.BRACKET,boldDoubleLeft:StaveConnector.type.BOLD_DOUBLE_LEFT,boldDoubleRight:StaveConnector.type.BOLD_DOUBLE_RIGHT,thinDouble:StaveConnector.type.THIN_DOUBLE,none:StaveConnector.type.NONE}}constructor(R,B){super(),this.setAttribute("type","StaveConnector"),this.thickness=Flow.STAVE_LINE_THICKNESS,this.width=3,this.top_stave=R,this.bottom_stave=B,this.type=StaveConnector.type.DOUBLE,this.font={family:"times",size:16,weight:"normal"},this.x_shift=0,this.texts=[]}setType(R){return R=typeof R=="string"?StaveConnector.typeString[R]:R,R>=StaveConnector.type.SINGLE_RIGHT&&R<=StaveConnector.type.NONE&&(this.type=R),this}setText(R,B){return this.texts.push({content:R,options:Vex.Merge({shift_x:0,shift_y:0},B)}),this}setFont(R){Vex.Merge(this.font,R)}setXShift(R){if(typeof R!="number")throw Vex.RERR("InvalidType","x_shift must be a Number");return this.x_shift=R,this}draw(){const R=this.checkContext();this.setRendered();let B=this.top_stave.getYForLine(0),D=this.bottom_stave.getYForLine(this.bottom_stave.getNumLines()-1)+this.thickness,G=this.width,U=this.top_stave.getX();(this.type===StaveConnector.type.SINGLE_RIGHT||this.type===StaveConnector.type.BOLD_DOUBLE_RIGHT||this.type===StaveConnector.type.THIN_DOUBLE)&&(U=this.top_stave.getX()+this.top_stave.width);let q=D-B;switch(this.type){case StaveConnector.type.SINGLE:G=1;break;case StaveConnector.type.SINGLE_LEFT:G=1;break;case StaveConnector.type.SINGLE_RIGHT:G=1;break;case StaveConnector.type.DOUBLE:U-=this.width+2;break;case StaveConnector.type.BRACE:{G=12;const Y=this.top_stave.getX()-2+this.x_shift,Q=B,Z=Y,K=D,ie=Y-G,te=Q+q/2,ne=ie-.9*G,se=Q+.2*q,re=Y+1.1*G,ae=te-.135*q,le=re,ce=te+.135*q,he=ne,pe=K-.2*q,me=ie-G,fe=pe,ge=Y+.4*G,Se=te+.135*q,Ee=ge,ve=te-.135*q,xe=me,Me=se;R.beginPath(),R.moveTo(Y,Q),R.bezierCurveTo(ne,se,re,ae,ie,te),R.bezierCurveTo(le,ce,he,pe,Z,K),R.bezierCurveTo(me,fe,ge,Se,ie,te),R.bezierCurveTo(Ee,ve,xe,Me,Y,Q),R.fill(),R.stroke();break}case StaveConnector.type.BRACKET:B-=4,D+=4,q=D-B,Glyph.renderGlyph(R,U-5,B-3,40,"v1b",!0),Glyph.renderGlyph(R,U-5,D+3,40,"v10",!0),U-=this.width+2;break;case StaveConnector.type.BOLD_DOUBLE_LEFT:drawBoldDoubleLine(R,this.type,U+this.x_shift,B,D);break;case StaveConnector.type.BOLD_DOUBLE_RIGHT:drawBoldDoubleLine(R,this.type,U,B,D);break;case StaveConnector.type.THIN_DOUBLE:G=1;break;case StaveConnector.type.NONE:break;default:throw new Vex.RERR("InvalidType",`The provided StaveConnector.type (${this.type}) is invalid`)}this.type!==StaveConnector.type.BRACE&&this.type!==StaveConnector.type.BOLD_DOUBLE_LEFT&&this.type!==StaveConnector.type.BOLD_DOUBLE_RIGHT&&this.type!==StaveConnector.type.NONE&&R.fillRect(U,B,G,q),this.type===StaveConnector.type.THIN_DOUBLE&&R.fillRect(U-3,B,G,q),R.save(),R.lineWidth=2,R.setFont(this.font.family,this.font.size,this.font.weight);for(let Y=0;Y0){const re=se.space.deviation,ae=re>=0?"+":"";R.setFillStyle("red"),R.fillText(ae+Math.round(re),q+B.getXShift(),D-10)}R.restore()}constructor(R){if(super(),this.setAttribute("type","Note"),!R)throw new Vex.RuntimeError("BadArguments","Note must have valid initialization data to identify duration and type.");const B=Flow.parseNoteStruct(R);if(!B)throw new Vex.RuntimeError("BadArguments",`Invalid note initialization object: ${JSON.stringify(R)}`);if(this.duration=B.duration,this.dots=B.dots,this.noteType=B.type,this.customTypes=B.customTypes,this.DYMusicScoreType=R.DYMusicScoreType,R.duration_override?this.setDuration(R.duration_override):this.setIntrinsicTicks(B.ticks),this.modifiers=[],this.glyph=Flow.getGlyphProps(this.duration,this.noteType),this.customGlyphs=this.customTypes.map(D=>Flow.getGlyphProps(this.duration,D)),this.positions&&(typeof this.positions!="object"||!this.positions.length))throw new Vex.RuntimeError("BadArguments","Note keys must be array type.");this.playNote=null,this.tickContext=null,this.modifierContext=null,this.ignore_ticks=!1,this.width=0,this.extraLeftPx=0,this.extraRightPx=0,this.x_shift=0,this.left_modPx=0,this.right_modPx=0,this.voice=null,this.preFormatted=!1,this.ys=[],R.align_center&&this.setCenterAlignment(R.align_center),this.stave=null,this.render_options={annotation_spacing:5,stave_padding:Note.STAVEPADDING}}getPlayNote(){return this.playNote}setPlayNote(R){return this.playNote=R,this}isRest(){return!1}addStroke(R,B){return B.setNote(this),B.setIndex(R),this.modifiers.push(B),this.setPreFormatted(!1),this}getStave(){return this.stave}setStave(R){return this.stave=R,this.setYs([R.getYForLine(0)]),this.context=this.stave.context,this}getCategory(){return Note.CATEGORY}setContext(R){return this.context=R,this}getExtraLeftPx(){return this.extraLeftPx}getExtraRightPx(){return this.extraRightPx}setExtraLeftPx(R){return this.extraLeftPx=R,this}setExtraRightPx(R){return this.extraRightPx=R,this}shouldIgnoreTicks(){return this.ignore_ticks}getLineNumber(){return 0}getLineForRest(){return 0}getGlyph(){return this.glyph}getGlyphWidth(){return this.glyph.getWidth?this.glyph.getWidth(this.render_options.glyph_font_scale):15}setYs(R){return this.ys=R,this}getYs(){if(this.ys.length===0)throw new Vex.RERR("NoYValues","No Y-values calculated for this note.");return this.ys}getYForTopText(R){if(!this.stave)throw new Vex.RERR("NoStave","No stave attached to this note.");return this.stave.getYForTopText(R)}getBoundingBox(){return null}getVoice(){if(!this.voice)throw new Vex.RERR("NoVoice","Note has no voice.");return this.voice}setVoice(R){return this.voice=R,this.preFormatted=!1,this}getTickContext(){return this.tickContext}setTickContext(R){return this.tickContext=R,this.preFormatted=!1,this}getDuration(){return this.duration}isDotted(){return this.dots>0}hasStem(){return!1}getDots(){return this.dots}getNoteType(){return this.noteType}setBeam(){return this}setModifierContext(R){return this.modifierContext=R,this}addModifier(R,B=0){return R.setNote(this),R.setIndex(B),this.modifiers.push(R),this.setPreFormatted(!1),this}getModifierStartXY(){if(!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call GetModifierStartXY on an unformatted note");return{x:this.getAbsoluteX(),y:this.ys[0]}}getMetrics(){if(!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call getMetrics on an unformatted note.");let R=0,B=0;this.modifierContext!=null&&(R=this.modifierContext.state.left_shift,B=this.modifierContext.state.right_shift);const D=this.getWidth();return{width:D,noteWidth:D-R-B-this.extraLeftPx-this.extraRightPx,left_shift:this.x_shift,modLeftPx:R,modRightPx:B,extraLeftPx:this.extraLeftPx,extraRightPx:this.extraRightPx}}setWidth(R){this.width=R}getWidth(){if(!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call GetWidth on an unformatted note.");return this.width+(this.modifierContext?this.modifierContext.getWidth():0)}setXShift(R){return this.x_shift=R,this}getXShift(){return this.x_shift}getX(){if(!this.tickContext)throw new Vex.RERR("NoTickContext","Note needs a TickContext assigned for an X-Value");return this.tickContext.getX()+this.x_shift}getAbsoluteX(){if(!this.tickContext)throw new Vex.RERR("NoTickContext","Note needs a TickContext assigned for an X-Value");let R=this.tickContext.getX();return this.stave&&(R+=this.stave.getNoteStartX()+this.render_options.stave_padding),this.isCenterAligned()&&(this.DYMusicScoreType==="jianpu"||(R+=this.getCenterXShift())),R}setPreFormatted(R){if(this.preFormatted=R,this.preFormatted){const B=this.tickContext.getExtraPx();this.left_modPx=Math.max(this.left_modPx,B.left),this.right_modPx=Math.max(this.right_modPx,B.right)}}}function L$i(...F){NoteHead.DEBUG&&Vex.L("Vex.Flow.NoteHead",F)}function drawSlashNoteHead(F,R,B,D,G,U){const W=Flow.SLASH_NOTEHEAD_WIDTH;F.save(),F.setLineWidth(Flow.STEM_WIDTH);let q=!1;if(Flow.durationToNumber(R)>2&&(q=!0),q||(B-=Flow.STEM_WIDTH/2*G),F.beginPath(),F.moveTo(B,D+U),F.lineTo(B,D+1),F.lineTo(B+W,D-U),F.lineTo(B+W,D),F.lineTo(B,D+U),F.closePath(),q?F.fill():F.stroke(),Flow.durationToFraction(R).equals(.5)){const Y=[-3,-1,W+1,W+3];for(let Q=0;Q{const q=W.getTickContext();W.setStave(B.stave),q.setXOffset(U)})}}class Dot extends Modifier{static get CATEGORY(){return"dots"}static format(R,B){const D=B.right_shift,G=1;if(!R||R.length===0)return!1;const U=[],W={};for(let te=0;tene.line-te.line);let q=D,Y=0,Q=null,Z=null,K=null,ie=0;for(let te=0;teY?q:Y,Q=ae,Z=se}return B.right_shift+=Y,!0}constructor(){super(),this.setAttribute("type","Dot"),this.note=null,this.index=null,this.position=Modifier.Position.RIGHT,this.radius=2,this.setWidth(5),this.dot_shiftY=0}getCategory(){return Dot.CATEGORY}setNote(R){this.note=R,this.note.getCategory()==="gracenotes"&&(this.radius*=.5,this.setWidth(3))}setDotShiftY(R){return this.dot_shiftY=R,this}draw(){if(this.checkContext(),this.setRendered(),!this.note||this.index===null)throw new Vex.RERR("NoAttachedNote","Can't draw dot without a note and index.");const R=this.note.stave.options.spacing_between_lines_px,B=this.note.getModifierStartXY(this.position,this.index,{forceFlagRight:!0});this.note.getCategory()==="tabnotes"&&(B.y=this.note.getStemExtents().baseY+1);const D=B.x+this.x_shift+this.width-this.radius,G=B.y+this.y_shift+this.dot_shiftY*R,U=this.context;U.beginPath(),U.arc(D,G,this.radius,0,Math.PI*2,!1),U.fill()}}function L$h(...F){StaveNote.DEBUG&&Vex.L("Vex.Flow.StaveNote",F)}const getStemAdjustment=F=>Stem.WIDTH/(2*-F.getStemDirection()),isInnerNoteIndex=(F,R)=>R===(F.getStemDirection()===Stem.UP?F.keyProps.length-1:0);function shiftRestVertical(F,R,B){const D=(R.isrest?0:1)*B;F.line+=D,F.maxLine+=D,F.minLine+=D,F.note.setKeyLine(0,F.note.getKeyLine(0)+D)}function centerRest(F,R,B){const D=F.line-Vex.MidLine(R.minLine,B.maxLine);F.note.setKeyLine(0,F.note.getKeyLine(0)-D),F.line-=D,F.maxLine-=D,F.minLine-=D}class StaveNote extends StemmableNote{static get CATEGORY(){return"stavenotes"}static get STEM_UP(){return Stem.UP}static get STEM_DOWN(){return Stem.DOWN}static get DEFAULT_LEDGER_LINE_OFFSET(){return 3}static renderVibrato(R,B,D,G,U){const{vibrato_width:W,wave_width:q,wave_girth:Y,wave_height:Q}=G,Z=W/q,K=Math.abs(U-D)/Z+2;R.beginPath();let ie;for(R.moveTo(B,D+Y),ie=0;ie2?D[1]:null;let Y=U>2?D[2]:D[1];U===2&&W.stemDirection===-1&&Y.stemDirection===1&&(W=D[1],Y=D[0]);const Q=Math.max(W.voice_shift,Y.voice_shift);let Z=0,K;if(U===2){const ie=W.stemDirection===Y.stemDirection?0:.5;if(W.stemDirection===Y.stemDirection&&W.minLine<=Y.maxLine&&(W.isrest||(K=Math.abs(W.line-(Y.maxLine+.5)),K=Math.max(K,W.stemMin),W.minLine=W.line-K,W.note.setStemLength(K*10))),W.minLine<=Y.maxLine+ie)if(W.isrest)shiftRestVertical(W,Y,1);else if(Y.isrest)shiftRestVertical(Y,W,-1);else{Z=Q;const te=Math.abs(W.line-Y.line);let ne=0,se=0;W.note.duration==="h"?ne++:W.note.duration==="w"&&se++,Y.note.duration==="h"?ne++:Y.note.duration==="w"&&se++;let re=ne===1||se===1||W.note.dots!==Y.note.dots;if(G&&(re=re||se===2),te===0&&re){if(Y.note.setXShift(Z),W.note.dots>0){let ae=0;for(const le of W.note.modifiers)if(le instanceof Dot&&(ae++,le.setYShift(-10*(Y.maxLine-W.line+1)),ae===W.note.dots))break}}else te<1&&te>0?Y.note.setXShift(Z):W.note.voice!==Y.note.voice&&W.stemDirection===Y.stemDirection&&(W.line>Y.line?W.stemDirection===1?Y.note.renderFlag=!1:W.note.renderFlag=!1:Y.line>W.line?Y.stemDirection===1?W.note.renderFlag=!1:Y.note.renderFlag=!1:Y.stemDirection===1&&(Y.stemDirection=-1,Y.note.setStemDirection(-1)))}return!0}if(q!==null&&q.minLineB.postFormat()),!0):!1}constructor(R){if(super(R),this.setAttribute("type","StaveNote"),this.keys=R.keys,this.clef=R.clef,this.octave_shift=R.octave_shift,this.beam=null,this.vibrato=null,this.glyph=Flow.getGlyphProps(this.duration,this.noteType),!this.glyph)throw new Vex.RuntimeError("BadArguments",`Invalid note initialization data (No glyph found): ${JSON.stringify(R)}`);this.displaced=!1,this.dot_shiftY=0,this.addDotsCount=0,this.keyProps=[],this.use_default_head_x=!1,this.note_heads=[],this.modifiers=[],Vex.Merge(this.render_options,{glyph_font_scale:R.glyph_font_scale||Flow.DEFAULT_NOTATION_FONT_SCALE,stroke_px:R.stroke_px||StaveNote.DEFAULT_LEDGER_LINE_OFFSET}),this.calculateKeyProps(),this.buildStem(),R.auto_stem?this.autoStem():this.setStemDirection(R.stem_direction),this.reset(),this.buildFlag()}reset(){super.reset();const R=this.note_heads.map(B=>B.getStyle());this.buildNoteHeads(),this.note_heads.forEach((B,D)=>B.setStyle(R[D])),this.stave&&this.note_heads.forEach(B=>B.setStave(this.stave)),this.calcExtraPx()}setBeam(R){return this.beam=R,this.calcExtraPx(),this}setVibrato(R){this.vibrato=R}getCategory(){return StaveNote.CATEGORY}buildStem(){this.setStem(new Stem({hide:!!this.isRest()})),this.stem.id=Vex.Prefix(`${this.getAttribute("id")}-stem`)}buildNoteHeads(){this.note_heads=[];const R=this.getStemDirection(),B=this.getKeys();let D=null,G=null,U=!1,W,q,Y;R===Stem.UP?(W=0,q=B.length,Y=1):R===Stem.DOWN&&(W=B.length-1,q=-1,Y=-1);for(let Q=W;Q!==q;Q+=Y){const Z=this.keyProps[Q],K=Z.line;D===null?D=K:(G=Math.abs(D-K),G===0||G===.5?U=!U:(U=!1,this.use_default_head_x=!0)),D=K;const ie=new NoteHead({duration:this.duration,note_type:this.noteType,displaced:U,stem_direction:R,custom_glyph_code:Z.code,glyph_font_scale:this.render_options.glyph_font_scale,x_shift:Z.shift_right,stem_up_x_offset:Z.stem_up_x_offset,stem_down_x_offset:Z.stem_down_x_offset,line:Z.line});this.note_heads[Q]=ie}}autoStem(){this.minLine=this.keyProps[0].line,this.maxLine=this.keyProps[this.keyProps.length-1].line;const R=3,D=(this.minLine+this.maxLine)/20&&(this.keyProps[B-1].displaced=!0)),R=W,this.keyProps.push(U)}R=-1/0,this.keyProps.forEach(B=>{B.lineB.line-D.line)}getBoundingBox(){if(!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call getBoundingBox on an unformatted note.");const{width:R,modLeftPx:B,extraLeftPx:D}=this.getMetrics(),G=this.getAbsoluteX()-B-D;let U=0,W=0;const q=this.getStave().getSpacingBetweenLines()/2,Y=q*2;if(this.isRest()){const Q=this.ys[0],Z=Flow.durationToFraction(this.duration);Z.equals(1)||Z.equals(2)?(U=Q-q,W=Q+q):(U=Q-this.glyph.line_above*Y,W=Q+this.glyph.line_below*Y)}else if(this.glyph.stem){const Q=this.getStemExtents();Q.baseY+=q*this.stem_direction,U=Math.min(Q.topY,Q.baseY),W=Math.max(Q.topY,Q.baseY)}else{U=null,W=null;for(let Q=0;QB&&(B=G):G1}hasStem(){return this.glyph.stem}hasFlag(){return super.hasFlag()&&!this.isRest()&&this.renderFlag}getStemX(){return this.noteType==="r"?this.getCenterGlyphX():super.getStemX()+getStemAdjustment(this)}getYForTopText(R){const B=this.getStemExtents();return Math.min(this.stave.getYForTopText(R),B.topY-this.render_options.annotation_spacing*(R+1))}getYForBottomText(R){const B=this.getStemExtents();return Math.max(this.stave.getYForTopText(R),B.baseY+this.render_options.annotation_spacing*R)}setStave(R){super.setStave(R);const B=this.note_heads.map(D=>(D.setStave(R),D.getY()));if(this.setYs(B),this.stem){const{y_top:D,y_bottom:G}=this.getNoteHeadBounds();this.stem.setYBounds(D,G)}return this}getKeys(){return this.keys}getKeyProps(){return this.keyProps}isDisplaced(){return this.displaced}setNoteDisplaced(R){return this.displaced=R,this}getTieRightX(){let R=this.getAbsoluteX();return R+=this.getGlyphWidth()+this.x_shift+this.extraRightPx,this.modifierContext&&(R+=this.modifierContext.getExtraRightPx()),R}getTieLeftX(){let R=this.getAbsoluteX();return R+=this.x_shift-this.extraLeftPx,R}getLineForRest(){let R=this.keyProps[0].line;if(this.keyProps.length>1){const B=this.keyProps[this.keyProps.length-1].line,D=Math.max(R,B),G=Math.min(R,B);R=Vex.MidLine(D,G)}return R}getModifierStartXY(R,B,D){if(D=D||{},!this.preFormatted)throw new Vex.RERR("UnformattedNote","Can't call GetModifierStartXY on an unformatted note");if(this.ys.length===0)throw new Vex.RERR("NoYValues","No Y-Values calculated for this note.");const{ABOVE:G,BELOW:U,LEFT:W,RIGHT:q}=Modifier.Position;let Y=0;return R===W?Y=-1*2:R===q?(Y=this.getGlyphWidth()+this.x_shift+2,this.stem_direction===Stem.UP&&this.hasFlag()&&(D.forceFlagRight||isInnerNoteIndex(this,B))&&(Y+=this.flag.getMetrics().width)):(R===U||R===G)&&(Y=this.getGlyphWidth()/2),{x:this.getAbsoluteX()+Y,y:this.ys[B]}}setStyle(R){super.setStyle(R),this.note_heads.forEach(B=>B.setStyle(R)),this.stem&&this.stem.setStyle(R)}setStemStyle(R){this.stem&&this.getStem().setStyle(R)}getStemStyle(){return this.stem.getStyle()}setLedgerLineStyle(R){this.ledgerLineStyle=R}getLedgerLineStyle(){return this.ledgerLineStyle}setFlagStyle(R){this.flagStyle=R}getFlagStyle(){return this.flagStyle}setKeyStyle(R,B){return this.note_heads[R].setStyle(B),this}setKeyLine(R,B){return(this.glyph.code_head=="va5"||this.glyph.code_head=="v3c")&&(B=3),this.keyProps[R].line=B,this.reset(),this}getKeyLine(R){return this.keyProps[R].line}addToModifierContext(R){this.setModifierContext(R);for(let B=0;B{const ie=K.getLine(),te=K.getY();(R===null||teB)&&(B=te),G===null&&K.isDisplaced()&&(G=K.getAbsoluteX()),D===null&&!K.isDisplaced()&&(D=K.getAbsoluteX()),U=ie>U?ie:U,W=ie{let pe;he&&ce?pe=se-D:ce?pe=ne-D:pe=te-D;const me=ce&&he?W:U;G.beginPath(),G.moveTo(pe,le),G.lineTo(pe+me,le),G.stroke()},ae={...R.getStyle()||{},...this.getLedgerLineStyle()||{}};this.applyStyle(G,ae);for(let le=6;le<=q;++le){const ce=ne!==null&&le<=Z,he=te!==null&&le<=Q;re(R.getYForNote(le),ce,he)}for(let le=0;le>=Y;--le){const ce=ne!==null&&le>=ie,he=te!==null&&le>=K;re(R.getYForNote(le),ce,he)}this.restoreStyle(G,ae)}drawVibrato(){if(this.vibrato){const R=this.context;R.openGroup("vibrato");const B=this.vibrato.getNoteHeadEndX()+2,{y_top:D}=this.vibrato.getNoteHeadBounds();let{y_bottom:G}=this.getNoteHeadBounds(),U=Math.abs(this.getNoteHeadBeginX()-B)-10;this.vibrato.stave.y!==this.stave.y&&(U=30,G=D+10),StaveNote.renderVibrato(this.context,B,D,{harsh:!0,vibrato_width:U,wave_height:6,wave_width:4,wave_girth:2},G),R.closeGroup()}}drawModifiers(){if(!this.context)throw new Vex.RERR("NoCanvasContext","Can't draw without a canvas context.");const R=this.context;R.openGroup("modifiers");for(let B=0;B6.5||K<-.5)&&(Z=Z+(K>6.5?(K-6.5)*10:(K+.5)*10))}D.openGroup("flag",null,{pointerBBox:!0}),this.applyStyle(D,this.getFlagStyle()||!1),this.flag.render(D,Q,Z),this.restoreStyle(D,this.getFlagStyle()||!1),D.closeGroup()}}drawNoteHeads(){this.note_heads.forEach(R=>{this.context.openGroup("notehead",null,{pointerBBox:!0});try{if(this.isRest()&&this.duration==="w"){const B=this.stave.options.line_config.filter(G=>G.visible).length;this.keyProps[0].line===4&&B<5&&R.setY(R.getY()+10),B===1&&R.setLine(3)}}catch{}R.setContext(this.context).draw(),this.context.closeGroup()})}drawStem(R){if(!this.context)throw new Vex.RERR("NoCanvasContext","Can't draw without a canvas context.");R&&this.setStem(new Stem(R)),this.stem.id=Vex.Prefix(`${this.getAttribute("id")}-stem`),this.stem&&(this.context.openGroup("stem",null,{pointerBBox:!0}),this.stem.setContext(this.context).draw(),this.context.closeGroup())}draw(){if(!this.context)throw new Vex.RERR("NoCanvasContext","Can't draw without a canvas context.");if(!this.stave)throw new Vex.RERR("NoStave","Can't draw without a stave.");if(this.ys.length===0)throw new Vex.RERR("NoYValues","Can't draw note without Y values.");const R=this.stave.getLines();if(R===2||R===3||R===4)for(let G=0;GG.setX(B)),this.stem){let G=this.getStemX();const U=this.keyProps[0].line;(U>6.5||U<-.5)&&(this.beam||(this.stem.renderHeightAdjustment=U>6.5?(U-6.5)*10:Math.abs(U+.5)*10)),this.stem.setNoteHeadXBounds(G,G)}L$h("Rendering ",this.isChord()?"chord :":"note :",this.keys),this.drawLedgerLines(),this.applyStyle(),this.setAttribute("el",this.context.openGroup("stavenote",this.getAttribute("id"))),this.context.openGroup("note",null,{pointerBBox:!0}),D&&this.drawStem(),this.drawNoteHeads(),this.drawFlag(),this.context.closeGroup(),this.drawModifiers(),this.context.closeGroup(),this.restoreStyle(),this.setRendered()}}class FretHandFinger extends Modifier{static get CATEGORY(){return"frethandfinger"}static format(R,B){const{left_shift:D,right_shift:G}=B,U=1;if(!R||R.length===0)return!1;const W=[];let q=null,Y=0,Q=0;for(let re=0;reae.line-re.line);let Z=0,K=0,ie=0,te=0,ne=null,se=null;for(let re=0;reie?ae:ie):ce===Modifier.Position.RIGHT&&(he.setXShift(K),ae=Q+ge,te=ae>te?ae:te),ne=pe,se=le}return B.left_shift+=ie,B.right_shift+=te,!0}constructor(R){super(),this.setAttribute("type","FretHandFinger"),this.note=null,this.index=null,this.finger=R,this.width=7,this.position=Modifier.Position.LEFT,this.x_shift=0,this.y_shift=0,this.x_offset=0,this.y_offset=0,this.font={family:"sans-serif",size:9,weight:"bold"}}getCategory(){return FretHandFinger.CATEGORY}setFretHandFinger(R){return this.finger=R,this}setOffsetX(R){return this.x_offset=R,this}setOffsetY(R){return this.y_offset=R,this}draw(){if(this.checkContext(),!this.note||this.index==null)throw new Vex.RERR("NoAttachedNote","Can't draw string number without a note and index.");this.setRendered();const R=this.context,B=this.note.getModifierStartXY(this.position,this.index);let D=B.x+this.x_shift+this.x_offset,G=B.y+this.y_shift+this.y_offset+5;switch(this.position){case Modifier.Position.ABOVE:D-=4,G-=12;break;case Modifier.Position.BELOW:D-=2,G+=10;break;case Modifier.Position.LEFT:D-=this.width;break;case Modifier.Position.RIGHT:D+=1;break;default:throw new Vex.RERR("InvalidPostion",`The position ${this.position} does not exist`)}R.save(),R.setFont(this.font.family,this.font.size,this.font.weight),R.fillText(""+this.finger,D,G),R.restore()}}class Music{static get NUM_TONES(){return 12}static get roots(){return["c","d","e","f","g","a","b"]}static get root_values(){return[0,2,4,5,7,9,11]}static get root_indices(){return{c:0,d:1,e:2,f:3,g:4,a:5,b:6}}static get canonical_notes(){return["c","c#","d","d#","e","f","f#","g","g#","a","a#","b"]}static get diatonic_intervals(){return["unison","m2","M2","m3","M3","p4","dim5","p5","m6","M6","b7","M7","octave"]}static get diatonic_accidentals(){return{unison:{note:0,accidental:0},m2:{note:1,accidental:-1},M2:{note:1,accidental:0},m3:{note:2,accidental:-1},M3:{note:2,accidental:0},p4:{note:3,accidental:0},dim5:{note:4,accidental:-1},p5:{note:4,accidental:0},m6:{note:5,accidental:-1},M6:{note:5,accidental:0},b7:{note:6,accidental:-1},M7:{note:6,accidental:0},octave:{note:7,accidental:0}}}static get intervals(){return{u:0,unison:0,m2:1,b2:1,min2:1,S:1,H:1,2:2,M2:2,maj2:2,T:2,W:2,m3:3,b3:3,min3:3,M3:4,3:4,maj3:4,4:5,p4:5,"#4":6,b5:6,aug4:6,dim5:6,5:7,p5:7,"#5":8,b6:8,aug5:8,6:9,M6:9,maj6:9,b7:10,m7:10,min7:10,dom7:10,M7:11,maj7:11,8:12,octave:12}}static get scales(){return{major:[2,2,1,2,2,2,1],dorian:[2,1,2,2,2,1,2],mixolydian:[2,2,1,2,2,1,2],minor:[2,1,2,2,1,2,2]}}static get scaleTypes(){return{M:Music.scales.major,m:Music.scales.minor}}static get accidentals(){return["bb","b","n","#","##"]}static get noteValues(){return{c:{root_index:0,int_val:0},cn:{root_index:0,int_val:0},"c#":{root_index:0,int_val:1},"c##":{root_index:0,int_val:2},cb:{root_index:0,int_val:11},cbb:{root_index:0,int_val:10},d:{root_index:1,int_val:2},dn:{root_index:1,int_val:2},"d#":{root_index:1,int_val:3},"d##":{root_index:1,int_val:4},db:{root_index:1,int_val:1},dbb:{root_index:1,int_val:0},e:{root_index:2,int_val:4},en:{root_index:2,int_val:4},"e#":{root_index:2,int_val:5},"e##":{root_index:2,int_val:6},eb:{root_index:2,int_val:3},ebb:{root_index:2,int_val:2},f:{root_index:3,int_val:5},fn:{root_index:3,int_val:5},"f#":{root_index:3,int_val:6},"f##":{root_index:3,int_val:7},fb:{root_index:3,int_val:4},fbb:{root_index:3,int_val:3},g:{root_index:4,int_val:7},gn:{root_index:4,int_val:7},"g#":{root_index:4,int_val:8},"g##":{root_index:4,int_val:9},gb:{root_index:4,int_val:6},gbb:{root_index:4,int_val:5},a:{root_index:5,int_val:9},an:{root_index:5,int_val:9},"a#":{root_index:5,int_val:10},"a##":{root_index:5,int_val:11},ab:{root_index:5,int_val:8},abb:{root_index:5,int_val:7},b:{root_index:6,int_val:11},bn:{root_index:6,int_val:11},"b#":{root_index:6,int_val:0},"b##":{root_index:6,int_val:1},bb:{root_index:6,int_val:10},bbb:{root_index:6,int_val:9}}}isValidNoteValue(R){return!(R==null||R<0||R>=Music.NUM_TONES)}isValidIntervalValue(R){return this.isValidNoteValue(R)}getNoteParts(R){if(!R||R.length<1)throw new Vex.RERR("BadArguments","Invalid note name: "+R);if(R.length>3)throw new Vex.RERR("BadArguments","Invalid note name: "+R);const B=R.toLowerCase(),G=/^([cdefgab])(b|bb|n|#|##)?$/.exec(B);if(G!=null){const U=G[1],W=G[2];return{root:U,accidental:W}}else throw new Vex.RERR("BadArguments","Invalid note name: "+R)}getKeyParts(R){if(!R||R.length<1)throw new Vex.RERR("BadArguments","Invalid key: "+R);const B=R.toLowerCase(),G=/^([cdefgab])(b|#)?(mel|harm|m|M)?$/.exec(B);if(G!=null){const U=G[1],W=G[2];let q=G[3];return q||(q="M"),{root:U,accidental:W,type:q}}else throw new Vex.RERR("BadArguments",`Invalid key: ${R}`)}getNoteValue(R){const B=Music.noteValues[R];if(B==null)throw new Vex.RERR("BadArguments",`Invalid note name: ${R}`);return B.int_val}getIntervalValue(R){const B=Music.intervals[R];if(B==null)throw new Vex.RERR("BadArguments",`Invalid interval name: ${R}`);return B}getCanonicalNoteName(R){if(!this.isValidNoteValue(R))throw new Vex.RERR("BadArguments",`Invalid note value: ${R}`);return Music.canonical_notes[R]}getCanonicalIntervalName(R){if(!this.isValidIntervalValue(R))throw new Vex.RERR("BadArguments",`Invalid interval value: ${R}`);return Music.diatonic_intervals[R]}getRelativeNoteValue(R,B,D){if(D==null&&(D=1),D!==1&&D!==-1)throw new Vex.RERR("BadArguments",`Invalid direction: ${D}`);let G=(R+D*B)%Music.NUM_TONES;return G<0&&(G+=Music.NUM_TONES),G}getRelativeNoteName(R,B){const D=this.getNoteParts(R),G=this.getNoteValue(D.root);let U=B-G;if(Math.abs(U)>Music.NUM_TONES-3){let q=1;U>0&&(q=-1);const Y=(B+1+(G+1))%Music.NUM_TONES*q;if(Math.abs(Y)>2)throw new Vex.RERR("BadArguments",`Notes not related: ${R}, ${B})`);U=Y}if(Math.abs(U)>2)throw new Vex.RERR("BadArguments",`Notes not related: ${R}, ${B})`);let W=D.root;if(U>0)for(let q=1;q<=U;++q)W+="#";else if(U<0)for(let q=-1;q>=U;--q)W+="b";return W}getScaleTones(R,B){const D=[R];let G=R;for(let U=0;UF.getMetrics().width;class Accidental extends Modifier{static get CATEGORY(){return"accidentals"}static format(R,B){const G=B.left_shift+1,U=3;if(!R||R.length===0)return;const W=[];let q=null,Y=0,Q;for(let le=0;lece.line-le.line);const Z=[];let K=0,ie=null;for(let le=0;leK?ce.shift:K,ie=ce.line}let te=0;for(let le=0;leZ[he+ye],fe=ye=>ye.map(me),ge=(ye,we)=>{const[Re,Pe]=fe([ye,we]).map(Ae=>Ae.line);return Re-Pe},Se=(...ye)=>ye.map(fe).every(we=>!this.checkCollision(...we)),Ee=pe-he+1;let ve=this.checkCollision(Z[he],Z[pe])?"a":"b";switch(Ee){case 3:ve==="a"&&ge(1,2)===.5&&ge(0,1)!==.5&&(ve="second_on_bottom");break;case 4:Se([0,2],[1,3])&&(ve="spaced_out_tetrachord");break;case 5:ve==="b"&&Se([1,3])&&(ve="spaced_out_pentachord",Se([0,2],[2,4])&&(ve="very_spaced_out_pentachord"));break;case 6:Se([0,3],[1,4],[2,5])&&(ve="spaced_out_hexachord"),Se([0,2],[2,4],[1,3],[3,5])&&(ve="very_spaced_out_hexachord");break}let xe,Me;if(Ee>=7){let ye=2,we=!0;for(;we===!0;){we=!1;for(let Re=0;Re+yeMe?te:Me}else for(xe=le;xe<=pe;xe++)Me=Flow.accidentalColumnsTable[Ee][ve][xe-le],Z[xe].column=Me,te=te>Me?te:Me;le=pe}const ne=[],se=[];for(let le=0;le<=te;le++)ne[le]=0,se[le]=0;ne[0]=K+G,se[0]=K+G,Z.forEach(le=>{le.width>ne[le.column]&&(ne[le.column]=le.width)});for(let le=1;le{let ce=0;const he=ae+le.numAcc;for(ae;ae0?(G=B.flatLine||B.dblSharpLine?2.5:3,R.dblSharpLine&&(D-=.5)):(G=R.flatLine||R.dblSharpLine?2.5:3,B.dblSharpLine&&(D-=.5));const U=Math.abs(D){const Y=new Fraction(0,1);q.getTickables().forEach(Z=>{if(Z.shouldIgnoreTicks())return;const K=G[Y.value()];K?K.push(Z):(D.push(Y.value()),G[Y.value()]=[Z]),Y.add(Z.getTicks())})});const U=new Music;B||(B="C");const W=U.createScaleMap(B);D.forEach(q=>{const Y=G[q],Q=[],Z=K=>{K.isRest()||K.shouldIgnoreTicks()||(K.keys.forEach((ie,te)=>{const ne=U.getNoteParts(ie.split("/")[0]),se=ne.accidental||"n",re=ne.root+se,ae=W[ne.root]===re,le=Q.indexOf(re)>-1;if(!ae||ae&&le){W[ne.root]=re;const ce=new Accidental(se);K.addAccidental(te,ce),Q.push(re)}}),K.getModifiers().forEach(ie=>{ie.getCategory()==="gracenotegroups"&&ie.getGraceNotes().forEach(Z)}))};Y.forEach(Z)})}constructor(R=null){if(super(),this.setAttribute("type","Accidental"),L$g("New accidental: ",R),this.note=null,this.index=null,this.type=R,this.position=Modifier.Position.LEFT,this.render_options={font_scale:38,stroke_px:3,parenLeftPadding:2,parenRightPadding:2},this.accidental=Flow.accidentalCodes(this.type),!this.accidental)throw new Vex.RERR("ArgumentError",`Unknown accidental type: ${R}`);this.cautionary=!1,this.parenLeft=null,this.parenRight=null,this.reset()}reset(){const R=this.render_options.font_scale;this.glyph=new Glyph(this.accidental.code,R),this.glyph.setOriginX(1),this.cautionary&&(this.parenLeft=new Glyph(Flow.accidentalCodes("{").code,R),this.parenRight=new Glyph(Flow.accidentalCodes("}").code,R),this.parenLeft.setOriginX(1),this.parenRight.setOriginX(1))}getCategory(){return Accidental.CATEGORY}getWidth(){const R=this.cautionary?getGlyphWidth(this.parenLeft)+getGlyphWidth(this.parenRight)+this.render_options.parenLeftPadding+this.render_options.parenRightPadding:0;return getGlyphWidth(this.glyph)+R}setNote(R){if(!R)throw new Vex.RERR("ArgumentError",`Bad note value: ${R}`);this.note=R,this.note.getCategory()==="gracenotes"&&(this.render_options.font_scale=25,this.reset())}setAsCautionary(){return this.cautionary=!0,this.render_options.font_scale=28,this.reset(),this}draw(){const{context:R,type:B,position:D,note:G,index:U,cautionary:W,x_shift:q,y_shift:Y,glyph:Q,parenLeft:Z,parenRight:K,render_options:{parenLeftPadding:ie,parenRightPadding:te}}=this;if(this.checkContext(),!(G&&U!=null))throw new Vex.RERR("NoAttachedNote","Can't draw accidental without a note and index.");const ne=G.getModifierStartXY(D,U);let se=ne.x+q;const re=ne.y+Y;L$g("Rendering: ",B,se,re),W?(K.render(R,se,re),se-=getGlyphWidth(K),se-=te,se-=this.accidental.parenRightPaddingAdjustment,Q.render(R,se,re),se-=getGlyphWidth(Q),se-=ie,Z.render(R,se,re)):Q.render(R,se,re),this.setRendered()}}class NoteSubGroup$1 extends Modifier{static get CATEGORY(){return"notesubgroup"}static format(R,B){if(!R||R.length===0)return!1;let D=0;for(let G=0;G{B.ignore_ticks=!1}),this.width=0,this.preFormatted=!1,this.formatter=new Formatter,this.voice=new Voice$1({num_beats:4,beat_value:4,resolution:Flow.RESOLUTION}).setStrict(!1),this.voice.addTickables(this.subNotes),this}getCategory(){return NoteSubGroup$1.CATEGORY}preFormat(){this.preFormatted||(this.formatter.joinVoices([this.voice]).format([this.voice],0),this.setWidth(this.formatter.getMinTotalWidth()),this.preFormatted=!0)}setNote(R){this.note=R}setWidth(R){this.width=R}getWidth(){return this.width}draw(){this.checkContext();const R=this.getNote();if(!(R&&this.index!==null))throw new Vex.RuntimeError("NoAttachedNote","Can't draw notes without a parent note and parent note index.");this.setRendered(),this.alignSubNotesWithNote(this.subNotes,R),this.subNotes.forEach(B=>B.setContext(this.context).drawWithStyle())}}class StaveTie extends Element$1{constructor(R,B){super(),this.setAttribute("type","StaveTie"),this.notes=R,this.context=null,this.text=B,this.direction=null,this.render_options={cp1:8,cp2:12,text_shift_x:0,first_x_shift:0,last_x_shift:0,y_shift:7,tie_spacing:0,font:{family:"Arial",size:15,style:""}},this.font=this.render_options.font,this.setNotes(R)}setFont(R){return this.font=R,this}setDirection(R){return this.direction=R,this}setNotes(R){if(!R.first_note&&!R.last_note)throw new Vex.RuntimeError("BadArguments","Tie needs to have either first_note or last_note set.");if(R.first_indices||(R.first_indices=[0]),R.last_indices||(R.last_indices=[0]),R.first_indices.length!==R.last_indices.length)throw new Vex.RuntimeError("BadArguments","Tied notes must have similar index sizes");return this.first_note=R.first_note,this.first_indices=R.first_indices,this.last_note=R.last_note,this.last_indices=R.last_indices,this}isPartial(){return!this.first_note||!this.last_note}renderTie(R){if(R.first_ys.length===0||R.last_ys.length===0)throw new Vex.RERR("BadArguments","No Y-values to render");const B=this.context;let D=this.render_options.cp1,G=this.render_options.cp2;Math.abs(R.last_x_px-R.first_x_px)<10&&(D=2,G=8);const U=this.render_options.first_x_shift,W=this.render_options.last_x_shift,q=this.render_options.y_shift*R.direction;for(let Y=0;Yie&&Math.abs(Z-ie)<10?-6:0;if(this.first_note&&this.first_note.DYMusicScoreType==="jianpu"){if(this.getAttribute("type")==="TabTie")continue;Z1){const B=new Beam$1(R);B.render_options.beam_width=3,B.render_options.partial_beam_length=4,this.beams.push(B)}return this}setNote(R){this.note=R}setWidth(R){this.width=R}getWidth(){return this.width}getGraceNotes(){return this.grace_notes}draw(){this.checkContext();const R=this.getNote();if(L$f("Drawing grace note group for:",R),!(R&&this.index!==null))throw new Vex.RuntimeError("NoAttachedNote","Can't draw grace note without a parent note and parent note index.");if(this.setRendered(),this.alignSubNotesWithNote(this.getGraceNotes(),R),this.grace_notes.forEach(B=>{B.setContext(this.context).draw()}),this.beams.forEach(B=>{B.setContext(this.context).draw()}),this.show_slur){const B=this.getNote().getCategory()===StaveNote.CATEGORY,D=B?StaveTie:TabTie;this.slur=new D({last_note:this.grace_notes[0],first_note:R,first_indices:[0],last_indices:[0]}),this.slur.render_options.cp2=12,this.slur.render_options.y_shift=(B?7:5)+this.render_options.slur_y_shift,this.slur.setContext(this.context).draw()}}}class Stroke extends Modifier{static get CATEGORY(){return"strokes"}static get Type(){return{BRUSH_DOWN:1,BRUSH_UP:2,ROLL_DOWN:3,ROLL_UP:4,RASQUEDO_DOWN:5,RASQUEDO_UP:6,ARPEGGIO_DIRECTIONLESS:7}}static format(R,B){const D=B.left_shift,G=0;if(!R||R.length===0)return this;const U=R.map(Y=>{const Q=Y.getNote();if(Q instanceof StaveNote){const{line:Z,displaced:K}=Q.getKeyProps()[Y.getIndex()],ie=K?Q.getExtraLeftPx():0;return{line:Z,shift:ie,stroke:Y}}else{const{str:Z}=Q.getPositions()[Y.getIndex()];return{line:Z,shift:0,stroke:Y}}}),W=D,q=U.reduce((Y,{stroke:Q,shift:Z})=>(Q.setXShift(W+Z),Math.max(Q.getWidth()+G,Y)),0);return B.left_shift+=q,!0}constructor(R,B){super(),this.setAttribute("type","Stroke"),this.note=null,this.options=Vex.Merge({},B),this.all_voices="all_voices"in this.options?this.options.all_voices:!0,this.note_end=null,this.index=null,this.type=R,this.position=Modifier.Position.LEFT,this.render_options={font_scale:38,stroke_px:3,stroke_spacing:10},this.font={family:"serif",size:10,weight:"bold italic"},this.setXShift(0),this.setWidth(10)}getCategory(){return Stroke.CATEGORY}getPosition(){return this.position}addEndNote(R){return this.note_end=R,this}draw(){if(this.checkContext(),this.setRendered(),!(this.note&&this.index!=null))throw new Vex.RERR("NoAttachedNote","Can't draw stroke without a note and index.");const R=this.note.getModifierStartXY(this.position,this.index);let B=this.note.getYs(),D=R.y,G=R.y;const U=R.x-5,W=this.note.stave.options.spacing_between_lines_px,q=this.getModifierContext().getModifiers(this.note.getCategory());for(let te=0;tepe.line-he.line);let se=0,re=0,ae=0,le=null,ce=null;for(Z=0;Zre?he:re):te===Modifier.Position.RIGHT&&(K.setXShift(se),he+=fe,ae=he>ae?he:ae),le=pe,ce=ie}return B.left_shift+=re,B.right_shift+=ae,!0}constructor(R){super(),this.setAttribute("type","StringNumber"),this.note=null,this.last_note=null,this.index=null,this.string_number=R,this.setWidth(20),this.position=Modifier.Position.ABOVE,this.x_shift=0,this.y_shift=0,this.x_offset=0,this.y_offset=0,this.dashed=!0,this.leg=Renderer.LineEndType.NONE,this.radius=8,this.font={family:"sans-serif",size:10,weight:"bold"}}getCategory(){return StringNumber.CATEGORY}getNote(){return this.note}setNote(R){return this.note=R,this}getIndex(){return this.index}setIndex(R){return this.index=R,this}setLineEndType(R){return R>=Renderer.LineEndType.NONE&&R<=Renderer.LineEndType.DOWN&&(this.leg=R),this}setStringNumber(R){return this.string_number=R,this}setOffsetX(R){return this.x_offset=R,this}setOffsetY(R){return this.y_offset=R,this}setLastNote(R){return this.last_note=R,this}setDashed(R){return this.dashed=R,this}draw(){const R=this.checkContext();if(!(this.note&&this.index!=null))throw new Vex.RERR("NoAttachedNote","Can't draw string number without a note and index.");this.setRendered();const B=this.note.stave.options.spacing_between_lines_px,D=this.note.getModifierStartXY(this.position,this.index);let G=D.x+this.x_shift+this.x_offset,U=D.y+this.y_shift+this.y_offset;switch(this.position){case Modifier.Position.ABOVE:case Modifier.Position.BELOW:{const q=this.note.getStemExtents();let Y=q.topY,Q=q.baseY+2;this.note.stem_direction===StaveNote.STEM_DOWN&&(Y=q.baseY,Q=q.topY-2),this.position===Modifier.Position.ABOVE?U=this.note.hasStem()?Y-B*1.75:D.y-B*1.75:U=this.note.hasStem()?Q+B*1.5:D.y+B*1.75,U+=this.y_shift+this.y_offset;break}case Modifier.Position.LEFT:G-=this.radius/2+5;break;case Modifier.Position.RIGHT:G+=this.radius/2+6;break;default:throw new Vex.RERR("InvalidPosition",`The position ${this.position} is invalid`)}R.save(),R.beginPath(),R.arc(G,U,this.radius,0,Math.PI*2,!1),R.lineWidth=1.5,R.stroke(),R.setFont(this.font.family,this.font.size,this.font.weight);const W=G-R.measureText(this.string_number).width/2;if(R.fillText(""+this.string_number,W,U+4.5),this.last_note!=null){const q=this.last_note.getStemX()-this.note.getX()+5;R.strokeStyle="#000000",R.lineCap="round",R.lineWidth=.6,this.dashed?Renderer.drawDashedLine(R,G+10,U,G+q,U,[3,3]):Renderer.drawDashedLine(R,G+10,U,G+q,U,[3,0]);let Y,Q;switch(this.leg){case Renderer.LineEndType.UP:Y=-10,Q=this.dashed?[3,3]:[3,0],Renderer.drawDashedLine(R,G+q,U,G+q,U+Y,Q);break;case Renderer.LineEndType.DOWN:Y=10,Q=this.dashed?[3,3]:[3,0],Renderer.drawDashedLine(R,G+q,U,G+q,U+Y,Q);break}}R.restore()}}function L$e(...F){Articulation$1.DEBUG&&Vex.L("Vex.Flow.Articulation",F)}const{ABOVE,BELOW}=Modifier.Position,roundToNearestHalf=(F,R)=>F(R/.5)*.5,isWithinLines=(F,R)=>R===ABOVE?F<=5:F>=1,getRoundingFunction=(F,R)=>isWithinLines(F,R)?R===ABOVE?Math.ceil:Math.floor:Math.round,snapLineToStaff=(F,R,B,D)=>{const G=roundToNearestHalf(getRoundingFunction(R,B),R),U=F&&isWithinLines(G,B),W=G%1===0;return U&&W?G+.5*-D:G},isStaveNote=F=>{const R=F.getCategory();return R==="stavenotes"||R==="gracenotes"},isTabNote=F=>{const R=F.getCategory();return R==="tabnotes"||R==="numberednotes"},getTopY=(F,R)=>{const B=F.getStave(),D=F.getStemDirection(),{topY:G,baseY:U}=F.getStemExtents();if(isStaveNote(F))return F.hasStem()?D===Stem.UP?G:U:Math.min(...F.getYs());if(isTabNote(F))return F.hasStem()&&D===Stem.UP?G:B.getYForTopText(R);throw new Vex.RERR("UnknownCategory","Only can get the top and bottom ys of stavenotes and tabnotes")},getBottomY=(F,R)=>{const B=F.getStave(),D=F.getStemDirection(),{topY:G,baseY:U}=F.getStemExtents();if(isStaveNote(F))return F.hasStem()?D===Stem.UP?U:G:Math.max(...F.getYs());if(isTabNote(F))return F.hasStem()?D===Stem.UP?B.getYForBottomText(R):G:B.getYForBottomText(R);throw new Vex.RERR("UnknownCategory","Only can get the top and bottom ys of stavenotes and tabnotes")},getInitialOffset=(F,R)=>{const B=R===ABOVE&&F.getStemDirection()===Stem.UP||R===BELOW&&F.getStemDirection()===Stem.DOWN;return isStaveNote(F)?F.hasStem()&&B?.5:1:F.hasStem()&&B?1:0};class Articulation$1 extends Modifier{static get CATEGORY(){return"articulations"}static get INITIAL_OFFSET(){return-.5}static format(R,B){if(!R||R.length===0)return!1;const D=Y=>Y.getPosition()===ABOVE,G=Y=>Y.getPosition()===BELOW,U=.5,W=(Y,Q,Z)=>roundToNearestHalf(getRoundingFunction(Q,Z),Y.glyph.getMetrics().height/10+U);R.filter(D).forEach(Y=>{Y.setTextLine(B.top_text_line),B.top_text_line+=W(Y,B.top_text_line,ABOVE)}),R.filter(G).forEach(Y=>{Y.setTextLine(B.text_line),B.text_line+=W(Y,B.text_line,BELOW)});const q=R.map(Y=>Y.getWidth()).reduce((Y,Q)=>Math.max(Q,Y));return B.left_shift+=q/2,B.right_shift+=q/2,!0}static easyScoreHook({articulations:R},B,D){if(!R)return;const G={staccato:"a.",tenuto:"a-"};R.split(",").map(U=>U.trim().split(".")).map(([U,W])=>{const q={type:G[U]};return W&&(q.position=Modifier.PositionString[W]),D.getFactory().Articulation(q)}).map(U=>B.addModifier(0,U))}constructor(R){if(super(),this.setAttribute("type","Articulation"),this.note=null,this.index=null,this.type=R,this.position=BELOW,this.render_options={font_scale:38},this.articulation=Flow.articulationCodes(this.type),!this.articulation)throw new Vex.RERR("ArgumentError",`Articulation not found: ${this.type}`);this.glyph=new Glyph(this.articulation.code,this.render_options.font_scale),this.setWidth(this.glyph.getMetrics().width)}getCategory(){return Articulation$1.CATEGORY}draw(){const{note:R,index:B,position:D,glyph:G,articulation:{between_lines:U},text_line:W,context:q}=this;if(this.checkContext(),!R||B==null)throw new Vex.RERR("NoAttachedNote","Can't draw Articulation without a note and index.");this.setRendered();const Y=R.getStave(),Q=Y.getSpacingBetweenLines(),Z=R.getCategory()==="tabnotes",{x:K}=R.getModifierStartXY(D,B),ie=!U||Z,te=getInitialOffset(R,D);let ne={[ABOVE]:()=>{G.setOrigin(.5,1);const se=getTopY(R,W)-(W+te)*Q+(this.y_shift||0);return ie?Math.min(Y.getYForTopText(Articulation$1.INITIAL_OFFSET),se):se},[BELOW]:()=>{G.setOrigin(.5,0);const se=getBottomY(R,W)+(W+te)*Q;return ie?Math.max(Y.getYForBottomText(Articulation$1.INITIAL_OFFSET),se):se}}[D]();if(!Z){const se=D===ABOVE?-1:1,re=Z?R.positions[B].str:R.getKeyProps()[B].line,le=(R.getYs()[B]-ne)/Q+re,ce=snapLineToStaff(U,le,D,se);isWithinLines(ce,D)&&G.setOrigin(.5,.5),ne+=Math.abs(ce-le)*Q*se}L$e(`Rendering articulation at (x: ${K}, y: ${ne})`),G.render(q,K,ne)}}class TickContext extends Tickable{static getNextContext(R){const B=R.tContexts,D=B.indexOf(R);return B[D+1]}constructor(){super(),this.setAttribute("type","TickContext"),this.currentTick=new Fraction(0,1),this.maxTicks=new Fraction(0,1),this.minTicks=null,this.padding=3,this.x=0,this.xBase=0,this.xOffset=0,this.tickables=[],this.notePx=0,this.extraLeftPx=0,this.extraRightPx=0,this.tContexts=[]}getX(){return this.x}setX(R){return this.x=R,this.xBase=R,this.xOffset=0,this}getXBase(){return this.xBase}setXBase(R){this.xBase=R,this.x=R+this.xOffset}getXOffset(){return this.xOffset}setXOffset(R){this.xOffset=R,this.x=this.xBase+R}getWidth(){return this.width+this.padding*2}setPadding(R){return this.padding=R,this}getMaxTicks(){return this.maxTicks}getMinTicks(){return this.minTicks}getTickables(){return this.tickables}getCenterAlignedTickables(){return this.tickables.filter(R=>R.isCenterAligned())}getMetrics(){const{width:R,notePx:B,extraLeftPx:D,extraRightPx:G}=this;return{width:R,notePx:B,extraLeftPx:D,extraRightPx:G}}getCurrentTick(){return this.currentTick}setCurrentTick(R){this.currentTick=R,this.preFormatted=!1}getExtraPx(){let R=0,B=0,D=0,G=0;for(let U=0;U0&&G--;for(let Y=0;Y{L$b("Preformatting ModifierContext: ",R.CATEGORY),R.format(this.getModifiers(R.CATEGORY),this.state,this)}),this.width=this.state.left_shift+this.state.right_shift,this.preFormatted=!0)}postFormat(){this.postFormatted||this.POSTFORMAT.forEach(R=>{L$b("Postformatting ModifierContext: ",R.CATEGORY),R.postFormat(this.getModifiers(R.CATEGORY),this)})}}function L$a(...F){Formatter.DEBUG&&Vex.L("Vex.Flow.Formatter",F)}function getNext(F,R){var D,G;const B=F[R+1];return B&&((D=B==null?void 0:B.keys)==null?void 0:D.includes("b/4"))||((G=B==null?void 0:B.keys)==null?void 0:G.includes("r/4"))?getNext(F,R+1):B}function lookAhead(F,R,B,D,G=0){let U=R;for(B+=1;B4.5||U<1.5)){const q=F[B].stem;if(q)if(q.stem_direction>0){const Y=U<1.5?Math.abs(U-1.5)*G:0;q.setResetHeight(Y)}else{const Y=U>4.5?Math.abs(U-4.5)*G:0;q.setResetHeight(Y)}}return U}function createContexts(F,R,B){if(!F||!F.length)throw new Vex.RERR("BadArgument","No voices to format");const D=F[0].getTotalTicks(),G=F.reduce((Y,Q)=>{if(!Q.getTotalTicks().equals(D))throw new Vex.RERR("TickMismatch","Voices should have same total note duration in ticks.");if(Q.getMode()===Voice$1.Mode.STRICT&&!Q.isComplete())throw new Vex.RERR("IncompleteVoice","Voice does not have enough notes.");return Math.max(Y,Fraction.LCM(Y,Q.getResolutionMultiplier()))},1),U={},W=[],q=[];return F.forEach(Y=>{const Q=new Fraction(0,G);Y.getTickables().forEach(Z=>{const K=Q.numerator;if(!U[K]){const ie=new R;q.push(ie),U[K]=ie}B(Z,U[K]),W.push(K),Q.add(Z.getTicks())})}),{map:U,array:q,list:Vex.SortAndUnique(W,(Y,Q)=>Y-Q,(Y,Q)=>Y===Q),resolutionMultiplier:G}}class Formatter{static SimpleFormat(R,B=0,{paddingBetween:D=10}={}){R.reduce((G,U)=>{U.addToModifierContext(new ModifierContext);const W=new TickContext().addTickable(U).preFormat(),q=W.getExtraPx();return W.setX(G+q.left),G+W.getWidth()+q.right+D},B)}static plotDebugging(R,B,D,G,U){const W=D+Note.STAVEPADDING,q=B.contextGaps;function Y(Q,Z,K){R.beginPath(),R.setStrokeStyle(K),R.setFillStyle(K),R.setLineWidth(1),R.fillRect(Q,G,Z-Q,U-G)}R.save(),R.setFont("Arial",8,""),q.gaps.forEach(Q=>{Y(W+Q.x1,W+Q.x2,"#aaa"),R.fillText(Math.round(Q.x2-Q.x1),W+Q.x1,U+12)}),R.fillText(Math.round(q.total)+"px",W-20,U+12),R.setFillStyle("red"),R.fillText("Loss: "+B.lossHistory.map(Q=>Math.round(Q)),W-20,U+22),R.restore()}static FormatAndDraw(R,B,D,G){const U={auto_beam:!1,align_rests:!1};typeof G=="object"?Vex.Merge(U,G):typeof G=="boolean"&&(U.auto_beam=G);const W=new Voice$1(Flow.TIME4_4).setMode(Voice$1.Mode.SOFT).addTickables(D),q=U.auto_beam?Beam$1.applyAndGetBeams(W):[];return new Formatter().joinVoices([W],{align_rests:U.align_rests}).formatToStave([W],B,{align_rests:U.align_rests,stave:B}),W.setStave(B).draw(R,B),q.forEach(Y=>Y.setContext(R).draw()),W.getBoundingBox()}static FormatAndDrawTab(R,B,D,G,U,W,q){const Y={auto_beam:W,align_rests:!1};typeof q=="object"?Vex.Merge(Y,q):typeof q=="boolean"&&(Y.auto_beam=q);const Q=new Voice$1(Flow.TIME4_4).setMode(Voice$1.Mode.SOFT).addTickables(U),Z=new Voice$1(Flow.TIME4_4).setMode(Voice$1.Mode.SOFT).addTickables(G),K=Y.auto_beam?Beam$1.applyAndGetBeams(Q):[];new Formatter().joinVoices([Q],{align_rests:Y.align_rests}).joinVoices([Z]).formatToStave([Q,Z],D,{align_rests:Y.align_rests}),Q.draw(R,D),Z.draw(R,B),K.forEach(ie=>ie.setContext(R).draw()),new StaveConnector(D,B).setContext(R).draw()}static AlignRestsToNotes(R,B,D){return R.forEach((G,U)=>{if(G instanceof StaveNote&&G.isRest()){if(G.tuplet&&!D)return;if(G.getGlyph().position.toUpperCase(),G.glyph.code_head==="va5"||G.glyph.code_head==="v3c"){const W=G.glyph.code_head==="va5"?10:20,q=R[U-1],Y=getNext(R,U);let Q=!1;if(q&&Y&&q.beam&&Y.beam&&(Q=q.beam.notes.includes(Y)),B||G.beam!=null||Q){const Z=G.getKeyProps()[0];if(U===0)Z.line=lookAhead(R,Z.line,U,!1,W),G.setKeyLine(0,Z.line);else if(U>0&&UFormatter.AlignRestsToNotes(D.getTickables(),B))}preCalculateMinTotalWidth(R){if(this.hasMinTotalWidth)return this.minTotalWidth;if(!this.tickContexts){if(!R)throw new Vex.RERR("BadArgument","'voices' required to run preCalculateMinTotalWidth");this.createTickContexts(R)}const{list:B,map:D}=this.tickContexts;return this.minTotalWidth=B.map(G=>{const U=D[G];return U.preFormat(),U.getWidth()}).reduce((G,U)=>G+U,0),this.hasMinTotalWidth=!0,this.minTotalWidth}getMinTotalWidth(){if(!this.hasMinTotalWidth)throw new Vex.RERR("NoMinTotalWidth","Call 'preCalculateMinTotalWidth' or 'preFormat' before calling 'getMinTotalWidth'");return this.minTotalWidth}createModifierContexts(R){const B=createContexts(R,ModifierContext,(D,G)=>D.addToModifierContext(G));return this.modiferContexts=B,B}createTickContexts(R){const B=createContexts(R,TickContext,(D,G)=>G.addTickable(D));return B.array.forEach(D=>{D.tContexts=B.array}),this.totalTicks=R[0].getTicksUsed().clone(),this.tickContexts=B,B}preFormat(R=0,B,D,G){const U=this.tickContexts,{list:W,map:q,resolutionMultiplier:Y}=U;D&&G&&D.forEach(se=>se.setStave(G).preFormat());let Q=0,Z=0;const K=R/2;if(this.minTotalWidth=0,W.forEach(se=>{const re=q[se];B&&re.setContext(B),re.preFormat();const ae=re.getWidth();this.minTotalWidth+=ae;const le=re.getMetrics();Q=Q+Z+le.extraLeftPx,re.setX(Q),Z=ae-le.extraLeftPx}),this.minTotalWidth=Q+Z,this.hasMinTotalWidth=!0,R<=0)return;const te=(R-this.minTotalWidth)/(this.totalTicks.value()*Y);let ne=0;W.forEach((se,re)=>{const ae=W[re-1]||0,le=q[se];ne+=(se-ae)*te,le.setX(le.getX()+ne),le.getCenterAlignedTickables().forEach(he=>{he.center_x_shift=K-le.getX()})}),W.length!==1&&(this.justifyWidth=R,this.lossHistory=[],this.evaluate())}evaluate(){const R=this.justifyWidth;this.contextGaps={total:0,gaps:[]},this.tickContexts.list.forEach((U,W)=>{if(W===0)return;const q=this.tickContexts.list[W-1],Y=this.tickContexts.map[q],Q=this.tickContexts.map[U],Z=Y.getMetrics(),K=Y.getX()+Z.width,ie=Q.getX(),te=ie-K;this.contextGaps.total+=te,this.contextGaps.gaps.push({x1:K,x2:ie}),Q.getFormatterMetrics().freedom.left=te,Y.getFormatterMetrics().freedom.right=te});const B=this.durationStats={};function D(U,W){const q=B[U];q===void 0?B[U]={mean:W,count:1}:(q.count+=1,q.mean=(q.mean+W)/2)}this.voices.forEach(U=>{U.getTickables().forEach((W,q,Y)=>{const Q=W.getTicks().clone().simplify().toString(),Z=W.getMetrics(),K=W.getFormatterMetrics(),ie=W.getX()+Z.noteWidth+Z.modRightPx+Z.extraRightPx;let te=0;if(q{U.getTickables().forEach(W=>{const q=W.getTicks().clone().simplify().toString(),Y=W.getFormatterMetrics();Y.iterations+=1,Y.space.deviation=Y.space.used-B[q].mean,Y.duration=q,Y.space.mean=B[q].mean,G+=Math.pow(B[q].mean,2)})}),this.totalCost=Math.sqrt(G),this.lossHistory.push(this.totalCost),this}tune(){const R=G=>G.reduce((U,W)=>U+W);function B(G,U,W,q){G.setX(G.getX()+q),G.getFormatterMetrics().freedom.left+=q,G.getFormatterMetrics().freedom.right-=q,U&&(U.getFormatterMetrics().freedom.right+=q),W&&(W.getFormatterMetrics().freedom.left-=q)}let D=0;return this.tickContexts.list.forEach((G,U,W)=>{const q=this.tickContexts.map[G],Y=U>0?this.tickContexts.map[W[U-1]]:null,Q=Uie.getFormatterMetrics().space.deviation));Z>0?D=-Math.min(q.getFormatterMetrics().freedom.right,Math.abs(Z)):Z<0&&(Q?D=Math.min(Q.getFormatterMetrics().freedom.right,Math.abs(Z)):D=0);const K=Math.min(5,Math.abs(D));D=D>0?K:-K}),this.evaluate()}postFormat(){const R=B=>B.list.forEach(D=>B.map[D].postFormat());return R(this.modiferContexts),R(this.tickContexts),this}joinVoices(R){return this.createModifierContexts(R),this.hasMinTotalWidth=!1,this}format(R,B,D){const G={align_rests:!1,context:null,stave:null};return Vex.Merge(G,D),this.voices=R,this.alignRests(R,G.align_rests),this.createTickContexts(R),this.preFormat(B,G.context,R,G.stave),G.stave&&this.postFormat(),this}formatToStave(R,B,D){const G=B.getNoteEndX()-B.getNoteStartX()-10;L$a("Formatting voices to width: ",G);const U={context:B.getContext()};return Vex.Merge(U,D),this.format(R,G,U)}}class StaveModifier extends Element$1{static get Position(){return{LEFT:1,RIGHT:2,ABOVE:3,BELOW:4,BEGIN:5,END:6}}constructor(){super(),this.setAttribute("type","StaveModifier"),this.padding=10,this.position=StaveModifier.Position.ABOVE,this.layoutMetrics=null}getPosition(){return this.position}setPosition(R){return this.position=R,this}getStave(){return this.stave}setStave(R){return this.stave=R,this}getWidth(){return this.width}setWidth(R){return this.width=R,this}getX(){return this.x}setX(R){return this.x=R,this}getCategory(){return""}makeSpacer(R){return{getContext(){return!0},setStave(){},renderToStave(){},getMetrics(){return{width:R}}}}placeGlyphOnLine(R,B,D){R.setYShift(B.getYForLine(D)-B.getYForGlyphs())}getPadding(R){return R!==void 0&&R<2?0:this.padding}setPadding(R){return this.padding=R,this}setLayoutMetrics(R){return this.layoutMetrics=R,this}getLayoutMetrics(){return this.layoutMetrics}}class Barline extends StaveModifier{static get CATEGORY(){return"barlines"}static get type(){return{SINGLE:1,DOUBLE:2,END:3,REPEAT_BEGIN:4,REPEAT_END:5,REPEAT_BOTH:6,NONE:7}}static get typeString(){return{single:Barline.type.SINGLE,double:Barline.type.DOUBLE,end:Barline.type.END,repeatBegin:Barline.type.REPEAT_BEGIN,repeatEnd:Barline.type.REPEAT_END,repeatBoth:Barline.type.REPEAT_BOTH,none:Barline.type.NONE}}constructor(R){super(),this.setAttribute("type","Barline"),this.thickness=Flow.STAVE_LINE_THICKNESS;const B=Barline.type;this.widths={},this.widths[B.SINGLE]=5,this.widths[B.DOUBLE]=5,this.widths[B.END]=5,this.widths[B.REPEAT_BEGIN]=5,this.widths[B.REPEAT_END]=5,this.widths[B.REPEAT_BOTH]=5,this.widths[B.NONE]=5,this.paddings={},this.paddings[B.SINGLE]=0,this.paddings[B.DOUBLE]=0,this.paddings[B.END]=0,this.paddings[B.REPEAT_BEGIN]=15,this.paddings[B.REPEAT_END]=15,this.paddings[B.REPEAT_BOTH]=15,this.paddings[B.NONE]=0,this.layoutMetricsMap={},this.layoutMetricsMap[B.SINGLE]={xMin:0,xMax:1,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[B.DOUBLE]={xMin:-3,xMax:1,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[B.END]={xMin:-5,xMax:1,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[B.REPEAT_END]={xMin:-10,xMax:1,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[B.REPEAT_BEGIN]={xMin:-2,xMax:10,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[B.REPEAT_BOTH]={xMin:-10,xMax:10,paddingLeft:5,paddingRight:5},this.layoutMetricsMap[B.NONE]={xMin:0,xMax:0,paddingLeft:5,paddingRight:5},this.setPosition(StaveModifier.Position.BEGIN),this.setType(R)}getCategory(){return Barline.CATEGORY}getType(){return this.type}setType(R){return this.type=typeof R=="string"?Barline.typeString[R]:R,this.setWidth(this.widths[this.type]),this.setPadding(this.paddings[this.type]),this.setLayoutMetrics(this.layoutMetricsMap[this.type]),this}draw(R){switch(R.checkContext(),this.setRendered(),this.type){case Barline.type.SINGLE:this.drawVerticalBar(R,this.x,!1);break;case Barline.type.DOUBLE:this.drawVerticalBar(R,this.x,!0);break;case Barline.type.END:this.drawVerticalEndBar(R,this.x);break;case Barline.type.REPEAT_BEGIN:this.drawRepeatBar(R,this.x,!0),R.getX()!==this.x&&this.drawVerticalBar(R,R.getX());break;case Barline.type.REPEAT_END:this.drawRepeatBar(R,this.x,!1);break;case Barline.type.REPEAT_BOTH:this.drawRepeatBar(R,this.x,!1),this.drawRepeatBar(R,this.x,!0);break}}drawVerticalBar(R,B,D){R.checkContext();const G=R.getTopLineTopY(),U=R.getBottomLineBottomY();D&&R.context.fillRect(B-3,G,1,U-G),R.context.fillRect(B,G,1,U-G)}drawVerticalEndBar(R,B){R.checkContext();const D=R.getTopLineTopY(),G=R.getBottomLineBottomY();R.context.fillRect(B-5,D,1,G-D),R.context.fillRect(B-2,D,3,G-D)}drawRepeatBar(R,B,D){R.checkContext();const G=R.getTopLineTopY(),U=R.getBottomLineBottomY();let W=3;D||(W=-5),R.context.fillRect(B+W,G,1,U-G),R.context.fillRect(B-2,G,3,U-G);const q=2;D?W+=4:W-=4;const Y=B+W+q/2;let Q=(R.getNumLines()-1)*R.getSpacingBetweenLines();Q=Q/2-R.getSpacingBetweenLines()/2;let Z=G+Q+q/2;R.context.beginPath(),R.context.arc(Y,Z,q,0,Math.PI*2,!1),R.context.fill(),Z+=R.getSpacingBetweenLines(),R.context.beginPath(),R.context.arc(Y,Z,q,0,Math.PI*2,!1),R.context.fill()}}class Repetition$1 extends StaveModifier{static get CATEGORY(){return"repetitions"}static get type(){return{NONE:1,CODA_LEFT:2,CODA_RIGHT:3,SEGNO_LEFT:4,SEGNO_RIGHT:5,DC:6,DC_AL_CODA:7,DC_AL_FINE:8,DS:9,DS_AL_CODA:10,DS_AL_FINE:11,FINE:12,TO_CODA:13}}constructor(R,B,D){super(),this.setAttribute("type","Repetition"),this.symbol_type=R,this.x=B,this.x_shift=0,this.y_shift=D,this.font={family:"times",size:12,weight:"bold italic"}}getCategory(){return Repetition$1.CATEGORY}setShiftX(R){return this.x_shift=R,this}setShiftY(R){return this.y_shift=R,this}setX(R){return this.x=R,this}draw(R,B){switch(this.setRendered(),this.symbol_type){case Repetition$1.type.CODA_RIGHT:this.drawCodaFixed(R,B+R.width);break;case Repetition$1.type.CODA_LEFT:this.drawSymbolText(R,B,"Coda",!1);break;case Repetition$1.type.SEGNO_LEFT:this.drawSignoFixed(R,B);break;case Repetition$1.type.SEGNO_RIGHT:this.drawSignoFixed(R,B+R.width);break;case Repetition$1.type.DC:this.drawSymbolText(R,B,"D.C.",!1);break;case Repetition$1.type.DC_AL_CODA:this.drawSymbolText(R,B,"D.C. al Coda",!0);break;case Repetition$1.type.DC_AL_FINE:this.drawSymbolText(R,B,"D.C. al Fine",!1);break;case Repetition$1.type.DS:this.drawSymbolText(R,B,"D.S.",!1);break;case Repetition$1.type.DS_AL_CODA:this.drawSymbolText(R,B,"D.S. al Coda",!0);break;case Repetition$1.type.DS_AL_FINE:this.drawSymbolText(R,B,"D.S. al Fine",!1);break;case Repetition$1.type.FINE:this.drawSymbolText(R,B,"Fine",!1);break;case Repetition$1.type.TO_CODA:this.drawSymbolText(R,B,"To Coda",!0);break}return this}drawCodaFixed(R,B){const D=R.getYForTopText(R.options.num_lines)+this.y_shift;return Glyph.renderGlyph(R.context,this.x+B+this.x_shift,D+25,40,"v4d",!0),this}drawSignoFixed(R,B){const D=R.getYForTopText(R.options.num_lines)+this.y_shift;return Glyph.renderGlyph(R.context,this.x+B+this.x_shift,D+25,30,"v8c",!0),this}drawSymbolText(R,B,D,G){const U=R.checkContext();U.save(),U.setFont(this.font.family,this.font.size,this.font.weight);let W=0+this.x_shift,q=B+this.x_shift;this.symbol_type===Repetition$1.type.CODA_LEFT?(W=this.x+R.options.vertical_bar_width,q=W+U.measureText(D).width+12):(this.x_shift=-(W+U.measureText(D).width+12+R.options.vertical_bar_width+12),W=this.x+this.x_shift+R.options.vertical_bar_width,q=W+U.measureText(D).width+12);const Y=R.getYForTopText(R.options.num_lines)+this.y_shift+25;return G&&Glyph.renderGlyph(U,q,Y,40,"v4d",!0),U.fillText(D,W,Y+5),U.restore(),this}}class StaveSection extends StaveModifier{static get CATEGORY(){return"stavesection"}constructor(R,B,D){super(),this.setAttribute("type","StaveSection"),this.setWidth(16),this.section=R,this.x=B,this.shift_x=0,this.shift_y=D,this.font={family:"sans-serif",size:12,weight:"bold"}}getCategory(){return StaveSection.CATEGORY}setStaveSection(R){return this.section=R,this}setShiftX(R){return this.shift_x=R,this}setShiftY(R){return this.shift_y=R,this}draw(R,B){const D=R.checkContext();this.setRendered(),D.save(),D.lineWidth=2,D.setFont(this.font.family,this.font.size,this.font.weight);const G=D.measureText(""+this.section),U=G.width,W=G.height;let q=U+6;q<18&&(q=18);const Y=W,Q=R.getYForTopText(3)+this.shift_y;let Z=this.x+B;return D.beginPath(),D.lineWidth=2,D.rect(Z,Q+W/4,q,Y),D.stroke(),Z+=(q-U)/2,D.fillText(""+this.section,Z,Q+16),D.restore(),this}}class StaveTempo extends StaveModifier{static get CATEGORY(){return"stavetempo"}constructor(R,B,D){super(),this.setAttribute("type","StaveTempo"),this.tempo=R,this.position=Modifier.Position.ABOVE,this.x=B,this.shift_x=10,this.shift_y=D,this.font={family:"times",size:14,weight:"bold"},this.render_options={glyph_font_scale:30}}getCategory(){return StaveTempo.CATEGORY}setTempo(R){return this.tempo=R,this}setShiftX(R){return this.shift_x=R,this}setShiftY(R){return this.shift_y=R,this}draw(R,B){const D=R.checkContext();this.setRendered();const G=this.render_options,U=G.glyph_font_scale/38,W=this.tempo.name,q=this.tempo.duration,Y=this.tempo.dots,Q=this.tempo.bpm,Z=this.font;let K=this.x+this.shift_x+B;const ie=R.getYForTopText(1)+this.shift_y;if(D.save(),D.openGroup("stavetempo",null,{}),W&&(D.setFont(Z.family,Z.size,Z.weight),D.fillText(W,K,ie),K+=D.measureText(W).width),q&&Q){D.setFont(Z.family,Z.size,"normal"),W&&(K+=D.measureText(" ").width,D.fillText("(",K,ie),K+=D.measureText("(").width);const te=Flow.getGlyphProps(q);if(K+=3*U,Glyph.renderGlyph(D,K,ie,G.glyph_font_scale,te.code_head),K+=te.getWidth()*U,te.stem){let ne=30;te.beam_count&&(ne+=3*(te.beam_count-1)),ne*=U;const se=ie-ne;D.fillRect(K-U,se,U,ne),te.flag&&(Glyph.renderGlyph(D,K,se,G.glyph_font_scale,te.code_flag_upstem),Y||(K+=6*U))}for(let ne=0;ne=R.line?Y.above:Y.below)}this.placeGlyphOnLine(G,this.stave,R.line),this.glyphs.push(G);const W=this.xPositions[this.xPositions.length-1],q=G.getMetrics().width+U;this.xPositions.push(W+q),this.width+=q}cancelKey(R){return this.formatted=!1,this.cancelKeySpec=R,this}convertToCancelAccList(R){const B=Flow.keySignature(R),D=this.accList.length>0&&B.length>0&&B[0].type!==this.accList[0].type,G=D?B.length:B.length-this.accList.length;if(G<1)return;const U=[];for(let W=0;W0?R[0].type:null;let D;if(this.cancelKeySpec&&(D=this.convertToCancelAccList(this.cancelKeySpec)),this.alterKeySpec&&this.convertToAlterAccList(this.alterKeySpec),this.accList.length>0){const G=(this.position===StaveModifier.Position.END?this.stave.endClef:this.stave.clef)||this.stave.clef;D&&this.convertAccLines(G,D.type,D.accList),this.convertAccLines(G,B,R);for(let U=0;U0){this.stave.context.openGroup("keysignature");for(let R=0;R{const R=F.split("/").filter(B=>B!=="");if(R.length!==2)throw new Vex.RERR("BadTimeSignature",`Invalid time spec: ${F}. Must be in the form "/"`);R.forEach(B=>{if(isNaN(Number(B)))throw new Vex.RERR("BadTimeSignature",`Invalid time spec: ${F}. Must contain two valid numbers.`)})};class TimeSignature extends StaveModifier{static get CATEGORY(){return"timesignatures"}static get glyphs(){return{C:{code:"v41",point:40,line:2},"C|":{code:"vb6",point:40,line:2}}}constructor(R=null,B=15,D=!0){if(super(),this.setAttribute("type","TimeSignature"),this.validate_args=D,R===null)return;const G=B;this.point=40,this.topLine=2,this.bottomLine=4,this.setPosition(StaveModifier.Position.BEGIN),this.setTimeSig(R),this.setWidth(this.timeSig.glyph.getMetrics().width),this.setPadding(G)}getCategory(){return TimeSignature.CATEGORY}parseTimeSpec(R){if(R==="C"||R==="C|"){const{line:G,code:U,point:W}=TimeSignature.glyphs[R];return{line:G,num:!1,glyph:new Glyph(U,W)}}this.validate_args&&assertIsValidFraction(R);const[B,D]=R.split("/").map(G=>G.split(""));return{num:!0,glyph:this.makeTimeSignatureGlyph(B,D)}}makeTimeSignatureGlyph(R,B){const D=new Glyph("v0",this.point);D.topGlyphs=[],D.botGlyphs=[];let G=0;for(let K=0;KU?G:U,q=D.getMetrics().x_min;D.getMetrics=()=>({x_min:q,x_max:q+W,width:W});const Y=(W-G)/2,Q=(W-U)/2,Z=this;return D.renderToStave=function(ie){let te=ie+Y;for(let ne=0;neB.visible).filter(Boolean).length}getOptions(){return this.options}setNoteStartX(R){this.formatted||this.format(),this.setStartX(R);const B=this.modifiers[0];return B.setX(this.start_x-B.getWidth()),this}setStartX(R){this.start_x=R}getNoteStartX(){return this.formatted||this.format(),this.start_x}getNoteEndX(){return this.formatted||this.format(),this.end_x}getTieStartX(){return this.start_x}getTieEndX(){return this.x+this.width}getX(){return this.x}getNumLines(){return this.options.num_lines}setNumLines(R){return this.options.num_lines=parseInt(R,10),this.resetLines(),this}setY(R){return this.y=R,this}getTopLineTopY(){return this.getYForLine(0)-Flow.STAVE_LINE_THICKNESS/2}getBottomLineBottomY(){return this.getLines()===2?this.getYForLine(6)+Flow.STAVE_LINE_THICKNESS/2:this.getYForLine(this.getNumLines()-1)+Flow.STAVE_LINE_THICKNESS/2}setX(R){const B=R-this.x;this.formatted=!1,this.x=R,this.start_x+=B,this.end_x+=B;for(let D=0;DD.getWidth()&&(B-=D.getWidth()),B}setRepetitionTypeLeft(R,B){return this.modifiers.push(new Repetition$1(R,this.x,B)),this}setRepetitionTypeRight(R,B){return this.modifiers.push(new Repetition$1(R,this.x,B)),this}setVoltaType(R,B,D){if(R===2)volta.type===2&&volta.stave.modifiers.push(new Volta(volta.type,volta.number_t,volta.x,volta.y)),volta={stave:this,type:R,number_t:B,MeasureNumber:this.MeasureNumber,y:D,x:this.x};else if(R===4){let G=this.MeasureNumber-volta.MeasureNumber,U=Math.max(volta.y,D);for(let W=0;W<=G;W++)voltaMeasureNumber[volta.MeasureNumber+W]={type:W===0?2:W===G?4:0,number_t:B,y:U};volta={}}else this.modifiers.push(new Volta(R,B,this.x,D));return this}drawVolta(){let R=voltaMeasureNumber[this.MeasureNumber];R&&(this.modifiers.push(new Volta(R.type,R.number_t,this.x,R.y)),delete voltaMeasureNumber[this.MeasureNumber]),volta.type&&volta.MeasureNumber==this.MeasureNumber&&(this.modifiers.push(new Volta(volta.type,volta.number_t,this.x,volta.y)),volta={})}setSection(R,B,D=0,G=12){const U=new StaveSection(R,this.x+D,B);return U.font.size=G,this.modifiers.push(U),this}setTempo(R,B){return this.modifiers.push(new StaveTempo(R,this.x,B)),this}setText(R,B,D){let G=new StaveText(R,B,D);return G.setFont({family:"Arial",size:14,weight:"normal"}),this.modifiers.push(G),this}getHeight(){return this.height}getSpacingBetweenLines(){return this.options.spacing_between_lines_px}getBoundingBox(){return new BoundingBox(this.x,this.y,this.width,this.getBottomY()-this.y)}getBottomY(){const R=this.options,B=R.spacing_between_lines_px;return this.getYForLine(R.num_lines)+R.space_below_staff_ln*B}getBottomLineY(){return this.getYForLine(this.options.num_lines)}getYForLine(R){const B=this.options,D=B.spacing_between_lines_px,G=B.space_above_staff_ln;return this.y+R*D+G*D}getLineForY(R){const B=this.options,D=B.spacing_between_lines_px,G=B.space_above_staff_ln;return(R-this.y)/D-G}getYForTopText(R){const B=R||0;return this.getYForLine(-B-this.options.top_text_position)}getYForBottomText(R){const B=R||0;return this.getYForLine(this.options.bottom_text_position+B)}getYForNote(R){const B=this.options,D=B.spacing_between_lines_px,G=B.space_above_staff_ln;return this.y+G*D+5*D-R*D}getYForGlyphs(){return this.getYForLine(3)}addModifier(R,B,D){return B!==void 0&&R.setPosition(B),D&&(this.timeSignature.numerator=D.numerator,this.timeSignature.denominator=D.denominator),R.setStave(this),this.formatted=!1,this.modifiers.push(R),this}addEndModifier(R){return this.addModifier(R,StaveModifier.Position.END),this}setBegBarType(R){const{SINGLE:B,REPEAT_BEGIN:D,NONE:G}=Barline.type;return(R===B||R===D||R===G)&&(this.modifiers[0].setType(R),this.formatted=!1),this}setEndBarType(R){return R!==Barline.type.REPEAT_BEGIN&&(this.modifiers[1].setType(R),this.formatted=!1),this}setClef(R,B,D,G){G===void 0&&(G=StaveModifier.Position.BEGIN),G===StaveModifier.Position.END?this.endClef=R:this.clef=R;const U=this.getModifiers(G,Clef.CATEGORY);return U.length===0?this.addClef(R,B,D,G):U[0].setType(R,B,D),this}setEndClef(R,B,D){return this.setClef(R,B,D,StaveModifier.Position.END),this}setKeySignature(R,B,D){this.options.keySignature=R,D===void 0&&(D=StaveModifier.Position.BEGIN);const G=this.getModifiers(D,KeySignature.CATEGORY);return G.length===0?this.options.DYMusicScoreType!=="jianpu"&&this.addKeySignature(R,B,D):G[0].setKeySig(R,B),this}setEndKeySignature(R,B){return this.setKeySignature(R,B,StaveModifier.Position.END),this}setTimeSignature(R,B,D){D===void 0&&(D=StaveModifier.Position.BEGIN);const G=this.getModifiers(D,TimeSignature.CATEGORY);return G.length===0?this.addTimeSignature(R,B,D):G[0].setTimeSig(R),this}setEndTimeSignature(R,B){return this.setTimeSignature(R,B,StaveModifier.Position.END),this}addKeySignature(R,B,D){return D===void 0&&(D=StaveModifier.Position.BEGIN),this.addModifier(new KeySignature(R,B).setPosition(D),D),this}addClef(R,B,D,G){return G===void 0||G===StaveModifier.Position.BEGIN?this.clef=R:G===StaveModifier.Position.END&&(this.endClef=R),this.addModifier(new Clef(R,B,D),G),this}addEndClef(R,B,D){return this.addClef(R,B,D,StaveModifier.Position.END),this}addTimeSignature(R,B,D){return this.addModifier(new TimeSignature(R,B),D),this}addEndTimeSignature(R,B){return this.addTimeSignature(R,B,StaveModifier.Position.END),this}addTrebleGlyph(){return this.addClef("treble"),this}getModifiers(R,B){return R===void 0&&B===void 0?this.modifiers:this.modifiers.filter(D=>(R===void 0||R===D.getPosition())&&(B===void 0||B===D.getCategory()))}sortByCategory(R,B){for(let D=R.length-1;D>=0;D--)for(let G=0;GB[R[G+1].getCategory()]){const U=R[G];R[G]=R[G+1],R[G+1]=U}}format(){const R=this.modifiers[0],B=this.modifiers[1],D=this.getModifiers(StaveModifier.Position.BEGIN),G=this.getModifiers(StaveModifier.Position.END);this.sortByCategory(D,{barlines:0,clefs:1,keysignatures:2,timesignatures:3}),this.sortByCategory(G,{timesignatures:0,keysignatures:1,barlines:2,clefs:3}),D.length>1&&R.getType()===Barline.type.REPEAT_BEGIN&&(D.push(D.splice(0,1)[0]),D.splice(0,0,new Barline(Barline.type.SINGLE))),G.indexOf(B)>0&&G.splice(0,0,new Barline(Barline.type.NONE));let U,W,q,Y=0,Q=this.x;for(let ie=0;ie{W.includes(Y)?q.visible=!0:q.visible=!1})}for(let W=0;Wthis.drawStaveTempo()),this.measure>0){this.context.save(),this.context.setFont(this.font.family,this.font.size,this.font.weight);const W=this.context.measureText(""+this.measure).width;G=this.getYForTopText(0)+3,this.context.fillText(""+this.measure,this.x-W/2,G),this.context.restore()}return this}drawStaveTempo(){if(!this.staveTempos.length)return;const R=document.querySelector(`#${this.attrs.id}`);if(!R)return;const B=R.parentElement.getBBox(),D=this.getYForLine(0),G=R.parentElement.parentElement.querySelectorAll(".vf-curve");if(G.length){const U=this.x+this.staveTempos[0].shift_x+this.getModifierXShift(0),W=this.getYForTopText(1)+B.y-D+5;G.forEach(q=>{const Y=q.getBBox();Y.x-10U&&Y.y-10W&&(B.y=Y.y+5)})}for(let U=0;U=0&&this.timeSignature.numerator){let R=40,B=0;this.MeasureNumber<2&&(R=70,B=-72),this.setText(`${this.timeSignature.numerator}`,1,{justification:1,shift_x:R,shift_y:B-13}),this.setText("\u1173",1,{justification:1,shift_x:R+3,shift_y:B-2}),this.setText(`${this.timeSignature.denominator}`,1,{justification:1,shift_x:R,shift_y:B+8})}}drawVertical(R,B){this.drawVerticalFixed(this.x+R,B)}drawVerticalFixed(R,B){this.checkContext();const D=this.getYForLine(0),G=this.getYForLine(this.options.num_lines-1);B&&this.context.fillRect(R-3,D,1,G-D+1),this.context.fillRect(R,D,1,G-D+1)}drawVerticalBar(R){this.drawVerticalBarFixed(this.x+R,!1)}drawVerticalBarFixed(R){this.checkContext();const B=this.getYForLine(0),D=this.getYForLine(this.options.num_lines-1);this.context.fillRect(R,B,1,D-B+1)}getConfigForLines(){return this.options.line_config}setConfigForLine(R,B){if(R>=this.options.num_lines||R<0)throw new Vex.RERR("StaveConfigError","The line number must be within the range of the number of lines in the Stave.");if(B.visible===void 0)throw new Vex.RERR("StaveConfigError","The line configuration object is missing the 'visible' property.");if(typeof B.visible!="boolean")throw new Vex.RERR("StaveConfigError","The line configuration objects 'visible' property must be true or false.");return this.options.line_config[R]=B,this}setConfigForLines(R){if(R.length!==this.options.num_lines)throw new Vex.RERR("StaveConfigError","The length of the lines configuration array must match the number of lines in the Stave");for(const B in R)R[B]||(R[B]=this.options.line_config[B]),Vex.Merge(this.options.line_config[B],R[B]);return this.options.line_config=R,this}}class TabStave extends Stave{constructor(R,B,D,G){const U={spacing_between_lines_px:13,num_lines:6,top_text_position:1};Vex.Merge(U,G),super(R,B,D,U),this.setAttribute("type","TabStave")}getYForGlyphs(){return this.getYForLine(2.5)}addTabGlyph(){return this.addClef("tab"),this}}function getUnusedStringGroups(F,R){const B=[];let D=[];for(let G=1;G<=F;G++)R.indexOf(G)>-1?(B.push(D),D=[]):D.push(G);return D.length>0&&B.push(D),B}function getPartialStemLines(F,R,B,D){const G=D!==1,U=D!==-1,W=B.getSpacingBetweenLines(),q=B.getNumLines(),Y=[];return R.forEach(Q=>{const Z=Q.indexOf(q)>-1,K=Q.indexOf(1)>-1;if(G&&K||U&&Z)return;Q.length===1&&Q.push(Q[0]);const ie=[];Q.forEach((te,ne,se)=>{const re=te===1,ae=te===q;let le=B.getYForLine(te-1);ne===0&&!re?le-=W/2-1:ne===se.length-1&&!ae&&(le+=W/2-1),ie.push(le),D===1&&re?ie.push(F-2):D===-1&&ae&&ie.push(F+2)}),Y.push(ie.sort((te,ne)=>te-ne))}),Y}class TabNote$1 extends StemmableNote{static get CATEGORY(){return"tabnotes"}constructor(R,B){if(super(R),this.setAttribute("type","TabNote"),this.ghost=!1,this.positions=R.positions,Vex.Merge(this.render_options,{glyph_font_scale:Flow.DEFAULT_TABLATURE_FONT_SCALE,draw_stem:B,draw_dots:B,draw_stem_through_stave:!1,y_shift:0,scale:1,font:"10pt Arial"}),this.glyph=Flow.getGlyphProps(this.duration,this.noteType),!this.glyph)throw new Vex.RuntimeError("BadArguments",`Invalid note initialization data (No glyph found): ${JSON.stringify(R)}`);this.buildStem(),R.stem_direction?this.setStemDirection(R.stem_direction):this.setStemDirection(Stem.UP),this.ghost=!1,this.updateWidth()}reset(){this.stave&&this.setStave(this.stave)}getCategory(){return TabNote$1.CATEGORY}setGhost(R){return this.ghost=R,this.updateWidth(),this}hasStem(){return this.render_options.draw_stem}getStemExtension(){const R=this.getGlyph();return this.stem_extension_override!=null?this.stem_extension_override:R?this.getStemDirection()===1?R.tabnote_stem_up_extension:R.tabnote_stem_down_extension:0}addDot(){const R=new Dot;return this.dots+=1,this.addModifier(R,0)}updateWidth(){this.glyphs=[],this.width=0;for(let R=0;Rthis.width}setStave(R){super.setStave(R),this.context=R.context;let B;if(this.context){const G=this.context;for(this.width=0,B=0;BU.width),this.width=Math.max(U.getWidth(),this.width)}this.glyph.getWidth=()=>this.width}const D=this.positions.map(({str:G})=>R.getYForLine(G-1));return this.setYs(D),this.stem&&this.stem.setYBounds(this.getStemY(),this.getStemY()),this}getPositions(){return this.positions}addToModifierContext(R){this.setModifierContext(R);for(let B=0;B{R.getCategory()==="dots"&&!this.render_options.draw_dots||(R.setContext(this.context),R.drawWithStyle())})}drawStemThrough(){const R=this.getStemX(),B=this.getStemY(),D=this.context,G=this.render_options.draw_stem_through_stave;if(this.render_options.draw_stem&&G){const W=this.stave.getNumLines(),q=this.positions.map(Z=>Z.str),Y=getUnusedStringGroups(W,q),Q=getPartialStemLines(B,Y,this.getStave(),this.getStemDirection());D.save(),D.setLineWidth(Stem.WIDTH),Q.forEach(Z=>{Z.length!==0&&(D.beginPath(),D.moveTo(R,Z[0]),D.lineTo(R,Z[Z.length-1]),D.stroke(),D.closePath())}),D.restore()}}drawPositions(){const R=this.context,B=this.getAbsoluteX(),D=this.ys;for(let G=0;GparseInt(G,10)?TabSlide.SLIDE_DOWN:TabSlide.SLIDE_UP}this.slide_direction=B,this.render_options.cp1=11,this.render_options.cp2=14,this.render_options.y_shift=.5,this.setFont({font:"Times",size:10,style:"bold italic"}),this.setNotes(R)}renderTie(R){if(R.first_ys.length===0||R.last_ys.length===0)throw new Vex.RERR("BadArguments","No Y-values to render");const B=this.context,D=R.first_x_px,G=R.first_ys,U=R.last_x_px,W=this.slide_direction;if(W!==TabSlide.SLIDE_UP&&W!==TabSlide.SLIDE_DOWN)throw new Vex.RERR("BadSlide","Invalid slide direction");for(let q=0;qthis.numStrings)throw new Vex.RERR("BadArguments",`String number must be between 1 and ${this.numStrings}:${R}`);return this.tuningValues[B-1]}getValueForFret(R,B){const D=this.getValueForString(B),G=parseInt(R,10);if(G<0)throw new Vex.RERR("BadArguments","Fret number must be 0 or higher: "+R);return D+G}getNoteForFret(R,B){const D=this.getValueForFret(R,B),G=Math.floor(D/12),U=D%12;return Flow.integerToNote(U)+"/"+G}}class KeyManager{constructor(R){this.music=new Music,this.setKey(R)}setKey(R){return this.key=R,this.reset(),this}getKey(){return this.key}reset(){if(this.keyParts=this.music.getKeyParts(this.key),this.keyString=this.keyParts.root,this.keyParts.accidental&&(this.keyString+=this.keyParts.accidental),!Music.scaleTypes[this.keyParts.type])throw new Vex.RERR("BadArguments",`Unsupported key type: ${this.key}`);this.scale=this.music.getScaleTones(this.music.getNoteValue(this.keyString),Music.scaleTypes[this.keyParts.type]),this.scaleMap={},this.scaleMapByValue={},this.originalScaleMapByValue={};const B=Music.root_indices[this.keyParts.root];for(let D=0;D{const D=TextDynamics.GLYPHS[B];if(!D)throw new Vex.RERR("Invalid dynamics character: "+B);const G=this.render_options.glyph_font_size,U=new Glyph(D.code,G);this.glyphs.push(U),R+=D.width}),this.setWidth(R),this.preFormatted=!0,this}draw(){this.setRendered();const R=this.getAbsoluteX(),B=this.stave.getYForLine(this.line+-3);L$7("Rendering Dynamics: ",this.sequence);let D=R;this.glyphs.forEach((G,U)=>{const W=this.sequence[U];G.render(this.context,D,B),D+=TextDynamics.GLYPHS[W].width})}}function drawArrowHead(F,R,B,D,G,U,W){F.beginPath(),F.moveTo(R,B),F.lineTo(D,G),F.lineTo(U,W),F.lineTo(R,B),F.closePath(),F.fill()}function drawArrowLine(F,R,B,D){const G=D.draw_start_arrow&&D.draw_end_arrow,U=R.x,W=R.y,q=B.x,Y=B.y,Q=Math.sqrt((q-U)*(q-U)+(Y-W)*(Y-W)),Z=(Q-D.arrowhead_length/3)/Q;let K,ie,te,ne;D.draw_end_arrow||G?(K=Math.round(U+(q-U)*Z),ie=Math.round(W+(Y-W)*Z)):(K=q,ie=Y),D.draw_start_arrow||G?(te=U+(q-U)*(1-Z),ne=W+(Y-W)*(1-Z)):(te=U,ne=W),D.color&&(F.setStrokeStyle(D.color),F.setFillStyle(D.color)),F.beginPath(),F.moveTo(te,ne),F.lineTo(K,ie),F.stroke(),F.closePath();const se=Math.atan2(Y-W,q-U),re=Math.abs(D.arrowhead_length/Math.cos(D.arrowhead_angle));let ae,le,ce,he,pe,me;(D.draw_end_arrow||G)&&(ae=se+Math.PI+D.arrowhead_angle,ce=q+Math.cos(ae)*re,he=Y+Math.sin(ae)*re,le=se+Math.PI-D.arrowhead_angle,pe=q+Math.cos(le)*re,me=Y+Math.sin(le)*re,drawArrowHead(F,ce,he,q,Y,pe,me)),(D.draw_start_arrow||G)&&(ae=se+D.arrowhead_angle,ce=U+Math.cos(ae)*re,he=W+Math.sin(ae)*re,le=se-D.arrowhead_angle,pe=U+Math.cos(le)*re,me=W+Math.sin(le)*re,drawArrowHead(F,ce,he,U,W,pe,me))}class StaveLine extends Element$1{static get TextVerticalPosition(){return{TOP:1,BOTTOM:2}}static get TextJustification(){return{LEFT:1,CENTER:2,RIGHT:3}}constructor(R){super(),this.setAttribute("type","StaveLine"),this.notes=R,this.text="",this.font={family:"Arial",size:10,weight:""},this.render_options={padding_left:4,padding_right:3,line_width:1,line_dash:null,rounded_end:!0,color:null,draw_start_arrow:!1,draw_end_arrow:!1,arrowhead_length:10,arrowhead_angle:Math.PI/8,text_position_vertical:StaveLine.TextVerticalPosition.TOP,text_justification:StaveLine.TextJustification.CENTER},this.setNotes(R)}setFont(R){return this.font=R,this}setText(R){return this.text=R,this}setNotes(R){if(!R.first_note&&!R.last_note)throw new Vex.RuntimeError("BadArguments","Notes needs to have either first_note or last_note set.");if(R.first_indices||(R.first_indices=[0]),R.last_indices||(R.last_indices=[0]),R.first_indices.length!==R.last_indices.length)throw new Vex.RuntimeError("BadArguments","Connected notes must have similar index sizes");return this.first_note=R.first_note,this.first_indices=R.first_indices,this.last_note=R.last_note,this.last_indices=R.last_indices,this}applyLineStyle(){const R=this.checkContext(),B=this.render_options;B.line_dash&&R.setLineDash(B.line_dash),B.line_width&&R.setLineWidth(B.line_width),B.rounded_end?R.setLineCap("round"):R.setLineCap("square")}applyFontStyle(){const R=this.checkContext();this.font&&R.setFont(this.font.family,this.font.size,this.font.weight),this.render_options.color&&(R.setStrokeStyle(this.render_options.color),R.setFillStyle(this.render_options.color))}draw(){const R=this.checkContext();this.setRendered();const B=this.first_note,D=this.last_note,G=this.render_options;R.save(),this.applyLineStyle();let U,W;this.first_indices.forEach((ie,te)=>{const ne=this.last_indices[te];U=B.getModifierStartXY(2,ie),W=D.getModifierStartXY(1,ne);const se=U.y>W.y;U.x+=B.getMetrics().modRightPx+G.padding_left,W.x-=D.getMetrics().modLeftPx+G.padding_right;const re=B.getGlyph().getWidth();B.getKeyProps()[ie].displaced&&B.getStemDirection()===1&&(U.x+=re+G.padding_left),D.getKeyProps()[ne].displaced&&D.getStemDirection()===-1&&(W.x-=re+G.padding_right),U.y+=se?-3:1,W.y+=se?2:0,drawArrowLine(R,U,W,this.render_options)}),R.restore();const q=R.measureText(this.text).width,Y=G.text_justification;let Q=0;Y===StaveLine.TextJustification.LEFT?Q=U.x:Y===StaveLine.TextJustification.CENTER?Q=(W.x-U.x)/2+U.x-q/2:Y===StaveLine.TextJustification.RIGHT&&(Q=W.x-q);let Z;const K=G.text_position_vertical;return K===StaveLine.TextVerticalPosition.TOP?Z=B.getStave().getYForTopText():K===StaveLine.TextVerticalPosition.BOTTOM&&(Z=B.getStave().getYForBottomText(Flow.TEXT_HEIGHT_OFFSET_HACK)),R.save(),this.applyFontStyle(),R.fillText(this.text,Q,Z),R.restore(),this}}function L$6(...F){PedalMarking.DEBUG&&Vex.L("Vex.Flow.PedalMarking",F)}function drawPedalGlyph(F,R,B,D,G){const U=PedalMarking.GLYPHS[F];new Glyph(U.code,G).render(R,B+U.x_shift,D+U.y_shift)}class PedalMarking extends Element$1{static get GLYPHS(){return{pedal_depress:{code:"v36",x_shift:-10,y_shift:0},pedal_release:{code:"v5d",x_shift:-2,y_shift:3}}}static get Styles(){return{TEXT:1,BRACKET:2,MIXED:3,MIXED_OPEN_END:4,BRACKET_OPEN_BEGIN:5,BRACKET_OPEN_END:6,BRACKET_OPEN_BOTH:7}}static get StylesString(){return{text:PedalMarking.Styles.TEXT,bracket:PedalMarking.Styles.BRACKET,mixed:PedalMarking.Styles.MIXED,mixed_open_end:PedalMarking.Styles.MIXED_OPEN_END,bracket_open_begin:PedalMarking.Styles.BRACKET_OPEN_BEGIN,bracket_open_end:PedalMarking.Styles.BRACKET_OPEN_END,bracket_open_both:PedalMarking.Styles.BRACKET_OPEN_BOTH}}static createSustain(R){return new PedalMarking(R)}static createSostenuto(R){const B=new PedalMarking(R);return B.setStyle(PedalMarking.Styles.MIXED),B.setCustomText("Sost. Ped."),B}static createUnaCorda(R){const B=new PedalMarking(R);return B.setStyle(PedalMarking.Styles.TEXT),B.setCustomText("una corda","tre corda"),B}constructor(R){super(),this.setAttribute("type","PedalMarking"),this.EndsStave=!1,this.ChangeBegin=!1,this.ChangeEnd=!1,this.notes=R,this.style=PedalMarking.TEXT,this.line=0,this.custom_depress_text="",this.custom_release_text="",this.font={family:"Times New Roman",size:12,weight:"italic bold"},this.render_options={bracket_height:10,text_margin_right:6,bracket_line_width:1,glyph_point_size:40,color:"black"}}setEndStave(R){if(this.endStave=R,this.endStaveAddedWidth=0,this.startMargin=0,this.endMargin=0,Array.isArray(this.endStave.modifiers))for(let B=0;B3)throw new Vex.RERR("InvalidParameter","The style must be one found in PedalMarking.Styles");return this.style=R,this}setLine(R){return this.line=R,this}drawBracketed(){const R=this.context;let B=!1,D,G;const U=this;this.notes.forEach((W,q,Y)=>{B=!B;let Q=0;if(W?Q=W.getNoteHeadBeginX():Q=this.endStave.end_x+this.endStaveAddedWidth,this.EndsStave)B?this.ChangeBegin&&(Q=W.getAbsoluteX()):(W?this.ChangeEnd?Q=W.getAbsoluteX():Q=W.getStave().end_x+this.endStaveAddedWidth-U.render_options.text_margin_right:Q=this.endStave.end_x+this.endStaveAddedWidth-U.render_options.text_margin_right,this.endMargin=-U.render_options.text_margin_right);else if(W)if(B)this.ChangeBegin&&(Q=W.getAbsoluteX());else switch(U.style){case PedalMarking.Styles.BRACKET_OPEN_END:case PedalMarking.Styles.BRACKET_OPEN_BOTH:case PedalMarking.Styles.MIXED_OPEN_END:Q=W.getNoteHeadEndX();break;default:this.ChangeEnd?Q=W.getAbsoluteX():(Q=W.getNoteHeadBeginX()-U.render_options.text_margin_right,this.startMargin=-U.render_options.text_margin_right);break}let Z=this.endStave;W&&(Z=W.getStave());let K=Z.getYForBottomText(U.line+3);G&&G>K&&(K=G);const ie=Y[q+1]===W,te=Y[q-1]===W;let ne=0;if(B)if(ne=te?5:0,(U.style===PedalMarking.Styles.MIXED||U.style===PedalMarking.Styles.MIXED_OPEN_END)&&!te)if(U.custom_depress_text){const se=R.measureText(U.custom_depress_text).width;R.fillText(U.custom_depress_text,Q-se/2,K),ne=se/2+U.render_options.text_margin_right}else drawPedalGlyph("pedal_depress",R,Q,K,U.render_options.glyph_point_size),ne=20+U.render_options.text_margin_right;else R.beginPath(),U.style===PedalMarking.Styles.BRACKET_OPEN_BEGIN||U.style===PedalMarking.Styles.BRACKET_OPEN_BOTH?R.moveTo(Q+ne,K):(this.ChangeBegin&&(Q+=5),R.moveTo(Q,K-U.render_options.bracket_height),this.ChangeBegin&&(Q+=5),R.lineTo(Q+ne,K)),R.stroke(),R.closePath();else ne=ie&&!this.EndsStave?-5:0,R.beginPath(),R.moveTo(D,G),R.lineTo(Q+ne,K),U.style!==PedalMarking.Styles.BRACKET_OPEN_END&&U.style!==PedalMarking.Styles.MIXED_OPEN_END&&U.style!==PedalMarking.Styles.BRACKET_OPEN_BOTH&&(this.ChangeEnd&&(Q+=5),R.lineTo(Q,K-U.render_options.bracket_height)),R.stroke(),R.closePath();D=Q+ne,G=K})}drawText(){const R=this.context;let B=!1;const D=this,G=D.render_options.glyph_point_size;this.notes.forEach(U=>{B=!B;const W=U.getStave(),q=U.getAbsoluteX(),Y=W.getYForBottomText(D.line+3);let Q=0;B?D.custom_depress_text?(Q=R.measureText(D.custom_depress_text).width,R.fillText(D.custom_depress_text,q-Q/2,Y)):drawPedalGlyph("pedal_depress",R,q,Y,G):D.custom_release_text?(Q=R.measureText(D.custom_release_text).width,R.fillText(D.custom_release_text,q-Q/2,Y)):drawPedalGlyph("pedal_release",R,q,Y,G)})}draw(){const R=this.checkContext();this.setRendered(),R.save(),R.setStrokeStyle(this.render_options.color),R.setFillStyle(this.render_options.color),R.setFont(this.font.family,this.font.size,this.font.weight),L$6("Rendering Pedal Marking"),this.style===PedalMarking.Styles.BRACKET||this.style===PedalMarking.Styles.MIXED||this.style===PedalMarking.Styles.MIXED_OPEN_END||this.style===PedalMarking.Styles.BRACKET_OPEN_BEGIN||this.style===PedalMarking.Styles.BRACKET_OPEN_END||this.style===PedalMarking.Styles.BRACKET_OPEN_BOTH?(R.setLineWidth(this.render_options.bracket_line_width),this.drawBracketed()):this.style===PedalMarking.Styles.TEXT&&this.drawText(),R.restore()}}function L$5(...F){TextBracket.DEBUG&&Vex.L("Vex.Flow.TextBracket",F)}class TextBracket extends Element$1{static get Positions(){return{TOP:1,BOTTOM:-1}}static get PositionString(){return{top:TextBracket.Positions.TOP,bottom:TextBracket.Positions.BOTTOM}}constructor({start:R,stop:B,text:D="",superscript:G="",position:U=TextBracket.Positions.TOP}){super(),this.setAttribute("type","TextBracket"),this.start=R,this.stop=B,this.text=D,this.superscript=G,this.position=typeof U=="string"?TextBracket.PositionString[U]:U,this.line=1,this.font={family:"Serif",size:15,weight:"italic"},this.render_options={dashed:!0,dash:[5],color:"black",line_width:1,show_bracket:!0,bracket_height:8,underline_superscript:!0}}applyStyle(R){return R.setFont(this.font.family,this.font.size,this.font.weight),R.setStrokeStyle(this.render_options.color),R.setFillStyle(this.render_options.color),R.setLineWidth(this.render_options.line_width),this}setDashed(R,B){return this.render_options.dashed=R,B&&(this.render_options.dash=B),this}setFont(R){return this.font={...this.font,...R},this}setLine(R){return this.line=R,this}draw(){const R=this.context;this.setRendered();let B=0;switch(this.position){case TextBracket.Positions.TOP:B=this.start.getStave().getYForTopText(this.line);break;case TextBracket.Positions.BOTTOM:B=this.start.getStave().getYForBottomText(this.line+Flow.TEXT_HEIGHT_OFFSET_HACK);break;default:throw new Vex.RERR("InvalidPosition",`The position ${this.position} is invalid`)}const D={x:this.start.getAbsoluteX(),y:B},G={x:this.stop.getAbsoluteX(),y:B};L$5("Rendering TextBracket: start:",D,"stop:",G,"y:",B);const U=this.render_options.bracket_height*this.position;R.save(),this.applyStyle(R),R.fillText(this.text,D.x,D.y);const W=R.measureText(this.text).width,q=R.measureText("M").width,Y=D.y-q/2.5;R.setFont(this.font.family,this.font.size/1.4,this.font.weight),R.fillText(this.superscript,D.x+W+1,Y);const Q=R.measureText(this.superscript).width,Z=R.measureText("M").width;let K=D.x,ie=Y;const te=G.x+this.stop.getGlyph().getWidth();this.position===TextBracket.Positions.TOP?(K+=W+Q+5,ie-=Z/2.7):this.position===TextBracket.Positions.BOTTOM&&(ie+=Z/2.7,K+=W+2,this.render_options.underline_superscript||(K+=Q)),this.render_options.dashed?(Renderer.drawDashedLine(R,K,ie,te,ie,this.render_options.dash),this.render_options.show_bracket&&Renderer.drawDashedLine(R,te,ie+1*this.position,te,ie+U,this.render_options.dash)):(R.beginPath(),R.moveTo(K,ie),R.lineTo(te,ie),this.render_options.show_bracket&&R.lineTo(te,ie+U),R.stroke(),R.closePath()),R.restore()}}function L$4(...F){BarNote.DEBUG&&Vex.L("Vex.Flow.BarNote",F)}class BarNote extends Note{constructor(R=Barline.type.SINGLE){super({duration:"b"}),this.setAttribute("type","BarNote"),this.metrics={widths:{}};const B=Barline.type;this.metrics.widths={[B.SINGLE]:8,[B.DOUBLE]:12,[B.END]:15,[B.REPEAT_BEGIN]:14,[B.REPEAT_END]:14,[B.REPEAT_BOTH]:18,[B.NONE]:0},this.ignore_ticks=!0,this.setType(R)}getType(){return this.type}setType(R){return this.type=typeof R=="string"?Barline.typeString[R]:R,this.setWidth(this.metrics.widths[this.type]),this}getBoundingBox(){return super.getBoundingBox()}addToModifierContext(){return this}preFormat(){return this.setPreFormatted(!0),this}draw(){if(this.checkContext(),!this.stave)throw new Vex.RERR("NoStave","Can't draw without a stave.");L$4("Rendering bar line at: ",this.getAbsoluteX());const R=new Barline(this.type);R.setX(this.getAbsoluteX()),R.draw(this.stave),this.setRendered()}}class GhostNote extends StemmableNote{constructor(R){if(!R)throw new Vex.RuntimeError("BadArguments","Ghost note must have valid initialization data to identify duration.");let B;if(typeof R=="string")B={duration:R};else if(typeof R=="object")B=R;else throw new Vex.RuntimeError("BadArguments","Ghost note must have valid initialization data to identify duration.");super(B),this.setAttribute("type","GhostNote"),this.setWidth(0)}isRest(){return!0}setStave(R){super.setStave(R)}addToModifierContext(){return this}preFormat(){return this.setPreFormatted(!0),this}draw(){if(!this.stave)throw new Vex.RERR("NoStave","Can't draw without a stave.");this.setRendered();for(let R=0;R0||B===!0;return B&&!(U>0)&&(this.pos=G),q?this.matchSuccess():this.matchFail(G),{success:q,results:D,numMatches:U}}expectZeroOrMore(R){return this.expectOneOrMore(R,!0)}expect(R){L$2("Evaluating rules:",R);let B;if(!R)throw new X$2("Invalid Rule: "+R,R);const D=R.bind(this.grammar)();if(D.token)B=this.matchToken(D.token,D.noSpace===!0),B.success&&(this.pos+=B.incrementPos);else if(D.expect)D.oneOrMore?B=this.expectOneOrMore(D):D.zeroOrMore?B=this.expectZeroOrMore(D):B=this.expectOne(D);else throw new X$2("Bad grammar! No `token` or `expect` property",D);return B.matches=[],B.results&&B.results.forEach(G=>B.matches.push(flattenMatches(G))),D.run&&B.success&&D.run(B),B}}function L$1(...F){EasyScore.DEBUG&&Vex.L("Vex.Flow.EasyScore",F)}const X$1=Vex.MakeException("EasyScoreError");class Grammar{constructor(R){this.builder=R}begin(){return this.LINE}LINE(){return{expect:[this.PIECE,this.PIECES,this.EOL]}}PIECE(){return{expect:[this.CHORDORNOTE,this.PARAMS],run:()=>this.builder.commitPiece()}}PIECES(){return{expect:[this.COMMA,this.PIECE],zeroOrMore:!0}}PARAMS(){return{expect:[this.DURATION,this.TYPE,this.DOTS,this.OPTS]}}CHORDORNOTE(){return{expect:[this.CHORD,this.SINGLENOTE],or:!0}}CHORD(){return{expect:[this.LPAREN,this.NOTES,this.RPAREN],run:R=>this.builder.addChord(R.matches[1])}}NOTES(){return{expect:[this.NOTE],oneOrMore:!0}}NOTE(){return{expect:[this.NOTENAME,this.ACCIDENTAL,this.OCTAVE]}}SINGLENOTE(){return{expect:[this.NOTENAME,this.ACCIDENTAL,this.OCTAVE],run:R=>this.builder.addSingleNote(R.matches[0],R.matches[1],R.matches[2])}}ACCIDENTAL(){return{expect:[this.ACCIDENTALS],maybe:!0}}DOTS(){return{expect:[this.DOT],zeroOrMore:!0,run:R=>this.builder.setNoteDots(R.matches[0])}}TYPE(){return{expect:[this.SLASH,this.MAYBESLASH,this.TYPES],maybe:!0,run:R=>this.builder.setNoteType(R.matches[2])}}DURATION(){return{expect:[this.SLASH,this.DURATIONS],maybe:!0,run:R=>this.builder.setNoteDuration(R.matches[1])}}OPTS(){return{expect:[this.LBRACKET,this.KEYVAL,this.KEYVALS,this.RBRACKET],maybe:!0}}KEYVALS(){return{expect:[this.COMMA,this.KEYVAL],zeroOrMore:!0}}KEYVAL(){const R=B=>B.slice(1,-1);return{expect:[this.KEY,this.EQUALS,this.VAL],run:B=>this.builder.addNoteOption(B.matches[0],R(B.matches[2]))}}VAL(){return{expect:[this.SVAL,this.DVAL],or:!0}}KEY(){return{token:"[a-zA-Z][a-zA-Z0-9]*"}}DVAL(){return{token:'["][^"]*["]'}}SVAL(){return{token:"['][^']*[']"}}NOTENAME(){return{token:"[a-gA-G]"}}OCTAVE(){return{token:"[0-9]+"}}ACCIDENTALS(){return{token:"bbs|bb|bss|bs|b|db|d|##|#|n|\\+\\+-|\\+-|\\+\\+|\\+|k|o"}}DURATIONS(){return{token:"[0-9whq]+"}}TYPES(){return{token:"[rRsSxX]"}}LPAREN(){return{token:"[(]"}}RPAREN(){return{token:"[)]"}}COMMA(){return{token:"[,]"}}DOT(){return{token:"[.]"}}SLASH(){return{token:"[/]"}}MAYBESLASH(){return{token:"[/]?"}}EQUALS(){return{token:"[=]"}}LBRACKET(){return{token:"\\["}}RBRACKET(){return{token:"\\]"}}EOL(){return{token:"$"}}}class Builder{constructor(R){this.factory=R,this.commitHooks=[],this.reset()}reset(R={}){this.options={stem:"auto",clef:"treble"},this.elements={notes:[],accidentals:[]},this.rollingDuration="8",this.resetPiece(),Object.assign(this.options,R)}getFactory(){return this.factory}getElements(){return this.elements}addCommitHook(R){this.commitHooks.push(R)}resetPiece(){L$1("resetPiece"),this.piece={chord:[],duration:this.rollingDuration,dots:0,type:void 0,options:{}}}setNoteDots(R){L$1("setNoteDots:",R),R&&(this.piece.dots=R.length)}setNoteDuration(R){L$1("setNoteDuration:",R),this.rollingDuration=this.piece.duration=R||this.rollingDuration}setNoteType(R){L$1("setNoteType:",R),R&&(this.piece.type=R)}addNoteOption(R,B){L$1("addNoteOption: key:",R,"value:",B),this.piece.options[R]=B}addNote(R,B,D){L$1("addNote:",R,B,D),this.piece.chord.push({key:R,accid:B,octave:D})}addSingleNote(R,B,D){L$1("addSingleNote:",R,B,D),this.addNote(R,B,D)}addChord(R){L$1("startChord"),typeof R[0]!="object"?this.addSingleNote(R[0]):R.forEach(B=>{B&&this.addNote(...B)}),L$1("endChord")}commitPiece(){L$1("commitPiece");const{factory:R}=this;if(!R)return;const B={...this.options,...this.piece.options},{stem:D,clef:G}=B,U=D.toLowerCase()==="auto",W=!U&&D.toLowerCase()==="up"?StaveNote.STEM_UP:StaveNote.STEM_DOWN,{chord:q,duration:Y,dots:Q,type:Z}=this.piece,K=q.map(ne=>ne.key+"/"+ne.octave),ie=R.StaveNote({keys:K,duration:Y,dots:Q,type:Z,clef:G,auto_stem:U});U||ie.setStemDirection(W);const te=q.map(ne=>ne.accid||null);te.forEach((ne,se)=>{ne&&ie.addAccidental(se,R.Accidental({type:ne}))});for(let ne=0;nene(B,ie,this)),this.elements.notes.push(ie),this.elements.accidentals.concat(te),this.resetPiece()}}function setId({id:F},R){F!==void 0&&R.setAttribute("id",F)}function setClass(F,R){if(!F.class)return;const B=/\s*,\s*/;F.class.split(B).forEach(D=>R.addClass(D))}class EasyScore{constructor(R={}){this.setOptions(R),this.defaults={clef:"treble",time:"4/4",stem:"auto"}}set(R){return Object.assign(this.defaults,R),this}setOptions(R){return this.options={factory:null,builder:null,commitHooks:[setId,setClass,Articulation$1.easyScoreHook],throwOnError:!1,...R},this.factory=this.options.factory,this.builder=this.options.builder||new Builder(this.factory),this.grammar=new Grammar(this.builder),this.parser=new Parser(this.grammar),this.options.commitHooks.forEach(B=>this.addCommitHook(B)),this}setContext(R){return this.factory&&this.factory.setContext(R),this}parse(R,B={}){this.builder.reset(B);const D=this.parser.parse(R);if(!D.success&&this.options.throwOnError)throw new X$1("Error parsing line: "+R,D);return D}beam(R,B={}){return this.factory.Beam({notes:R,options:B}),R}tuplet(R,B={}){return this.factory.Tuplet({notes:R,options:B}),R}notes(R,B={}){return B={clef:this.defaults.clef,stem:this.defaults.stem,...B},this.parse(R,B),this.builder.getElements().notes}voice(R,B){return B={time:this.defaults.time,...B},this.factory.Voice(B).addTickables(R)}addCommitHook(R){return this.builder.addCommitHook(R)}}function initGroup(){return{notes:[],finish:!1,total:0,staveId:""}}let _text_width=null,tone="C",group=initGroup(),_denominator="",_numerator="",ornamentGroup="";class NumberedNote extends StaveNote{static get CATEGORY(){return"numberednotes"}static accidentalAndKey(R){switch(R){case"G":return{4:"#"};case"D":return{1:"#",4:"#"};case"A":return{1:"#",4:"#",5:"#"};case"E":return{1:"#",2:"#",4:"#",5:"#"};case"B":return{1:"#",2:"#",4:"#",5:"#",6:"#"};case"F#":return{1:"#",2:"#",3:"#",4:"#",5:"#",6:"#"};case"C#":return{1:"#",2:"#",3:"#",4:"#",5:"#",6:"#",7:"#"};case"F":return{7:"b"};case"Bb":return{7:"b",3:"b"};case"Eb":return{7:"b",3:"b",6:"b"};case"Ab":return{7:"b",2:"b",3:"b",6:"b"};case"Db":return{7:"b",2:"b",3:"b",5:"b",6:"b"};case"Gb":return{7:"b",1:"b",2:"b",3:"b",5:"b",6:"b"};case"Cb":return{7:"b",1:"b",2:"b",3:"b",4:"b",5:"b",6:"b"};default:return{}}}static accidentalMap(R){switch(R){case"C":return"";case"F":case"Bb":case"Eb":case"Ab":case"Db":case"Gb":case"Cb":return{bb:"b",b:"",n:"#","#":"##"};default:return{b:"bb",n:"b","#":"","##":"#"}}}static get noteLift(){switch(tone){case"G":return["7"];case"D":return["7","3"];case"A":return["7","3","6"];case"E":return["2","6","3","7"];case"B":return["5","2","6","3","7"];case"F#":return["1","5","2","6","3","7"];case"C#":return["4","1","5","2","6","3","7"];case"F":return["4"];case"Bb":return["1","4"];case"Eb":return["5","1","4"];case"Ab":return["2","5","1","4"];case"Db":return["6","2","5","1","4"];case"Gb":return["3","6","2","5","1","4"];case"Cb":return["7","3","6","2","5","1","4"]}}static get longDurationLine(){return{1:3,2:1,6:2}}static get numberedDurationLine(){return{8:1,16:2,32:3,64:4,128:5}}static get durationTime(){return{8:6144,4:4096}}constructor(R){super(R),this.setAttribute("type","NumberedNote"),tone=R.keyString,this.ornament=!!R.ornament,this.line=0,this.keys=R.keys||[],this.fontSize=20,this.offset_x=0,this.offset_y=0,this.note_tones=[],this.duration_lines=0,this.long_duration_lines=0,this.note_size=R.note_size||16;const B=Flow.sanitizeDuration(this.duration);var D=NumberedNote.numberedDurationLine[B.toString()];if(D&&(this.duration_lines=D),D=NumberedNote.longDurationLine[B.toString()],D&&(this.long_duration_lines=D),!_text_width){var G="__$text_wraper$$__";let W=document.createElement("canvas");W.id=G,document.body.append(W);const q=document.getElementById(G),Y=q.getContext("2d");Y.font="Arial 22px";var U=Y.measureText("5");_text_width=U.width+2,document.body.removeChild(q)}}getCategory(){return NumberedNote.CATEGORY}setKeySignature(R){this.keySignature=R}preFormat(){this.preFormatted||(this.modifierContext&&this.modifierContext.preFormat(),this.setWidth(this.full_width),this.setPreFormatted(!0))}filterNote(){if(window&&window.sett&&window.sett.keySignature||!this.keys||!this.keys.length)return;const R=NumberedNote.accidentalMap(tone);if(!R)return;const B=NumberedNote.noteLift;if(!B)return;var D=this.keys[0].split("/"),G=D[0];G==="b"&&(G="R"),G=G.replaceAll("#",""),G=G.replaceAll("n",""),G.length>1&&(G=G.replaceAll("b",""));const U=NumberedNoteHead.numberedNotationMapping[G.toUpperCase()];if(B.includes(U))for(let W=0;W{switch(D.getAttribute("type")){case"Accidental":D.render_options.font_scale=this.note_width*1.4,D.x_shift=2,D.y_shift=this.unit_height/2,this.ornament&&(D.render_options.font_scale=this.note_width,D.x_shift=14,D.y_shift=-10);break;case"Stroke":D.x_shift=-1*R,D.y_shift=1*this.unit_height;break;case"Dot":D.x_shift=B*this.duration_dot_width+7,D.y_shift=1*this.unit_height,B++;break;case"Ornament":D.y_shift=-3;break;default:D.y_shift=1*this.unit_height}D.reset&&D.reset(),R+=D.getWidth()/2})}handleDeleteDot(){for(let R=0;RW),D=B.length?B[0]/B[1]:0;if(this.ornament)return;if(D===0)return this.long_duration_lines=this.intrinsicTicks/R-1,this.long_duration_lines>=_numerator&&(this.long_duration_lines=_numerator-1),_denominator==8&&(this.long_duration_lines=0,_numerator==3&&this.draw_dot(this.context,this.bottom_x+25,this.bottom_y-30,this.dot_width),_numerator==6&&(this.draw_dot(this.context,this.bottom_x+25,this.bottom_y-30,this.dot_width),new Glyph("v0",40).render(this.context,this.bottom_x+40,this.top_y),this.draw_dot(this.context,this.bottom_x+65,this.bottom_y-30,this.dot_width))),group=initGroup();let G={lines:this.duration_lines,duration:D,id:this.attrs.id,x:this.x-this.duration_line_space/2-this.left_width,y:this.y,width:this.full_width};D>R*2&&(this.long_duration_lines=parseInt(D/R)-1,this.handleDeleteDot()),ornamentGroup&&(G.x+=this.note_width),group.notes.push(G);let U=group.notes.reduce((W,q)=>W+q.duration,0);U=parseInt(U),U>R&&(U-=R),U>R-10&&Uq.lines===0).length&&(this.drawDurationLoneLine(),group=initGroup()))}draw(){if(this.checkContext(),!this.stave)throw new Vex.RERR("NoStave","Can't draw without a stave.");let R=this.context;R.save(),R.setFont("Arial",this.note_height,"normal"),this.setAttribute("el",R.openGroup("stavenote",this.getAttribute("id"))),R.openGroup("note",null,{pointerBBox:!0});let B=this.getAbsoluteX()+2.5;this.x=B;let D=this.stave.getYForLine(2)+this.note_height/2;this.y=D,this.buildToneHeads(),this.preFormatModifier(),this.applyStyle(),this.note_tones.forEach(G=>{G.draw(R)}),R.openGroup("modifier",null,{pointerBBox:!0}),this.drawModifiers(),R.closeGroup(),R.closeGroup(),R.closeGroup(),this.calcGroup(),group.staveId=this.stave.attrs.id,this.drawDurationLine(R,{}),this.drawLongDurationLines(R),this.restoreStyle(),this.setRendered(),this.ornament?ornamentGroup?ornamentGroup=Object.assign(ornamentGroup,{lines:this.duration_lines,id:this.attrs.id,x:this.x-this.duration_line_space/2-this.left_width,width:this.full_width}):ornamentGroup={lines:this.duration_lines,id:this.attrs.id,x:this.x-this.duration_line_space/2-this.left_width,width:this.full_width}:ornamentGroup=""}drawDurationLoneLine(R,B){R=R||this.context;let D=B||this.y+this.duration_line_space;for(let G=0;G<5;G++){let U=[],W=0;for(let q=0;qG)U.push(Y),W++;else{if(U.length>1){let Q=U.length-1;D=U[0].y+this.duration_line_space,R.rect(U[0].x,D+G*3,U[Q].x-U[0].x+U[Q].width,.5)}U=[],W=q+1}}if(U.length>1){let q=U.length-1;D=U[0].y+this.duration_line_space,R.rect(U[0].x,D+G*3,U[q].x-U[0].x+U[q].width,.5)}}}draw_dot(R,B,D,G){R.openGroup("numbered-note-dot"),R.beginPath(),R.arc(B,D,G,0,2*Math.PI),R.closePath(),R.fill(),R.closeGroup()}drawDurationLine(R,B){var D=this.attrs.id+"-lines";R.openGroup("numbered_note_lines",D);var G,U;if(this.duration_lines>0){const Y=this.duration_line_space;var W=this.full_width;if(B&&B.width&&(W=B.width),W<0&&(W=this.note_width),!B||typeof B.startX=="undefined"?G=this.x-Y/2-this.left_width:G=B.startX,!B||typeof B.startY=="undefined"?U=this.y+this.duration_line_space:U=B.startY,group.finish&&(this.drawDurationLoneLine(R,U),group=initGroup()),this.ornament?(G+=12,U-=22,W=15,ornamentGroup&&(G-=10,W+=10)):ornamentGroup&&(G+=this.note_width,W-=this.note_width),W>0){for(var q=0;qq.getAttribute("type")==="Accidental"),W=this.modifiers.findIndex(q=>q.getAttribute("type")==="Accidental");G&&W>-1?this.modifiers[W].accidental.code=G==="#"?"v18":"v44":this.modifiers.splice(W,1)}}catch(G){console.log("\u{1F680} ~ error",G)}}this.setYs(R)}getFullWidth(){return this.full_width}getFullHeight(){return this.full_height}getLine(){return this.keyProps[0].line}get full_width(){return this.note_width+this.left_width+this.right_width+this.long_duration_line_width}get long_duration_line_width(){return(this.long_duration_width+this.long_duration_space)*this.long_duration_lines}get full_height(){return this.bottom_y-this.top_y}get note_width(){return this.note_size||0}get note_dot_width(){return 6}get note_height(){return this.unit_height}get unit_height(){return this.note_size||0}get note_x(){return this.x||0}get top_x(){return this.x||0}get top_y(){var R=this;return(this.y||0)-(R.note_tones.map(D=>(D.td+D.bd)*(R.dot_space+R.dot_width)).reduce((D,G)=>D+G,0)+this.note_height*this.note_tones.length-this.unit_height-this.note_tones[0].bd*(R.dot_space+R.dot_width)+(this.note_tones.length-1)*this.head_space)}get bottom_x(){return this.x||0}get bottom_y(){return(this.y||0)+this.unit_height+this.duration_lines*(this.duration_line_height+this.duration_line_space)+this.note_tones[0].meta.bd*(this.dot_width+this.dot_space)}get left_width(){return this.modifiers_width}get right_width(){return this.full_duration_dot_width}get duration_dot_width(){return 6}get full_duration_dot_width(){return this.duration_dot_width*this.getModifiersByCategory(Dot.CATEGORY).length}getModifiersByCategory(R){var B=[];return this.modifiers.forEach(D=>{D.getCategory()===R&&B.push(D)}),B}get head_space(){return 6}get duration_line_height(){return 2}get duration_line_space(){return 4}get dot_width(){return 2}get dot_space(){return 2}get long_duration_space(){return 10}get long_duration_width(){return 20}getWidth(){return this.full_width}get modifiers_width(){let R=0;return this.modifiers.forEach(B=>{R+=B.getWidth()}),R}}class NumberedNoteHead{static get numberedNotationMapping(){let R=tone;switch(window&&window.sett&&window.sett.keySignature&&(R="C"),R){case"A":return{C:"3",D:"4",E:"5",F:"6",G:"7",A:"1",B:"2",R:"0",min:2.5,max:5.5};case"B":return{C:"2",D:"3",E:"4",F:"5",G:"6",A:"7",B:"1",R:"0",min:-.5,max:2.5};case"D":return{C:"7",D:"1",E:"2",F:"3",G:"4",A:"5",B:"6",R:"0",min:.5,max:3.5};case"E":return{C:"6",D:"7",E:"1",F:"2",G:"3",A:"4",B:"5",R:"0",min:1,max:4};case"F":return{C:"5",D:"6",E:"7",F:"1",G:"2",A:"3",B:"4",R:"0",min:1.5,max:4.5};case"G":case"Gb":return{C:"4",D:"5",E:"6",F:"7",G:"1",A:"2",B:"3",R:"0",min:2,max:5};case"Eb":return{C:"6",D:"7",E:"1",F:"2",G:"3",A:"4",B:"5",R:"0",min:1,max:4};case"D#":case"Db":return{C:"7",D:"1",E:"2",F:"3",G:"4",A:"5",B:"6",R:"0",min:.5,max:3.5};case"F#":return{C:"5",D:"6",E:"7",F:"1",G:"2",A:"3",B:"4",R:"0",min:1.5,max:4.5};case"Ab":case"G#":return{C:"3",D:"4",E:"5",F:"6",G:"7",A:"1",B:"2",R:"0",min:-1,max:2};case"Bb":case"A#":return{C:"2",D:"3",E:"4",F:"5",G:"6",A:"7",B:"1",R:"0",min:-.5,max:2.5};case"C#":case"Cb":default:return{C:"1",D:"2",E:"3",F:"4",G:"5",A:"6",B:"7",R:"0",min:0,max:3}}}tone_to_numbered_key(){var R=this.key.split("/"),B=R[0];B==="b"&&(B="R"),B=B.replaceAll("#",""),B=B.replaceAll("n",""),B.length>1&&(B=B.replaceAll("b",""));let D=0,G=0;this.note.stave&&this.note.stave.options&&this.note.stave.options.keySignature&&(tone=this.note.stave.options.keySignature);const U=this.note.getLine();return UNumberedNoteHead.numberedNotationMapping.max&&(G=Math.ceil((U-NumberedNoteHead.numberedNotationMapping.max)/3.5)),B.toUpperCase()==="R"&&(D=0,G=0),{key:NumberedNoteHead.numberedNotationMapping[B.toUpperCase()],td:G,bd:D}}constructor(R){this.key=R.key,this.x=R.x||0,this.y=R.y||0,this.idx=R.idx||0,this.note=R.note||0,this.meta=this.tone_to_numbered_key(),this.noteSize=R.noteSize||16,this.td=this.meta.td,this.bd=this.meta.bd}draw(R){let B=this.y;R.openGroup("numbered-note-head");var D=this.x+(this.note.ornament?-2:0);let G=B-this.note.unit_height-this.note.dot_space-(this.note.ornament?-4:2);for(let W=0;W1&&(q-=this.note.duration_line_space),B+=q}this.draw_dot(R,D+_text_width,B,this.note.dot_width),B+=this.note.dot_width+this.note.dot_space}R.closeGroup()}get height(){return this.note.note_height+(this.meta.bd+this.meta.td)*(this.note.dot_width+this.note.dot_space)}draw_dot(R,B,D,G){R.openGroup("numbered-note-dot"),R.beginPath(),R.arc(B,D,G,0,2*Math.PI),R.closePath(),R.fill(),R.closeGroup()}}function L(...F){Factory.DEBUG&&Vex.L("Vex.Flow.Factory",F)}const X=Vex.MakeException("FactoryError");function setDefaults$1(F={},R){const B=R.options;return F=Object.assign(R,F),F.options=Object.assign(B,F.options),F}class Factory{constructor(R){L("New factory: ",R);const B={stave:{space:10},renderer:{context:null,elementId:"",backend:Renderer.Backends.SVG,width:500,height:200,background:"#FFF"},font:{face:"Arial",point:10,style:""}};this.options=B,this.setOptions(R)}static newFromElementId(R,B=500,D=200){return new Factory({renderer:{elementId:R,width:B,height:D}})}reset(){this.renderQ=[],this.systems=[],this.staves=[],this.voices=[],this.stave=null}getOptions(){return this.options}setOptions(R){for(const B of["stave","renderer","font"])Object.assign(this.options[B],R[B]);(this.options.renderer.elementId!==null||this.options.renderer.context)&&this.initRenderer(),this.reset()}initRenderer(){const{elementId:R,backend:B,width:D,height:G,background:U}=this.options.renderer;if(R==="")throw new X("HTML DOM element not set in Factory");this.context=Renderer.buildContext(R,B,D,G,U)}getContext(){return this.context}setContext(R){return this.context=R,this}getStave(){return this.stave}getVoices(){return this.voices}space(R){return this.options.stave.space*R}Stave(R){R=setDefaults$1(R,{x:0,y:0,width:this.options.renderer.width-this.space(1),options:{spacing_between_lines_px:this.options.stave.space}});const B=new Stave(R.x,R.y,R.width,R.options);return this.staves.push(B),B.setContext(this.context),this.stave=B,B}TabStave(R){R=setDefaults$1(R,{x:0,y:0,width:this.options.renderer.width-this.space(1),options:{spacing_between_lines_px:this.options.stave.space*1.3}});const B=new TabStave(R.x,R.y,R.width,R.options);return this.staves.push(B),B.setContext(this.context),this.stave=B,B}StaveNote(R){const B=new StaveNote(R);return this.stave&&B.setStave(this.stave),B.setContext(this.context),this.renderQ.push(B),B}GhostNote(R){const B=new GhostNote(R);return this.stave&&B.setStave(this.stave),B.setContext(this.context),this.renderQ.push(B),B}TextNote(R){const B=new TextNote(R);return this.stave&&B.setStave(this.stave),B.setContext(this.context),this.renderQ.push(B),B}NumberedNote(R){const B=new NumberedNote(R);return this.stave&&B.setStave(this.stave),B.setContext(this.context),this.renderQ.push(B),B}BarNote(R){R=setDefaults$1(R,{type:"single",options:{}});const B=new BarNote(R.type);return this.stave&&B.setStave(this.stave),B.setContext(this.context),this.renderQ.push(B),B}ClefNote(R){R=setDefaults$1(R,{type:"treble",options:{size:"default"}});const B=new ClefNote(R.type,R.options.size,R.options.annotation);return this.stave&&B.setStave(this.stave),B.setContext(this.context),this.renderQ.push(B),B}TimeSigNote(R){R=setDefaults$1(R,{time:"4/4",options:{}});const B=new TimeSigNote(R.time);return this.stave&&B.setStave(this.stave),B.setContext(this.context),this.renderQ.push(B),B}KeySigNote(R){const B=new KeySigNote(R.key,R.cancelKey,R.alterKey);return this.stave&&B.setStave(this.stave),B.setContext(this.context),this.renderQ.push(B),B}TabNote(R){const B=new TabNote$1(R);return this.stave&&B.setStave(this.stave),B.setContext(this.context),this.renderQ.push(B),B}GraceNote(R){const B=new GraceNote(R);return this.stave&&B.setStave(this.stave),B.setContext(this.context),B}GraceNoteGroup(R){const B=new GraceNoteGroup(R.notes,R.slur);return B.setContext(this.context),B}Accidental(R){R=setDefaults$1(R,{type:null,options:{}});const B=new Accidental(R.type);return B.setContext(this.context),B}Annotation(R){R=setDefaults$1(R,{text:"p",vJustify:"below",hJustify:"center",fontFamily:"Times",fontSize:14,fontWeight:"bold italic",options:{}});const B=new Annotation(R.text);return B.setJustification(R.hJustify),B.setVerticalJustification(R.vJustify),B.setFont(R.fontFamily,R.fontSize,R.fontWeight),B.setContext(this.context),B}Articulation(R){R=setDefaults$1(R,{type:"a.",position:"above",options:{}});const B=new Articulation$1(R.type);return B.setPosition(R.position),B.setContext(this.context),B}TextDynamics(R){R=setDefaults$1(R,{text:"p",duration:"q",dots:0,line:0,options:{}});const B=new TextDynamics({text:R.text,line:R.line,duration:R.duration,dots:R.dots});return this.stave&&B.setStave(this.stave),B.setContext(this.context),this.renderQ.push(B),B}Fingering(R){R=setDefaults$1(R,{number:"0",position:"left",options:{}});const B=new FretHandFinger(R.number);return B.setPosition(R.position),B.setContext(this.context),B}StringNumber(R){R=setDefaults$1(R,{number:"0",position:"left",options:{}});const B=new StringNumber(R.number);return B.setPosition(R.position),B.setContext(this.context),B}TickContext(){return new TickContext().setContext(this.context)}ModifierContext(){return new ModifierContext}MultiMeasureRest(R){const B=new MultiMeasureRest(R.number_of_measures,R);return B.setContext(this.context),this.renderQ.push(B),B}Voice(R){R=setDefaults$1(R,{time:"4/4",options:{}});const B=new Voice$1(R.time);return this.voices.push(B),B}StaveConnector(R){R=setDefaults$1(R,{top_stave:null,bottom_stave:null,type:"double",options:{}});const B=new StaveConnector(R.top_stave,R.bottom_stave);return B.setType(R.type).setContext(this.context),this.renderQ.push(B),B}Formatter(){return new Formatter}Tuplet(R){R=setDefaults$1(R,{notes:[],options:{}});const B=new Tuplet$1(R.notes,R.options).setContext(this.context);return this.renderQ.push(B),B}Beam(R){R=setDefaults$1(R,{notes:[],options:{autoStem:!1,secondaryBeamBreaks:[]}});const B=new Beam$1(R.notes,R.options.autoStem).setContext(this.context);return B.breakSecondaryAt(R.options.secondaryBeamBreaks),this.renderQ.push(B),B}Curve(R){R=setDefaults$1(R,{from:null,to:null,options:{}});const B=new Curve(R.from,R.to,R.options).setContext(this.context);return this.renderQ.push(B),B}StaveTie(R){R=setDefaults$1(R,{from:null,to:null,first_indices:[0],last_indices:[0],text:null,options:{direction:void 0}});const B=new StaveTie({first_note:R.from,last_note:R.to,first_indices:R.first_indices,last_indices:R.last_indices},R.text);return R.options.direction&&B.setDirection(R.options.direction),B.setContext(this.context),this.renderQ.push(B),B}StaveLine(R){R=setDefaults$1(R,{from:null,to:null,first_indices:[0],last_indices:[0],options:{}});const B=new StaveLine({first_note:R.from,last_note:R.to,first_indices:R.first_indices,last_indices:R.last_indices});return R.options.text&&B.setText(R.options.text),R.options.font&&B.setFont(R.options.font),B.setContext(this.context),this.renderQ.push(B),B}VibratoBracket(R){R=setDefaults$1(R,{from:null,to:null,options:{harsh:!1}});const B=new VibratoBracket({start:R.from,stop:R.to});return R.options.line&&B.setLine(R.options.line),R.options.harsh&&B.setHarsh(R.options.harsh),B.setContext(this.context),this.renderQ.push(B),B}TextBracket(R){R=setDefaults$1(R,{from:null,to:null,text:"",options:{superscript:"",position:1}});const B=new TextBracket({start:R.from,stop:R.to,text:R.text,superscript:R.options.superscript,position:R.options.position});return R.options.line&&B.setLine(R.options.line),R.options.font&&B.setFont(R.options.font),B.setContext(this.context),this.renderQ.push(B),B}System(R={}){R.factory=this;const B=new System(R).setContext(this.context);return this.systems.push(B),B}EasyScore(R={}){return R.factory=this,new EasyScore(R)}PedalMarking(R={}){R=setDefaults$1(R,{notes:[],options:{style:"mixed"}});const B=new PedalMarking(R.notes);return B.setStyle(PedalMarking.StylesString[R.options.style]),B.setContext(this.context),this.renderQ.push(B),B}NoteSubGroup(R={}){R=setDefaults$1(R,{notes:[],options:{}});const B=new NoteSubGroup$1(R.notes);return B.setContext(this.context),B}draw(){this.systems.forEach(R=>R.setContext(this.context).format()),this.staves.forEach(R=>R.setContext(this.context).draw()),this.voices.forEach(R=>R.setContext(this.context).draw()),this.renderQ.forEach(R=>{R.isRendered()||R.setContext(this.context).draw()}),this.systems.forEach(R=>R.setContext(this.context).draw()),this.reset()}}function setDefaults(F,R){const B=R.options;return F=Object.assign(R,F),F.options=Object.assign(B,F.options),F}class System extends Element$1{constructor(R={}){super(),this.setAttribute("type","System"),this.setOptions(R),this.parts=[]}setOptions(R={}){this.options=setDefaults(R,{x:10,y:10,width:500,connector:null,spaceBetweenStaves:12,factory:null,debugFormatter:!1,formatIterations:0,options:{}}),this.factory=this.options.factory||new Factory({renderer:{el:null}})}setContext(R){return super.setContext(R),this.factory.setContext(R),this}addConnector(R="double"){return this.connector=this.factory.StaveConnector({top_stave:this.parts[0].stave,bottom_stave:this.parts[this.parts.length-1].stave,type:R}),this.connector}addStave(R){return R=setDefaults(R,{stave:null,voices:[],spaceAbove:0,spaceBelow:0,debugNoteMetrics:!1,options:{left_bar:!1}}),R.stave||(R.stave=this.factory.Stave({x:this.options.x,y:this.options.y,width:this.options.width,options:R.options})),R.voices.forEach(B=>B.setContext(this.context).setStave(R.stave).getTickables().forEach(D=>D.setStave(R.stave))),this.parts.push(R),R.stave}format(){const R=new Formatter;this.formatter=R;let B=this.options.y,D=0,G=[];const U=[];this.parts.forEach(q=>{B=B+q.stave.space(q.spaceAbove),q.stave.setY(B),R.joinVoices(q.voices),B=B+q.stave.space(q.spaceBelow),B=B+q.stave.space(this.options.spaceBetweenStaves),q.debugNoteMetrics&&(U.push({y:B,voice:q.voices[0]}),B+=15),G=G.concat(q.voices),D=Math.max(D,q.stave.getNoteStartX())}),this.parts.forEach(q=>q.stave.setNoteStartX(D));const W=this.options.width-(D-this.options.x)-Note.STAVEPADDING;R.format(G,W);for(let q=0;q{B.voice.getTickables().forEach(D=>Note.plotMetrics(R,D,B.y))})}}Vex.Flow=Flow;Vex.Flow.Element=Element$1;Vex.Flow.Fraction=Fraction;Vex.Flow.Renderer=Renderer;Vex.Flow.Formatter=Formatter;Vex.Flow.Music=Music;Vex.Flow.Glyph=Glyph;Vex.Flow.Stave=Stave;Vex.Flow.StaveNote=StaveNote;Vex.Flow.StaveModifier=StaveModifier;Vex.Flow.StaveTempo=StaveTempo;Vex.Flow.Voice=Voice$1;Vex.Flow.Accidental=Accidental;Vex.Flow.Beam=Beam$1;Vex.Flow.StaveTie=StaveTie;Vex.Flow.TabStave=TabStave;Vex.Flow.TabNote=TabNote$1;Vex.Flow.Bend=Bend;Vex.Flow.Vibrato=Vibrato;Vex.Flow.VibratoBracket=VibratoBracket;Vex.Flow.Note=Note;Vex.Flow.ModifierContext=ModifierContext;Vex.Flow.MultiMeasureRest=MultiMeasureRest;Vex.Flow.TickContext=TickContext;Vex.Flow.Articulation=Articulation$1;Vex.Flow.Annotation=Annotation;Vex.Flow.Barline=Barline;Vex.Flow.NoteHead=NoteHead;Vex.Flow.StaveConnector=StaveConnector;Vex.Flow.ClefNote=ClefNote;Vex.Flow.KeySignature=KeySignature;Vex.Flow.KeySigNote=KeySigNote;Vex.Flow.TimeSignature=TimeSignature;Vex.Flow.TimeSigNote=TimeSigNote;Vex.Flow.Stem=Stem;Vex.Flow.TabTie=TabTie;Vex.Flow.Clef=Clef;Vex.Flow.Dot=Dot;Vex.Flow.Modifier=Modifier;Vex.Flow.TabSlide=TabSlide;Vex.Flow.Tuplet=Tuplet$1;Vex.Flow.GraceNote=GraceNote;Vex.Flow.GraceTabNote=GraceTabNote;Vex.Flow.Tuning=Tuning;Vex.Flow.KeyManager=KeyManager;Vex.Flow.StaveHairpin=StaveHairpin;Vex.Flow.BoundingBox=BoundingBox;Vex.Flow.Stroke=Stroke;Vex.Flow.TextNote=TextNote;Vex.Flow.Curve=Curve;Vex.Flow.TextDynamics=TextDynamics;Vex.Flow.StaveLine=StaveLine;Vex.Flow.Ornament=Ornament;Vex.Flow.PedalMarking=PedalMarking;Vex.Flow.TextBracket=TextBracket;Vex.Flow.FretHandFinger=FretHandFinger;Vex.Flow.Repetition=Repetition$1;Vex.Flow.BarNote=BarNote;Vex.Flow.GhostNote=GhostNote;Vex.Flow.NoteSubGroup=NoteSubGroup$1;Vex.Flow.GraceNoteGroup=GraceNoteGroup;Vex.Flow.Tremolo=Tremolo;Vex.Flow.StringNumber=StringNumber;Vex.Flow.Crescendo=Crescendo;Vex.Flow.Volta=Volta;Vex.Flow.Font=Font;Vex.Flow.System=System;Vex.Flow.Factory=Factory;Vex.Flow.Parser=Parser;Vex.Flow.EasyScore=EasyScore;Vex.Flow.Registry=Registry;var SystemLinesEnum=(F=>(F[F.SingleThin=0]="SingleThin",F[F.DoubleThin=1]="DoubleThin",F[F.ThinBold=2]="ThinBold",F[F.BoldThinDots=3]="BoldThinDots",F[F.DotsThinBold=4]="DotsThinBold",F[F.DotsBoldBoldDots=5]="DotsBoldBoldDots",F[F.None=6]="None",F[F.Dotted=7]="Dotted",F[F.Dashed=8]="Dashed",F[F.Bold=9]="Bold",F[F.BoldThin=10]="BoldThin",F[F.DoubleBold=11]="DoubleBold",F[F.Tick=12]="Tick",F[F.Short=13]="Short",F))(SystemLinesEnum||{});class SystemLinesEnumHelper{static xmlBarlineStyleToSystemLinesEnum(R){return R==="regular"?0:R==="dotted"?7:R==="dashed"?8:R==="heavy"?9:R==="light-light"?1:R==="light-heavy"?2:R==="heavy-light"?10:R==="heavy-heavy"?11:R==="tick"?12:R==="short"?13:R==="none"?6:0}}class Matrix2D{constructor(){this.matrix=[];for(let R=0;R<2;R++){this.matrix[R]=[];for(let B=0;B<2;B++)this.matrix[R][B]=0}}static getRotationMatrix(R){const B=new Matrix2D,D=Math.cos(R),G=Math.sin(R);return B.matrix[0][0]=D,B.matrix[0][1]=-G,B.matrix[1][0]=G,B.matrix[1][1]=D,B}scalarMultiplication(R){for(let B=0;B<2;B++)for(let D=0;D<2;D++)this.matrix[B][D]*=R}getTransposeMatrix(){const R=new Matrix2D;for(let B=0;B<2;B++)for(let D=0;D<2;D++)R.matrix[B][D]=this.matrix[D][B];return R}vectorMultiplication(R){const B=new PointF2D;return B.x=R.x*this.matrix[0][0]+R.y*this.matrix[0][1],B.y=R.x*this.matrix[1][0]+R.y*this.matrix[1][1],B}}class MusicSheetErrors{constructor(){this.measureErrors={},this.errors=[],this.tempErrors=[]}finalizeMeasure(R){let B=this.measureErrors[R];B||(B=[]),this.measureErrors[R]=B.concat(this.tempErrors),this.tempErrors=[]}pushMeasureError(R){this.tempErrors.push(R)}push(R){this.errors.push(R)}}class Arpeggio{constructor(R,B=ArpeggioType.ARPEGGIO_DIRECTIONLESS){this.parentVoiceEntry=R,this.type=B,this.notes=[]}addNote(R){this.notes.push(R),R.Arpeggio=this}}var ArpeggioType=(F=>(F[F.BRUSH_DOWN=1]="BRUSH_DOWN",F[F.BRUSH_UP=2]="BRUSH_UP",F[F.ROLL_DOWN=3]="ROLL_DOWN",F[F.ROLL_UP=4]="ROLL_UP",F[F.RASQUEDO_DOWN=5]="RASQUEDO_DOWN",F[F.RASQUEDO_UP=6]="RASQUEDO_UP",F[F.ARPEGGIO_DIRECTIONLESS=7]="ARPEGGIO_DIRECTIONLESS",F))(ArpeggioType||{});class Beam{constructor(R=1,B=0){this.notes=[],this.extendedNoteList=[],this.BeamNumberOffsetToXML=0,this.BeamNumber=R,this.BeamNumberOffsetToXML=B}get Notes(){return this.notes}set Notes(R){this.notes=R}get ExtendedNoteList(){return this.extendedNoteList}set ExtendedNoteList(R){this.extendedNoteList=R}addNoteToBeam(R){R&&(R.NoteBeam=this,this.notes.push(R),this.extendedNoteList.push(R))}}class Voice{constructor(R,B){this.voiceEntries=[],this.volume=1,this.parent=R,this.visible=!0,this.audible=!0,this.following=!0,this.voiceId=B,this.uniqueVoiceId="I:"+this.parent.Id+" V: "+this.voiceId}get VoiceEntries(){return this.voiceEntries}get Parent(){return this.parent}get Visible(){return this.visible}set Visible(R){this.visible=R}get Audible(){return this.audible}set Audible(R){this.audible=R}get Following(){return this.following}set Following(R){this.following=R}get Solo(){return this.solo}set Solo(R){this.solo=R}get VoiceId(){return this.voiceId}get Volume(){return this.volume}set Volume(R){this.volume=R}toString(){return this.uniqueVoiceId}}class LinkedVoice extends Voice{constructor(R,B,D){super(R,B),this.master=D}get Master(){return this.master}}class Notehead{constructor(R,B,D=void 0){this.sourceNote=R,this.setShapeFromXml(B,D)}setShapeFromXml(R,B=void 0){this.shape=Notehead.ShapeTypeXmlToShape(R);let D=B;D===void 0&&(this.sourceNote?D=this.sourceNote.Length.Denominator>2:(log$2.warn("notehead: sourceNote and filledXmlAttribute undefined."),D=!0)),this.filled=D}get SourceNote(){return this.sourceNote}get Shape(){return this.shape}get Filled(){return this.filled}static ShapeTypeXmlToShape(R){switch(R.toLowerCase()){case"normal":return NoteHeadShape.NORMAL;case"x":return NoteHeadShape.X;case"slash":return NoteHeadShape.SLASH;case"diamond":return NoteHeadShape.DIAMOND;case"square":return NoteHeadShape.SQUARE;case"la":return NoteHeadShape.SQUARE;case"do":case"triangle":return NoteHeadShape.TRIANGLE;case"rectangle":return NoteHeadShape.RECTANGLE;case"circle-x":return NoteHeadShape.CIRCLEX;default:return log$2.info("unsupported/unhandled xml notehead '"+R+"'. Using normal notehead."),NoteHeadShape.NORMAL}}}var NoteHeadShape=(F=>(F[F.CIRCLEX=0]="CIRCLEX",F[F.DIAMOND=1]="DIAMOND",F[F.NORMAL=2]="NORMAL",F[F.RECTANGLE=3]="RECTANGLE",F[F.SLASH=4]="SLASH",F[F.SQUARE=5]="SQUARE",F[F.TRIANGLE=6]="TRIANGLE",F[F.X=7]="X",F))(NoteHeadShape||{});class ITextTranslation{static translateText(R,B){if(!this.defaultTextTranslation)return B}}var NoteType=(F=>(F[F.UNDEFINED=0]="UNDEFINED",F[F._1024th=1]="_1024th",F[F._512th=2]="_512th",F[F._256th=3]="_256th",F[F._128th=4]="_128th",F[F._64th=5]="_64th",F[F._32nd=6]="_32nd",F[F._16th=7]="_16th",F[F.EIGTH=8]="EIGTH",F[F.QUARTER=9]="QUARTER",F[F.HALF=10]="HALF",F[F.WHOLE=11]="WHOLE",F[F.BREVE=12]="BREVE",F[F.LONG=13]="LONG",F[F.MAXIMA=14]="MAXIMA",F))(NoteType||{});class NoteTypeHandler{static NoteTypeToString(R){return this.NoteTypeXmlValues[R]}static StringToNoteType(R){const B=this.NoteTypeXmlValues.indexOf(R);return B!==-1?B:0}static getNoteDurationFromType(R){switch(R){case"1024th":return new Fraction$1(1,1024);case"512th":return new Fraction$1(1,512);case"256th":return new Fraction$1(1,256);case"128th":return new Fraction$1(1,128);case"64th":return new Fraction$1(1,64);case"32th":case"32nd":return new Fraction$1(1,32);case"16th":return new Fraction$1(1,16);case"eighth":return new Fraction$1(1,8);case"quarter":return new Fraction$1(1,4);case"half":return new Fraction$1(1,2);case"whole":return new Fraction$1(1,1);case"breve":return new Fraction$1(2,1);case"long":return new Fraction$1(4,1);case"maxima":return new Fraction$1(8,1);default:{const B=ITextTranslation.translateText("ReaderErrorMessages/NoteDurationError","Invalid note duration.");throw new MusicSheetReadingException(B)}}}}NoteTypeHandler.NoteTypeXmlValues=["","1024th","512th","256th","128th","64th","32nd","16th","eigth","quarter","half","whole","breve","long","maxima"];class OrnamentContainer{constructor(R){this.placement=PlacementEnum.Above,this.accidentalAbove=AccidentalEnum.NONE,this.accidentalBelow=AccidentalEnum.NONE,this.ornament=R}get GetOrnament(){return this.ornament}get AccidentalAbove(){return this.accidentalAbove}set AccidentalAbove(R){this.accidentalAbove=R}get AccidentalBelow(){return this.accidentalBelow}set AccidentalBelow(R){this.accidentalBelow=R}}var OrnamentEnum=(F=>(F[F.Trill=0]="Trill",F[F.Turn=1]="Turn",F[F.InvertedTurn=2]="InvertedTurn",F[F.DelayedTurn=3]="DelayedTurn",F[F.DelayedInvertedTurn=4]="DelayedInvertedTurn",F[F.Mordent=5]="Mordent",F[F.InvertedMordent=6]="InvertedMordent",F))(OrnamentEnum||{});class VerticalSourceStaffEntryContainer{constructor(R,B,D){this.staffEntries=[],this.comments=[],this.timestamp=B,this.staffEntries=new Array(D),this.parentMeasure=R}$get$(R){return this.staffEntries[R]}$set$(R,B){this.staffEntries[R]=B}get Timestamp(){return this.timestamp}set Timestamp(R){this.timestamp=R}get StaffEntries(){return this.staffEntries}set StaffEntries(R){this.staffEntries=R}get Comments(){return this.comments}set Comments(R){this.comments=R}get ParentMeasure(){return this.parentMeasure}set ParentMeasure(R){this.parentMeasure=R}getAbsoluteTimestamp(){return Fraction$1.plus(this.timestamp,this.parentMeasure.AbsoluteTimestamp)}}class SourceStaffEntry{constructor(R,B){this.voiceEntries=[],this.instructions=[],this.chordSymbolContainers=[],this.verticalContainerParent=R,this.parentStaff=B}get ParentStaff(){return this.parentStaff}get VerticalContainerParent(){return this.verticalContainerParent}get Timestamp(){if(this.VerticalContainerParent)return this.VerticalContainerParent.Timestamp}get AbsoluteTimestamp(){if(this.VerticalContainerParent)return Fraction$1.plus(this.VerticalContainerParent.ParentMeasure.AbsoluteTimestamp,this.VerticalContainerParent.Timestamp)}get VoiceEntries(){return this.voiceEntries}set VoiceEntries(R){this.voiceEntries=R}get Link(){return this.staffEntryLink}set Link(R){this.staffEntryLink=R}get Instructions(){return this.instructions}set Instructions(R){this.instructions=R}get ChordContainers(){return this.chordSymbolContainers}set ChordContainers(R){this.chordSymbolContainers=R}removeAllInstructionsOfTypeClefInstruction(){let R=0,B=0;for(;R0)return!0;return!1}hasTie(){for(let R=0,B=this.VoiceEntries.length;RB.parentRepetition.StartIndex)return-1}if(R.alignment===AlignmentType.Begin&&B.alignment===AlignmentType.Begin){if(R.parentRepetition.EndIndexB.parentRepetition.EndIndex)return-1}}return 0}}class RepetitionInstruction{constructor(R,B,D=AlignmentType.End,G=void 0,U=void 0){this.endingIndices=void 0,this.measureIndex=R,U&&(this.endingIndices=U.slice()),this.type=B,this.alignment=D,this.parentRepetition=G}CompareTo(R){const B=R;if(this.measureIndex>B.measureIndex)return 1;if(this.measureIndex(F[F.StartLine=0]="StartLine",F[F.ForwardJump=1]="ForwardJump",F[F.BackJumpLine=2]="BackJumpLine",F[F.Ending=3]="Ending",F[F.DaCapo=4]="DaCapo",F[F.DalSegno=5]="DalSegno",F[F.Fine=6]="Fine",F[F.ToCoda=7]="ToCoda",F[F.DalSegnoAlFine=8]="DalSegnoAlFine",F[F.DaCapoAlFine=9]="DaCapoAlFine",F[F.DalSegnoAlCoda=10]="DalSegnoAlCoda",F[F.DaCapoAlCoda=11]="DaCapoAlCoda",F[F.Coda=12]="Coda",F[F.Segno=13]="Segno",F[F.None=14]="None",F))(RepetitionInstructionEnum||{}),AlignmentType=(F=>(F[F.Begin=0]="Begin",F[F.End=1]="End",F))(AlignmentType||{});let prevSourceMeasure=null;class SourceMeasure{constructor(R,B){this.printNewSystemXml=!1,this.printNewPageXml=!1,this.IsSystemStartMeasure=!1,this.hasLyrics=!1,this.hasMoodExpressions=!1,this.allRests=!1,this.isReducedToMultiRest=!1,this.multipleRestMeasureNumber=0,this.staffLinkedExpressions=[],this.tempoExpressions=[],this.verticalSourceStaffEntryContainers=[],this.graphicalMeasureErrors=[],this.firstRepetitionInstructions=[],this.lastRepetitionInstructions=[],this.metronomeNoteIndex=0,this.completeNumberOfStaves=R,this.implicitMeasure=!1,this.hasEndLine=!1,this.endingBarStyleXml="",this.endingBarStyleEnum=SystemLinesEnum.SingleThin,this.firstInstructionsStaffEntries=new Array(R),this.lastInstructionsStaffEntries=new Array(R),this.rules=B,this.TempoInBPM=0;for(let D=0;D1)return R[this.measureListIndex-1]}get Rules(){return this.rules}get VerticalMeasureList(){return this.verticalMeasureList}set VerticalMeasureList(R){this.verticalMeasureList=R}get TempoInBPM(){return this.tempoInBPM}set TempoInBPM(R){this.tempoInBPM=R}findOrCreateStaffEntry(R,B,D){let G,U;for(const q of this.verticalSourceStaffEntryContainers)if(q.Timestamp.Equals(R)){U=q;break}if(U)return U.StaffEntries[B]?G=U.StaffEntries[B]:(G=new SourceStaffEntry(U,D),U.StaffEntries[B]=G),{createdNewContainer:!1,staffEntry:G};const W=this.verticalSourceStaffEntryContainers[this.verticalSourceStaffEntryContainers.length-1];if(this.verticalSourceStaffEntryContainers.length===0||W.Timestamp.lt(R)){const q=new VerticalSourceStaffEntryContainer(this,R.clone(),this.completeNumberOfStaves);this.verticalSourceStaffEntryContainers.push(q),G=new SourceStaffEntry(q,D),q.StaffEntries[B]=G}else for(let q=this.verticalSourceStaffEntryContainers.length-1;q>=0;q--){if(this.verticalSourceStaffEntryContainers[q].Timestamp.lt(R)){const Y=new VerticalSourceStaffEntryContainer(this,R.clone(),this.completeNumberOfStaves);this.verticalSourceStaffEntryContainers.splice(q+1,0,Y),G=new SourceStaffEntry(Y,D),Y.StaffEntries[B]=G;break}if(q===0){const Y=new VerticalSourceStaffEntryContainer(this,R.clone(),this.completeNumberOfStaves);this.verticalSourceStaffEntryContainers.splice(q,0,Y),G=new SourceStaffEntry(Y,D),Y.StaffEntries[B]=G;break}}return{createdNewContainer:!0,staffEntry:G}}findOrCreateVoiceEntry(R,B){let D,G=!1;for(const U of R.VoiceEntries)if(U.ParentVoice===B){D=U;break}return D||(D=new VoiceEntry(R.Timestamp,B,R),G=!0),{createdVoiceEntry:G,voiceEntry:D}}getPreviousSourceStaffEntryFromIndex(R,B){for(let D=B-1;D>=0;D--)if(this.verticalSourceStaffEntryContainers[D][R])return this.verticalSourceStaffEntryContainers[D][R]}getVerticalContainerIndexByTimestamp(R){for(let B=0,D=this.VerticalSourceStaffEntryContainers.length;B=0;K--){const ie=this.verticalSourceStaffEntryContainers[K][q+Y];if(ie!==void 0&&ie.hasTie()&&W.lt(Fraction$1.plus(ie.Timestamp,ie.calculateMaxNoteLength()))){W=Fraction$1.plus(ie.Timestamp,ie.calculateMaxNoteLength());break}}}}G.push(W)}for(let U=0,W=G.length;U0)return!0}return!1}beginsWithLineRepetition(){for(let R=0,B=this.FirstRepetitionInstructions.length;R=0&&(B=this.verticalSourceStaffEntryContainers[D].StaffEntries[R],!B);D--);return B}canBeReducedToMultiRest(){var D,G,U,W,q,Y;let R=!0,B=!1;for(const Q of this.verticalSourceStaffEntryContainers)if(!!Q){for(const Z of Q.StaffEntries)if(!(!Z||!Z.ParentStaff.ParentInstrument.Visible)){if(Z.ChordContainers.length>0||(Z.ParentStaff.hasLyrics&&(B=!0),this.firstRepetitionInstructions.length>0||this.lastRepetitionInstructions.length>0))return!1;for(const K of Z.VoiceEntries){for(const ie of K.Notes)if(!ie.isRest()){R=!1;break}if(!R)break}}}if(!R||B||this.hasMoodExpressions||this.tempoExpressions.length>0)return!1;for(const Q of this.staffLinkedExpressions)if(Q.length>0)return!1;for(const Q of this.lastInstructionsStaffEntries)for(let Z=0,K=Q==null?void 0:Q.Instructions.length;Z=0;B--)for(let D=0;D(F[F.Fingering=0]="Fingering",F[F.String=1]="String",F))(TechnicalInstructionType||{});class TechnicalInstruction{}class PlaybackNote{constructor(R,B){this.parentEntry=R,this.parentNote=B,this.ParentNote.PlaybackNote=this,this.Length=this.ParentNote.Length,B.Pitch!==void 0?this.ParentNote.ParentStaff.ParentInstrument.MidiInstrumentId===MidiInstrument.Percussion?this.MidiKey=PlaybackNote.noteToMidiDrumKey(B):this.MidiKey=B.Pitch.getHalfTone()+12:this.MidiKey=0}setLength(){this.ParentNote.NoteTie!==void 0&&this.ParentNote.NoteTie.StartNote===this.ParentNote&&(this.Length=this.ParentNote.NoteTie.Duration)}get ParentEntry(){return this.parentEntry}get ParentNote(){return this.parentNote}static noteToMidiDrumKey(R){var G;const B=R.Pitch.getHalfTone()-12,D=(G=R.Notehead)==null?void 0:G.Shape;switch(R.Pitch.Octave){case 1:switch(R.Pitch.FundamentalNote){case NoteEnum.D:switch(D){default:return 44}case NoteEnum.E:switch(D){default:return 35}case NoteEnum.F:switch(D){default:return 36}case NoteEnum.G:switch(D){default:return 41}case NoteEnum.A:switch(D){default:return 43}case NoteEnum.B:switch(D){case NoteHeadShape.TRIANGLE:return 54;default:return 47}default:return B}case 2:switch(R.Pitch.FundamentalNote){case NoteEnum.C:switch(D){case NoteHeadShape.X:return 37;default:return 38}case NoteEnum.D:switch(D){case NoteHeadShape.X:return 59;default:return 48}case NoteEnum.E:switch(D){case NoteHeadShape.X:return 42;case NoteHeadShape.CIRCLEX:return 46;case NoteHeadShape.TRIANGLE:return 56;default:return 50}case NoteEnum.F:switch(D){case NoteHeadShape.DIAMOND:return 53;default:return 51}case NoteEnum.G:switch(D){case NoteHeadShape.CIRCLEX:case NoteHeadShape.DIAMOND:return 46;default:return 42}case NoteEnum.A:switch(D){default:return 49}case NoteEnum.B:switch(D){default:return 57}default:return B}case 3:switch(R.Pitch.FundamentalNote){case NoteEnum.C:switch(D){case NoteHeadShape.CIRCLEX:return 52;default:return 55}default:return B}default:return B}}}class PlaybackEntry{constructor(R){this.notes=[],this.TimestampShift=new Fraction$1,this.parentVoiceEntry=R;for(const B of R.Notes)this.Notes.push(new PlaybackNote(this,B))}get ParentVoiceEntry(){return this.parentVoiceEntry}get Notes(){return this.notes}get Length(){if(this.Notes.length>0)return this.Notes[0].Length}set Length(R){for(const B of this.Notes)B.Length=R}get HasNotes(){return this.Notes.length>0}}class VoiceEntry{constructor(R,B,D,G=!0,U=!1,W=!1,q=!1){if(this.notes=[],this.graceVoiceEntriesBefore=[],this.graceVoiceEntriesAfter=[],this.articulations=[],this.playbackEntries=[],this.technicalInstructions=[],this.lyricsEntries=new Dictionary,this.wantedStemDirection=StemDirectionType.Undefined,this.stemDirectionXml=StemDirectionType.Undefined,this.stemDirection=StemDirectionType.Undefined,this.timestamp=R,this.parentVoice=B,this.parentSourceStaffEntry=D,this.isGrace=U,this.graceAfterMainNote=!1,this.graceNoteSlash=W,this.graceSlur=q,U||B.VoiceEntries.push(this),G&&D!==void 0){const Y=D.VoiceEntries;Y.indexOf(this)===-1&&Y.push(this)}this.mainPlaybackEntry=new PlaybackEntry(this),this.PlaybackEntries.push(this.mainPlaybackEntry)}get ParentSourceStaffEntry(){return this.parentSourceStaffEntry}get ParentVoice(){return this.parentVoice}get Timestamp(){return this.timestamp}set Timestamp(R){this.timestamp=R}get Notes(){return this.notes}addNote(R){this.notes.push(R),!R.isRest()&&(R.NoteTie===void 0||R.NoteTie.StartNote===R)&&this.MainPlaybackEntry.Notes.push(new PlaybackNote(this.MainPlaybackEntry,R))}get GraceVoiceEntriesBefore(){return this.graceVoiceEntriesBefore}set GraceVoiceEntriesBefore(R){this.graceVoiceEntriesBefore=R;for(const B of this.graceVoiceEntriesBefore)B.parentSourceStaffEntry=this.ParentSourceStaffEntry}get GraceVoiceEntriesAfter(){return this.graceVoiceEntriesAfter}set GraceVoiceEntriesAfter(R){this.graceVoiceEntriesAfter=R;for(const B of this.graceVoiceEntriesAfter)B.parentSourceStaffEntry=this.ParentSourceStaffEntry}get IsGrace(){return this.isGrace}set IsGrace(R){this.isGrace=R}get GraceAfterMainNote(){return this.graceAfterMainNote}set GraceAfterMainNote(R){this.graceAfterMainNote=R}get GraceNoteSlash(){return this.graceNoteSlash}set GraceNoteSlash(R){this.graceNoteSlash=R}get GraceSlur(){return this.graceSlur}set GraceSlur(R){this.graceSlur=R}get Articulations(){return this.articulations}get PlaybackEntries(){return this.playbackEntries}get Fermata(){return this.fermata}get MainPlaybackEntry(){return this.mainPlaybackEntry}set MainPlaybackEntry(R){this.mainPlaybackEntry=R}removeMainPlaybackEntry(){this.mainPlaybackEntry!==void 0&&this.removePlaybackEntry(this.mainPlaybackEntry)}removePlaybackEntry(R){this.mainPlaybackEntry===R&&(this.mainPlaybackEntry=void 0);const B=this.playbackEntries.indexOf(R);B>-1&&this.playbackEntries.splice(B,1)}get TechnicalInstructions(){return this.technicalInstructions}get LyricsEntries(){return this.lyricsEntries}get Arpeggio(){return this.arpeggio}set Arpeggio(R){this.arpeggio=R}get OrnamentContainer(){return this.ornamentContainer}set OrnamentContainer(R){this.ornamentContainer=R}set WantedStemDirection(R){this.wantedStemDirection=R}get WantedStemDirection(){return this.wantedStemDirection}set StemDirectionXml(R){this.stemDirectionXml=R}get StemDirectionXml(){return this.stemDirectionXml}set StemDirection(R){this.stemDirection=R}get StemDirection(){return this.stemDirection}get StemColorXml(){return this.stemColorXml}set StemColorXml(R){this.stemColorXml=R}get StemColor(){return this.stemColor}set StemColor(R){this.stemColor=R}get VolumeModifier(){return this.volumeModifier}set VolumeModifier(R){this.volumeModifier=R}get DurationModifier(){return this.durationModifier}set DurationModifier(R){this.durationModifier=R}hasArticulation(R){for(const B of this.articulations)if(B.Equals(R))return!0;return!1}static isSupportedArticulation(R){switch(R){case ArticulationEnum.accent:case ArticulationEnum.strongaccent:case ArticulationEnum.invertedstrongaccent:case ArticulationEnum.staccato:case ArticulationEnum.staccatissimo:case ArticulationEnum.spiccato:case ArticulationEnum.tenuto:case ArticulationEnum.fermata:case ArticulationEnum.invertedfermata:case ArticulationEnum.breathmark:case ArticulationEnum.caesura:case ArticulationEnum.lefthandpizzicato:case ArticulationEnum.naturalharmonic:case ArticulationEnum.snappizzicato:case ArticulationEnum.upbow:case ArticulationEnum.downbow:case ArticulationEnum.bend:case ArticulationEnum.detachedlegato:return!0;default:return!1}}hasTie(){for(let R=0,B=this.Notes.length;R0)return!0;return!1}isStaccato(){for(const R of this.Articulations)if(R.articulationEnum===ArticulationEnum.staccato)return!0;return!1}isAccent(){for(const R of this.Articulations)if(R.articulationEnum===ArticulationEnum.accent||R.articulationEnum===ArticulationEnum.strongaccent)return!0;return!1}getVerseNumberForLyricEntry(R){let B=1;return this.lyricsEntries.forEach((D,G)=>{R===G&&(B=D)}),B}}var ArticulationEnum=(F=>(F[F.accent=0]="accent",F[F.strongaccent=1]="strongaccent",F[F.marcatoup=2]="marcatoup",F[F.marcatodown=3]="marcatodown",F[F.invertedstrongaccent=4]="invertedstrongaccent",F[F.staccato=5]="staccato",F[F.staccatissimo=6]="staccatissimo",F[F.spiccato=7]="spiccato",F[F.tenuto=8]="tenuto",F[F.fermata=9]="fermata",F[F.invertedfermata=10]="invertedfermata",F[F.breathmark=11]="breathmark",F[F.caesura=12]="caesura",F[F.lefthandpizzicato=13]="lefthandpizzicato",F[F.naturalharmonic=14]="naturalharmonic",F[F.snappizzicato=15]="snappizzicato",F[F.upbow=16]="upbow",F[F.downbow=17]="downbow",F[F.scoop=18]="scoop",F[F.plop=19]="plop",F[F.doit=20]="doit",F[F.falloff=21]="falloff",F[F.stress=22]="stress",F[F.unstress=23]="unstress",F[F.detachedlegato=24]="detachedlegato",F[F.otherarticulation=25]="otherarticulation",F[F.bend=26]="bend",F))(ArticulationEnum||{}),StemDirectionType=(F=>(F[F.Undefined=-1]="Undefined",F[F.Up=0]="Up",F[F.Down=1]="Down",F[F.None=2]="None",F[F.Double=3]="Double",F))(StemDirectionType||{}),SystemLinePosition=(F=>(F[F.MeasureBegin=0]="MeasureBegin",F[F.MeasureEnd=1]="MeasureEnd",F))(SystemLinePosition||{});class GraphicalLabel extends Clickable{constructor(R,B,D,G,U=void 0){super(),this.label=R,this.boundingBox=new BoundingBox$1(this,U),this.label.fontHeight=B,this.label.textAlignment=D,this.rules=G,this.rules.MpatMode&&this.label.text==="TRIO"&&(this.label.fontFamily="Arial")}get Label(){return this.label}toString(){return`${this.label.text} (${this.boundingBox.RelativePosition.x},${this.boundingBox.RelativePosition.y})`}setLabelPositionAndShapeBorders(){var q,Y;if(this.Label.text.trim()==="")return;this.TextLines=[];const R=(Y=(q=this.rules)==null?void 0:q.LabelMarginBorderFactor)!=null?Y:.1,B=this.Label.text.split(/[\n\r]+/g),D=B.length;let G=0;for(let Q=0;Q0&&this.TextLines.length>1&&(U+=this.rules.SpacingBetweenTextLines*D/10);const W=this.PositionAndShape;switch(this.Label.textAlignment){case TextAlignmentEnum.CenterBottom:W.BorderTop=-U,W.BorderLeft=-G/2,W.BorderBottom=0,W.BorderRight=G/2;break;case TextAlignmentEnum.CenterCenter:W.BorderTop=-U/2,W.BorderLeft=-G/2,W.BorderBottom=U/2,W.BorderRight=G/2;break;case TextAlignmentEnum.CenterTop:W.BorderTop=0,W.BorderLeft=-G/2,W.BorderBottom=U,W.BorderRight=G/2;break;case TextAlignmentEnum.LeftBottom:W.BorderTop=-U,W.BorderLeft=0,W.BorderBottom=0,W.BorderRight=G;break;case TextAlignmentEnum.LeftCenter:W.BorderTop=-U/2,W.BorderLeft=0,W.BorderBottom=U/2,W.BorderRight=G;break;case TextAlignmentEnum.LeftTop:W.BorderTop=0,W.BorderLeft=0,W.BorderBottom=U,W.BorderRight=G;break;case TextAlignmentEnum.RightBottom:W.BorderTop=-U,W.BorderLeft=-G,W.BorderBottom=0,W.BorderRight=0;break;case TextAlignmentEnum.RightCenter:W.BorderTop=-U/2,W.BorderLeft=-G,W.BorderBottom=U/2,W.BorderRight=0;break;case TextAlignmentEnum.RightTop:W.BorderTop=0,W.BorderLeft=-G,W.BorderBottom=U,W.BorderRight=0;break}W.BorderMarginTop=W.BorderTop-U*R,W.BorderMarginLeft=W.BorderLeft-U*R,W.BorderMarginBottom=W.BorderBottom+U*R,W.BorderMarginRight=W.BorderRight+U*R}}class Label{constructor(R="",B=TextAlignmentEnum.CenterBottom,D=void 0,G=!0){this.IsCreditLabel=!1,this.text=R,this.print=G,this.textAlignment=B,this.font=D,this.fontFamily=void 0}set font(R){this.fontEnumValue=R,this.fontFamily=FontStringNames[R]}get font(){return this.fontEnumValue}ToString(){return this.text}}const SpeedTag={Grava:40,Largo:46,Lento:52,Adagio:56,Larghetto:60,Andante:66,Anderato:69,Andantino:69,Moderato:88,Allegretto:108,"Allegro Moderato":108,Allegro:132,Vivace:152,Vivo:160,Vivacissimo:168,Presto:184,Prestissimo:208},SpecialMarks=["\u7EAF\u5F8B","\u7EAF\u5F8B\u7ED3\u675F"],HideWords=["\u8DF3\u8FC7\u4E0B\u4E00\u4E2A","b","#","\xA7","\xBA","X"],GradientWords=["poco rit.","rall.","rit.","accel.","molto rit.","molto rall","lentando","poco accel.","calando"],GRADIENT_SPEED_CLOSE_TAG="\u7ED3\u675F\u8303\u56F4\u901F\u5EA6",GRADIENT_SPEED_RESET_TAG="a tempo",SpecialWords=[GRADIENT_SPEED_CLOSE_TAG],SpeedKeyword="\u901F\u5EA6 ",SpeedHiddenKeyword="\u4EC5\u6587\u672C\u901F\u5EA6 ";function isSpeedKeyword(F){return F.indexOf(SpeedKeyword)===0}function isSpeedHiddenKeyword(F){return F.indexOf(SpeedHiddenKeyword)===0}function formatSpeedKeyword(F){return F.replace(SpeedHiddenKeyword,"").replace(SpeedKeyword,"")}function isGradientWords(F){return GradientWords.includes(F)}function isSpecialMark(F){return[...Object.keys(SpeedTag),...SpecialMarks,...SpecialWords,...HideWords].map(R=>R.trim().toLocaleUpperCase()).includes(F.toLocaleUpperCase().trim())}function isTopFont(F){return[TextAlignmentEnum.CenterTop,TextAlignmentEnum.RightTop].includes(F)}var MusicSymbol=(F=>(F[F.Unused_first_Symbol=0]="Unused_first_Symbol",F[F.BLACK_HEAD=1]="BLACK_HEAD",F[F.UPWARDS_TAIL=2]="UPWARDS_TAIL",F[F.DOWNWARDS_TAIL=3]="DOWNWARDS_TAIL",F[F.UPWARDS_DOUBLE_TAIL=4]="UPWARDS_DOUBLE_TAIL",F[F.DOWNWARDS_DOUBLE_TAIL=5]="DOWNWARDS_DOUBLE_TAIL",F[F.UPWARDS_TRIPLE_TAIL=6]="UPWARDS_TRIPLE_TAIL",F[F.DOWNWARDS_TRIPLE_TAIL=7]="DOWNWARDS_TRIPLE_TAIL",F[F.UPWARDS_QUAD_TAIL=8]="UPWARDS_QUAD_TAIL",F[F.DOWNWARDS_QUAD_TAIL=9]="DOWNWARDS_QUAD_TAIL",F[F.ROUND_HEAD=10]="ROUND_HEAD",F[F.WHITE_HEAD=11]="WHITE_HEAD",F[F.G_CLEF=12]="G_CLEF",F[F.F_CLEF=13]="F_CLEF",F[F.C_CLEF=14]="C_CLEF",F[F.BREVE=15]="BREVE",F[F.BREVE_REST=16]="BREVE_REST",F[F.COMMON_TIME=17]="COMMON_TIME",F[F.CUT_TIME=18]="CUT_TIME",F[F.WHOLE_REST=19]="WHOLE_REST",F[F.HALF_REST=20]="HALF_REST",F[F.QUARTER_REST=21]="QUARTER_REST",F[F.EIGHTH_REST=22]="EIGHTH_REST",F[F.SIXTEENTH_REST=23]="SIXTEENTH_REST",F[F.THIRTYSECOND_REST=24]="THIRTYSECOND_REST",F[F.SIXTYFOURTH_REST=25]="SIXTYFOURTH_REST",F[F.FLAT=26]="FLAT",F[F.SHARP=27]="SHARP",F[F.NATURAL=28]="NATURAL",F[F.DOUBLE_FLAT=29]="DOUBLE_FLAT",F[F.DOUBLE_SHARP=30]="DOUBLE_SHARP",F[F.ZERO=31]="ZERO",F[F.ONE=32]="ONE",F[F.TWO=33]="TWO",F[F.THREE=34]="THREE",F[F.FOUR=35]="FOUR",F[F.FIVE=36]="FIVE",F[F.SIX=37]="SIX",F[F.SEVEN=38]="SEVEN",F[F.EIGHT=39]="EIGHT",F[F.NINE=40]="NINE",F[F.DOT=41]="DOT",F[F.FERMATA=42]="FERMATA",F[F.INVERTED_FERMATA=43]="INVERTED_FERMATA",F[F.SPICCATO=44]="SPICCATO",F[F.TENUTO=45]="TENUTO",F[F.MARCATO=46]="MARCATO",F[F.MARCATISSIMO=47]="MARCATISSIMO",F[F.INVERTED_MARCATISSIMO=48]="INVERTED_MARCATISSIMO",F[F.P=49]="P",F[F.F=50]="F",F[F.S=51]="S",F[F.Z=52]="Z",F[F.M=53]="M",F[F.R=54]="R",F[F.SEGNO=55]="SEGNO",F[F.CODA=56]="CODA",F[F.DRUM_CLEF=57]="DRUM_CLEF",F[F.G_CLEF_SUB8=58]="G_CLEF_SUB8",F[F.G_CLEF_SUPER8=59]="G_CLEF_SUPER8",F[F.G_CLEF_SUB15=60]="G_CLEF_SUB15",F[F.G_CLEF_SUPER15=61]="G_CLEF_SUPER15",F[F.F_CLEF_SUB8=62]="F_CLEF_SUB8",F[F.F_CLEF_SUPER8=63]="F_CLEF_SUPER8",F[F.F_CLEF_SUB15=64]="F_CLEF_SUB15",F[F.F_CLEF_SUPER15=65]="F_CLEF_SUPER15",F[F.DOWN_BOW=66]="DOWN_BOW",F[F.MORDENT=67]="MORDENT",F[F.INVERTED_MORDENT=68]="INVERTED_MORDENT",F[F.TURN=69]="TURN",F[F.INVERTED_TURN=70]="INVERTED_TURN",F[F.LEFTHAND_PIZZICATO=71]="LEFTHAND_PIZZICATO",F[F.RELEASE_PED=72]="RELEASE_PED",F[F.ENGAGE_PED=73]="ENGAGE_PED",F[F.VA8=74]="VA8",F[F.VB8=75]="VB8",F[F.TRILL=76]="TRILL",F[F.MA15=77]="MA15",F[F.MB15=78]="MB15",F[F.HIGH=79]="HIGH",F[F.PLAY=80]="PLAY",F[F.MIC=81]="MIC",F[F.SNAP_PIZZICATO=82]="SNAP_PIZZICATO",F[F.NATURAL_HARMONIC=83]="NATURAL_HARMONIC",F[F.EditPen=84]="EditPen",F[F.PEDAL_BRACKET=85]="PEDAL_BRACKET",F[F.PEDAL_MIXED=86]="PEDAL_MIXED",F[F.PEDAL_SYMBOL=87]="PEDAL_SYMBOL",F))(MusicSymbol||{}),MusicSymbolDrawingStyle=(F=>(F[F.Normal=0]="Normal",F[F.Disabled=1]="Disabled",F[F.Selected=2]="Selected",F[F.Clickable=3]="Clickable",F[F.PlaybackSymbols=4]="PlaybackSymbols",F[F.FollowSymbols=5]="FollowSymbols",F[F.QFeedbackNotFound=6]="QFeedbackNotFound",F[F.QFeedbackOk=7]="QFeedbackOk",F[F.QFeedbackPerfect=8]="QFeedbackPerfect",F[F.Debug1=9]="Debug1",F[F.Debug2=10]="Debug2",F[F.Debug3=11]="Debug3",F))(MusicSymbolDrawingStyle||{}),PhonicScoreModes=(F=>(F[F.Following=0]="Following",F[F.Midi=1]="Midi",F[F.Manual=2]="Manual",F))(PhonicScoreModes||{});class LabelRenderSpecs{}class MusicSheetDrawer{constructor(R,B){this.drawableBoundingBoxElement="None",this.skyLineVisible=!1,this.bottomLineVisible=!1,this.phonicScoreMode=PhonicScoreModes.Manual,this.textMeasurer=R,this.splitScreenLineColor=-1,this.drawingParameters=B,this.rules=B.Rules}set Mode(R){this.phonicScoreMode=R}drawSheet(R){if(this.graphicalMusicSheet=R,this.rules=R.ParentMusicSheet.Rules,this.drawSplitScreenLine(),this.drawingParameters.drawCursors)for(const D of R.Cursors){if(!D)continue;const G=new BoundingBox$1(D);G.AbsolutePosition=D.Start,G.BorderBottom=D.End.y-D.Start.y,G.BorderRight=D.Width/2,G.BorderLeft=-D.Width/2,this.isVisible(G)&&this.drawLineAsVerticalRectangle(D,GraphicalLayers.Cursor)}this.drawingParameters.drawScrollIndicator&&this.drawScrollIndicator();const B=Math.min(this.graphicalMusicSheet.MusicPages.length,this.rules.MaxPageToDrawNumber);for(let D=0;D0&&(isTopFont(R.Label.textAlignment)||[TextAlignmentEnum.CenterBottom].includes(R.Label.textAlignment))){let re=-1,ae=!1;for(const le of(q==null?void 0:q.AbstractExpressions)||[])if(le.Label===R?re=(ne=le==null?void 0:le.parentMeasure)==null?void 0:ne.measureListIndex:(se=le.expression)!=null&&se.TempoInBpm&&(ae=le.expression.TempoInBpm>0),ae&&re>-1){U.ScreenPosition.y-=4*10;break}}this.rules.DYMusicScoreType==="jianpu"?isNaN(parseInt(R.Label.text,10))&&this.renderLabel(R,B,U):this.renderLabel(R,B,U)}calculateLabel(R){const B=new LabelRenderSpecs,D=R.Label,G=new BoundingBox$1(this);G.AbsolutePosition.x=R.PositionAndShape.AbsolutePosition.x,G.AbsolutePosition.y=R.PositionAndShape.AbsolutePosition.y||R.PositionAndShape.Parent.AbsolutePosition.y,B.ScreenPosition=this.applyScreenTransformation(G.AbsolutePosition),B.FontHeightInPixel=this.calculatePixelDistance(D.fontHeight);const U=this.calculatePixelDistance(R.PositionAndShape.Size.width);switch(B.BitmapWidth=Math.ceil(U),B.BitmapHeight=R.TextLines?Math.ceil(B.FontHeightInPixel*(.2+R.TextLines.length)):10,D.textAlignment){case TextAlignmentEnum.LeftTop:B.ScreenPosition.x-=B.BitmapWidth/2,B.ScreenPosition.y+=B.BitmapHeight*1.5;break;case TextAlignmentEnum.LeftCenter:B.ScreenPosition.y-=B.BitmapHeight/2;break;case TextAlignmentEnum.LeftBottom:B.ScreenPosition.y-=B.BitmapHeight;break;case TextAlignmentEnum.CenterTop:B.ScreenPosition.x-=B.BitmapWidth/2;break;case TextAlignmentEnum.CenterCenter:B.ScreenPosition.x-=B.BitmapWidth/2,B.ScreenPosition.y-=B.BitmapHeight/2;break;case TextAlignmentEnum.CenterBottom:B.ScreenPosition.x-=B.BitmapWidth/2,B.ScreenPosition.y-=B.BitmapHeight;break;case TextAlignmentEnum.RightTop:B.ScreenPosition.x-=B.BitmapWidth;break;case TextAlignmentEnum.RightCenter:B.ScreenPosition.x-=B.BitmapWidth,B.ScreenPosition.y-=B.BitmapHeight/2;break;case TextAlignmentEnum.RightBottom:B.ScreenPosition.x-=B.BitmapWidth,B.ScreenPosition.y-=B.BitmapHeight;break;default:throw new ArgumentOutOfRangeException("")}return B}applyScreenTransformations(R){const B=[];for(const D of R)B.push(this.applyScreenTransformation(D));return B}drawSplitScreenLine(){}renderRectangle(R,B,D,G=void 0,U=1){throw new Error("not implemented")}drawScrollIndicator(){}drawSelectionStartSymbol(R){}drawSelectionEndSymbol(R){}renderLabel(R,B,D){throw new Error("not implemented")}renderSystemToScreen(R,B,D){}drawSkyLine(R){}drawBottomLine(R){}drawInstrumentBrace(R,B){}drawGroupBracket(R,B){}isVisible(R){return!0}drawMusicSystem(R){const B=this.getSystemAbsBoundingRect(R),D=this.getSytemBoundingBoxInPixels(B);this.drawMusicSystemComponents(R,D,B)}getSytemBoundingBoxInPixels(R){const B=this.applyScreenTransformationForRect(R);return B.x=Math.round(B.x),B.y=Math.round(B.y),B}getSystemAbsBoundingRect(R){const B=R.PositionAndShape.BoundingRectangle;return new RectangleF2D(R.PositionAndShape.AbsolutePosition.x+R.PositionAndShape.BorderLeft-1,R.PositionAndShape.AbsolutePosition.y+R.PositionAndShape.BorderTop-1,B.width+6,B.height+2)}drawMusicSystemComponents(R,B,D){const G=this.graphicalMusicSheet.SelectionStartSymbol,U=this.graphicalMusicSheet.SelectionEndSymbol;this.drawingParameters.drawSelectionStartSymbol&&G!==void 0&&this.isVisible(G.PositionAndShape)&&this.drawSelectionStartSymbol(G),this.drawingParameters.drawSelectionEndSymbol&&U!==void 0&&this.isVisible(U.PositionAndShape)&&this.drawSelectionEndSymbol(U);for(const Y of R.StaffLines)this.drawStaffLine(Y),this.rules.RenderLyrics&&(Y.LyricsDashes.length>0&&this.drawDashes(Y.LyricsDashes),Y.LyricLines.length>0&&this.drawLyricLines(Y.LyricLines,Y));for(const Y of R.SystemLines)this.drawSystemLineObject(Y);if(R.Parent===R.Parent.Parent.MusicPages[0])for(const Y of R.Labels)Y.SVGNode=this.drawLabel(Y,GraphicalLayers.Notes);const W=this.graphicalMusicSheet.ParentMusicSheet.Instruments,q=W.filter(Y=>Y.Visible).length;for(const Y of R.InstrumentBrackets)this.drawInstrumentBrace(Y,R);if(W.length>0)if(q>1)for(const Y of R.GroupBrackets)this.drawGroupBracket(Y,R);else for(const Y of R.GroupBrackets)Y.Visible=!1;if(!this.leadSheet)for(const Y of R.MeasureNumberLabels)Y.SVGNode=this.drawLabel(Y,GraphicalLayers.Notes);for(const Y of R.StaffLines)this.drawStaffLineSymbols(Y);this.drawingParameters.drawMarkedAreas&&this.drawMarkedAreas(R)}activateSystemRendering(R,B,D,G){return!0}drawSystemLineObject(R){}drawStaffLine(R){for(const B of R.Measures)this.drawMeasure(B);this.rules.RenderLyrics&&R.LyricsDashes.length>0&&this.drawDashes(R.LyricsDashes),this.drawOctaveShifts(R),this.drawPedals(R),this.drawWavyLines(R),this.drawExpressions(R),this.skyLineVisible&&this.drawSkyLine(R),this.bottomLineVisible&&this.drawBottomLine(R)}drawLyricLines(R,B){B.LyricLines.forEach(D=>{D.Start.y+=B.PositionAndShape.AbsolutePosition.y,D.End.y+=B.PositionAndShape.AbsolutePosition.y,D.Start.x+=B.PositionAndShape.AbsolutePosition.x,D.End.x+=B.PositionAndShape.AbsolutePosition.x,this.drawGraphicalLine(D,this.rules.LyricUnderscoreLineWidth)})}drawExpressions(R){}drawGraphicalLine(R,B,D="black"){return this.drawLine(R.Start,R.End,D,B)}drawLine(R,B,D="#FF0000FF",G){}drawDashes(R){R.forEach(B=>B.SVGNode=this.drawLabel(B,GraphicalLayers.Notes))}drawOctaveShifts(R){}drawStaffLines(R){if(R.StaffLines){const B=R.PositionAndShape.AbsolutePosition;for(let D=0;D<5;D++)this.drawLineAsHorizontalRectangleWithOffset(R.StaffLines[D],B,GraphicalLayers.Notes)}}drawSymbol(R,B,D,G=1,U=GraphicalLayers.Notes){}get leadSheet(){return this.graphicalMusicSheet.LeadSheet}set leadSheet(R){this.graphicalMusicSheet.LeadSheet=R}drawPage(R){if(!!this.isVisible(R.PositionAndShape)){for(const B of R.MusicSystems)this.isVisible(B.PositionAndShape)&&this.drawMusicSystem(B);if(R===R.Parent.MusicPages[0])for(const B of R.Labels)B.SVGNode=this.drawLabel(B,GraphicalLayers.Notes);this.drawableBoundingBoxElement&&this.drawBoundingBoxes(R.PositionAndShape,0,this.drawableBoundingBoxElement)}}drawBoundingBoxes(R,B=0,D="all"){const G=R.DataObject.constructor.name;let U=!1;D==="all"&&(U=!0),(U||G===D)&&this.drawBoundingBox(R,void 0,!0,G,B),B++,R.ChildElements.forEach(W=>this.drawBoundingBoxes(W,B,D))}drawBoundingBox(R,B=void 0,D=!1,G=void 0,U=0){let W=new RectangleF2D(R.AbsolutePosition.x+R.BorderMarginLeft,R.AbsolutePosition.y+R.BorderMarginTop,R.BorderMarginRight-R.BorderMarginLeft,R.BorderMarginBottom-R.BorderMarginTop);D&&(this.drawLineAsHorizontalRectangle(new GraphicalLine(new PointF2D(R.AbsolutePosition.x-1,R.AbsolutePosition.y),new PointF2D(R.AbsolutePosition.x+1,R.AbsolutePosition.y),.1,OutlineAndFillStyleEnum.BaseWritingColor,B),U-1),this.drawLineAsVerticalRectangle(new GraphicalLine(new PointF2D(R.AbsolutePosition.x,R.AbsolutePosition.y-1),new PointF2D(R.AbsolutePosition.x,R.AbsolutePosition.y+1),.1,OutlineAndFillStyleEnum.BaseWritingColor,B),U-1)),W=this.applyScreenTransformationForRect(W);const q=this.renderRectangle(W,GraphicalLayers.Background,U,B,.5);if(G){const Y=new Label(G),Q=new LabelRenderSpecs;Q.BitmapWidth=W.width,Q.BitmapHeight=W.height,Q.FontHeightInPixel=W.height,Q.ScreenPosition=new PointF2D(W.x,W.y+12),this.renderLabel(new GraphicalLabel(Y,.8,TextAlignmentEnum.CenterCenter,this.rules),U,Q)}return q}drawMarkedAreas(R){for(const B of R.GraphicalMarkedAreas)B&&(B.systemRectangle&&this.drawRectangle(B.systemRectangle,GraphicalLayers.Background),B.settings&&(B.settings.SVGNode=this.drawLabel(B.settings,GraphicalLayers.Comment)),B.labelRectangle&&this.drawRectangle(B.labelRectangle,GraphicalLayers.Background),B.label&&(B.label.SVGNode=this.drawLabel(B.label,GraphicalLayers.Comment)))}drawStaffLineSymbols(R){const B=R.ParentStaff.ParentInstrument,D=R.PositionAndShape.AbsolutePosition.x,G=R.PositionAndShape.AbsolutePosition.y+2,U=R.PositionAndShape.BorderRight;B.highlight&&this.drawingParameters.drawHighlights&&this.drawLineAsHorizontalRectangle(new GraphicalLine(new PointF2D(D,G),new PointF2D(D+U,G),4,OutlineAndFillStyleEnum.Highlighted),GraphicalLayers.Highlight);let W=MusicSymbolDrawingStyle.Disabled,q=MusicSymbol.PLAY,Y=this.drawingParameters.drawActivitySymbols;switch(this.phonicScoreMode){case PhonicScoreModes.Midi:q=MusicSymbol.PLAY,this.midiPlaybackAvailable&&R.ParentStaff.audible&&(W=MusicSymbolDrawingStyle.PlaybackSymbols);break;case PhonicScoreModes.Following:q=MusicSymbol.MIC,R.ParentStaff.following&&(W=MusicSymbolDrawingStyle.FollowSymbols);break;default:Y=!1;break}if(Y){const Q=new PointF2D(D+U+2,G);this.drawSymbol(q,W,Q)}if(this.drawingParameters.drawErrors)for(const Q of R.Measures){const Z=Q.PositionAndShape,K=Z.AbsolutePosition.x,ie=Z.AbsolutePosition.y+2;Q.hasError&&this.graphicalMusicSheet.ParentMusicSheet.DrawErroneousMeasures&&this.drawLineAsHorizontalRectangle(new GraphicalLine(new PointF2D(K,ie),new PointF2D(K+Z.BorderRight,ie),4,OutlineAndFillStyleEnum.ErrorUnderlay),GraphicalLayers.MeasureError)}}}class VexFlowTextMeasurer{constructor(R){this.fontSize=20,this.fontSizeStandard=this.fontSize;const B=document.createElement("canvas");this.context=B.getContext("2d"),this.rules=R}computeTextWidthToHeightRatio(R,B,D,G=void 0,U=this.fontSize){return this.context.font=VexFlowConverter.font(U,D,B,this.rules,G),this.context.measureText(R).width/U}setFontSize(R=this.fontSizeStandard){return this.fontSize=R,R}}class AbstractGraphicalExpression extends GraphicalObject{constructor(R,B,D){super(),this.expression=B,this.parentMeasure=D,this.boundingBox=new BoundingBox$1(this,R.PositionAndShape),this.parentStaffLine=R,this.parentStaffLine.AbstractExpressions.push(this),this.rules=R.ParentMusicSystem.rules}get Label(){return this.label}get ParentStaffLine(){return this.parentStaffLine}get SourceExpression(){return this.expression}get Placement(){return this.expression.Placement}}class GraphicalInstantaneousTempoExpression extends AbstractGraphicalExpression{constructor(R,B){super(B.PositionAndShape.Parent.DataObject,R,R.parentMeasure),this.label=B}get GraphicalLabel(){return this.label}updateSkyBottomLine(){}}class GraphicalInstantaneousDynamicExpression extends AbstractGraphicalExpression{constructor(R,B,D){super(B,R,D.parentSourceMeasure),this.mInstantaneousDynamicExpression=R,this.mMeasure=D}updateSkyBottomLine(){const R=this.parentStaffLine.SkyBottomLineCalculator,B=this.PositionAndShape.RelativePosition.x+this.PositionAndShape.BorderMarginLeft,D=this.PositionAndShape.RelativePosition.x+this.PositionAndShape.BorderMarginRight;let G=0;switch(this.Placement){case PlacementEnum.Above:G=this.PositionAndShape.RelativePosition.y+this.PositionAndShape.BorderMarginTop,R.updateSkyLineInRange(B,D,G);break;case PlacementEnum.Below:G=this.PositionAndShape.RelativePosition.y+this.PositionAndShape.BorderMarginBottom,R.updateBottomLineInRange(B,D,G);break;default:log$2.error("Placement for GraphicalInstantaneousDynamicExpression is unknown")}}}class GraphicalContinuousDynamicExpression extends AbstractGraphicalExpression{constructor(R,B,D){super(B,R,D),this.lines=[],this.isSplittedPart=!1,this.notToBeRemoved=!1}get StartMeasure(){return this.startMeasure}set StartMeasure(R){this.startMeasure=R}get EndMeasure(){return this.endMeasure}set EndMeasure(R){this.endMeasure=R}get EndStaffLine(){return this.endMeasure?this.endMeasure.ParentStaffLine:void 0}get IsSplittedPart(){return this.isSplittedPart}set IsSplittedPart(R){this.isSplittedPart=R}get IsVerbal(){return this.ContinuousDynamic.Label&&this.ContinuousDynamic.Label.length>0}get NotToBeRemoved(){return this.notToBeRemoved}set NotToBeRemoved(R){this.notToBeRemoved=R}get Lines(){return this.lines}get ContinuousDynamic(){return this.SourceExpression}updateSkyBottomLine(){var G;const R=this.parentStaffLine.SkyBottomLineCalculator,B=this.IsVerbal?this.label.PositionAndShape.RelativePosition.x+this.label.PositionAndShape.BorderMarginLeft:0,D=this.IsVerbal?this.label.PositionAndShape.RelativePosition.x+this.label.PositionAndShape.BorderMarginRight:0;switch(!this.IsVerbal&&this.lines.length<2&&log$2.warn("Not enough lines for SkyBottomLine calculation"),this.IsVerbal||this.ContinuousDynamic.DynamicType!==ContDynamicEnum.crescendo&&this.ContinuousDynamic.DynamicType!==ContDynamicEnum.diminuendo&&log$2.warn("GraphicalContinuousDynamicExpression.updateSkyBottomLine(): unhandled continuous dynamic type. start measure: "+((G=this.startMeasure)==null?void 0:G.MeasureNumber)),this.Placement){case PlacementEnum.Above:if(!this.IsVerbal)this.ContinuousDynamic.DynamicType===ContDynamicEnum.crescendo?R.updateSkyLineWithWedge(this.lines[0].Start,this.lines[0].End):this.ContinuousDynamic.DynamicType===ContDynamicEnum.diminuendo&&R.updateSkyLineWithWedge(this.lines[0].End,this.lines[0].Start);else{const U=this.label.PositionAndShape.BorderMarginTop+this.label.PositionAndShape.RelativePosition.y;R.updateSkyLineInRange(B,D,U)}break;case PlacementEnum.Below:if(!this.IsVerbal)this.ContinuousDynamic.DynamicType===ContDynamicEnum.crescendo?R.updateBottomLineWithWedge(this.lines[1].Start,this.lines[1].End):this.ContinuousDynamic.DynamicType===ContDynamicEnum.diminuendo&&R.updateBottomLineWithWedge(this.lines[1].End,this.lines[1].Start);else{const U=this.label.PositionAndShape.BorderMarginBottom+this.label.PositionAndShape.RelativePosition.y;R.updateBottomLineInRange(B,D,U)}break;default:log$2.error("Placement for GraphicalContinuousDynamicExpression is unknown")}}createCrescendoLines(R,B,D,G=this.rules.WedgeOpeningLength,U=this.rules.WedgeLineWidth){const W=new PointF2D(R,D),q=new PointF2D(B,D-G/2),Y=new PointF2D(B,D+G/2);this.addWedgeLines(W,q,Y,U)}createFirstHalfCrescendoLines(R,B,D,G=this.rules.WedgeMeasureEndOpeningLength,U=this.rules.WedgeLineWidth){const W=new PointF2D(R,D),q=new PointF2D(B,D-G/2),Y=new PointF2D(B,D+G/2);this.addWedgeLines(W,q,Y,U)}createSecondHalfCrescendoLines(R,B,D,G=this.rules.WedgeMeasureBeginOpeningLength,U=this.rules.WedgeOpeningLength,W=this.rules.WedgeLineWidth){const q=new PointF2D(R,D-G/2),Y=new PointF2D(R,D+G/2),Q=new PointF2D(B,D-U/2),Z=new PointF2D(B,D+U/2);this.addDoubleLines(q,Q,Y,Z,W)}recalculateCrescendoLines(R,B,D){const G=Math.abs(this.lines[0].Start.y-this.lines[1].Start.y)>1e-4;this.lines.clear(),G?this.createSecondHalfCrescendoLines(R,B,D):this.isSplittedPart?this.createFirstHalfCrescendoLines(R,B,D):this.createCrescendoLines(R,B,D)}createDiminuendoLines(R,B,D,G=this.rules.WedgeOpeningLength,U=this.rules.WedgeLineWidth){const W=new PointF2D(R,D-G/2),q=new PointF2D(R,D+G/2),Y=new PointF2D(B,D);this.addWedgeLines(Y,W,q,U)}createFirstHalfDiminuendoLines(R,B,D,G=this.rules.WedgeOpeningLength,U=this.rules.WedgeMeasureEndOpeningLength,W=this.rules.WedgeLineWidth){const q=new PointF2D(R,D-G/2),Y=new PointF2D(R,D+G/2),Q=new PointF2D(B,D-U/2),Z=new PointF2D(B,D+U/2);this.addDoubleLines(q,Q,Y,Z,W)}createSecondHalfDiminuendoLines(R,B,D,G=this.rules.WedgeMeasureBeginOpeningLength,U=this.rules.WedgeLineWidth){const W=new PointF2D(R,D-G/2),q=new PointF2D(R,D+G/2),Y=new PointF2D(B,D);this.addWedgeLines(Y,W,q,U)}recalculateDiminuendoLines(R,B,D){const G=Math.abs(this.lines[0].End.y-this.lines[1].End.y)>1e-4;this.lines.clear(),G?this.createFirstHalfDiminuendoLines(R,B,D):this.isSplittedPart?this.createSecondHalfDiminuendoLines(R,B,D):this.createDiminuendoLines(R,B,D)}calcPsi(){if(this.IsVerbal){this.PositionAndShape.calculateBoundingBox();return}this.PositionAndShape.RelativePosition=this.lines[0].Start,this.PositionAndShape.BorderMarginTop=this.lines[0].End.y-this.lines[0].Start.y,this.PositionAndShape.BorderMarginBottom=this.lines[1].End.y-this.lines[1].Start.y,this.PositionAndShape.Center.y=(this.PositionAndShape.BorderMarginTop+this.PositionAndShape.BorderMarginBottom)/2,this.ContinuousDynamic.DynamicType===ContDynamicEnum.crescendo?(this.PositionAndShape.BorderMarginLeft=0,this.PositionAndShape.BorderMarginRight=this.lines[0].End.x-this.lines[0].Start.x):(this.PositionAndShape.BorderMarginLeft=this.lines[0].End.x-this.lines[0].Start.x,this.PositionAndShape.BorderMarginRight=0)}cleanUp(){this.lines.clear()}shiftYPosition(R){this.IsVerbal?(this.PositionAndShape.RelativePosition.y+=R,this.PositionAndShape.calculateBoundingBox()):(this.lines[0].Start.y+=R,this.lines[0].End.y+=R,this.lines[1].End.y+=R)}squeeze(R){this.IsVerbal||Math.abs(this.lines[0].End.x-this.lines[0].Start.x)0?this.lines[0].Start.x+=R:(this.lines[0].End.x+=R,this.lines[1].End.x+=R):R<0?this.lines[0].Start.x+=R:(this.lines[0].End.x+=R,this.lines[1].End.x+=R),this.calcPsi())}addWedgeLines(R,B,D,G){const U=new GraphicalLine(R,B,G),W=new GraphicalLine(R,D,G);this.lines.push(U),this.lines.push(W)}addDoubleLines(R,B,D,G,U){const W=new GraphicalLine(R,B,U),q=new GraphicalLine(D,G,U);this.lines.push(W),this.lines.push(q)}}class GraphicalUnknownExpression extends AbstractGraphicalExpression{constructor(R,B,D,G,U=void 0){super(R,new AbstractExpression(D),G),this.label=B,this.sourceMultiExpression=U}updateSkyBottomLine(){const R=this.parentStaffLine.SkyBottomLineCalculator,B=this.label.PositionAndShape.RelativePosition.x+this.label.PositionAndShape.BorderMarginLeft,D=this.label.PositionAndShape.RelativePosition.x+this.label.PositionAndShape.BorderMarginRight;switch(this.Placement){case PlacementEnum.Above:const G=this.label.PositionAndShape.BorderMarginTop+this.label.PositionAndShape.RelativePosition.y;R.updateSkyLineInRange(B,D,G);break;case PlacementEnum.Below:const U=this.label.PositionAndShape.BorderMarginBottom+this.label.PositionAndShape.RelativePosition.y;R.updateBottomLineInRange(B,D,U);break;default:log$2.error("Placement for GraphicalUnknownExpression is unknown")}}}Vex.Flow;const unitInPixels=10;class VexFlowMusicSheetDrawer extends MusicSheetDrawer{constructor(R=new DrawingParameters){super(new VexFlowTextMeasurer(R.Rules),R),this.backends=[],this.zoom=1,this.pageIdx=0,this.getDotId=(B,D)=>D?String(B.Label.PositionAndShape.RelativePosition[D]):String(B.Label.PositionAndShape.RelativePosition.x)+String(B.Label.PositionAndShape.RelativePosition.y),this.hasDot=(B,D,G,U)=>{const W=D||Object.values(U);for(const q of W){if(G)return B.x===q.x&&B.y===q.y;if(B.x===q.x)return!0}return!1}}get Zoom(){return this.zoom}get Backends(){return this.backends}initializeBackendForPage(R){this.backend=this.backends[R.PageNumber-1]}drawSheet(R){var B,D,G;this.rules.DefaultVexFlowNoteFont==="gonville"&&(Vex.Flow.DEFAULT_FONT_STACK=[(B=Vex.Flow.Fonts)==null?void 0:B.Gonville,(D=Vex.Flow.Fonts)==null?void 0:D.Bravura,(G=Vex.Flow.Fonts)==null?void 0:G.Custom]),Vex.Flow.STAVE_LINE_THICKNESS=this.rules.StaffLineWidth*unitInPixels,Vex.Flow.STEM_WIDTH=this.rules.StemWidth*unitInPixels,Vex.Flow.DEFAULT_NOTATION_FONT_SCALE=this.rules.VexFlowDefaultNotationFontScale,Vex.Flow.DEFAULT_TAB_FONT_SCALE=this.rules.VexFlowDefaultTabFontScale,this.pageIdx=0;for(const U of R.MusicPages){if(U.PageNumber>this.rules.MaxPageToDrawNumber)break;const W=this.backends[this.pageIdx];W.graphicalMusicPage=U,W.scale(this.zoom),this.pageIdx+=1}this.pageIdx=0,this.backend=this.backends[0],super.drawSheet(R)}drawPage(R){!R||(this.backend=this.backends[R.PageNumber-1],super.drawPage(R),this.pageIdx+=1)}clear(){for(const R of this.backends)R.clear()}setZoom(R){this.zoom=R}calculatePixelDistance(R){return R*unitInPixels}drawStaffLine(R){const B=this.backend.getContext().openGroup();B&&B.classList.add("staffline"),super.drawStaffLine(R);const D=R.PositionAndShape.AbsolutePosition;this.rules.RenderSlurs&&this.drawSlurs(R,D),this.backend.getContext().closeGroup()}drawSlurs(R,B){for(const D of R.GraphicalSlurs)D.slur.isCrossed()||this.drawSlur(D,B)}drawSlur(R,B){const D=[];let G,U,W,q;this.rules.DYMusicScoreType==="jianpu"?((R.placement>0||R.bezierStartPt.y>0)&&(R.bezierStartPt.y=-.8,R.bezierStartControlPt.y=-2.5),G=new PointF2D(R.bezierStartPt.x+B.x,R.bezierStartPt.y+B.y),U=new PointF2D(R.bezierStartControlPt.x+B.x,R.bezierStartControlPt.y+B.y),W=new PointF2D(R.bezierEndControlPt.x+B.x,R.bezierStartControlPt.y+B.y),q=new PointF2D(R.bezierEndPt.x+B.x,R.bezierStartPt.y+B.y)):(G=new PointF2D(R.bezierStartPt.x+B.x,R.bezierStartPt.y+B.y),U=new PointF2D(R.bezierStartControlPt.x+B.x,R.bezierStartControlPt.y+B.y),W=new PointF2D(R.bezierEndControlPt.x+B.x,R.bezierEndControlPt.y+B.y),q=new PointF2D(R.bezierEndPt.x+B.x,R.bezierEndPt.y+B.y)),D.push(this.applyScreenTransformation(G)),D.push(this.applyScreenTransformation(U)),D.push(this.applyScreenTransformation(W)),D.push(this.applyScreenTransformation(q)),R.placement===PlacementEnum.Above?(G.y-=.05,U.y-=.3,W.y-=.3,q.y-=.05):(G.y+=.05,U.y+=.3,W.y+=.3,q.y+=.05),D.push(this.applyScreenTransformation(G)),D.push(this.applyScreenTransformation(U)),D.push(this.applyScreenTransformation(W)),D.push(this.applyScreenTransformation(q)),R.SVGElement=this.backend.renderCurve(D)}drawMeasure(R){R.setAbsoluteCoordinates(R.PositionAndShape.AbsolutePosition.x*unitInPixels,R.PositionAndShape.AbsolutePosition.y*unitInPixels);const B=this.backend.getContext();try{R.draw(B)}catch(D){log$2.warn("VexFlowMusicSheetDrawer.drawMeasure",D)}for(const D of R.staffEntries)this.drawStaffEntry(D)}drawLine(R,B,D="#FF0000FF",G=.2){return R=this.applyScreenTransformation(R),B=this.applyScreenTransformation(B),this.backend.renderLine(R,B,D,G*unitInPixels)}DrawOverlayLine(R,B,D,G="#FF0000FF",U=.2){if(!D.PageNumber||D.PageNumber>this.backends.length||D.PageNumber<1){console.log("VexFlowMusicSheetDrawer.drawOverlayLine: invalid page number / music page number doesn't correspond to an existing backend.");return}const W=D.PageNumber-1,q=this.backends[W];return R=this.applyScreenTransformation(R),B=this.applyScreenTransformation(B),q.renderLine(R,B,G,U*unitInPixels)}drawSkyLine(R){const B=R.PositionAndShape.AbsolutePosition,D=R.PositionAndShape.Size.width;this.drawSampledLine(R.SkyLine,B,D)}drawBottomLine(R){const B=new PointF2D(R.PositionAndShape.AbsolutePosition.x,R.PositionAndShape.AbsolutePosition.y),D=R.PositionAndShape.Size.width;this.drawSampledLine(R.BottomLine,B,D,"#0000FFFF")}drawSampledLine(R,B,D,G="#FF0000FF"){const U=[];let W=0;for(let Y=0;Y0){const Y=this.rules.SamplingUnit;let Q=new PointF2D(q.x,q.y),Z=new PointF2D(U[0]/Y+q.x,q.y);this.drawLine(Q,Z,G);let K,ie;R[0]>=0&&(K=new PointF2D(U[0]/Y+q.x,q.y),ie=new PointF2D(U[0]/Y+q.x,q.y+R[U[0]]),this.drawLine(K,ie,G));for(let te=1;te0)for(const B of R.FingeringEntries)B.SVGNode=this.drawLabel(B,GraphicalLayers.Notes);if(R.graphicalChordContainers!==void 0&&R.graphicalChordContainers.length>0)for(const B of R.graphicalChordContainers){const D=B.GraphicalLabel;D.SVGNode=this.drawLabel(D,GraphicalLayers.Notes)}this.rules.RenderLyrics&&R.LyricsEntries.length>0&&this.drawLyrics(R.LyricsEntries,GraphicalLayers.Notes)}drawLyrics(R,B){R.forEach(D=>{const G=D.GraphicalLabel;G.SVGNode=this.drawLabel(G,B)})}drawInstrumentBrace(R,B){R.draw(this.backend.getContext())}drawGroupBracket(R,B){R.draw(this.backend.getContext())}drawOctaveShifts(R){for(const B of R.OctaveShifts)if(B){const D=B,G=this.backend.getContext(),U=D.getTextBracket();U.setContext(G);try{U.draw()}catch(W){log$2.warn(W)}}}drawPedals(R){for(const B of R.Pedals)if(B){const D=B,G=this.backend.getContext(),U=D.getPedalMarking();U.setContext(G),U.draw()}}drawWavyLines(R){for(const B of R.WavyLines)if(B){const D=B,G=this.backend.getContext(),U=D.getVibratoBracket();U.setContext(G),U.draw()}}getMaxExpressionsYAndDots(R){var Y,Q;const B=[];let D=0;for(const Z of R.measures)B.push(Z.measureNumber);const G={},U={},W={};for(const Z of R.AbstractExpressions)if(Z instanceof GraphicalUnknownExpression&&B.includes(Z.parentMeasure.MeasureNumber)){const K=this.getDotId(Z),ie=this.getDotId(Z,"x");U[K]||(U[K]=[]),W[ie]||(W[ie]=[]),this.hasDot(Z.Label.PositionAndShape.RelativePosition,U[K],!0)||(U[K].push(Z.Label.PositionAndShape.RelativePosition),W[ie].push(Z.Label.PositionAndShape.RelativePosition)),G[K]=Z.Label.PositionAndShape.RelativePosition}let q=0;for(const Z of R.AbstractExpressions){const K=(Y=Z.parentMeasure)==null?void 0:Y.MeasureNumber;if(Z instanceof GraphicalUnknownExpression&&B.includes(K)){const ie=(Q=Z.parentMeasure.verticalMeasureList[0])==null?void 0:Q.stave,te=(ie==null?void 0:ie.end_x)-(ie==null?void 0:ie.x),ne=this.getDotId(Z,"x");if((W[ne]||[]).length===1&&q!==K){const se=Z.Label.PositionAndShape.AbsolutePosition.y;D=D===0?se:Math.min(D,se)}(W[ne]||[]).length!==1&&te/101){let D=Math.min(...R.Lines.map(G=>G.Start.x));R.Lines[0].Start.x=D,R.Lines[1].Start.x=D,[R.Lines[0].Start.y,R.Lines[1].Start.y]=[R.Lines[1].Start.y,R.Lines[0].Start.y],R.Lines[0].End.y+=this.rules.WedgeOpeningLength/2,R.Lines[1].End.y+=this.rules.WedgeOpeningLength}}catch{}const B=this.backend.getContext();B.openGroup("lineGroup");for(const D of R.Lines){const G=new PointF2D(R.ParentStaffLine.PositionAndShape.AbsolutePosition.x+D.Start.x,R.ParentStaffLine.PositionAndShape.AbsolutePosition.y+D.Start.y),U=new PointF2D(R.ParentStaffLine.PositionAndShape.AbsolutePosition.x+D.End.x,R.ParentStaffLine.PositionAndShape.AbsolutePosition.y+D.End.y);this.drawLine(G,U,"black",D.Width)}B.closeGroup()}}renderLabel(R,B,D){return this._renderLabel(R,D)}_renderLabel(R,B){var Q;if(!R.Label.print)return;const D=R.Label.fontHeight*unitInPixels,{font:G}=R.Label;let U;this.rules.ColoringEnabled&&(U=R.Label.colorDefault,R.Label.color&&(U=R.Label.color.toString()),U||(U=this.rules.DefaultColorLabel));let{fontStyle:W,fontFamily:q}=R.Label;W||(W=this.rules.DefaultFontStyle),q||(q=this.rules.DefaultFontFamily);let Y;for(let Z=0;Z<((Q=R.TextLines)==null?void 0:Q.length);Z++){const K=R.TextLines[Z],ie=this.calculatePixelDistance(K.xOffset),te=new PointF2D(B.ScreenPosition.x+ie,B.ScreenPosition.y),ne=this.backend.renderText(D,W,G,K.text,B.FontHeightInPixel,te,U,R.Label.fontFamily);Y?Y.appendChild(ne):Y=ne,B.ScreenPosition.y=B.ScreenPosition.y+B.FontHeightInPixel,R.TextLines.length>1&&(B.ScreenPosition.y+=this.rules.SpacingBetweenTextLines)}return Y}renderRectangle(R,B,D,G,U){return this.backend.renderRectangle(R,D,G,U)}applyScreenTransformation(R){return new PointF2D(R.x*unitInPixels,R.y*unitInPixels)}applyScreenTransformationForRect(R){return new RectangleF2D(R.x*unitInPixels,R.y*unitInPixels,R.width*unitInPixels,R.height*unitInPixels)}}const VF$c=Vex.Flow,_VexFlowConverter=class{static durations(F,R){const B=[],D=F.clone();for(;D.RealValue>0;){const G=D.RealValue;if(G>=2)B.push("1/2"),D.Sub(new Fraction$1(2,1));else if(G>=1)B.push("w"),D.Sub(new Fraction$1(1,1));else if(G<1&&G>=.5){if(R&&G>.5)return["w"];B.push("h"),D.Sub(new Fraction$1(1,2))}else if(G<.5&&G>=.25){if(R&&G>.25)return["h"];B.push("q"),D.Sub(new Fraction$1(1,4))}else if(G<.25&&G>=.125){if(R&&G>.125)return["q"];B.push("8"),D.Sub(new Fraction$1(1,8))}else if(G<.125&&G>=.0625){if(R&&G>.0625)return["8"];B.push("16"),D.Sub(new Fraction$1(1,16))}else if(G<.0625&&G>=.03125){if(R&&G>.03125)return["16"];B.push("32"),D.Sub(new Fraction$1(1,32))}else if(G<.03125&&G>=.015625){if(R&&G>.015625)return["32"];B.push("64"),D.Sub(new Fraction$1(1,64))}else{if(R)return["64"];B.push("128"),D.Sub(new Fraction$1(1,128))}}return B}static pitch(F,R,B,D=void 0,G=void 0){let U=G;G===void 0&&(U=3),R&&G===void 0&&(U=0,B.ClefType===ClefEnum.F&&(U=2),B.ClefType===ClefEnum.C&&(U=2));const W=NoteEnum[F.FundamentalNote].toLowerCase(),q=Pitch.accidentalVexflow(F.Accidental),Y=F.Octave-B.OctaveOffset+U;let Q="";return D&&(Q=this.NoteHeadCode(D)),[W+"n/"+Y+Q,q,B]}static restToNotePitch(F,R){let B=F.Octave;switch(R){case ClefEnum.C:case ClefEnum.F:{B+=2;break}case ClefEnum.G:}return new Pitch(F.FundamentalNote,B,AccidentalEnum.NONE)}static NoteHeadCode(F){const R="/",B=F.Filled?"2":"1";switch(F.Shape){case NoteHeadShape.NORMAL:return"";case NoteHeadShape.DIAMOND:return R+"D"+B;case NoteHeadShape.TRIANGLE:return R+"T"+B;case NoteHeadShape.X:return R+"X"+B;case NoteHeadShape.CIRCLEX:return R+"X3";case NoteHeadShape.RECTANGLE:return R+"R"+B;case NoteHeadShape.SQUARE:return R+"S"+B;case NoteHeadShape.SLASH:return"";default:return""}}static GhostNotes(F){const R=[],B=_VexFlowConverter.durations(F,!1);for(const D of B)R.push(new VF$c.GhostNote({duration:D}));return R}static StaveNote(F){var pe,me,fe,ge,Se,Ee,ve,xe,Me,ye,we,Re,Pe,Ae,Le,Ne;F.sortForVexflow();const R=F.notes,B=F.parentStaffEntry.parentMeasure.parentSourceMeasure.Rules,D=R[0];let G=[],U;const W=[],q=D.graphicalNoteLength,Y=D.sourceNote.NoteTuplet!==void 0;let Q=_VexFlowConverter.durations(q,Y)[0];D.sourceNote.TypeLength!==void 0&&D.sourceNote.TypeLength!==q&&D.sourceNote.TypeLength.RealValue!==0&&(Q=_VexFlowConverter.durations(D.sourceNote.TypeLength,Y)[0],D.numberOfDots=D.sourceNote.DotsXml);let Z,K=D.numberOfDots,ie=!1,te=0,ne=!1,se=!1,re;for(const Ie of R){if(K=1&&He.length-1>=Ze+1&&(Qe=(Se=(ge=He[Ze-1])==null?void 0:ge.graphicalVoiceEntries[0])==null?void 0:Se.parentVoiceEntry,We=(ve=(Ee=He[Ze+1])==null?void 0:Ee.graphicalVoiceEntries[0])==null?void 0:ve.parentVoiceEntry,Qe&&We)){const lt=Qe.Notes[0],ht=We.Notes[0];if(((xe=lt.NoteBeam)==null?void 0:xe.Notes.includes(ht))&&ht.ParentStaffEntry.ParentStaff.StafflineCount!==1){const yt=Qe.Notes.last().Pitch,Fe=Ie.Clef(),Te=_VexFlowConverter.pitch(_VexFlowConverter.restToNotePitch(yt.getTransposedPitch(-2),Fe.ClefType),!1,Fe);yt.FundamentalNote===4&&(G=[Te[0]])}}}}if(q.RealValue===Ie.sourceNote.SourceMeasure.ActiveTimeSignature.RealValue&&(G=B.DYMusicScoreType==="staff"?["d/5"]:["R/5"],Q="w",K=0,ie=!0,te=B.WholeRestXShiftVexflow*unitInPixels),[...Ie.sourceNote.ParentStaff.Voices].filter(Ge=>(Ge==null?void 0:Ge.VoiceId)!=1).length){const Ge=Ie.parentVoiceEntry.parentStaffEntry.graphicalVoiceEntries,He=Ie.parentVoiceEntry.parentVoiceEntry.ParentVoice.VoiceId;let Qe,We;for(const Ze of Ge)for(const lt of Ze.notes){if(lt===Ie||lt.sourceNote.isRest()||!lt.sourceNote.PrintObject){Ie.lineShift=-2;continue}const ht=lt.parentVoiceEntry.parentVoiceEntry.WantedStemDirection,yt=He===1||He===5,Fe=yt?1:-1,je=lt.sourceNote.Pitch.getHalfTone(),Ke=Fe===1&&je>Qe,Oe=Fe===-1&&je0){let Ze=3;const lt=Ie.Clef();switch(lt.ClefType){case ClefEnum.F:Ze=5;break;case ClefEnum.C:Ze=4;break}re=Pitch.fromHalftone(Qe),G=[_VexFlowConverter.pitch(re,!0,lt,void 0,Ze)[0]]}}break}Ie.sourceNote.Notehead&&Ie.sourceNote.Notehead.Shape===NoteHeadShape.SLASH&&(ne=!0);const _e=Ie.vfpitch;if((ye=(Me=_e[2])==null?void 0:Me.Parent)!=null&&ye.Instructions)for(let Ve=0,qe=_e[2].Parent.Instructions.length;VeF.notes[_e].staffLine=Ie),(B.LedgerLineWidth||B.LedgerLineStrokeStyle)&&(ae.ledgerLineStyle||(ae.ledgerLineStyle={}),B.LedgerLineWidth&&(ae.ledgerLineStyle.lineWidth=B.LedgerLineWidth),B.LedgerLineStrokeStyle&&(ae.ledgerLineStyle.strokeStyle=B.LedgerLineStrokeStyle)),B.ColoringEnabled){const Ie=B.DefaultColorStem;let _e=F.parentVoiceEntry.StemColor;!_e&&Ie&&(_e=Ie);const Ve={fillStyle:_e,strokeStyle:_e};_e&&(ae.setStemStyle(Ve),ae.flag&&B.ColorFlags&&ae.setFlagStyle(Ve))}if(ae.x_shift=te,F.parentVoiceEntry.IsGrace&&F.notes[0].sourceNote.NoteBeam&&(F.parentVoiceEntry.WantedStemDirection=F.notes[0].sourceNote.NoteBeam.Notes[0].ParentVoiceEntry.WantedStemDirection),F.parentVoiceEntry)switch(F.parentVoiceEntry.WantedStemDirection){case StemDirectionType.Up:ae.setStemDirection(VF$c.Stem.UP),F.parentVoiceEntry.StemDirection=StemDirectionType.Up;break;case StemDirectionType.Down:ae.setStemDirection(VF$c.Stem.DOWN),F.parentVoiceEntry.StemDirection=StemDirectionType.Down;break}for(let Ie=0,_e=R.length;Ie<_e;Ie+=1){if(R[Ie].setIndex(ae,Ie),W[Ie]){if(W[Ie]==="###"){ae.addAccidental(Ie,new VF$c.Accidental("##")),ae.addAccidental(Ie,new VF$c.Accidental("#"));continue}else if(W[Ie]==="bbs"){ae.addAccidental(Ie,new VF$c.Accidental("bb")),ae.addAccidental(Ie,new VF$c.Accidental("b"));continue}ae.addAccidental(Ie,new VF$c.Accidental(W[Ie]))}const Ve=R[Ie].sourceNote.TremoloStrokes,qe=R[Ie].sourceNote.TremoloType;if(Ve>0&&qe==="single"){const Ge=new VF$c.Tremolo(Ve);Ge.extra_stroke_scale=B.TremoloStrokeScale,Ge.y_spacing_scale=B.TremoloYSpacingScale,ae&&ae.duration==="w"&&ae.stem.setExtension(-9),ae.addModifier(Ie,Ge)}if(Ve>0&&qe==="start"&&this.noteTremoloList.push(ae),Ve>0&&qe==="stop"){this.noteTremoloList.push(ae);const Ge=new VF$c.Tremolo(Ve,[...this.noteTremoloList]);Ge.extra_stroke_scale=1.2,Ge.y_spacing_scale=1.2,Ge.x_shift=-30,ae.addModifier(Ie,Ge),this.noteTremoloList=[]}this.glissandoList.length&&(ae.setVibrato(this.glissandoList[0].vfnote[0]),((Pe=(Re=(we=this.glissandoList[0])==null?void 0:we.sourceNote)==null?void 0:Re.SourceMeasure)==null?void 0:Pe.MeasureNumberXML)!=((Ne=(Le=(Ae=R[Ie])==null?void 0:Ae.sourceNote)==null?void 0:Le.SourceMeasure)==null?void 0:Ne.MeasureNumberXML),this.glissandoList=[]),R[Ie].sourceNote.glissandoType==="start"&&this.glissandoList.push(R[Ie])}if(ce.Length.RealValue===.25&&ce.Notehead&&ce.Notehead.Filled===!1){const Ie=ae.getKeyProps();for(let _e=0;_e1&&ae.getKeyProps().filter(_e=>!_e.code&&_e.line>3).length===G.length&&ae.setStemDirection(-1),B.DYMusicScoreType==="jianpu"&&window&&window.sett&&window.sett.keySignature&&ae.addAccidental(0,new VF$c.Accidental("#"));try{const Ie=["b","#","\xA7","\xBA","X"],_e={b:"b","#":"#","\xA7":"n",\u00BA:"bb",X:"##"};for(const Ve of R){const qe=Ve.sourceNote.voiceEntry.Timestamp;for(const Ge of Ve.sourceNote.SourceMeasure.StaffLinkedExpressions)for(const He of Ge){const Qe=Fraction$1.Equal(qe,He.Timestamp),Ze=He.EntriesList.map(lt=>lt.label).filter(lt=>Ie.includes(lt)).map(lt=>_e[lt]);if(Qe){for(const lt of Ze)lt&&ae.addAnnotation(0,new VF$c.Annotation(lt));break}}}}catch{}return ae}static generateArticulations(F,R,B){var D,G;if(!(!F||F.getAttribute("type")==="GhostNote"))for(const U of R){let W=VF$c.Modifier.Position.ABOVE;F.getStemDirection()===VF$c.Stem.UP&&(W=VF$c.Modifier.Position.BELOW);let q;const Y=U.articulationEnum;switch(B.ArticulationPlacementFromXML&&(U.placement===PlacementEnum.Above?W=VF$c.Modifier.Position.ABOVE:U.placement===PlacementEnum.Below&&(W=VF$c.Modifier.Position.BELOW)),Y){case ArticulationEnum.accent:{q=new VF$c.Articulation("a>");break}case ArticulationEnum.downbow:{q=new VF$c.Articulation("am"),U.placement===void 0&&(W=VF$c.Modifier.Position.ABOVE);break}case ArticulationEnum.fermata:{q=new VF$c.Articulation("a@a"),W=VF$c.Modifier.Position.ABOVE;break}case ArticulationEnum.marcatodown:{q=new VF$c.Articulation("a|");break}case ArticulationEnum.marcatoup:{q=new VF$c.Articulation("a^");break}case ArticulationEnum.invertedfermata:{q=new VF$c.Articulation("a@u"),W=VF$c.Modifier.Position.BELOW;break}case ArticulationEnum.lefthandpizzicato:{q=new VF$c.Articulation("a+");break}case ArticulationEnum.naturalharmonic:{q=new VF$c.Articulation("ah");break}case ArticulationEnum.snappizzicato:{q=new VF$c.Articulation("ao");break}case ArticulationEnum.staccatissimo:{q=new VF$c.Articulation("av");break}case ArticulationEnum.staccato:{q=new VF$c.Articulation("a.");break}case ArticulationEnum.tenuto:{q=new VF$c.Articulation("a-");break}case ArticulationEnum.upbow:{q=new VF$c.Articulation("a|"),U.placement===void 0&&(W=VF$c.Modifier.Position.ABOVE);break}case ArticulationEnum.strongaccent:{q=new VF$c.Articulation("a^");break}}q&&(!F.hasStem()&&!F.isRest()&&Y==ArticulationEnum.accent&&F.getLineNumber()>=3&&(W=VF$c.Modifier.Position.ABOVE,(G=(D=F==null?void 0:F.modifiers)==null?void 0:D.filter(Q=>["TREMOLO"].includes(Q.getCategory().toLocaleUpperCase())))!=null&&G.length&&q.setYShift(-16)),Y===ArticulationEnum.strongaccent&&(W=VF$c.Modifier.Position.ABOVE),q.setPosition(W),F.addModifier(0,q))}}static generateOrnaments(F,R){let B=VF$c.Modifier.Position.ABOVE;R.placement===PlacementEnum.Below&&(B=VF$c.Modifier.Position.BELOW);let D;switch(R.GetOrnament){case OrnamentEnum.DelayedInvertedTurn:{D=new VF$c.Ornament("turn_inverted"),D.setDelayed(!0);break}case OrnamentEnum.DelayedTurn:{D=new VF$c.Ornament("turn"),D.setDelayed(!0);break}case OrnamentEnum.InvertedMordent:{D=new VF$c.Ornament("mordent"),D.setDelayed(!1);break}case OrnamentEnum.InvertedTurn:{D=new VF$c.Ornament("turn_inverted"),D.setDelayed(!1);break}case OrnamentEnum.Mordent:{D=new VF$c.Ornament("mordent_inverted"),D.setDelayed(!1);break}case OrnamentEnum.Trill:{D=new VF$c.Ornament("tr"),D.setDelayed(!1);break}case OrnamentEnum.Turn:{D=new VF$c.Ornament("turn"),D.setDelayed(!1);break}default:{log$2.warn("unhandled OrnamentEnum type: "+R.GetOrnament);return}}D&&(R.AccidentalBelow!==AccidentalEnum.NONE&&D.setLowerAccidental(Pitch.accidentalVexflow(R.AccidentalBelow)),R.AccidentalAbove!==AccidentalEnum.NONE&&D.setUpperAccidental(Pitch.accidentalVexflow(R.AccidentalAbove)),D.setPosition(B),F.addModifier(0,D))}static StrokeTypeFromArpeggioType(F){switch(F){case ArpeggioType.ARPEGGIO_DIRECTIONLESS:return VF$c.Stroke.Type.ARPEGGIO_DIRECTIONLESS;case ArpeggioType.BRUSH_DOWN:return VF$c.Stroke.Type.BRUSH_UP;case ArpeggioType.BRUSH_UP:return VF$c.Stroke.Type.BRUSH_DOWN;case ArpeggioType.RASQUEDO_DOWN:return VF$c.Stroke.Type.RASQUEDO_UP;case ArpeggioType.RASQUEDO_UP:return VF$c.Stroke.Type.RASQUEDO_DOWN;case ArpeggioType.ROLL_DOWN:return VF$c.Stroke.Type.ROLL_UP;case ArpeggioType.ROLL_UP:return VF$c.Stroke.Type.ROLL_DOWN;default:return VF$c.Stroke.Type.ARPEGGIO_DIRECTIONLESS}}static CreateTabNote(F){const R=[],B=F.notes.reverse(),D=[],G=F.notes[0].graphicalNoteLength,U=F.notes[0].sourceNote.NoteTuplet!==void 0;let W=_VexFlowConverter.durations(G,U)[0],q=0;for(const Q of F.notes){const Z=Q.sourceNote,K={str:Z.StringNumberTab,fret:Z.FretNumber};R.push(K),Z.BendArray&&Z.BendArray.forEach(function(ie){let te;const ne=ie.bendalter-K.fret;ne>1?te="Full":ne===1?te="1/2":te="1/4",ie.direction==="up"?D.push({type:VF$c.Bend.UP,text:te,width:10}):D.push({type:VF$c.Bend.DOWN,text:te,width:10})}),q(F[F.VA8=0]="VA8",F[F.VB8=1]="VB8",F[F.MA15=2]="MA15",F[F.MB15=3]="MB15",F[F.NONE=4]="NONE",F))(OctaveEnum||{});class AbstractTempoExpression extends AbstractExpression{constructor(R,B,D,G){super(B),this.label=R,this.staffNumber=D,this.parentMultiTempoExpression=G}get Label(){return this.label}set Label(R){this.label=R}get Placement(){return this.placement}set Placement(R){this.placement=R}get StaffNumber(){return this.staffNumber}set StaffNumber(R){this.staffNumber=R}get ParentMultiTempoExpression(){return this.parentMultiTempoExpression}static isStringInStringList(R,B){for(const D of R)if(AbstractTempoExpression.stringContainsSeparatedWord(B.toLowerCase().trim(),D.toLowerCase().trim()))return!0;return!1}static stringContainsSeparatedWord(R,B){return R===B||R.indexOf(" "+B)!==-1||R.indexOf(B+" ")!==-1}}const _InstantaneousTempoExpression=class extends AbstractTempoExpression{constructor(F,R,B,D,G,U=!1){super(F,R,B,G),this.setTempoAndTempoType(D)}static getDefaultValueForTempoType(F){switch(F){case TempoEnum.larghissimo:return 20;case TempoEnum.grave:return 30;case TempoEnum.lento:return 48;case TempoEnum.largo:return 52;case TempoEnum.larghetto:return 63;case TempoEnum.adagio:return 70;case TempoEnum.adagietto:return 75;case TempoEnum.andanteModerato:return 88;case TempoEnum.andante:return 92;case TempoEnum.andantino:return 96;case TempoEnum.moderato:return 106;case TempoEnum.allegretto:return 112;case TempoEnum.allegroModerato:return 118;case TempoEnum.allegro:return 130;case TempoEnum.vivace:return 140;case TempoEnum.vivacissimo:return 155;case TempoEnum.allegrissimo:return 170;case TempoEnum.presto:return 184;case TempoEnum.prestissimo:return 200;default:throw new ArgumentOutOfRangeException("tempoEnum")}}static isInputStringInstantaneousTempo(F){return F?_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLarghissimo,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoGrave,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLento,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLargo,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLarghetto,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAdagio,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAdagietto,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndanteModerato,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndante,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndantino,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoModerato,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegretto,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegroModerato,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegro,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoVivace,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoVivacissimo,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegrissimo,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoPresto,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoPrestissimo,F)||_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoChangesGeneral,F):!1}get Label(){return this.label}set Label(F){this.label=F}get Placement(){return this.placement}set Placement(F){this.placement=F}get StaffNumber(){return this.staffNumber}set StaffNumber(F){this.staffNumber=F}get Enum(){return this.tempoEnum}get TempoInBpm(){return this.tempoInBpm}set TempoInBpm(F){this.tempoInBpm=F}get ParentMultiTempoExpression(){return this.parentMultiTempoExpression}getAbsoluteTimestamp(){return Fraction$1.plus(this.ParentMultiTempoExpression.SourceMeasureParent.AbsoluteTimestamp,this.ParentMultiTempoExpression.Timestamp)}getAbsoluteFloatTimestamp(){return Fraction$1.plus(this.ParentMultiTempoExpression.SourceMeasureParent.AbsoluteTimestamp,this.ParentMultiTempoExpression.Timestamp).RealValue}setTempoAndTempoType(F){if(!this.label){this.tempoInBpm=F,this.tempoEnum=TempoEnum.metronomeMark;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLarghissimo,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.larghissimo)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.larghissimo;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoGrave,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.grave)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.grave;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLento,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.lento)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.lento;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLargo,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.largo)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.largo;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoLarghetto,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.larghetto)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.larghetto;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAdagio,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.adagio)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.adagio;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAdagietto,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.adagietto)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.adagietto;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndanteModerato,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.andanteModerato)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.andanteModerato;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndante,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.andante)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.andante;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAndantino,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.andantino)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.andantino;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoModerato,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.moderato)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.moderato;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegretto,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.allegretto)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.allegretto;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegroModerato,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.allegroModerato)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.allegroModerato;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegro,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.allegro)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.allegro;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoVivace,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.vivace)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.vivace;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoVivacissimo,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.vivacissimo)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.vivacissimo;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAllegrissimo,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.allegrissimo)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.allegrissimo;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoPresto,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.presto)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.presto;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoPrestissimo,this.label)){F===0&&(F=_InstantaneousTempoExpression.getDefaultValueForTempoType(TempoEnum.prestissimo)),this.tempoInBpm=F,this.tempoEnum=TempoEnum.prestissimo;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoAddons,this.label)){this.tempoInBpm=0,this.tempoEnum=TempoEnum.addon;return}if(_InstantaneousTempoExpression.isStringInStringList(_InstantaneousTempoExpression.listInstantaneousTempoChangesGeneral,this.label)){this.tempoInBpm=0,this.tempoEnum=TempoEnum.changes;return}}};let InstantaneousTempoExpression=_InstantaneousTempoExpression;InstantaneousTempoExpression.listInstantaneousTempoLarghissimo=["Larghissimo","Sehr breit","very, very slow"];InstantaneousTempoExpression.listInstantaneousTempoGrave=["Grave","Schwer","slow and solemn"];InstantaneousTempoExpression.listInstantaneousTempoLento=["Lento","Lent","Langsam","slowly"];InstantaneousTempoExpression.listInstantaneousTempoLargo=["Largo","Breit","broadly"];InstantaneousTempoExpression.listInstantaneousTempoLarghetto=["Larghetto","Etwas breit","rather broadly"];InstantaneousTempoExpression.listInstantaneousTempoAdagio=["Adagio","Langsam","Ruhig","slow and stately"];InstantaneousTempoExpression.listInstantaneousTempoAdagietto=["Adagietto","Ziemlich ruhig","Ziemlich langsam","rather slow"];InstantaneousTempoExpression.listInstantaneousTempoAndanteModerato=["Andante moderato"];InstantaneousTempoExpression.listInstantaneousTempoAndante=["Andante","Gehend","Schreitend","at a walking pace"];InstantaneousTempoExpression.listInstantaneousTempoAndantino=["Andantino"];InstantaneousTempoExpression.listInstantaneousTempoModerato=["Moderato","M\xE4\xDFig","Mod\uFFFDr\uFFFD","moderately"];InstantaneousTempoExpression.listInstantaneousTempoAllegretto=["Allegretto","fast"];InstantaneousTempoExpression.listInstantaneousTempoAllegroModerato=["Allegro moderato"];InstantaneousTempoExpression.listInstantaneousTempoAllegro=["Allegro","Rapide","Vite","Rasch","Schnell","Fr\uFFFDhlich"];InstantaneousTempoExpression.listInstantaneousTempoVivace=["Vivace","Lebhaft","Lebendig","lively and fast"];InstantaneousTempoExpression.listInstantaneousTempoVivacissimo=["Vivacissimo","Sehr lebhaft","Sehr lebendig"];InstantaneousTempoExpression.listInstantaneousTempoAllegrissimo=["Allegrissimo","very fast"];InstantaneousTempoExpression.listInstantaneousTempoPresto=["Presto","Sehr schnell","Geschwind"];InstantaneousTempoExpression.listInstantaneousTempoPrestissimo=["Prestissimo","\xE4u\xDFerst schnell"];InstantaneousTempoExpression.listInstantaneousTempoChangesGeneral=["tempo primo","a tempo","tempo i","rubato","doppio movimento"];InstantaneousTempoExpression.listInstantaneousTempoAddons=["assai","amoroso","cantabile","con brio","con dolore","con espressione","con fuoco","con moto","con spirito","spiritoso","espressivo","giocoso","giusto","grazioso","lesto","lugubre","maestoso","ma non troppo","marcato","molto","morendo","mosso","non tanto","piu","un poco","poco","quasi","risoluto","scherzando","sostenuto","teneramente","tempo giusto","tranquillo","sehr","lieblich","liebevoll","mit Leidenschaft","mit Liebe","amour\xF6s","gesanglich","mit Schwung","mit Feuer","mit Schmerz","mit Ausdruck","mit Bewegung","geistvoll","ausdrucksvoll","freudig","verspielt","angemessen","grazi\xF6s","mit Grazie","flink","beh\xE4nde","traurig","klagend","majest\xE4tisch","aber nicht zu sehr","markant","gem\xE4\xDFigt","viel","sehr","ersterbend","bewegt","nicht zu sehr","mehr","ein wenig","gleichsam","entschlossen","zupackend","heiter","nachdr\xFCcklich","getragen","gewichtig","zart","z\xE4rtlich","im angemessenen Zeitma\xDF","ruhig","ein wenig","alla marcia","ad libitum","alla breve"];var TempoEnum=(F=>(F[F.none=0]="none",F[F.larghissimo=1]="larghissimo",F[F.grave=2]="grave",F[F.lento=3]="lento",F[F.largo=4]="largo",F[F.larghetto=5]="larghetto",F[F.adagio=6]="adagio",F[F.adagietto=7]="adagietto",F[F.andanteModerato=8]="andanteModerato",F[F.andante=9]="andante",F[F.andantino=10]="andantino",F[F.moderato=11]="moderato",F[F.allegretto=12]="allegretto",F[F.allegroModerato=13]="allegroModerato",F[F.allegro=14]="allegro",F[F.vivace=15]="vivace",F[F.vivacissimo=16]="vivacissimo",F[F.allegrissimo=17]="allegrissimo",F[F.presto=18]="presto",F[F.prestissimo=19]="prestissimo",F[F.lastRealTempo=20]="lastRealTempo",F[F.addon=21]="addon",F[F.changes=22]="changes",F[F.metronomeMark=23]="metronomeMark",F))(TempoEnum||{});const _MoodExpression=class extends AbstractExpression{constructor(F,R,B){super(R),this.label=F,this.staffNumber=B,this.setMoodType()}static isInputStringMood(F){return F?_MoodExpression.isStringInStringList(_MoodExpression.listMoodAffettuoso,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodAgitato,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodAnimato,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodAppassionato,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodBrillante,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodCantabile,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodDolce,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodEnergico,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodEroico,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodEspressivo,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodFurioso,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodGiocoso,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodGioioso,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodGrandioso,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodGrazioso,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodLacrimoso,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodLeggiero,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMaestoso,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMalinconico,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMarcato,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMarziale,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMesto,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodMorendo,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodNobilmente,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodPatetico,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodPesante,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodSaltando,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodSautille,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodScherzando,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodSostenuto,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodSpiccato,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodTenerezza,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodTranquillamente,F)||_MoodExpression.isStringInStringList(_MoodExpression.listMoodTrionfante,F):!1}get Label(){return this.label}set Label(F){this.label=F}get Mood(){return this.moodType}set Mood(F){this.moodType=F}get StaffNumber(){return this.staffNumber}set StaffNumber(F){this.staffNumber=F}get Placement(){return this.placement}set Placement(F){this.placement=F}setMoodType(){_MoodExpression.isStringInStringList(_MoodExpression.listMoodAffettuoso,this.label)?this.moodType=MoodEnum.Affettuoso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodAgitato,this.label)?this.moodType=MoodEnum.Agitato:_MoodExpression.isStringInStringList(_MoodExpression.listMoodAnimato,this.label)?this.moodType=MoodEnum.Animato:_MoodExpression.isStringInStringList(_MoodExpression.listMoodAppassionato,this.label)?this.moodType=MoodEnum.Appassionato:_MoodExpression.isStringInStringList(_MoodExpression.listMoodBrillante,this.label)?this.moodType=MoodEnum.Brillante:_MoodExpression.isStringInStringList(_MoodExpression.listMoodCantabile,this.label)?this.moodType=MoodEnum.Cantabile:_MoodExpression.isStringInStringList(_MoodExpression.listMoodDolce,this.label)?this.moodType=MoodEnum.Dolce:_MoodExpression.isStringInStringList(_MoodExpression.listMoodEnergico,this.label)?this.moodType=MoodEnum.Energico:_MoodExpression.isStringInStringList(_MoodExpression.listMoodEroico,this.label)?this.moodType=MoodEnum.Eroico:_MoodExpression.isStringInStringList(_MoodExpression.listMoodEspressivo,this.label)?this.moodType=MoodEnum.Espressivo:_MoodExpression.isStringInStringList(_MoodExpression.listMoodFurioso,this.label)?this.moodType=MoodEnum.Furioso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodGiocoso,this.label)?this.moodType=MoodEnum.Giocoso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodGioioso,this.label)?this.moodType=MoodEnum.Gioioso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodGrandioso,this.label)?this.moodType=MoodEnum.Grandioso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodGrazioso,this.label)?this.moodType=MoodEnum.Grazioso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodLacrimoso,this.label)?this.moodType=MoodEnum.Lacrimoso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodLeggiero,this.label)?this.moodType=MoodEnum.Leggiero:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMaestoso,this.label)?this.moodType=MoodEnum.Maestoso:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMalinconico,this.label)?this.moodType=MoodEnum.Malinconico:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMarcato,this.label)?this.moodType=MoodEnum.Marcato:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMarziale,this.label)?this.moodType=MoodEnum.Marziale:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMesto,this.label)?this.moodType=MoodEnum.Mesto:_MoodExpression.isStringInStringList(_MoodExpression.listMoodMorendo,this.label)?this.moodType=MoodEnum.Morendo:_MoodExpression.isStringInStringList(_MoodExpression.listMoodNobilmente,this.label)?this.moodType=MoodEnum.Nobilmente:_MoodExpression.isStringInStringList(_MoodExpression.listMoodPatetico,this.label)?this.moodType=MoodEnum.Patetico:_MoodExpression.isStringInStringList(_MoodExpression.listMoodPesante,this.label)?this.moodType=MoodEnum.Pesante:_MoodExpression.isStringInStringList(_MoodExpression.listMoodSaltando,this.label)?this.moodType=MoodEnum.Saltando:_MoodExpression.isStringInStringList(_MoodExpression.listMoodSautille,this.label)?this.moodType=MoodEnum.Sautille:_MoodExpression.isStringInStringList(_MoodExpression.listMoodScherzando,this.label)?this.moodType=MoodEnum.Scherzando:_MoodExpression.isStringInStringList(_MoodExpression.listMoodSostenuto,this.label)?this.moodType=MoodEnum.Sostenuto:_MoodExpression.isStringInStringList(_MoodExpression.listMoodSpiccato,this.label)?this.moodType=MoodEnum.Spiccato:_MoodExpression.isStringInStringList(_MoodExpression.listMoodTenerezza,this.label)?this.moodType=MoodEnum.Tenerezza:_MoodExpression.isStringInStringList(_MoodExpression.listMoodTranquillamente,this.label)?this.moodType=MoodEnum.Tranquillamente:_MoodExpression.isStringInStringList(_MoodExpression.listMoodTrionfante,this.label)&&(this.moodType=MoodEnum.Trionfante)}};let MoodExpression=_MoodExpression;MoodExpression.listMoodAffettuoso=["affettuoso"];MoodExpression.listMoodAgitato=["agitato"];MoodExpression.listMoodAppassionato=["appassionato"];MoodExpression.listMoodAnimato=["animato","lively"];MoodExpression.listMoodBrillante=["brillante"];MoodExpression.listMoodCantabile=["cantabile"];MoodExpression.listMoodDolce=["dolce"];MoodExpression.listMoodEnergico=["energico"];MoodExpression.listMoodEroico=["eroico"];MoodExpression.listMoodEspressivo=["espressivo"];MoodExpression.listMoodFurioso=["furioso"];MoodExpression.listMoodGiocoso=["giocoso"];MoodExpression.listMoodGioioso=["gioioso"];MoodExpression.listMoodLacrimoso=["lacrimoso"];MoodExpression.listMoodGrandioso=["grandioso"];MoodExpression.listMoodGrazioso=["grazioso"];MoodExpression.listMoodLeggiero=["leggiero"];MoodExpression.listMoodMaestoso=["maestoso"];MoodExpression.listMoodMalinconico=["malinconico"];MoodExpression.listMoodMarcato=["marcato"];MoodExpression.listMoodMarziale=["marziale"];MoodExpression.listMoodMesto=["mesto"];MoodExpression.listMoodMorendo=["morendo"];MoodExpression.listMoodNobilmente=["nobilmente"];MoodExpression.listMoodPatetico=["patetico"];MoodExpression.listMoodPesante=["pesante"];MoodExpression.listMoodSautille=["sautille"];MoodExpression.listMoodSaltando=["saltando"];MoodExpression.listMoodScherzando=["scherzando"];MoodExpression.listMoodSostenuto=["sostenuto"];MoodExpression.listMoodSpiccato=["spiccato"];MoodExpression.listMoodTenerezza=["tenerezza"];MoodExpression.listMoodTranquillamente=["tranquillamente"];MoodExpression.listMoodTrionfante=["trionfante"];var MoodEnum=(F=>(F[F.Affettuoso=0]="Affettuoso",F[F.Agitato=1]="Agitato",F[F.Appassionato=2]="Appassionato",F[F.Animato=3]="Animato",F[F.Brillante=4]="Brillante",F[F.Cantabile=5]="Cantabile",F[F.Dolce=6]="Dolce",F[F.Energico=7]="Energico",F[F.Eroico=8]="Eroico",F[F.Espressivo=9]="Espressivo",F[F.Furioso=10]="Furioso",F[F.Giocoso=11]="Giocoso",F[F.Gioioso=12]="Gioioso",F[F.Lacrimoso=13]="Lacrimoso",F[F.Grandioso=14]="Grandioso",F[F.Grazioso=15]="Grazioso",F[F.Leggiero=16]="Leggiero",F[F.Maestoso=17]="Maestoso",F[F.Malinconico=18]="Malinconico",F[F.Marcato=19]="Marcato",F[F.Marziale=20]="Marziale",F[F.Mesto=21]="Mesto",F[F.Morendo=22]="Morendo",F[F.Nobilmente=23]="Nobilmente",F[F.Patetico=24]="Patetico",F[F.Pesante=25]="Pesante",F[F.Sautille=26]="Sautille",F[F.Saltando=27]="Saltando",F[F.Scherzando=28]="Scherzando",F[F.Sostenuto=29]="Sostenuto",F[F.Spiccato=30]="Spiccato",F[F.Tenerezza=31]="Tenerezza",F[F.Tranquillamente=32]="Tranquillamente",F[F.Trionfante=33]="Trionfante",F[F.Vivace=34]="Vivace",F))(MoodEnum||{});class UnknownExpression extends AbstractExpression{constructor(R,B,D,G){super(B),this.label=R,this.staffNumber=G,D===void 0&&(D=TextAlignmentEnum.LeftBottom),this.textAlignment=D}get Label(){return this.label}get Placement(){return this.placement}set Placement(R){this.placement=R}get StaffNumber(){return this.staffNumber}set StaffNumber(R){this.staffNumber=R}get TextAlignment(){return this.textAlignment}}class MultiExpression{constructor(R,B){this.unknownList=[],this.moodList=[],this.expressions=[],this.sourceMeasure=R,this.timestamp=B}get SourceMeasureParent(){return this.sourceMeasure}set SourceMeasureParent(R){this.sourceMeasure=R}get StaffNumber(){return this.staffNumber}set StaffNumber(R){this.staffNumber=R}get Timestamp(){return this.timestamp}set Timestamp(R){this.timestamp=R}get AbsoluteTimestamp(){return Fraction$1.plus(this.timestamp,this.sourceMeasure.AbsoluteTimestamp)}get InstantaneousDynamic(){return this.instantaneousDynamic}set InstantaneousDynamic(R){this.instantaneousDynamic=R}get EndingContinuousDynamic(){return this.endingContinuousDynamic}set EndingContinuousDynamic(R){this.endingContinuousDynamic=R}get StartingContinuousDynamic(){return this.startingContinuousDynamic}set StartingContinuousDynamic(R){this.startingContinuousDynamic=R}get MoodList(){return this.moodList}get UnknownList(){return this.unknownList}get EntriesList(){return this.expressions}get OctaveShiftStart(){return this.octaveShiftStart}set OctaveShiftStart(R){this.octaveShiftStart=R}get OctaveShiftEnd(){return this.octaveShiftEnd}set OctaveShiftEnd(R){this.octaveShiftEnd=R}get CombinedExpressionsText(){return this.combinedExpressionsText}set CombinedExpressionsText(R){this.combinedExpressionsText=R}getPlacementOfFirstEntry(){let R=PlacementEnum.Above;return this.expressions.length>0&&(this.expressions[0].expression instanceof InstantaneousDynamicExpression?R=this.expressions[0].expression.Placement:this.expressions[0].expression instanceof ContinuousDynamicExpression?R=this.expressions[0].expression.Placement:this.expressions[0].expression instanceof MoodExpression?R=this.expressions[0].expression.Placement:this.expressions[0].expression instanceof UnknownExpression&&(R=this.expressions[0].expression.Placement)),R}getFontstyleOfFirstEntry(){var B;let R=FontStyles.Regular;return this.expressions.length>0&&(this.expressions[0].expression instanceof ContinuousDynamicExpression||this.expressions[0].expression instanceof MoodExpression?R=FontStyles.Italic:this.expressions[0].expression instanceof UnknownExpression&&(R=(B=this.expressions[0].expression.fontStyle)!=null?B:FontStyles.Regular)),R}addExpression(R,B){R instanceof InstantaneousDynamicExpression?(this.instantaneousDynamic&&this.removeExpressionFromEntryList(this.InstantaneousDynamic),this.instantaneousDynamic=R,this.instantaneousDynamic.ParentMultiExpression=this):R instanceof ContinuousDynamicExpression?this.startingContinuousDynamic=R:R instanceof MoodExpression?this.moodList.push(R):R instanceof UnknownExpression&&this.unknownList.push(R),this.addExpressionToEntryList(R,B)}CompareTo(R){return this.Timestamp.RealValue>R.Timestamp.RealValue?1:this.Timestamp.RealValue=ContinuousTempoType.allargando&&F<=ContinuousTempoType.ritenuto}get TempoType(){return this.tempoType}set TempoType(F){this.tempoType=F}get StartTempo(){return this.startTempo}set StartTempo(F){this.startTempo=F}get EndTempo(){return this.endTempo}set EndTempo(F){this.endTempo=F}get AbsoluteEndTimestamp(){return this.absoluteEndTimestamp}set AbsoluteEndTimestamp(F){this.absoluteEndTimestamp=F}get AbsoluteTimestamp(){return this.ParentMultiTempoExpression.AbsoluteTimestamp}getAbsoluteFloatTimestamp(){return this.ParentMultiTempoExpression.AbsoluteTimestamp.RealValue}getInterpolatedTempo(F){const R=Fraction$1.plus(this.parentMultiTempoExpression.SourceMeasureParent.AbsoluteTimestamp,this.parentMultiTempoExpression.Timestamp);if(F.lt(R))return-1;if(this.absoluteEndTimestamp.lt(F))return-2;const B=Fraction$1.minus(F,R).RealValue/Fraction$1.minus(this.absoluteEndTimestamp,R).RealValue;return Math.max(0,Math.min(250,this.startTempo+(this.endTempo-this.startTempo)*B))}setTempoType(){_ContinuousTempoExpression.isStringInStringList(_ContinuousTempoExpression.listContinuousTempoFaster,this.label)?this.tempoType=ContinuousTempoType.accelerando:_ContinuousTempoExpression.isStringInStringList(_ContinuousTempoExpression.listContinuousTempoSlower,this.label)&&(this.tempoType=ContinuousTempoType.ritardando)}};let ContinuousTempoExpression=_ContinuousTempoExpression;ContinuousTempoExpression.listContinuousTempoFaster=["accelerando","piu mosso","poco piu","stretto"];ContinuousTempoExpression.listContinuousTempoSlower=["poco meno","meno mosso","piu lento","rallentando","ritardando","ritenuto","ritard.","ritard","riten.","riten"];var ContinuousTempoType=(F=>(F[F.accelerando=0]="accelerando",F[F.stretto=1]="stretto",F[F.stringendo=2]="stringendo",F[F.mosso=3]="mosso",F[F.piuMosso=4]="piuMosso",F[F.allargando=5]="allargando",F[F.calando=6]="calando",F[F.menoMosso=7]="menoMosso",F[F.rallentando=8]="rallentando",F[F.ritardando=9]="ritardando",F[F.ritard=10]="ritard",F[F.rit=11]="rit",F[F.ritenuto=12]="ritenuto",F[F.rubato=13]="rubato",F[F.precipitando=14]="precipitando",F))(ContinuousTempoType||{});class MultiTempoExpression{constructor(R,B){this.expressions=[],this.sourceMeasure=R,this.timestamp=B}get Timestamp(){return this.timestamp}get AbsoluteTimestamp(){return Fraction$1.plus(this.sourceMeasure.AbsoluteTimestamp,this.timestamp)}get SourceMeasureParent(){return this.sourceMeasure}set SourceMeasureParent(R){this.sourceMeasure=R}get InstantaneousTempo(){return this.instantaneousTempo}get ContinuousTempo(){return this.continuousTempo}get EntriesList(){return this.expressions}get CombinedExpressionsText(){return this.combinedExpressionsText}set CombinedExpressionsText(R){this.combinedExpressionsText=R}getPlacementOfFirstEntry(){let R=PlacementEnum.Above;return this.expressions.length>0&&(this.expressions[0].Expression instanceof InstantaneousTempoExpression?R=this.expressions[0].Expression.Placement:this.expressions[0].Expression instanceof ContinuousTempoExpression&&(R=this.expressions[0].Expression.Placement)),R}getFontstyleOfFirstEntry(){let R=FontStyles.Regular;return this.expressions[0].Expression instanceof InstantaneousTempoExpression?R=FontStyles.Bold:this.expressions[0].Expression instanceof ContinuousTempoExpression&&(R=FontStyles.Italic),R}addExpression(R,B){if(this.checkIfAlreadyExists(R))return;R instanceof InstantaneousTempoExpression?this.instantaneousTempo=R:R instanceof ContinuousTempoExpression&&(this.continuousTempo=R);const D=new TempoExpressionEntry;D.prefix=B,D.Expression=R,D.label=R.Label,this.expressions.push(D)}CompareTo(R){return this.Timestamp.RealValue>R.Timestamp.RealValue?1:this.Timestamp.RealValue0){if(this.rules.MaxSystemToDrawNumber===this.musicSystems.length)return this.finalizeCurrentSystem(this.measureList[this.measureList.length-1],!this.rules.StretchLastSystemLine,!1),this.musicSystems;this.finalizeCurrentAndCreateNewSystem(this.measureList[this.measureList.length-1],!this.rules.StretchLastSystemLine,!1)}return this.musicSystems}calculateSystemYLayout(){for(const R of this.musicSystems)this.optimizeDistanceBetweenStaffLines(R);this.calculateMusicSystemsRelativePositions()}setMeasureWidth(R,B,D,G){for(let U=0,W=R.length;U0&&(q.beginInstructionsWidth=D),G>0&&(q.endInstructionsWidth=G)}}finalizeCurrentAndCreateNewSystem(R,B=!1,D=!0,G=!1){this.finalizeCurrentSystem(R,B,D,G),this.currentSystemParams=new SystemBuildParameters,R!==void 0&&this.measureListIndex=1){const B=this.currentSystemParams.currentSystem.GraphicalMeasures[this.currentSystemParams.currentSystem.GraphicalMeasures.length-1];let D=0;const G=R[R.length-1];G.endLine===SystemLinesEnum.DotsBoldBoldDots&&(G.endLine=SystemLinesEnum.DotsThinBold,D=B[0].getLineWidth(SystemLinesEnum.DotsBoldBoldDots)/2-B[0].getLineWidth(SystemLinesEnum.DotsThinBold)),this.currentSystemParams.currentSystemFixWidth-=D;for(let U=0,W=B.length;U1){W=!0;break}}let q=0;for(let Y=0;Y=0&&this.measureList[re]){const le=(te=this.measureList[re][0])==null?void 0:te.parentSourceMeasure;(le==null?void 0:le.ImplicitMeasure)&&(le==null?void 0:le.RhythmPrinted)&&(ne=!1)}ne&&(B.addRhythmAtBegin(Q),B.parentSourceMeasure.RhythmPrinted=Q,ie=!0)}return(Z||K||ie)&&(W+=B.beginInstructionsWidth,ie&&(W+=this.rules.RhythmRightMargin)),W}addInstructionsAtMeasureEnd(R,B,D){if(!R||!R.Instructions||R.Instructions.length===0)return 0;for(let G=0,U=R.Instructions.length;G0&&(this.currentSystemParams.systemMeasures.push({beginLine:SystemLinesEnum.None,endLine:SystemLinesEnum.None}),this.currentSystemParams.currentWidth+=G,this.currentSystemParams.currentSystemFixWidth+=G)}addExtraInstructionMeasure(R,B,D){const G=this.currentSystemParams.currentSystem,U=MusicSheetCalculator.symbolFactory.createExtraGraphicalMeasure(G.StaffLines[R]);B&&U.addKeyAtBegin(B,this.activeKeys[R],this.activeClefs[R]),D!==void 0&&D.PrintObject&&U.addRhythmAtBegin(D),U.PositionAndShape.BorderLeft=0,U.PositionAndShape.BorderTop=0,U.PositionAndShape.BorderBottom=this.rules.StaffHeight;const W=this.rules.MeasureLeftMargin+U.beginInstructionsWidth+this.rules.MeasureRightMargin;return U.PositionAndShape.BorderRight=W,G.StaffLines[R].Measures.push(U),W}addStaveMeasuresToSystem(R){if(R[0]){const B=[];for(let G=0;G1){const q=Math.min(this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length-1,R.measureListIndex+R.multipleRestMeasures-1);R=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures[q]}}finally{}const B=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures,D=B[this.measureListIndex];let G=!1;return D.allRests&&(G=(W=(U=B[this.measureListIndex+D.multipleRestMeasures-1])==null?void 0:U.endsWithLineRepetition)==null?void 0:W.call(U)),this.nextMeasureBeginsLineRepetition()&&this.thisMeasureEndsLineRepetition()?SystemLinesEnum.DotsBoldBoldDots:this.thisMeasureEndsLineRepetition()||G?SystemLinesEnum.DotsThinBold:this.nextMeasureHasKeyInstructionChange()||this.thisMeasureEndsWordRepetition()||this.nextMeasureBeginsWordRepetition()?SystemLinesEnum.DoubleThin:R&&R.endingBarStyleEnum!==void 0?R.endingBarStyleEnum:SystemLinesEnum.SingleThin}getLineWidth(R,B,D){let G=R.getLineWidth(B);return B===SystemLinesEnum.DotsBoldBoldDots&&(G/=2),D&&B===SystemLinesEnum.BoldThinDots&&(G+=this.rules.DistanceBetweenLastInstructionAndRepetitionBarline),G}previousMeasureEndsLineRepetition(){if(this.measureListIndex===0)return!1;for(let R=0,B=this.measureList[this.measureListIndex-1].length;R=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length||!this.measureList[R])return!1;for(let B=0,D=this.measureList[R].length;B=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length||R>this.measureList.length-1)return!1;for(let B=0,D=this.measureList[R].length;B1)for(let q=1;qU&&(U=Z)}for(let q=0;qthis.rules.PageHeight-this.rules.PageBottomMargin&&(G++,G<=4&&console.log(`warning: could not fit a single system on page ${R.PageNumber} and measure number ${D.GraphicalMeasures[0][0].MeasureNumber}. The PageFormat may be too small for this sheet." Will not give further warnings for all pages, only total.`))}else{const Y=this.musicSystems[q-1],Q=Y.StaffLines[Y.StaffLines.length-1],Z=Q.PositionAndShape;let K=this.findRequiredDistanceWithSkyBottomLine(Y,D);K=Math.max(U,K),K+=this.rules.MinSkyBottomDistBetweenSystems,((W=window==null?void 0:window.appName)==null?void 0:W.toLocaleUpperCase())==="GYM"&&(K=K<16?16:K);const ie=this.hasExpressionCounts(D);ie.TempoCount>0&&this.rules.MetronomeMarksDrawn&&(K+=2),ie.OtherCount>0&&this.rules.MetronomeMarksDrawn&&(K+=2),K=Math.max(K,this.rules.MinimumDistanceBetweenSystems+Q.StaffHeight);const te=B+Z.RelativePosition.y+K,ne=te+D.PositionAndShape.BorderMarginBottom;if(!(this.rules.NewPageAtXMLNewPageAttribute&&Y.breaksPage)&&ne0&&console.log(`total amount of pages that couldn't fit a single music system: ${G} of ${R.PageNumber}`)}findRequiredDistanceWithSkyBottomLine(R,B){const D=R.StaffLines[R.StaffLines.length-1],G=B.StaffLines[0],U=D.BottomLine,W=G.SkyLine,q=D.PositionAndShape,Y=G.PositionAndShape,Q=1/this.rules.SamplingUnit;let Z=0;for(let K=0;K=W.length)break;const ne=Math.max(0,te-6),se=Math.min(W.length-1,te+6);let re=0;for(let le=ne;le<=se;le++)re=Math.min(re,W[le]);const ae=ie-re;Z=Math.max(ae,Z)}return Z===0&&(Z=q.BorderBottom-Y.BorderTop),Z}}class SystemBuildParameters{constructor(){this.systemMeasures=[],this.systemMeasureIndex=0,this.currentWidth=0,this.currentSystemFixWidth=0,this.currentSystemVarWidth=0,this.maxLabelLength=0}IsSystemStartMeasure(){return this.systemMeasureIndex===0}}class OctaveShiftParams{constructor(R,B,D){this.getOpenOctaveShift=R,this.getAbsoluteStartTimestamp=B,this.getAbsoluteEndTimestamp=D}}class AccidentalCalculator{constructor(){this.keySignatureNoteAlterationsDict=new Dictionary,this.currentAlterationsComparedToKeyInstructionList=[],this.currentInMeasureNoteAlterationsDict=new Dictionary}get ActiveKeyInstruction(){return this.activeKeyInstruction}set ActiveKeyInstruction(R){this.activeKeyInstruction=R,this.reactOnKeyInstructionChange()}doCalculationsAtEndOfMeasure(){this.currentInMeasureNoteAlterationsDict.clear(),this.currentAlterationsComparedToKeyInstructionList.clear();for(const R of this.keySignatureNoteAlterationsDict.keys())this.currentInMeasureNoteAlterationsDict.setValue(R,this.keySignatureNoteAlterationsDict.getValue(R))}checkAccidental(R,B){if(!B)return;const D=B.FundamentalNote+B.Octave*12,G=this.currentAlterationsComparedToKeyInstructionList.indexOf(D)>=0;if(this.currentInMeasureNoteAlterationsDict.containsKey(D)){if(G&&this.currentAlterationsComparedToKeyInstructionList.splice(this.currentAlterationsComparedToKeyInstructionList.indexOf(D),1),this.currentInMeasureNoteAlterationsDict.getValue(D)!==B.AccidentalHalfTones){this.keySignatureNoteAlterationsDict.containsKey(D)&&this.keySignatureNoteAlterationsDict.getValue(D)!==B.AccidentalHalfTones?(this.currentAlterationsComparedToKeyInstructionList.push(D),this.currentInMeasureNoteAlterationsDict.setValue(D,B.AccidentalHalfTones)):B.Accidental!==AccidentalEnum.NONE&&this.currentInMeasureNoteAlterationsDict.remove(D);const U=this.currentInMeasureNoteAlterationsDict.getValue(D);if(B.Accidental===AccidentalEnum.NONE&&(Math.abs(U)===.5?B=new Pitch(B.FundamentalNote,B.Octave,AccidentalEnum.NONE):B=new Pitch(B.FundamentalNote,B.Octave,AccidentalEnum.NATURAL)),this.isAlterAmbiguousAccidental(B.Accidental)&&!B.AccidentalXml)return;MusicSheetCalculator.symbolFactory.addGraphicalAccidental(R,B)}}else if(B.Accidental!==AccidentalEnum.NONE){if(G||this.currentAlterationsComparedToKeyInstructionList.push(D),this.currentInMeasureNoteAlterationsDict.setValue(D,B.AccidentalHalfTones),this.isAlterAmbiguousAccidental(B.Accidental)&&!B.AccidentalXml)return;MusicSheetCalculator.symbolFactory.addGraphicalAccidental(R,B)}else G&&(B=new Pitch(B.FundamentalNote,B.Octave,AccidentalEnum.NATURAL),this.currentAlterationsComparedToKeyInstructionList.splice(this.currentAlterationsComparedToKeyInstructionList.indexOf(D),1),MusicSheetCalculator.symbolFactory.addGraphicalAccidental(R,B))}isAlterAmbiguousAccidental(R){return R===AccidentalEnum.SLASHFLAT||R===AccidentalEnum.QUARTERTONEFLAT}reactOnKeyInstructionChange(){const R=this.activeKeyInstruction.AlteratedNotes;let B;this.activeKeyInstruction.Key>0?B=AccidentalEnum.SHARP:B=AccidentalEnum.FLAT,this.keySignatureNoteAlterationsDict.clear(),this.currentAlterationsComparedToKeyInstructionList.length=0;for(let D=-9;D<9;D++)for(let G=0;G0?(D=Y-1,R.push({startIndex:B,endIndex:D}),B=Y):K.HasEndLine&&this.rules.NewPartAndSystemAfterFinalBarline&&(D=Y,R.push({startIndex:B,endIndex:D}),B=Y+1)}Bie&&ne%2===0?(G.push(ne),te=ae,ne=1):ne++:te>ie?(G.push(ne),te=ae,ne=1):ne++}G.push(ne),G=G.filter(Boolean)}return this.buildPreparedMusicSystems(G)}buildPreparedMusicSystems(R){let B=!1;this.currentSystemParams=new SystemBuildParameters,this.currentSystemParams.currentSystem=this.initMusicSystem();for(let D=0,G=this.measureList.length;D0&&this.rules.RenderMultipleRestMeasures){K.isReducedToMultiRest=!0,K.multipleRestMeasureNumber=1;const te=K.multipleRestMeasures-1;Q+=te;for(let ne=1;ne<=te;ne++){const se=R.SourceMeasures[K.MeasureNumber-1+ne];se.multipleRestMeasureNumber=ne+1,se.isReducedToMultiRest=!0,B.push([void 0])}}}if(this.rules.AutoGenerateMutipleRestMeasuresFromRestMeasures&&this.rules.RenderMultipleRestMeasures){let Q,Z=0;for(let K=0,ie=R.SourceMeasures.length;K0){Q.isReducedToMultiRest=!0,Q.multipleRestMeasureNumber=1,Z++,te.multipleRestMeasureNumber=Z,te.isReducedToMultiRest=!0;for(let ne=0;ne1){Q.multipleRestMeasures=Z;const ne=this.createGraphicalMeasuresForSourceMeasure(Q,D,U,q,G);B[Q.measureListIndex]=ne,Z=0,Q=void 0}else Z=0,Q=void 0}if(Z>1){Q.multipleRestMeasures=Z,Q.isReducedToMultiRest=!0;const K=this.createGraphicalMeasuresForSourceMeasure(Q,D,U,q,G);B[Q.measureListIndex]=K,Z=0,Q=void 0}}const Y=G.map(Q=>Q.ClefType===ClefEnum.percussion);this.handleStaffEntries(Y),this.calculateVerticalContainersList(),this.setIndicesToVerticalGraphicalContainers()}calculate(){this.musicSystems=[],this.clearSystemsAndMeasures(),this.clearRecreatedObjects(),this.createGraphicalTies(),this.calculateSheetLabelBoundingBoxes(),this.calculateXLayout(this.graphicalMusicSheet,this.maxInstrNameLabelLength()),this.graphicalMusicSheet.MusicPages.length=0,this.calculateMusicSystems(),GraphicalMusicSheet.transformRelativeToAbsolutePosition(this.graphicalMusicSheet)}calculateXLayout(R,B){let D=0;const G=this.rules.MaxInstructionsConstValue;if(this.graphicalMusicSheet.MeasureList.length>0){let U=this.graphicalMusicSheet.MeasureList[0],W=this.calculateMeasureXLayout(U);W=this.calculateMeasureWidthFromStaffEntries(U,W),MusicSheetCalculator.setMeasuresMinStaffEntriesWidth(U,W),D=W*1.2+B+G;for(let q=1;q0)return;const W=B.Measures[U];(W.MeasureNumber===0||W.MeasureNumber===1)&&(D=W.MeasureNumber),W!==B.Measures[0]&&this.rules.MeasureNumberLabelXOffset?G=this.rules.MeasureNumberLabelXOffset:G=0;const q=this.rules.UseXMLMeasureNumbers&&W.MeasureNumber===1&&W.parentSourceMeasure.getPrintedMeasureNumber()!==1;((W.MeasureNumber===D||W.MeasureNumber>=D+this.rules.MeasureNumberLabelOffset)&&!W.parentSourceMeasure.ImplicitMeasure||q)&&((W.MeasureNumber!==1||W.MeasureNumber===1&&W!==B.Measures[0]||q)&&this.calculateSingleMeasureNumberPlacement(W,B,R,G),D=W.MeasureNumber)}}calculateSingleMeasureNumberPlacement(R,B,D,G=0){const U=R.parentSourceMeasure.getPrintedMeasureNumber().toString(),W=new Label(U),q=new GraphicalLabel(W,this.rules.MeasureNumberLabelHeight,TextAlignmentEnum.LeftBottom,this.rules),Y=B.SkyBottomLineCalculator;q.setLabelPositionAndShapeBorders(),q.PositionAndShape.Parent=D.PositionAndShape;const Q=B.PositionAndShape.RelativePosition.x+R.PositionAndShape.RelativePosition.x-q.PositionAndShape.BorderMarginLeft+G;let Z,K=Q,ie=Q-q.PositionAndShape.BorderLeft+q.PositionAndShape.BorderRight;K-=B.PositionAndShape.RelativePosition.x,ie-=B.PositionAndShape.RelativePosition.x;const te=K+.5,ne=ie-.5,se=Y.getSkyLineMinInRange(te,ne);if(R===B.Measures[0]){let re=0;if(D.GroupBrackets.length>0)for(const ae of D.GroupBrackets)re=Math.min(re,ae.PositionAndShape.BorderTop);Z=Math.min(se,re)}else Z=se;Z=Math.min(0,Z),q.PositionAndShape.RelativePosition=new PointF2D(Q,Z),D.MeasureNumberLabels.push(q)}calculateMeasureNumberSkyline(R){const B=R.StaffLines[0];for(const D of R.MeasureNumberLabels){let G=D.PositionAndShape.RelativePosition.x,U=G-D.PositionAndShape.BorderLeft+D.PositionAndShape.BorderRight;G-=B.PositionAndShape.RelativePosition.x,U-=B.PositionAndShape.RelativePosition.x,B.SkyBottomLineCalculator.updateSkyLineInRange(G,U,D.PositionAndShape.RelativePosition.y+D.PositionAndShape.BorderMarginTop)}}layoutGraphicalTie(R,B,D){throw new Error(this.abstractNotImplementedErrorMessage)}calculateSingleStaffLineLyricsPosition(R,B){let D=0,G=this.rules.StaffHeight;const U=[],W=R.SkyBottomLineCalculator;let q=R.Measures.length;for(let Q=0;Q0){U.push(ne),D=Math.max(D,ne.LyricsEntries.length);const se=ne.PositionAndShape.RelativePosition.x+K.x;let re=Number.MAX_VALUE,ae=Number.MIN_VALUE;for(let ce=0;ce0){const Q=R.PositionAndShape.Size.width;let Z=U[0].PositionAndShape.RelativePosition.x+U[0].PositionAndShape.BorderMarginLeft+U[0].parentMeasure.PositionAndShape.RelativePosition.x;Z=Z>Q?Q:Z,W.updateBottomLineInRange(Z,Q,Y)}return U}calculateLyricsExtendsAndDashes(R){for(let B=0,D=R.length;B0||R.UnknownList.length>0){let Y="";for(let te=0,ne=R.EntriesList.length;teR.length-1&&(log$2.debug("minimum measure to draw index out of range. resetting min measure index to limit."),this.rules.MinMeasureToDrawIndex=R.length-1);const B=[];for(let W=this.rules.MinMeasureToDrawIndex,q=R.length;W0)&&(G=D.getSkyLineMinInRange(K,ie));let te=0;q===0?(te+=this.rules.ChordSymbolYOffset,te+=.1):te+=this.rules.ChordSymbolYPadding,te*=-1;const ne=Y.GraphicalLabel;ne.PositionAndShape.RelativePosition.y=G+te,ne.setLabelPositionAndShapeBorders(),ne.PositionAndShape.calculateBoundingBox(),D.updateSkyLineInRange(K,ie,G+ne.PositionAndShape.BorderMarginTop)}}}}calculateAlignedChordSymbolsOffset(R,B){let D=Number.MAX_SAFE_INTEGER;for(const G of R)for(const U of G.graphicalChordContainers){const W=G.PositionAndShape,q=U.PositionAndShape,Y=q.BorderMarginLeft+W.AbsolutePosition.x,Q=q.BorderMarginRight+W.AbsolutePosition.x;D=Math.min(D,B.getSkyLineMinInRange(Y,Q))}return D}layoutMeasureWithWholeRest(R,B,D){}layoutBeams(R){}layoutArticulationMarks(R,B,D){}layoutOrnament(R,B,D){}calculateRestNotePlacementWithinGraphicalBeam(R,B,D,G,U){}calculateTupletNumbers(){}calculateSlurs(){}calculateDynamicExpressionsForMultiExpression(R,B,D){}calculateGraphicalVerbalContinuousDynamic(R,B){const D=R.Label,G=B.x+D.PositionAndShape.BorderMarginLeft,U=B.x+D.PositionAndShape.BorderMarginRight,W=R.ContinuousDynamic.Placement,Y=R.ParentStaffLine.SkyBottomLineCalculator;let Q;W===PlacementEnum.Below?(Q=Y.getBottomLineMaxInRange(G,U),D.PositionAndShape.RelativePosition=new PointF2D(B.x,Q-D.PositionAndShape.BorderMarginTop)):(Q=Y.getSkyLineMinInRange(G,U),D.PositionAndShape.RelativePosition=new PointF2D(B.x,Q-D.PositionAndShape.BorderMarginBottom))}calculateGraphicalContinuousDynamic(R,B){var ye,we,Re;const D=R.ParentStaffLine.ParentStaff.idInMusicSheet,G=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(R.ContinuousDynamic.EndMultiExpression.SourceMeasureParent,D);if(!G){log$2.warn("MusicSheetCalculator.calculateGraphicalContinuousDynamic: No endMeasure found");return}R.EndMeasure=G;const U=R.ParentStaffLine,W=G.ParentStaffLine,q=W&&U===W;let Y=!1;W?Y=W==null?void 0:W.isPartOfMultiStaffInstrument():U&&(Y=U==null?void 0:U.isPartOfMultiStaffInstrument());const Q=Fraction$1.createFromFraction(R.ContinuousDynamic.EndMultiExpression.AbsoluteTimestamp),Z=this.graphicalMusicSheet.GetVerticalContainerFromTimestamp(Q),K=Z.getFirstNonNullStaffEntry().parentMeasure,ie=K.PositionAndShape.AbsolutePosition.x+K.PositionAndShape.BorderRight;let te=new Fraction$1(0,0,0);for(const Pe of Z.StaffEntries){const Ae=(ye=Pe==null?void 0:Pe.sourceStaffEntry)==null?void 0:ye.calculateMaxNoteLength();Ae!=null&&Ae.gt(te)&&(te=Ae)}const ne=this.getRelativePositionInStaffLineFromTimestamp(Q,D,W,Y,0),se=Fraction$1.plus(Q,te),re=this.getRelativePositionInStaffLineFromTimestamp(se,D,W,Y,0);re.x>ne.x&&re.xce){const Ne=le.StaffLines[Pe].PositionAndShape.RelativePosition.y-U.PositionAndShape.RelativePosition.y-this.rules.StaffHeight;xe=this.rules.StaffHeight+Ne/2}else xe=this.rules.WedgePlacementBelowY;xe-=this.rules.WedgeOpeningLength/2,q||(Me=xe);let Ae=he.getBottomLineMaxInRange(ge,Ee);if(Ae>xe&&(xe=Ae),ceMe&&(Me=Ae),Me+=this.rules.WedgeOpeningLength/2,Me+=this.rules.WedgeVerticalMargin),xe+=this.rules.WedgeOpeningLength/2,xe+=this.rules.WedgeVerticalMargin}else if(pe===PlacementEnum.Above){if(U.ParentStaff.ParentInstrument.Staves.length===1)xe=this.rules.WedgePlacementAboveY;else{let Ae=0;ce>0&&(Ae=ce-1);const Le=le.StaffLines[Ae];xe=-(U.PositionAndShape.RelativePosition.y-Le.PositionAndShape.RelativePosition.y-this.rules.StaffHeight)/2}xe+=this.rules.WedgeOpeningLength/2,q||(Me=xe);let Pe=he.getSkyLineMinInRange(ge,Ee);if(Pe1&&ce>0){const Ae=U.findClosestStaffEntry(ge),Le=U.findClosestStaffEntry(Ee);Ae&&Le&&Ae.parentVerticalContainer}q||(Pe=W.SkyBottomLineCalculator.getSkyLineMinInRange(Se,ve),Pe-K/2?Y=-K/2:Y=Q-R.PositionAndShape.BorderMarginBottom}else Y=Q-R.PositionAndShape.BorderMarginBottom;R.PositionAndShape.RelativePosition=new PointF2D(B.x,Y)}else if(R.Placement===PlacementEnum.Below){const Q=q.getBottomLineMaxInRange(U,W),Z=G.ParentStaff.ParentInstrument.Staves[G.ParentStaff.ParentInstrument.Staves.length-1];if(G.isPartOfMultiStaffInstrument()&&G.ParentStaff!==Z){const ie=G.ParentMusicSystem.StaffLines[G.ParentMusicSystem.StaffLines.indexOf(G)+1].PositionAndShape.RelativePosition.y-G.PositionAndShape.RelativePosition.y-this.rules.StaffHeight,te=R.PositionAndShape.BorderMarginBottom;Q+teR.PositionAndShape.Size.width&&(ie=R.PositionAndShape.Size.width-this.rules.MeasureRightMargin,K=ie-Q.PositionAndShape.MarginSize.width,B.x=K-Q.PositionAndShape.BorderMarginLeft);let te;const ne=R.SkyBottomLineCalculator;return U===PlacementEnum.Below?te=ne.getBottomLineMaxInRange(K,ie):te=ne.getSkyLineMinInRange(K,ie),Q.PositionAndShape.RelativePosition=new PointF2D(B.x,te),U===PlacementEnum.Below?ne.updateBottomLineInRange(K,ie,Q.PositionAndShape.BorderMarginBottom+te):ne.updateSkyLineInRange(K,ie,Q.PositionAndShape.BorderMarginTop+te),Q}calculateTempoExpressionsForMultiTempoExpression(R,B,D,G){metronomeMarks={};const U=Fraction$1.plus(R.AbsoluteTimestamp,B.Timestamp),W=this.graphicalMusicSheet.MeasureList[D];let q=new PointF2D;if(B.ContinuousTempo||B.InstantaneousTempo){if(this.rules.MinMeasureToDrawIndex>0||!W[0])return;let Y=W[0].ParentStaffLine,Q=W[0].PositionAndShape.RelativePosition.x,Z=0;for(let K=0;K0){Y=W[K].ParentStaffLine,Q=W[K].PositionAndShape.RelativePosition.x,Z=K;break}if(q=this.getRelativePositionInStaffLineFromTimestamp(U,Z,Y,Y.isPartOfMultiStaffInstrument(),Q),B.EntriesList.length>0&&B.EntriesList[0].Expression instanceof InstantaneousTempoExpression){const K=B.EntriesList[0].Expression;if(K.Placement=PlacementEnum.Above,Y.Measures[0].staffEntries.length>0&&Math.abs(q.x-Y.Measures[0].staffEntries[0].PositionAndShape.RelativePosition.x)===0&&Y.ParentMusicSystem===this.musicSystems[0]){const ie=Y.Measures[0].FirstInstructionStaffEntry;if(ie){const te=ie.GraphicalInstructions.last();q.x=te.PositionAndShape.RelativePosition.x}this.rules.CompactMode&&(q.x=Y.PositionAndShape.RelativePosition.x+Y.Measures[0].PositionAndShape.RelativePosition.x)}}for(const K of B.EntriesList){let ie=TextAlignmentEnum.CenterBottom;this.rules.CompactMode&&(ie=TextAlignmentEnum.LeftBottom);const te=this.calculateLabel(Y,q,K.label,B.getFontstyleOfFirstEntry(),K.Expression.Placement,this.rules.UnknownTextHeight,ie);if(K.Expression instanceof InstantaneousTempoExpression){for(const se of Y.AbstractExpressions)se instanceof GraphicalInstantaneousTempoExpression&&(se.SourceExpression.Label,K.Expression.Label);new GraphicalInstantaneousTempoExpression(K.Expression,te).ParentStaffLine||log$2.warn("Adding staffline didn't work"),K.Expression.Enum===TempoEnum.metronomeMark&&(metronomeMarks[D]=K.Expression)}else K.Expression instanceof ContinuousTempoExpression;if(G===R.TempoExpressions.length-1)for(const ne of Object.values(metronomeMarks))this.createMetronomeMark(ne,D)}}}createMetronomeMark(R,B){throw new Error(this.abstractNotImplementedErrorMessage)}graphicalMeasureCreatedCalculations(R){}clearSystemsAndMeasures(){for(let R=0,B=this.graphicalMusicSheet.MusicPages.length;R-1&&ie.PositionAndShape.ChildElements.splice(te,1),ie.FirstInstructionStaffEntry=void 0,ie.beginInstructionsWidth=0}if(ie.LastInstructionStaffEntry){const te=ie.PositionAndShape.ChildElements.indexOf(ie.LastInstructionStaffEntry.PositionAndShape);te>-1&&ie.PositionAndShape.ChildElements.splice(te,1),ie.LastInstructionStaffEntry=void 0,ie.endInstructionsWidth=0}}Q.Measures=[],Q.PositionAndShape.ChildElements=[]}W.StaffLines.length=0,W.PositionAndShape.ChildElements=[]}D.MusicSystems=[],D.PositionAndShape.ChildElements=[]}this.graphicalMusicSheet.MusicPages=[]}handleVoiceEntry(R,B,D,G,U,W,q,Y,Q,Z=void 0,K=void 0){R.StemDirectionXml!==StemDirectionType.Undefined&&this.rules.SetWantedStemDirectionByXml&&R.StemDirectionXml!==void 0?R.WantedStemDirection=R.StemDirectionXml:this.calculateStemDirectionFromVoices(R);const ie=B.findOrCreateGraphicalVoiceEntry(R);ie.octaveShiftValue=Y;const te=B.tabStaffEntry;let ne;te&&(ne=te.findOrCreateGraphicalVoiceEntry(R));for(let se=0,re=R.Notes.length;se-1)continue;let le;if(R.IsGrace?le=MusicSheetCalculator.symbolFactory.createGraceNote(ae,ie,U,this.rules,Y):(le=MusicSheetCalculator.symbolFactory.createNote(ae,ie,U,Y,this.rules,void 0),MusicSheetCalculator.stafflineNoteCalculator.trackNote(le)),ae.Pitch&&this.checkNoteForAccidental(le,D,U,Y),this.resetYPositionForLeadSheet(le.PositionAndShape),B.addGraphicalNoteToListAtCorrectYPosition(ie,le),le.PositionAndShape.calculateBoundingBox(),this.leadSheet||(ae.NoteBeam!==void 0&&ae.PrintObject&&this.handleBeam(le,ae.NoteBeam,q),ae.NoteTuplet!==void 0&&ae.PrintObject&&this.handleTuplet(le,ae.NoteTuplet,W)),ne){const ce=MusicSheetCalculator.symbolFactory.createNote(ae,ne,U,Y,this.rules,void 0);te.addGraphicalNoteToListAtCorrectYPosition(ne,ce),ce.PositionAndShape.calculateBoundingBox(),this.leadSheet||ae.NoteTuplet&&this.handleTuplet(ce,ae.NoteTuplet,W)}}return R.Articulations.length>0&&this.handleVoiceEntryArticulations(R.Articulations,R,B),R.TechnicalInstructions.length>0&&this.handleVoiceEntryTechnicalInstructions(R.TechnicalInstructions,R,B),R.LyricsEntries.size()>0&&this.handleVoiceEntryLyrics(R,B,G),R.OrnamentContainer&&this.handleVoiceEntryOrnaments(R.OrnamentContainer,R,B),Y}resetYPositionForLeadSheet(R){this.leadSheet&&(R.RelativePosition=new PointF2D(R.RelativePosition.x,0))}layoutVoiceEntries(R,B){if(R.PositionAndShape.RelativePosition=new PointF2D(0,0),!this.leadSheet)for(const D of R.graphicalVoiceEntries){const G=D.notes;if(G.length===0)continue;const U=G[0].sourceNote.ParentVoiceEntry,W=G[0].sourceNote.Pitch!==void 0;this.layoutVoiceEntry(U,G,R,W)}}maxInstrNameLabelLength(){var B;let R=0;for(const D of this.graphicalMusicSheet.ParentMusicSheet.Instruments)if(((B=D.NameLabel)==null?void 0:B.print)&&D.Voices.length>0&&D.Voices[0].Visible){let G=D.NameLabel;this.rules.RenderPartNames||(G=new Label("",G.textAlignment,G.font));const U=new GraphicalLabel(G,this.rules.InstrumentLabelTextHeight,TextAlignmentEnum.LeftCenter,this.rules);U.setLabelPositionAndShapeBorders(),R=Math.max(R,U.PositionAndShape.MarginSize.width)}return this.rules.RenderPartNames?R:0}calculateSheetLabelBoundingBoxes(){var G;const R=this.graphicalMusicSheet.ParentMusicSheet,B=this.rules.DefaultColorTitle;if(R.Title!==void 0&&this.rules.RenderTitle){const U=new GraphicalLabel(R.Title,this.rules.SheetTitleHeight,TextAlignmentEnum.CenterBottom,this.rules);U.Label.IsCreditLabel=!0,U.Label.colorDefault=B,this.graphicalMusicSheet.Title=U,U.setLabelPositionAndShapeBorders()}else this.rules.RenderTitle||(this.graphicalMusicSheet.Title=void 0);if(R.Subtitle!==void 0&&this.rules.RenderSubtitle){const U=new GraphicalLabel(R.Subtitle,this.rules.SheetSubtitleHeight,TextAlignmentEnum.CenterCenter,this.rules);U.Label.IsCreditLabel=!0,U.Label.colorDefault=B,this.graphicalMusicSheet.Subtitle=U,U.setLabelPositionAndShapeBorders()}else this.rules.RenderSubtitle||(this.graphicalMusicSheet.Subtitle=void 0);if(R.Composer!==void 0&&this.rules.RenderComposer){const U=new GraphicalLabel(R.Composer,this.rules.SheetComposerHeight,TextAlignmentEnum.RightCenter,this.rules);U.Label.IsCreditLabel=!0,U.Label.colorDefault=B,this.graphicalMusicSheet.Composer=U,U.setLabelPositionAndShapeBorders()}else this.rules.RenderComposer||(this.graphicalMusicSheet.Composer=void 0);if(R.Lyricist!==void 0&&this.rules.RenderLyricist){const U=new GraphicalLabel(R.Lyricist,this.rules.SheetAuthorHeight,TextAlignmentEnum.LeftCenter,this.rules);U.Label.IsCreditLabel=!0,U.Label.colorDefault=B,this.graphicalMusicSheet.Lyricist=U,U.setLabelPositionAndShapeBorders()}else this.rules.RenderLyricist||(this.graphicalMusicSheet.Lyricist=void 0);const D=(G=this.graphicalMusicSheet.musicSheet.sourceMeasures)==null?void 0:G[0];if(D&&D.FirstInstructionsStaffEntries.length>0){const U=D.FirstInstructionsStaffEntries[0];let W,q;for(let Y=0,Q=U.Instructions.length;Y0&&Z.graphicalVoiceEntries[0].notes.length===1){const K=Z.graphicalVoiceEntries[0].notes[0];!K.sourceNote.Pitch&&new Fraction$1(1,2).lt(K.sourceNote.Length)&&this.layoutMeasureWithWholeRest(K,Z,Q)}}}}}}optimizeRestNotePlacement(R,B){if(R.graphicalVoiceEntries.length===0)return;const D=R.graphicalVoiceEntries[0].notes;if(D.length===0)return;const G=D[0],U=G.sourceNote.isRest();if(R.graphicalVoiceEntries.length===2){let W=!1;const q=R.graphicalVoiceEntries[1].notes;q.length>0&&(W=q[0].sourceNote.isRest()),U&&W?this.calculateTwoRestNotesPlacementWithCollisionDetection(R):(U||W)&&this.calculateRestNotePlacementWithCollisionDetectionFromGraphicalNote(R)}else if(U&&R!==B.staffEntries[0]&&R!==B.staffEntries[B.staffEntries.length-1]){const W=B.staffEntries.indexOf(R),q=B.staffEntries[W-1],Y=B.staffEntries[W+1];if(q.graphicalVoiceEntries.length===1){const Q=q.graphicalVoiceEntries[0].notes[0];if(Q.sourceNote.NoteBeam!==void 0&&Y.graphicalVoiceEntries.length===1){const Z=Y.graphicalVoiceEntries[0].notes[0];Z.sourceNote.NoteBeam!==void 0&&Q.sourceNote.NoteBeam===Z.sourceNote.NoteBeam&&(this.calculateRestNotePlacementWithinGraphicalBeam(R,G,Q,Y,Z),R.PositionAndShape.calculateBoundingBox())}}}}getRelativePositionInStaffLineFromTimestamp(R,B,D,G,U=0){let W=new PointF2D,q,Y;const Q=this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers.length,Z=this.graphicalMusicSheet.GetInterpolatedIndexInVerticalContainers(R),K=Math.min(Math.floor(Z),Q-1),ie=Math.min(Math.ceil(Z),Q-1);if(K<0||B<0)return W;if(q=this.getFirstLeftNotNullStaffEntryFromContainer(K,B,G),Y=this.getFirstRightNotNullStaffEntryFromContainer(ie,B,G),q&&Y){let te=q.parentMeasure.PositionAndShape.RelativePosition.x;U>0&&(te=U);let ne=q.PositionAndShape.RelativePosition.x+te,se=Y.PositionAndShape.RelativePosition.x+Y.parentMeasure.PositionAndShape.RelativePosition.x;U>0&&(se=Y.PositionAndShape.RelativePosition.x+te);let re=0;if(q!==Y){const ae=q.getAbsoluteTimestamp(),le=Y.getAbsoluteTimestamp();re=Fraction$1.minus(R,ae).RealValue/Fraction$1.minus(le,ae).RealValue}q.parentMeasure.ParentStaffLine!==Y.parentMeasure.ParentStaffLine&&(q.parentMeasure.ParentStaffLine===D?se=D.PositionAndShape.Size.width:ne=D.PositionAndShape.RelativePosition.x),W=new PointF2D(ne+(se-ne)*re,0)}return W}getRelativeXPositionFromTimestamp(R){const B=this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers.length,D=this.graphicalMusicSheet.GetInterpolatedIndexInVerticalContainers(R),G=Math.max(0,Math.min(Math.round(D),B-1)),U=this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[G].getFirstNonNullStaffEntry();return U.PositionAndShape.RelativePosition.x+U.parentMeasure.PositionAndShape.RelativePosition.x}calculatePageLabels(R){var W;this.rules.RenderSingleHorizontalStaffline&&(R.PositionAndShape.BorderRight=R.PositionAndShape.Size.width,R.PositionAndShape.calculateBoundingBox(),this.graphicalMusicSheet.ParentMusicSheet.pageWidth=R.PositionAndShape.Size.width);let B=10;if(R.MusicSystems.length>0){const q=R.MusicSystems[0];B=q.PositionAndShape.RelativePosition.y+q.PositionAndShape.BorderTop}if(this.graphicalMusicSheet.Title){const q=this.graphicalMusicSheet.Title;q.PositionAndShape.Parent=R.PositionAndShape;const Y=new PointF2D;Y.x=this.graphicalMusicSheet.ParentMusicSheet.pageWidth/2,Y.y=this.rules.TitleTopDistance+this.rules.SheetTitleHeight,q.PositionAndShape.RelativePosition=Y,R.Labels.push(q)}if(this.graphicalMusicSheet.Subtitle){const q=this.graphicalMusicSheet.Subtitle;q.PositionAndShape.Parent=R.PositionAndShape;const Y=new PointF2D;Y.x=this.graphicalMusicSheet.ParentMusicSheet.pageWidth/2,Y.y=this.rules.TitleTopDistance+this.rules.SheetTitleHeight+this.rules.SheetMinimumDistanceBetweenTitleAndSubtitle,q.PositionAndShape.RelativePosition=Y,R.Labels.push(q)}const D=this.graphicalMusicSheet.Composer;let G;if(D){D.PositionAndShape.Parent=R.PositionAndShape,D.setLabelPositionAndShapeBorders();const q=new PointF2D;q.x=this.graphicalMusicSheet.ParentMusicSheet.pageWidth-this.rules.PageRightMargin,q.y=B,q.y-=this.rules.SystemComposerDistance;const Y=(W=D.TextLines)==null?void 0:W.length;Y>1&&(q.y-=D.PositionAndShape.BorderBottom*(Y-1)/Y),G=q.y,D.PositionAndShape.RelativePosition=q,R.Labels.push(D)}const U=this.graphicalMusicSheet.Lyricist;if(U){U.PositionAndShape.Parent=R.PositionAndShape,U.setLabelPositionAndShapeBorders();const q=new PointF2D;q.x=this.rules.PageLeftMargin,q.y=B,q.y+=U.PositionAndShape.BorderBottom,q.y=Math.min(q.y,G!=null?G:Number.MAX_SAFE_INTEGER),U.PositionAndShape.RelativePosition=q,R.Labels.push(U)}}createGraphicalTies(){for(let R=0;R=0&&this.staffEntriesWithGraphicalTies.push(U)}U=q}}setTieDirections(R){if(!R)return;const B=R.ties;if(B.length>1){let D;for(const G of B){const U=G.Notes[0];(!D||U.Pitch.getHalfTone()>D.Pitch.getHalfTone())&&(D=U)}for(const G of B)G.TieDirection===PlacementEnum.NotYetDefined&&(G.Notes[0]===D?G.TieDirection=PlacementEnum.Above:G.TieDirection=PlacementEnum.Below)}}createAccidentalCalculators(){const R=[],B=this.graphicalMusicSheet.ParentMusicSheet.getFirstSourceMeasure();if(B)for(let D=0;D1)return;K=MusicSheetCalculator.symbolFactory.createGraphicalMeasure(R,Z)}if(K.hasError=R.getErrorInMeasure(Y),R.FirstInstructionsStaffEntries[Y])for(let ce=0,he=R.FirstInstructionsStaffEntries[Y].Instructions.length;ce0){const ge=he.Instructions[0];MusicSheetCalculator.symbolFactory.createInStaffClef(pe,ge)}this.rules.RenderChordSymbols&&((le=he.ChordContainers)==null?void 0:le.length)>0&&(he.ParentStaff.ParentInstrument.HasChordSymbols=!0,MusicSheetCalculator.symbolFactory.createChordSymbols(he,pe,G.ActiveKeyInstruction,this.graphicalMusicSheet.ParentMusicSheet.Transpose))}}if(G.doCalculationsAtEndOfMeasure(),R.LastInstructionsStaffEntries[Y]){const ce=R.LastInstructionsStaffEntries[Y];for(let he=0,pe=ce.Instructions.length;he=1&&K.staffEntries.length===0){const ce=new SourceStaffEntry(new VerticalSourceStaffEntryContainer(K.parentSourceMeasure,K.parentSourceMeasure.AbsoluteTimestamp,K.parentSourceMeasure.CompleteNumberOfStaves),Z),he=new VoiceEntry(new Fraction$1(0,1),Z.Voices[0],ce),pe=new Note$1(he,ce,Fraction$1.createFromFraction(R.Duration),void 0,R);pe.PrintObject=this.rules.FillEmptyMeasuresWithWholeRest===FillEmptyMeasuresWithWholeRests.YesVisible,he.addNote(pe);const me=MusicSheetCalculator.symbolFactory.createStaffEntry(ce,K);K.addGraphicalStaffEntry(me),me.relInMeasureTimestamp=he.Timestamp;const fe=MusicSheetCalculator.symbolFactory.createVoiceEntry(he,me);me.graphicalVoiceEntries.push(fe);const ge=MusicSheetCalculator.symbolFactory.createNote(pe,fe,new ClefInstruction,OctaveEnum.NONE,void 0);MusicSheetCalculator.stafflineNoteCalculator.trackNote(ge),fe.notes.push(ge)}K.hasOnlyRests=!0;for(const ce of K.staffEntries)if(K.hasOnlyRests=ce.hasOnlyRests(),!K.hasOnlyRests)break;return K}checkNoteForAccidental(R,B,D,G){let U=R.sourceNote.Pitch;const W=R.parentVoiceEntry.parentStaffEntry.parentMeasure.getTransposedHalftones();W!==0&&R.sourceNote.ParentStaffEntry.ParentStaff.ParentInstrument.MidiInstrumentId!==MidiInstrument.Percussion&&(U=R.Transpose(B.ActiveKeyInstruction,D,W,G),R.sourceNote.TransposedPitch=U),R.sourceNote.halfTone=U.getHalfTone(),B.checkAccidental(R,U)}handleStaffEntries(R){for(let B=0,D=this.graphicalMusicSheet.MeasureList.length;B0&&Y.graphicalVoiceEntries[0].notes.length>0&&(this.layoutVoiceEntries(Y,U),this.layoutStaffEntry(Y));this.graphicalMeasureCreatedCalculations(q)}}}}calculateSkyBottomLines(){for(const R of this.musicSystems)for(const B of R.StaffLines)B.SkyBottomLineCalculator.calculateLines()}calculateExpressionAlignements(){}calculateStaffEntryArticulationMarks(){for(let R=0,B=this.musicSystems.length;R0&&this.layoutArticulationMarks(se.Articulations,se,ie)}}}}}}calculateOrnaments(){for(let R=0,B=this.musicSystems.length;R0&&G.LyricVersesNumbers.sort()}for(let B=0,D=this.musicSystems.length;B=0&&(G=B.GraphicalLyricsEntries[D+1]),!G)return;const U=R.StaffEntryParent.parentMeasure.ParentStaffLine,W=G.StaffEntryParent.parentMeasure.ParentStaffLine,q=R.StaffEntryParent,Y=G.StaffEntryParent;if(R.StaffEntryParent.parentMeasure.ParentStaffLine===G.StaffEntryParent.parentMeasure.ParentStaffLine){const Q=q.parentMeasure.PositionAndShape.RelativePosition.x+q.PositionAndShape.RelativePosition.x+R.GraphicalLabel.PositionAndShape.RelativePosition.x+R.GraphicalLabel.PositionAndShape.BorderMarginRight,Z=Y.parentMeasure.PositionAndShape.RelativePosition.x+Y.PositionAndShape.RelativePosition.x+R.GraphicalLabel.PositionAndShape.RelativePosition.x+G.GraphicalLabel.PositionAndShape.BorderMarginLeft,K=R.GraphicalLabel.PositionAndShape.RelativePosition.y;let ie=1;Z-Q>this.rules.MinimumDistanceBetweenDashes*3&&(ie=Math.floor((Z-Q)/this.rules.MinimumDistanceBetweenDashes)-1),ie===1?this.calculateSingleDashForLyricWord(U,Q,Z,K):this.calculateDashes(U,Q,Z,K)}else{const Q=q.parentMeasure.PositionAndShape.RelativePosition.x+q.PositionAndShape.RelativePosition.x+R.GraphicalLabel.PositionAndShape.BorderMarginRight,Z=U.Measures[U.Measures.length-1],K=Z.PositionAndShape.RelativePosition.x+Z.PositionAndShape.Size.width;let ie=R.GraphicalLabel.PositionAndShape.RelativePosition.y;if(this.calculateDashes(U,Q,K,ie),W&&W.Measures[0]&&Y.parentMeasure.ParentStaffLine&&!(Y===Y.parentMeasure.staffEntries[0]&&Y.parentMeasure===Y.parentMeasure.ParentStaffLine.Measures[0])){const te=W.Measures[0].staffEntries[0].PositionAndShape.RelativePosition.x,ne=Y.parentMeasure.PositionAndShape.RelativePosition.x+Y.PositionAndShape.RelativePosition.x+G.GraphicalLabel.PositionAndShape.BorderMarginLeft;ie=G.GraphicalLabel.PositionAndShape.RelativePosition.y,this.calculateDashes(W,te,ne,ie)}}}calculateDashes(R,B,D,G){let U=D-B;if(UB;)U=this.calculateRightAndLeftDashesForLyricWord(R,B,D,G),B+=q,D-=q,Y++;U>q*2&&this.calculateSingleDashForLyricWord(R,B,D,G)}}calculateSingleDashForLyricWord(R,B,D,G){const U=new Label("-"),W=new GraphicalLabel(U,this.rules.LyricsHeight,TextAlignmentEnum.CenterBottom,this.rules);W.setLabelPositionAndShapeBorders(),R.LyricsDashes.push(W),this.staffLinesWithLyricWords.indexOf(R)===-1&&this.staffLinesWithLyricWords.push(R),W.PositionAndShape.Parent=R.PositionAndShape;const q=new PointF2D(B+(D-B)/2,G);W.PositionAndShape.RelativePosition=q}calculateLyricExtend(R){let B=R.GraphicalLabel.PositionAndShape.RelativePosition.y;const D=R.StaffEntryParent,G=D.parentMeasure.ParentStaffLine;let U,W;const q=D.parentMeasure.ParentStaff.idInMusicSheet;for(let Y=D.parentVerticalContainer.Index+1;Y0)break;U=Q,W=U.parentMeasure.ParentStaffLine,W||(W=D.parentMeasure.ParentStaffLine)}}if(!(!U||!W))if(G===W&&U.parentMeasure.ParentStaffLine){const Y=D.parentMeasure.PositionAndShape.RelativePosition.x+D.PositionAndShape.RelativePosition.x+R.GraphicalLabel.PositionAndShape.BorderMarginRight,Q=U.parentMeasure.PositionAndShape.RelativePosition.x+U.PositionAndShape.RelativePosition.x+U.PositionAndShape.BorderMarginRight;B-=R.GraphicalLabel.PositionAndShape.Size.height/4,this.calculateSingleLyricWordWithUnderscore(G,Y,Q,B)}else{const Y=G.Measures[G.Measures.length-1].PositionAndShape,Q=D.parentMeasure.PositionAndShape.RelativePosition.x+D.PositionAndShape.RelativePosition.x+R.GraphicalLabel.PositionAndShape.BorderMarginRight,Z=Y.RelativePosition.x+Y.Size.width;if(B-=R.GraphicalLabel.PositionAndShape.Size.height/4,this.calculateSingleLyricWordWithUnderscore(G,Q,Z,B),!U)return;if(U.parentMeasure.ParentStaffLine&&U.parentMeasure.staffEntries&&!(U===U.parentMeasure.staffEntries[0]&&U.parentMeasure===U.parentMeasure.ParentStaffLine.Measures[0])){const K=W.Measures[0].staffEntries[0].PositionAndShape.RelativePosition.x,ie=U.parentMeasure.PositionAndShape.RelativePosition.x+U.PositionAndShape.RelativePosition.x+U.PositionAndShape.BorderMarginRight;this.calculateSingleLyricWordWithUnderscore(W,K,ie,B)}}}calculateSingleLyricWordWithUnderscore(R,B,D,G){const U=new PointF2D(B,G),W=new PointF2D(D,G),q=new GraphicalLine(U,W,this.rules.LyricUnderscoreLineWidth);R.LyricLines.push(q),this.staffLinesWithLyricWords.indexOf(R)===-1&&this.staffLinesWithLyricWords.push(R)}calculateRightAndLeftDashesForLyricWord(R,B,D,G){const U=new Label("-"),W=new GraphicalLabel(U,this.rules.LyricsHeight,TextAlignmentEnum.CenterBottom,this.rules);W.setLabelPositionAndShapeBorders(),R.LyricsDashes.push(W),this.staffLinesWithLyricWords.indexOf(R)===-1&&this.staffLinesWithLyricWords.push(R),W.PositionAndShape.Parent=R.PositionAndShape;const q=new PointF2D(B,G);W.PositionAndShape.RelativePosition=q;const Y=new Label("-"),Q=new GraphicalLabel(Y,this.rules.LyricsHeight,TextAlignmentEnum.CenterBottom,this.rules);Q.setLabelPositionAndShapeBorders(),R.LyricsDashes.push(Q),Q.PositionAndShape.Parent=R.PositionAndShape;const Z=new PointF2D(D,G);return Q.PositionAndShape.RelativePosition=Z,Q.PositionAndShape.RelativePosition.x-W.PositionAndShape.RelativePosition.x}calculateDynamicExpressions(){const R=Math.min(this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length-1,this.rules.MaxMeasureToDrawIndex),B=Math.min(this.rules.MinMeasureToDrawIndex,this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures.length);for(let D=B;D<=R;D++){const G=this.graphicalMusicSheet.ParentMusicSheet.SourceMeasures[D];this.dynamicExpressionMap.clear();for(let U=0;U=0;W--)if((U=this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[W])!=null&&U.StaffEntries[B])return this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[W].StaffEntries[B]}getFirstRightNotNullStaffEntryFromContainer(R,B,D){var G,U;if((G=this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[R])!=null&&G.StaffEntries[B])return this.graphicalMusicSheet.VerticalGraphicalStaffEntryContainers[R].StaffEntries[B];for(let W=R+1;W0||B.StaffLinkedExpressions[D][G].UnknownList.length>0)&&this.calculateMoodAndUnknownExpression(B.StaffLinkedExpressions[D][G],R,D)}}calculateStemDirectionFromVoices(R){if(R.ParentSourceStaffEntry.Link!==void 0)if(R===R.ParentSourceStaffEntry.VoiceEntries[0]){R.WantedStemDirection=StemDirectionType.Up;return}else{R.WantedStemDirection=StemDirectionType.Down;return}else R.ParentVoice instanceof LinkedVoice?R.WantedStemDirection=StemDirectionType.Down:R.ParentSourceStaffEntry.VoiceEntries.length>1&&(R.WantedStemDirection=StemDirectionType.Up)}setBeamNotesWantedStemDirections(R){if(!(R.Notes.length>0))return;const B=R.Notes[0].NoteBeam;if(B){for(const D of B.Notes)if(D.ParentVoiceEntry.WantedStemDirection!==StemDirectionType.Undefined&&D.ParentVoiceEntry.ParentSourceStaffEntry.ParentStaff.Id===R.ParentSourceStaffEntry.ParentStaff.Id){R.WantedStemDirection=D.ParentVoiceEntry.WantedStemDirection;break}}}}class ChordSymbolContainer{constructor(R,B,D,G,U){this.rootPitch=R,this.chordKind=B,this.bassPitch=D,this.degrees=G,this.rules=U}get RootPitch(){return this.rootPitch}get ChordKind(){return this.chordKind}get BassPitch(){return this.bassPitch}get ChordDegrees(){return this.degrees}static calculateChordText(R,B,D){let G=R.RootPitch;if(MusicSheetCalculator.transposeCalculator&&(G=MusicSheetCalculator.transposeCalculator.transposePitch(R.RootPitch,D,B)),R.ChordKind===ChordSymbolEnum.none)return R.getTextFromChordKindEnum(R.ChordKind);let U=Pitch.getNoteEnumString(G.FundamentalNote);G.Accidental!==AccidentalEnum.NONE&&(U+=this.getTextForAccidental(G.Accidental));const W={adds:[],alts:[],subs:[]};for(const Z of R.ChordDegrees)if(Z){let K="";switch(Z.alteration!==AccidentalEnum.NONE&&(K+=this.getTextForAccidental(Z.alteration)),K+=Z.value,Z.text){case ChordDegreeText.add:W.adds.push(K);break;case ChordDegreeText.alter:W.alts.push(K);break;case ChordDegreeText.subtract:W.subs.push(K);break}}let q=R.getTextFromChordKindEnum(R.ChordKind);const Y=["adds","alts","subs"],Q=R.rules.CustomChords;for(const Z of Q){if(Z.chordKind!==R.chordKind)continue;let K=!0;for(const ie of Y){for(const te of Z.degrees[ie]||[])if(W[ie].indexOf(te)<0){K=!1;break}if(!K)break}if(K){for(const ie of Y)for(const te of Z.degrees[ie]||[])W[ie].splice(W[ie].indexOf(te),1);q=Z.alternateName}}if(U+=q,W.adds.length>0&&(U+="("+W.adds.join(",")+")"),W.alts.length>0&&(U+="(alt "+W.alts.join(",")+")"),W.subs.length>0&&(U+="(omit "+W.subs.join(",")+")"),R.BassPitch){let Z=R.BassPitch;MusicSheetCalculator.transposeCalculator&&(Z=MusicSheetCalculator.transposeCalculator.transposePitch(R.BassPitch,D,B)),U+="/",U+=Pitch.getNoteEnumString(Z.FundamentalNote),U+=this.getTextForAccidental(Z.Accidental)}return U}static getTextForAccidental(R){let B="";switch(R){case AccidentalEnum.DOUBLEFLAT:B+="bb";break;case AccidentalEnum.FLAT:B+="b";break;case AccidentalEnum.SHARP:B+="#";break;case AccidentalEnum.DOUBLESHARP:B+="x";break}return B}getTextFromChordKindEnum(R){var B;return(B=this.rules.ChordSymbolLabelTexts.getValue(R))!=null?B:""}}class Degree{constructor(R,B,D){this.value=R,this.alteration=B,this.text=D}}class CustomChord{constructor(R,B,D){this.alternateName=R,this.chordKind=B,this.degrees=D}static createCustomChord(R,B,D){return new CustomChord(R,B,D)}static renameCustomChord(R,B,D){for(const G of D)G.alternateName===R&&(G.alternateName=B)}}var ChordDegreeText=(F=>(F[F.add=0]="add",F[F.alter=1]="alter",F[F.subtract=2]="subtract",F))(ChordDegreeText||{}),ChordSymbolEnum=(F=>(F[F.major=0]="major",F[F.minor=1]="minor",F[F.augmented=2]="augmented",F[F.diminished=3]="diminished",F[F.dominant=4]="dominant",F[F.majorseventh=5]="majorseventh",F[F.minorseventh=6]="minorseventh",F[F.diminishedseventh=7]="diminishedseventh",F[F.augmentedseventh=8]="augmentedseventh",F[F.halfdiminished=9]="halfdiminished",F[F.majorminor=10]="majorminor",F[F.majorsixth=11]="majorsixth",F[F.minorsixth=12]="minorsixth",F[F.dominantninth=13]="dominantninth",F[F.majorninth=14]="majorninth",F[F.minorninth=15]="minorninth",F[F.dominant11th=16]="dominant11th",F[F.major11th=17]="major11th",F[F.minor11th=18]="minor11th",F[F.dominant13th=19]="dominant13th",F[F.major13th=20]="major13th",F[F.minor13th=21]="minor13th",F[F.suspendedsecond=22]="suspendedsecond",F[F.suspendedfourth=23]="suspendedfourth",F[F.Neapolitan=24]="Neapolitan",F[F.Italian=25]="Italian",F[F.French=26]="French",F[F.German=27]="German",F[F.pedal=28]="pedal",F[F.power=29]="power",F[F.Tristan=30]="Tristan",F[F.none=31]="none",F))(ChordSymbolEnum||{});class GraphicalNote extends GraphicalObject{constructor(R,B,D,G=void 0){super(),this.DrawnAccidental=AccidentalEnum.NONE,this.lineShift=0,this.sourceNote=R,this.parentVoiceEntry=B,this.PositionAndShape=new BoundingBox$1(this,B.PositionAndShape),G?this.graphicalNoteLength=G:this.graphicalNoteLength=R.Length,this.numberOfDots=this.calculateNumberOfNeededDots(this.graphicalNoteLength),this.rules=D,this.rules.addGraphicalNoteToNoteMap(R,this)}Transpose(R,B,D,G){let U=this.sourceNote.Pitch;return MusicSheetCalculator.transposeCalculator&&(U=MusicSheetCalculator.transposeCalculator.transposePitch(this.sourceNote.Pitch,R,D)),U}calculateNumberOfNeededDots(R){return!this.sourceNote||!this.sourceNote.NoteTuplet?R.calculateNumberOfNeededDots():0}get ParentMusicPage(){return this.parentVoiceEntry.parentStaffEntry.parentMeasure.ParentMusicSystem.Parent}static FromNote(R,B){return B.NoteToGraphicalNoteMap.getValue(R.NoteToGraphicalNoteObjectId)}}const _EngravingRules=class{constructor(){this.DYSlursStartingAtSameStaffEntryYOffset=0,this.DYMinNoteWidth=0,this.DYWorkId=0,this.DYWorkSpecial=!1,this.DYContainerId="osmdCanvasPage",this.DYSVGContainerId="osmdSvgPage",this.DYMusicScoreType="staff",this.NoteDistances=[1,1,1.3,1.6,2,2.5,3,4],this.NoteDistancesScalingFactors=[1,2,4,8,16,32,64,128],this.DurationDistanceDict={},this.DurationScalingDistanceDict={},this.NoteToGraphicalNoteMapObjectCount=0,this.PlayAlreadyStartedNotesFromCursorPosition=!1,this.PlaybackSkipNotesSafetyInterval=.02,this.UseDefaultVoiceInteractionListener=!0,this.loadDefaultValues()}loadDefaultValues(){this.SamplingUnit=_EngravingRules.unit*3,this.MpatMode=!0,this.SheetTitleHeight=4,this.SheetSubtitleHeight=2,this.SheetMinimumDistanceBetweenTitleAndSubtitle=1,this.SheetComposerHeight=2,this.SheetAuthorHeight=2,this.CompactMode=!1,this.PagePlacementEnum=PagePlacementEnum.Down,this.PageHeight=100001,this.PageTopMargin=5,this.PageTopMarginNarrow=0,this.PageBottomMargin=5,this.PageLeftMargin=5,this.PageRightMargin=5,this.TitleTopDistance=5,this.TitleBottomDistance=1,this.StaffDistance=7,this.BetweenStaffDistance=5,this.MinimumStaffLineDistance=4,this.MinSkyBottomDistBetweenStaves=1,this.StaffHeight=4,this.TabStaffInterlineHeight=1.1111,this.BetweenStaffLinesDistance=_EngravingRules.unit,this.SystemLeftMargin=0,this.SystemRightMargin=0,this.SystemLabelsRightMargin=2,this.SystemComposerDistance=2,this.InstrumentLabelTextHeight=2,this.MinimumDistanceBetweenSystems=7,this.MinSkyBottomDistBetweenSystems=5,this.LastSystemMaxScalingFactor=1.4,this.AutoBeamNotes=!1,this.AutoBeamOptions={beam_middle_rests_only:!1,beam_rests:!1,maintain_stem_directions:!1},this.AutoBeamTabs=!1,this.BeamWidth=_EngravingRules.unit/2,this.BeamSpaceWidth=_EngravingRules.unit/3,this.BeamForwardLength=1.25*_EngravingRules.unit,this.FlatBeams=!1,this.FlatBeamOffset=20,this.FlatBeamOffsetPerBeam=10,this.ClefLeftMargin=.5,this.ClefRightMargin=.75,this.PercussionOneLineCutoff=3,this.PercussionForceVoicesOneLineCutoff=1,this.PercussionUseXMLDisplayStep=!0,this.PercussionXMLDisplayStepNoteValueShift=0,this.PercussionOneLineXMLDisplayStepOctaveOffset=0,this.BetweenKeySymbolsDistance=.2,this.KeyRightMargin=.75,this.RhythmRightMargin=1.25,this.ShowRhythmAgainAfterPartEndOrFinalBarline=!0,this.NewPartAndSystemAfterFinalBarline=!1,this.InStaffClefScalingFactor=.8,this.DistanceBetweenNaturalAndSymbolWhenCancelling=.4,this.NoteHelperLinesOffset=.25,this.MeasureLeftMargin=.7,this.MeasureRightMargin=0,this.DistanceBetweenLastInstructionAndRepetitionBarline=1,this.ArpeggioDistance=.6,this.StaccatoShorteningFactor=2,this.IdealStemLength=3,this.StemNoteHeadBorderYOffset=.2,this.StemMargin=.2,this.StemMinLength=2.5,this.StemMaxLength=4.5,this.BeamSlopeMaxAngle=10,this.StemMinAllowedDistanceBetweenNoteHeadAndBeamLine=1,this.SetWantedStemDirectionByXml=!0,this.GraceNoteScalingFactor=.6,this.GraceNoteXOffset=.2,this.WedgeOpeningLength=1.2,this.WedgeMeasureEndOpeningLength=.75,this.WedgeMeasureBeginOpeningLength=.75,this.WedgePlacementAboveY=-1.5,this.WedgePlacementBelowY=1.5,this.WedgeHorizontalMargin=.6,this.WedgeVerticalMargin=.5,this.DistanceOffsetBetweenTwoHorizontallyCrossedWedges=.3,this.WedgeMinLength=2,this.WedgeEndDistanceBetweenTimestampsFactor=1.75,this.DistanceBetweenAdjacentDynamics=.75,this.TempoChangeMeasureValidity=4,this.TempoContinousFactor=.7,this.StaccatoScalingFactor=.8,this.BetweenDotsDistance=.8,this.OrnamentAccidentalScalingFactor=.65,this.ChordSymbolTextHeight=2,this.ChordSymbolTextAlignment=TextAlignmentEnum.LeftBottom,this.ChordSymbolRelativeXOffset=-1,this.ChordSymbolXSpacing=1,this.ChordOverlapAllowedIntoNextMeasure=0,this.ChordSymbolYOffset=.1,this.ChordSymbolYPadding=0,this.ChordSymbolYAlignment=!0,this.ChordSymbolYAlignmentScope="staffline",this.ChordSymbolLabelTexts=new Dictionary,this.resetChordSymbolLabelTexts(this.ChordSymbolLabelTexts),this.CustomChords=[],this.resetChordNames(),this.RepetitionSymbolsYOffset=0,this.RehearsalMarkXOffsetDefault=10,this.RehearsalMarkXOffset=0,this.RehearsalMarkXOffsetSystemStartMeasure=-20,this.RehearsalMarkYOffsetDefault=-15,this.RehearsalMarkYOffset=0,this.RehearsalMarkFontSize=10,this.MeasureNumberLabelHeight=1.5*_EngravingRules.unit,this.MeasureNumberLabelOffset=2,this.MeasureNumberLabelXOffset=-.5,this.TupletsRatioed=!1,this.TupletsBracketed=!1,this.TripletsBracketed=!1,this.TupletNumberLabelHeight=1.5*_EngravingRules.unit,this.TupletNumberYOffset=.5,this.LabelMarginBorderFactor=.1,this.TupletVerticalLineLength=.5,this.TupletNumbersInTabs=!1,this.SlurPlacementFromXML=!0,this.BezierCurveStepSize=1e3,this.calculateCurveParametersArrays(),this.TieGhostObjectWidth=.75,this.TieYPositionOffsetFactor=.3,this.MinimumNeededXspaceForTieGhostObject=1,this.TieHeightMinimum=.28,this.TieHeightMaximum=1.2,this.TieHeightInterpolationK=.0288,this.TieHeightInterpolationD=.136,this.SlurNoteHeadYOffset=.5,this.SlurStemXOffset=.3,this.SlurSlopeMaxAngle=15,this.SlurTangentMinAngle=30,this.SlurTangentMaxAngle=80,this.SlurHeightFactor=1,this.SlurHeightFlattenLongSlursFactorByWidth=.24,this.SlurHeightFlattenLongSlursFactorByAngle=.36,this.SlurHeightFlattenLongSlursCutoffAngle=47,this.SlurHeightFlattenLongSlursCutoffWidth=16,this.SlursStartingAtSameStaffEntryYOffset=.8,this.SlurMaximumYControlPointDistance=void 0,this.RepetitionEndingLabelHeight=2,this.RepetitionEndingLabelXOffset=.5,this.RepetitionEndingLabelYOffset=.3,this.RepetitionEndingLineYLowerOffset=.5,this.RepetitionEndingLineYUpperOffset=.3,this.VoltaOffset=2.5,this.LyricsAlignmentStandard=TextAlignmentEnum.LeftBottom,this.LyricsHeight=2,this.LyricsYOffsetToStaffHeight=0,this.VerticalBetweenLyricsDistance=.5,this.HorizontalBetweenLyricsDistance=.2,this.BetweenSyllableMaximumDistance=10,this.BetweenSyllableMinimumDistance=.5,this.LyricOverlapAllowedIntoNextMeasure=3.4,this.MinimumDistanceBetweenDashes=10,this.MaximumLyricsElongationFactor=2.5,this.InstantaneousTempoTextHeight=2.3,this.ContinuousDynamicTextHeight=2.3,this.MoodTextHeight=2.3,this.UnknownTextHeight=2,this.ContinuousTempoTextHeight=2.3,this.DynamicExpressionMaxDistance=2,this.DynamicExpressionSpacer=.5,this.VexFlowDefaultNotationFontScale=39,this.VexFlowDefaultTabFontScale=39,this.TremoloStrokeScale=1,this.TremoloYSpacingScale=1,this.StemWidth=.15,this.StaffLineWidth=.1,this.StaffLineColor=void 0,this.LedgerLineWidth=1,this.LedgerLineStrokeStyle=void 0,this.LedgerLineColorDefault="#000000",this.WedgeLineWidth=.12,this.TupletLineWidth=.12,this.LyricUnderscoreLineWidth=.12,this.SystemThinLineWidth=.12,this.SystemBoldLineWidth=_EngravingRules.unit/2,this.SystemRepetitionEndingLineWidth=.12,this.SystemDotWidth=_EngravingRules.unit/2,this.DistanceBetweenVerticalSystemLines=.35,this.DistanceBetweenDotAndLine=.7,this.RepeatEndStartPadding=2,this.OctaveShiftLineWidth=.12,this.OctaveShiftVerticalLineLength=_EngravingRules.unit,this.GraceLineWidth=this.StaffLineWidth*this.GraceNoteScalingFactor,this.MultipleRestMeasureDefaultWidth=4,this.MinimumCrossedBeamDifferenceMargin=1e-4,this.SheetMaximumWidth=32767,this.VoiceSpacingMultiplierVexflow=.85,this.VoiceSpacingAddendVexflow=3,this.PickupMeasureWidthMultiplier=1,this.DisplacedNoteMargin=.1,this.MinNoteDistance=2,this.SubMeasureXSpacingThreshold=35,this.MeasureDynamicsMaxScalingFactor=2.5,this.WholeRestXShiftVexflow=-1.5,this.MetronomeMarksDrawn=!0,this.MetronomeMarkXShift=-6,this.MetronomeMarkYShift=-.5,this.SoftmaxFactorVexFlow=15,this.StaggerSameWholeNotes=!0,this.AlignRests=AlignRestOption.Never,this.RestCollisionYPadding=0,this.FillEmptyMeasuresWithWholeRest=FillEmptyMeasuresWithWholeRests.No,this.ArpeggiosGoAcrossVoices=!1,this.RenderArpeggios=!0,this.RenderSlurs=!0,this.ColoringMode=ColoringModes.XML,this.ColoringEnabled=!0,this.ColorStemsLikeNoteheads=!1,this.ColorBeams=!0,this.ColorFlags=!0,this.applyDefaultColorMusic("#000000"),this.DefaultColorCursor="#33e02f",this.DefaultFontFamily="Times New Roman",this.DefaultFontStyle=FontStyles.Regular,this.DefaultVexFlowNoteFont="gonville",this.MaxMeasureToDrawIndex=Number.MAX_VALUE,this.MinMeasureToDrawIndex=0,this.MaxSystemToDrawNumber=Number.MAX_VALUE,this.MaxPageToDrawNumber=Number.MAX_VALUE,this.RenderComposer=!0,this.RenderTitle=!0,this.RenderSubtitle=!0,this.RenderLyricist=!0,this.RenderPartNames=!0,this.RenderPartAbbreviations=!0,this.RenderFingerings=!0,this.RenderMeasureNumbers=!0,this.RenderMeasureNumbersOnlyAtSystemStart=!1,this.UseXMLMeasureNumbers=!0,this.RenderLyrics=!0,this.RenderChordSymbols=!0,this.RenderMultipleRestMeasures=!0,this.AutoGenerateMutipleRestMeasuresFromRestMeasures=!0,this.RenderRehearsalMarks=!0,this.RenderClefsAtBeginningOfStaffline=!0,this.RenderKeySignatures=!0,this.RenderTimeSignatures=!0,this.ArticulationPlacementFromXML=!0,this.FingeringPosition=PlacementEnum.AboveOrBelow,this.FingeringPositionFromXML=!0,this.FingeringPositionGrace=PlacementEnum.Left,this.FingeringInsideStafflines=!1,this.FingeringLabelFontHeight=1.7,this.FingeringOffsetX=0,this.FingeringOffsetY=0,this.FingeringPaddingY=-.2,this.FingeringTextSize=1.5,this.RenderStringNumbersClassical=!0,this.StringNumberOffsetY=0,this.NewSystemAtXMLNewSystemAttribute=!1,this.NewPageAtXMLNewPageAttribute=!1,this.RestoreCursorAfterRerender=!0,this.StretchLastSystemLine=!1,_EngravingRules.FixStafflineBoundingBox=!1,this.PageFormat=PageFormat.UndefinedPageFormat,this.PageBackgroundColor=void 0,this.PerformanceMode=!1,this.RenderSingleHorizontalStaffline=!1,this.SpacingBetweenTextLines=0,this.NoteToGraphicalNoteMap=new Dictionary,this.NoteToGraphicalNoteMapObjectCount=0;try{this.MaxInstructionsConstValue=this.ClefLeftMargin+this.ClefRightMargin+this.KeyRightMargin+this.RhythmRightMargin+11}catch(F){log$2.info("EngravingRules()",F)}this.MpatMode&&(this.NewPartAndSystemAfterFinalBarline=!0)}applyDefaultColorMusic(F){this.DefaultColorMusic=F,this.DefaultColorNotehead=this.DefaultColorMusic,this.DefaultColorRest=this.DefaultColorNotehead,this.DefaultColorStem=this.DefaultColorNotehead,this.DefaultColorLabel=this.DefaultColorNotehead,this.DefaultColorTitle=this.DefaultColorNotehead,this.LedgerLineColorDefault=this.DefaultColorNotehead}addGraphicalNoteToNoteMap(F,R){F.NoteToGraphicalNoteObjectId=this.NoteToGraphicalNoteMapObjectCount,this.NoteToGraphicalNoteMap.setValue(F.NoteToGraphicalNoteObjectId,R),this.NoteToGraphicalNoteMapObjectCount++}GNote(F){return GraphicalNote.FromNote(F,this)}clearMusicSheetObjects(){this.NoteToGraphicalNoteMap=new Dictionary,this.NoteToGraphicalNoteMapObjectCount=0}setChordSymbolLabelText(F,R){this.ChordSymbolLabelTexts.setValue(F,R)}resetChordSymbolLabelTexts(F){return F.setValue(ChordSymbolEnum.minor,"m"),F.setValue(ChordSymbolEnum.augmented,"aug"),F.setValue(ChordSymbolEnum.diminished,"dim"),F.setValue(ChordSymbolEnum.dominant,"7"),F.setValue(ChordSymbolEnum.majorseventh,"maj7"),F.setValue(ChordSymbolEnum.minorseventh,"m7"),F.setValue(ChordSymbolEnum.diminishedseventh,"dim7"),F.setValue(ChordSymbolEnum.augmentedseventh,"aug7"),F.setValue(ChordSymbolEnum.halfdiminished,"m7b5"),F.setValue(ChordSymbolEnum.majorminor,"m(maj7)"),F.setValue(ChordSymbolEnum.majorsixth,"maj6"),F.setValue(ChordSymbolEnum.minorsixth,"m6"),F.setValue(ChordSymbolEnum.dominantninth,"9"),F.setValue(ChordSymbolEnum.majorninth,"maj9"),F.setValue(ChordSymbolEnum.minorninth,"m9"),F.setValue(ChordSymbolEnum.dominant11th,"11"),F.setValue(ChordSymbolEnum.major11th,"maj11"),F.setValue(ChordSymbolEnum.minor11th,"m11"),F.setValue(ChordSymbolEnum.dominant13th,"13"),F.setValue(ChordSymbolEnum.major13th,"maj13"),F.setValue(ChordSymbolEnum.minor13th,"m13"),F.setValue(ChordSymbolEnum.suspendedsecond,"sus2"),F.setValue(ChordSymbolEnum.suspendedfourth,"sus4"),F.setValue(ChordSymbolEnum.power,"5"),F.setValue(ChordSymbolEnum.none,"N.C."),F}addChordName(F,R,B,D,G){if(ChordSymbolEnum[R]!==void 0){const U={adds:B,alts:D,subs:G};this.CustomChords.push(CustomChord.createCustomChord(F,ChordSymbolEnum[R],U))}}renameChord(F,R){CustomChord.renameCustomChord(F,R,this.CustomChords)}resetChordNames(){this.addChordName("alt","major",["#5","b9","#9"],["b5"],[]),this.addChordName("7alt","dominant",["#5","b9","#9"],["b5"],[]),this.addChordName("7sus4","dominant",["4"],[],["3"]),this.addChordName("7sus4","suspendedfourth",["7"],[],[]),this.addChordName("9sus4","dominantninth",["4"],[],["3"]),this.addChordName("9sus4","suspendedfourth",["9"],[],[]),this.addChordName("11sus4","dominant11th",["4"],[],["3"]),this.addChordName("11sus4","suspendedfourth",["11"],[],[]),this.addChordName("13sus4","dominant13th",["4"],[],["3"]),this.addChordName("13sus4","suspendedfourth",["13"],[],[]),this.addChordName("7sus2","dominant",["2"],[],["3"]),this.addChordName("7sus2","suspendedsecond",["7"],[],[]),this.addChordName("m7b5","minorseventh",[],["b5"],[]),this.addChordName("9sus2","dominantninth",["2"],[],["3"]),this.addChordName("9sus2","suspendedsecond",["9"],[],[]),this.addChordName("11sus2","dominant11th",["2"],[],["3"]),this.addChordName("11sus2","suspendedsecond",["11"],[],[]),this.addChordName("13sus2","dominant13th",["2"],[],["3"]),this.addChordName("13sus2","suspendedsecond",["13"],[],[]),this.addChordName("m(maj9)","majorminor",["9"],[],[]),this.addChordName("m(maj11)","majorminor",["11"],[],[]),this.addChordName("m(maj13)","majorminor",["13"],[],[]),this.addChordName("69","majorsixth",["9"],[],[]),this.addChordName("mi69","minorsixth",["9"],[],[])}calculateCurveParametersArrays(){this.TPower3=new Array(this.BezierCurveStepSize),this.OneMinusTPower3=new Array(this.BezierCurveStepSize),this.FactorOne=new Array(this.BezierCurveStepSize),this.FactorTwo=new Array(this.BezierCurveStepSize);for(let F=0;F(F[F.XML=0]="XML",F[F.AutoColoring=1]="AutoColoring",F[F.CustomColorSet=2]="CustomColorSet",F))(ColoringModes||{}),DrawingParametersEnum=(F=>(F.allon="allon",F.compact="compact",F.compacttight="compacttight",F.default="default",F.leadsheet="leadsheet",F.preview="preview",F.thumbnail="thumbnail",F))(DrawingParametersEnum||{});class DrawingParameters{constructor(R="default"){this.rules=new EngravingRules,this.drawCursors=!0,this.drawTitle=!0,this.drawSubtitle=!0,this.drawLyricist=!0,this.drawComposer=!0,this.drawCredits=!0,this.drawPartNames=!0,this.fingeringPosition=PlacementEnum.Left,this.drawHiddenNotes=!1,this.DrawingParametersEnum=R}set DrawingParametersEnum(R){switch(this.drawingParametersEnum=R,R){case"allon":this.setForAllOn();break;case"thumbnail":this.setForThumbnail();break;case"leadsheet":this.setForLeadsheet();break;case"compact":this.setForCompactMode();break;case"compacttight":this.setForCompactTightMode();break;case"default":default:this.setForDefault()}}get DrawingParametersEnum(){return this.drawingParametersEnum}setForAllOn(){this.drawHighlights=!0,this.drawErrors=!0,this.drawSelectionStartSymbol=!0,this.drawSelectionEndSymbol=!0,this.drawCursors=!0,this.drawActivitySymbols=!0,this.drawScrollIndicator=!0,this.drawAnnotations=!0,this.drawComments=!0,this.drawMarkedAreas=!0,this.DrawTitle=!0,this.DrawSubtitle=!0,this.DrawComposer=!0,this.DrawLyricist=!0,this.drawCredits=!0,this.DrawPartNames=!0,this.drawHiddenNotes=!0,this.rules.CompactMode=!1}setForDefault(){this.rules.loadDefaultValues(),this.setForAllOn(),this.drawHiddenNotes=!1}setForThumbnail(){this.drawHighlights=!1,this.drawErrors=!1,this.drawSelectionStartSymbol=!1,this.drawSelectionStartSymbol=!1,this.drawCursors=!1,this.drawActivitySymbols=!1,this.drawScrollIndicator=!1,this.drawAnnotations=!0,this.drawComments=!0,this.drawMarkedAreas=!0,this.drawHiddenNotes=!1}setForCompactMode(){this.rules.CompactMode=!0,this.DrawCredits=!1,this.drawHiddenNotes=!1}setForCompactTightMode(){this.setForCompactMode(),this.DrawPartNames=!1,this.rules.VoiceSpacingMultiplierVexflow=.65,this.rules.VoiceSpacingAddendVexflow=2,this.rules.MinSkyBottomDistBetweenStaves=1,this.rules.MinSkyBottomDistBetweenSystems=1,this.rules.BetweenStaffDistance=2.5,this.rules.StaffDistance=3.5,this.rules.MinimumDistanceBetweenSystems=1,this.rules.PageBottomMargin=0,this.rules.PageLeftMargin=2,this.rules.PageRightMargin=2}setForLeadsheet(){this.drawHighlights=!1,this.drawErrors=!1,this.drawSelectionStartSymbol=!0,this.drawSelectionEndSymbol=!0,this.drawCursors=!0,this.drawActivitySymbols=!1,this.drawScrollIndicator=!0,this.drawAnnotations=!0,this.drawComments=!0,this.drawMarkedAreas=!0}get DrawCredits(){return this.drawCredits}set DrawCredits(R){this.drawCredits=R,this.DrawComposer=R,this.DrawTitle=R,this.DrawSubtitle=R,this.DrawLyricist=R}get DrawTitle(){return this.drawTitle}set DrawTitle(R){this.drawTitle=R,this.rules.RenderTitle=R,R||(this.DrawSubtitle=!1)}get DrawSubtitle(){return this.drawSubtitle}set DrawSubtitle(R){this.drawSubtitle=R,this.rules.RenderSubtitle=R,R&&(this.DrawTitle=!0)}get DrawComposer(){return this.drawComposer}set DrawComposer(R){this.drawComposer=R,this.rules.RenderComposer=R}get DrawLyricist(){return this.drawLyricist}set DrawLyricist(R){this.drawLyricist=R,this.rules.RenderLyricist=R}get DrawPartNames(){return this.drawPartNames}set DrawPartNames(R){this.drawPartNames=R,this.rules.RenderPartNames=R,this.rules.RenderPartNames||(this.rules.RenderPartAbbreviations=!1)}get FingeringPosition(){return this.fingeringPosition}set FingeringPosition(R){this.fingeringPosition=R,this.rules.FingeringPosition=R}get Rules(){return this.rules}set Rules(R){this.rules=R}}var AlignRestOption=(F=>(F[F.Never=0]="Never",F[F.Always=1]="Always",F[F.Auto=2]="Auto",F))(AlignRestOption||{}),FillEmptyMeasuresWithWholeRests=(F=>(F[F.No=0]="No",F[F.YesVisible=1]="YesVisible",F[F.YesInvisible=2]="YesInvisible",F))(FillEmptyMeasuresWithWholeRests||{}),BackendType=(F=>(F[F.SVG=0]="SVG",F[F.Canvas=1]="Canvas",F))(BackendType||{});class OSMDOptions{static OSMDOptionsStandard(){return{autoResize:!0,backend:"svg",drawingParameters:DrawingParametersEnum.default}}static BackendTypeFromString(R){return R&&R.toLowerCase()==="canvas"?1:0}}class IXmlElement{constructor(R){if(this.hasAttributes=!1,!R)throw new Error("IXmlElement: expected Element, got undefined");this.elem=R,this.name=R.nodeName.toLowerCase(),R.hasAttributes()&&(this.hasAttributes=!0,this.firstAttribute=R.attributes[0]),this.hasElements=R.hasChildNodes(),R.childNodes.length===1&&R.childNodes[0].nodeType===Node.TEXT_NODE?this.value=R.childNodes[0].nodeValue:this.value=""}attribute(R){return this.elem.attributes.getNamedItem(R)}attributes(){if(!this.attrs){const R=this.elem.attributes,B=[];for(let D=0;D0?this.Voices[0].Visible:!1}set Visible(R){for(let B=0,D=this.Voices.length;B-1&&this.parent.MusicSystems.splice(B,1)}this.parent=R,this.boundingBox.Parent=R.PositionAndShape}get NextSystem(){const R=this.Parent.MusicSystems.indexOf(this);return R!==this.Parent.MusicSystems.length?this.Parent.MusicSystems[R+1]:void 0}get StaffLines(){return this.staffLines}get GraphicalMeasures(){return this.graphicalMeasures}get MeasureNumberLabels(){return this.measureNumberLabels}get Labels(){return this.labels.values()}get ObjectsToRedraw(){return this.objectsToRedraw}get InstrumentBrackets(){return this.instrumentBrackets}get GroupBrackets(){return this.groupBrackets}get GraphicalMarkedAreas(){return this.graphicalMarkedAreas}get SystemLines(){return this.systemLines}get Id(){return this.id}createSystemLeftLine(R,B,D){let G=-R/2;D&&(G=this.maxLabelLength+B-R/2);const U=this.staffLines[0].Measures[0];let W;this.staffLines.length>1&&(W=this.staffLines[this.staffLines.length-1].Measures[0]);const q=this.createSystemLine(G,R,SystemLinesEnum.SingleThin,SystemLinePosition.MeasureBegin,this,U,W);this.SystemLines.push(q),q.PositionAndShape.RelativePosition=new PointF2D(G,0),q.PositionAndShape.BorderLeft=0,q.PositionAndShape.BorderRight=R,q.PositionAndShape.BorderTop=0,q.PositionAndShape.BorderBottom=this.boundingBox.Size.height,this.createLinesForSystemLine(q)}createVerticalLineForMeasure(R,B,D,G,U,W){const q=W.ParentStaffLine,Y=new PointF2D(q.PositionAndShape.RelativePosition.x,q.PositionAndShape.RelativePosition.y),Q=q.ParentStaff.ParentInstrument.Staves;if(q.ParentStaff===Q[0]){let Z;Q.length>1&&(Z=this.getBottomStaffLine(q).Measures[U]);const K=this.createSystemLine(R,B,D,G,this,W,Z),ie=Y.x+R;K.PositionAndShape.RelativePosition=new PointF2D(ie,0),K.PositionAndShape.BorderLeft=0,K.PositionAndShape.BorderRight=B,this.SystemLines.push(K)}}setYPositionsToVerticalLineObjectsAndCreateLines(R){}calculateBorders(R){}alignBeginInstructions(){}GetLeftBorderAbsoluteXPosition(){return this.StaffLines[0].PositionAndShape.AbsolutePosition.x+this.StaffLines[0].Measures[0].beginInstructionsWidth}GetRightBorderAbsoluteXPosition(){return this.StaffLines[0].PositionAndShape.AbsolutePosition.x+this.StaffLines[0].StaffLines[0].End.x}AddGraphicalMeasures(R){for(let B=0,D=R.length;B1){let W,q;for(let Y=0,Q=this.staffLines.length;Ythis.maxLabelLength&&(this.maxLabelLength=Z.PositionAndShape.Size.width,B=U)}this.updateMusicSystemStaffLineXPosition(B)}setMusicSystemLabelsYPosition(){this.labels.forEach((R,B)=>{let D=0,G=0;for(let U=0;U0&&(B.PositionAndShape.RelativePosition=new PointF2D(0,D/G+2))})}checkStaffEntriesForStaffEntryLink(){let R=!1,B=!1;for(let D=0;D=0;D--){if(B=R.InstrumentalGroups[D],B instanceof Instrument){if(B.Visible===!0)return B;continue}return this.findLastVisibleInstrumentInInstrumentalGroup(B)}}updateMusicSystemStaffLineXPosition(R){for(let B=0,D=this.StaffLines.length;B1}isVisible(){return this.ParentStaff.ParentInstrument.Visible}getGraphicalMeasureDurationFromStaffEntries(){let R=new Fraction$1(0,1);const B=[];for(let D=0,G=this.staffEntries.length;D0&&W.Add(Y.notes[0].graphicalNoteLength);R.lt(W)&&(R=Fraction$1.createFromFraction(W))}return R}addGraphicalStaffEntry(R){this.staffEntries.push(R)}addGraphicalStaffEntryAtTimestamp(R){if(R)if(this.staffEntries.length===0||this.staffEntries[this.staffEntries.length-1].relInMeasureTimestamp.lt(R.relInMeasureTimestamp))this.staffEntries.push(R);else for(let B=this.staffEntries.length-1;B>=0;B--){if(this.staffEntries[B].relInMeasureTimestamp.lt(R.relInMeasureTimestamp)){this.staffEntries.splice(B+1,0,R);break}B===0&&this.staffEntries.splice(B,0,R)}}isPianoRightHand(){return this.isUpperStaffOfInstrument()}isPianoLeftHand(){return this.isLowerStaffOfInstrument()}isUpperStaffOfInstrument(){return this.parentStaff.ParentInstrument.Staves.length===1?!0:this.ParentStaff===this.parentStaff.ParentInstrument.Staves[0]}isLowerStaffOfInstrument(){return this.parentStaff.ParentInstrument.Staves.length===1?!1:this.ParentStaff===this.ParentStaff.ParentInstrument.Staves.last()}beginsWithLineRepetition(){const R=this.parentSourceMeasure;return R?R.beginsWithLineRepetition():!1}endsWithLineRepetition(){const R=this.parentSourceMeasure;return R?R.endsWithLineRepetition():!1}beginsWithWordRepetition(){const R=this.parentSourceMeasure;return R?R.beginsWithWordRepetition():!1}endsWithWordRepetition(){const R=this.parentSourceMeasure;return R?R.endsWithWordRepetition():!1}getTransposedHalftones(){return this.parentStaff.ParentInstrument.GetMusicSheet.Transpose+this.parentStaff.ParentInstrument.Transpose}}Vex.Flow;class VexFlowVoiceEntry extends GraphicalVoiceEntry{constructor(R,B){super(R,B)}applyBordersFromVexflow(){const R=this.vfStaveNote;if(!R.getNoteHeadBeginX)return;const B=R.getBoundingBox(),D=R.getNoteHeadBeginX()-B.x;this.PositionAndShape.RelativePosition.y=B.y/unitInPixels,this.PositionAndShape.BorderTop=0,this.PositionAndShape.BorderBottom=B.h/unitInPixels,this.PositionAndShape.BorderLeft=-(D+R.width/2)/unitInPixels,this.PositionAndShape.BorderRight=(B.w-D)/unitInPixels}set vfStaveNote(R){this.mVexFlowStaveNote=R}get vfStaveNote(){return this.mVexFlowStaveNote}color(){var ie;const R=this.rules.DefaultColorNotehead,B=this.rules.DefaultColorRest,D=this.rules.DefaultColorStem,G="#00000000";let U,W;const q=this.vfStaveNote;for(let te=0;teY.symbol_type===B))return;const q=new VF$9.Repetition(B,G,-this.rules.RepetitionSymbolsYOffset);this.stave.addModifier(q,D);return}this.addVolta(R)}addVolta(R){var D;let B=VF$9.Volta.type.BEGIN;if(R.type===RepetitionInstructionEnum.Ending){switch(R.alignment){case AlignmentType.Begin:this.parentSourceMeasure.endsRepetitionEnding()?B=VF$9.Volta.type.BEGIN_END:B=VF$9.Volta.type.BEGIN;break;case AlignmentType.End:if(this.parentSourceMeasure.beginsRepetitionEnding())return;B=VF$9.Volta.type.END;break}const G=this.ParentStaffLine.SkyBottomLineCalculator,U=this.PositionAndShape.AbsolutePosition.x+this.PositionAndShape.BorderMarginLeft+.4,W=Math.max(this.PositionAndShape.AbsolutePosition.x+this.PositionAndShape.BorderMarginRight,U+.4),q=G.getSkyLineMinInRange(U,W)-2;let Y=-6.1+this.rules.VoltaOffset,Q=this.rules.VoltaOffset;q0){log$2.trace(`Ghost Found in between (measure ${this.MeasureNumber})`);const K=this.createGhostGves(Z);D.splice(W,0,...K),W+=K.length}}else{const Z=Fraction$1.minus(Y,this.parentSourceMeasure.AbsoluteTimestamp);if(Z.RealValue>0){log$2.trace(`Ghost Found at start (measure ${this.MeasureNumber})`);const K=this.createGhostGves(Z);D.splice(0,0,...K),W+=K.length}}B=Q}const G=Fraction$1.plus(this.parentSourceMeasure.AbsoluteTimestamp,this.parentSourceMeasure.Duration),U=Fraction$1.minus(G,B);if(U.RealValue>0){log$2.trace(`Ghost Found at end (measure ${this.MeasureNumber})`);const W=this.createGhostGves(U);D=D.concat(W)}return D}createGhostGves(R){const B=VexFlowConverter.GhostNotes(R),D=[];for(const G of B){const U=new VexFlowVoiceEntry(void 0,void 0);U.vfStaveNote=G,D.push(U)}return D}handleBeam(R,B){const D=R.sourceNote.ParentVoiceEntry.ParentVoice.VoiceId;let G=this.beams[D];G||(G=this.beams[D]=[]);let U;for(const q of G)q[0]===B&&(U=q);U||(U=[B,[]],G.push(U));const W=R.parentVoiceEntry;U[1].indexOf(W)<0&&U[1].push(W)}handleTuplet(R,B){const D=R.sourceNote.ParentVoiceEntry.ParentVoice.VoiceId;B=R.sourceNote.NoteTuplet;let G=this.tuplets[D];G||(G=this.tuplets[D]=[]);let U;for(const q of G)q[0]===B&&(U=q);U||(U=[B,[]],G.push(U));const W=R.parentVoiceEntry;U[1].indexOf(W)<0&&U[1].push(W)}finalizeBeams(){this.vfbeams={};const R=[];for(const B in this.beams)if(this.beams.hasOwnProperty(B)){let D=this.vfbeams[B];D||(D=this.vfbeams[B]=[]);for(const G of this.beams[B]){let U=!1;for(const te of G[0].Notes)if(te.Length.RealValue>=new Fraction$1(1,4).RealValue&&(!te.TypeLength||te.TypeLength.RealValue>.125)){U=!0;break}if(U){log$2.debug("Beam between note >= quarter, likely tremolo, currently unsupported. continuing.");continue}const W=[],q=G[0],Y=G[1];let Q=!0;for(const te of Y)te.parentVoiceEntry.ParentVoice===q.Notes[0].ParentVoiceEntry.ParentVoice&&(Q=te.parentVoiceEntry.WantedStemDirection===StemDirectionType.Undefined);let Z=!1,K;const ie=[];for(const te of Y){const ne=te.vfStaveNote;ne&&(W.push(ne),R.push(ne)),te.parentVoiceEntry.IsGrace&&(Z=!0),te.parentVoiceEntry.StemColor&&this.rules.ColoringEnabled&&ie.push(te.parentVoiceEntry.StemColor)}if(W.length>1){const te=new VF$9.Beam(W,Q);if(Z&&(te.render_options.beam_width=3,te.render_options.partial_beam_length=4),ie.length>=2&&this.rules.ColorBeams){K=ie[0];for(const ne of ie)if(ne!==K){K=void 0;break}te.setStyle({fillStyle:K,strokeStyle:K})}this.rules.FlatBeams&&(te.render_options.flat_beams=!0,te.render_options.flat_beam_offset=this.rules.FlatBeamOffset,te.render_options.flat_beam_offset_per_beam=this.rules.FlatBeamOffsetPerBeam),D.push(te)}else log$2.debug("Warning! Beam with no notes!")}}this.rules.AutoBeamNotes&&this.autoBeamNotes(R)}autoBeamNotes(R){if(!this.rules.AutoBeamTabs&&this.isTabMeasure)return;let B=[],D=[],G,U=[];this.autoTupletVfBeams=[];const W=[];this.autoVfBeams=[];let q=this.parentSourceMeasure.ActiveTimeSignature;q||(q=this.parentSourceMeasure.Duration);for(const Z of this.staffEntries)for(const K of Z.graphicalVoiceEntries){const ie=K.vfStaveNote,te=K.notes[0],ne=Z.relInMeasureTimestamp.isOnBeat(q),se=D.length>=2,re=te.sourceNote.Length.RealValue-new Fraction$1(1,4).RealValue>-Fraction$1.FloatInaccuracyTolerance,ae=K.parentVoiceEntry.IsGrace||re||R.contains(ie);if(ae||ne){if(se){for(const ce of D)B.push(ce);W.push(B.slice()),B=[]}if(D=[],ae)continue}const le=K.notes[0].sourceNote.NoteTuplet;if(le){let ce=!1;for(const he of le.Notes){for(const pe of he)if(pe.NoteTypeXml>=NoteType.QUARTER||pe.ParentVoiceEntry.IsGrace||pe.isRest()&&!this.rules.AutoBeamOptions.beam_rests){ce=!0;break}if(ce)break}if(!G)G=le;else if(G!==le){if(U.length>1){const he=new VF$9.Beam(U,!0);this.rules.FlatBeams&&(he.render_options.flat_beams=!0,he.render_options.flat_beam_offset=this.rules.FlatBeamOffset,he.render_options.flat_beam_offset_per_beam=this.rules.FlatBeamOffsetPerBeam),this.autoTupletVfBeams.push(he)}U=[],G=le}ce||U.push(ie);continue}else G=void 0;D.push(ie)}if(U.length>=2){const Z=new VF$9.Beam(U,!0);this.rules.FlatBeams&&(Z.render_options.flat_beams=!0,Z.render_options.flat_beam_offset=this.rules.FlatBeamOffset,Z.render_options.flat_beam_offset_per_beam=this.rules.FlatBeamOffsetPerBeam),this.autoTupletVfBeams.push(Z)}if(D.length>=2){for(const Z of D)B.push(Z);W.push(B)}const Y=this.rules.AutoBeamOptions,Q={beam_middle_only:Y.beam_middle_rests_only,beam_rests:Y.beam_rests,maintain_stem_directions:Y.maintain_stem_directions};if(Y.groups&&Y.groups.length){const Z=[];for(const K of Y.groups)Z.push(new VF$9.Fraction(K[0],K[1]));Q.groups=Z}for(const Z of W){const K=VF$9.Beam.generateBeams(Z,Q);for(const ie of K)this.rules.FlatBeams&&(ie.render_options.flat_beams=!0,ie.render_options.flat_beam_offset=this.rules.FlatBeamOffset,ie.render_options.flat_beam_offset_per_beam=this.rules.FlatBeamOffsetPerBeam),this.autoVfBeams.push(ie)}}finalizeTuplets(){this.vftuplets={};for(const R in this.tuplets)if(this.tuplets.hasOwnProperty(R)){let B=this.vftuplets[R];B||(B=this.vftuplets[R]=[]);for(const D of this.tuplets[R]){const G=[],U=D[1];for(const W of U)G.push(W.vfStaveNote);if(G.length>1){const W=D[0],q=W.Notes[0][0].NormalNotes,Y=W.Bracket||W.TupletLabelNumber===3&&this.rules.TripletsBracketed||W.TupletLabelNumber!==3&&this.rules.TupletsBracketed;let Q=VF$9.Tuplet.LOCATION_TOP;W.tupletLabelNumberPlacement===PlacementEnum.Below&&(Q=VF$9.Tuplet.LOCATION_BOTTOM),B.push(new VF$9.Tuplet(G,{bracketed:Y,location:Q,notes_occupied:q,num_notes:W.TupletLabelNumber,ratioed:this.rules.TupletsRatioed}))}else log$2.debug("Warning! Tuplet with no notes! Trying to ignore, but this is a serious problem.")}}}layoutStaffEntry(R){}graphicalMeasureCreatedCalculations(){let R,B=[];const D=[];for(const U of this.staffEntries){R=!1,B=[];for(const W of U.graphicalVoiceEntries){if(W.parentVoiceEntry.IsGrace){B.push(W),D.push(W),R||(R=W.parentVoiceEntry.GraceSlur);continue}if(W.vfStaveNote=VexFlowConverter.StaveNote(W),B.length>0){const q=[];for(let Q=0;Q0&&(Z.GraceSlash=!1);const K=VexFlowConverter.StaveNote(Z);Z.vfStaveNote=K,q.push(K)}const Y=new VF$9.GraceNoteGroup(q,R);W.vfStaveNote.addModifier(0,Y),B=[]}}}if(B.length>0)for(const U of B)U.vfStaveNote=VexFlowConverter.StaveNote(U),U.parentVoiceEntry.GraceAfterMainNote=!0;this.finalizeBeams(),this.finalizeTuplets();const G=this.getVoicesWithinMeasure();if(this.rules.RenderFingerings)for(const U of this.staffEntries)U.setModifierXOffsets();for(const U of G){if(!U)continue;this.vfVoices[U.VoiceId]=new VF$9.Voice({beat_value:this.parentSourceMeasure.Duration.Denominator,num_beats:this.parentSourceMeasure.Duration.Numerator,resolution:VF$9.RESOLUTION}).setMode(VF$9.Voice.Mode.SOFT);const W=this.getRestFilledVexFlowStaveNotesPerVoice(U);for(const q of W){if(q.parentVoiceEntry&&q.parentVoiceEntry.IsGrace&&!q.parentVoiceEntry.GraceAfterMainNote)continue;const Y=q;if(Y.vfStaveNote.ticks.denominator===0)continue;if(q.notes.length===0||!q.notes[0]||!q.notes[0].sourceNote.PrintObject){this.vfVoices[U.VoiceId].addTickable(Y.vfStaveNote);continue}const Q=Y.parentStaffEntry;if(Q&&Q.vfClefBefore){const Z=new NoteSubGroup([Q.vfClefBefore]);Y.vfStaveNote.getCategory&&Y.vfStaveNote.getCategory()==="stavenotes"&&Y.vfStaveNote.addModifier(0,Z)}q.parentVoiceEntry&&this.rules.RenderFingerings&&((this.rules.FingeringPosition===PlacementEnum.Left||this.rules.FingeringPosition===PlacementEnum.Right)&&this.createFingerings(q),this.createStringNumber(q)),this.createArpeggio(q),this.vfVoices[U.VoiceId].addTickable(Y.vfStaveNote)}}this.setStemDirectionFromVexFlow();for(const U of D)this.createFingerings(U),this.createStringNumber(U),this.createArpeggio(U);this.createArticulations(),this.createOrnaments()}createArpeggio(R){if(R.parentVoiceEntry&&R.parentVoiceEntry.Arpeggio){const B=R.parentVoiceEntry.Arpeggio;if(R.notes&&R.notes.length>1){const D=VexFlowConverter.StrokeTypeFromArpeggioType(B.type),G=new VF$9.Stroke(D,{all_voices:this.rules.ArpeggiosGoAcrossVoices});this.rules.RenderArpeggios&&R.vfStaveNote.addStroke(0,G)}else log$2.debug(`[OSMD] arpeggio in measure ${this.MeasureNumber} could not be drawn. voice entry had less than two notes, arpeggio is likely between voice entries, not currently supported in Vexflow.`)}}setStemDirectionFromVexFlow(){for(const R of this.staffEntries)for(const B of R.graphicalVoiceEntries)for(const D of B.notes){const G=D.vfnote;if(!G||!G[0])continue;switch(G[0].getStemDirection()){case VF$9.Stem.UP:B.parentVoiceEntry.StemDirection=StemDirectionType.Up;break;case VF$9.Stem.DOWN:B.parentVoiceEntry.StemDirection=StemDirectionType.Down;break}}}createArticulations(){for(let R=0,B=this.staffEntries.length;R1||R.parentStaffEntry.graphicalVoiceEntries.length>1?Q=VF$9.StaveModifier.Position.LEFT:K.idInMusicSheet===0?(Q=VF$9.StaveModifier.Position.ABOVE,q=PlacementEnum.Above):(Q=VF$9.StaveModifier.Position.BELOW,q=PlacementEnum.Below)}const Z=new VF$9.FretHandFinger(W.value);if(Z.setPosition(Q),Z.setOffsetX(Y),q===PlacementEnum.Above||q===PlacementEnum.Below){const K=q===PlacementEnum.Above?-1:1,ie=q===PlacementEnum.Above?G:D-1-G;if(this.rules.FingeringInsideStafflines&&D>1){const te=Z.getWidth()/2,ne=D*2.5;Z.setOffsetY(K*(ie+ne)*te)}else if(!this.rules.FingeringInsideStafflines){const te=new VF$9.StringNumber(W.value);te.radius=0,te.setPosition(Q),te.setOffsetY(K*ie*te.getWidth()*2/3),B.vfStaveNote.addModifier(G,te);continue}}B.vfStaveNote.addModifier(G,Z)}}createStringNumber(R){if(!this.rules.RenderStringNumbersClassical)return;const B=R;R.notes.forEach((D,G)=>{const U=D.sourceNote.StringInstruction;if(U){let W=U.value;switch(W){case"1":W="I";break;case"2":W="II";break;case"3":W="III";break;case"4":W="IV";break;case"5":W="V";break;case"6":W="VI";break}const q=new VF$9.StringNumber(W);q.radius=0;const Y=-this.rules.StringNumberOffsetY;R.notes.length>1||R.parentStaffEntry.graphicalVoiceEntries.length>1?(q.setOffsetX(D.baseStringNumberXOffset*13),q.setPosition(VF$9.Modifier.Position.RIGHT)):q.setPosition(VF$9.Modifier.Position.ABOVE),q.setOffsetY(Y),B.vfStaveNote.addModifier(G,q)}})}lineTo(R,B){const D=new VF$9.StaveConnector(R.getVFStave(),this.stave);D.setType(B),this.connectors.push(D)}getVFStave(){return this.stave}updateInstructionWidth(){let R=0,B=0;const D=this.stave.getModifiers();for(const G of D)G.getPosition()===StavePositionEnum.BEGIN?R+=G.getWidth()+G.getPadding(void 0):G.getPosition()===StavePositionEnum.END&&(B+=G.getWidth()+G.getPadding(void 0));this.beginInstructionsWidth=(R!=null?R:0)/unitInPixels,this.endInstructionsWidth=(B!=null?B:0)/unitInPixels}addStaveTie(R,B){this.vfTies.push(R),B.vfTie=R}}var StavePositionEnum=(F=>(F[F.LEFT=1]="LEFT",F[F.RIGHT=2]="RIGHT",F[F.ABOVE=3]="ABOVE",F[F.BELOW=4]="BELOW",F[F.BEGIN=5]="BEGIN",F[F.END=6]="END",F))(StavePositionEnum||{});class GraphicalStaffEntry extends GraphicalObject{constructor(R,B=void 0,D=void 0){super(),this.graphicalChordContainers=[],this.tabStaffEntry=void 0,this.MaxAccidentals=0,this.graphicalInstructions=[],this.ties=[],this.graphicalTies=[],this.lyricsEntries=[],this.parentMeasure=R,this.graphicalVoiceEntries=[],this.sourceStaffEntry=B,D?(this.staffEntryParent=D,this.parentVerticalContainer=D.parentVerticalContainer,this.PositionAndShape=new BoundingBox$1(this,D.PositionAndShape)):this.PositionAndShape=new BoundingBox$1(this,R.PositionAndShape),B&&(this.relInMeasureTimestamp=B.Timestamp),this.FingeringEntries=[]}get GraphicalInstructions(){return this.graphicalInstructions}get GraphicalTies(){return this.graphicalTies}get LyricsEntries(){return this.lyricsEntries}set LyricsEntries(R){this.lyricsEntries=R}getAbsoluteTimestamp(){const R=this.parentMeasure.parentSourceMeasure.AbsoluteTimestamp.clone();return this.relInMeasureTimestamp&&R.Add(this.relInMeasureTimestamp),R}findTieGraphicalNoteFromNote(R){for(const B of this.graphicalVoiceEntries)for(const D of B.notes){const G=D.sourceNote;if(!G.isRest()&&G.Pitch.FundamentalNote===R.Pitch.FundamentalNote&&G.Pitch.Octave===R.Pitch.Octave&&G.getAbsoluteTimestamp().Equals(R.getAbsoluteTimestamp()))return D}}findEndTieGraphicalNoteFromNoteWithStartingSlur(R,B){if(!!R){for(const D of this.graphicalVoiceEntries)if(D.parentVoiceEntry===R.ParentVoiceEntry)for(const G of D.notes){const U=G.sourceNote;if(U.NoteTie&&U.NoteSlurs.indexOf(B)!==-1)return G}}}findGraphicalNoteFromGraceNote(R){if(!!R){for(const B of this.graphicalVoiceEntries)if(B.parentVoiceEntry===R.ParentVoiceEntry){for(const D of B.notes)if(D.sourceNote===R)return D}}}findGraphicalNoteFromNote(R){if(!!R){for(const B of this.graphicalVoiceEntries)if(B.parentVoiceEntry===R.ParentVoiceEntry){for(const D of B.notes)if(D.sourceNote===R&&this.getAbsoluteTimestamp().Equals(R.getAbsoluteTimestamp()))return D}}}getGraphicalNoteDurationFromVoice(R){for(const B of this.graphicalVoiceEntries)if(B.parentVoiceEntry.ParentVoice===R)return B.notes[0].graphicalNoteLength;return new Fraction$1(0,1)}findVoiceEntryGraphicalNotes(R){for(const B of this.graphicalVoiceEntries)if(B.parentVoiceEntry===R)return B.notes}isVoiceEntryPartOfLinkedVoiceEntry(R){if(this.sourceStaffEntry.Link)for(let B=0,D=this.sourceStaffEntry.Link.LinkStaffEntries.length;B0&&(R=G)}return R}findStaffEntryMaxNoteLength(){let R=new Fraction$1(0,1);for(const B of this.graphicalVoiceEntries)for(const D of B.notes){const G=D.graphicalNoteLength;R.lt(G)&&G.GetExpandedNumerator()>0&&(R=G)}return R}findOrCreateGraphicalVoiceEntry(R){for(const D of this.graphicalVoiceEntries)if(D.parentVoiceEntry===R)return D;const B=MusicSheetCalculator.symbolFactory.createVoiceEntry(R,this);return this.graphicalVoiceEntries.push(B),B}findOrCreateGraphicalVoiceEntryFromGraphicalNote(R){for(const D of this.graphicalVoiceEntries)if(D===R.parentVoiceEntry)return D;const B=MusicSheetCalculator.symbolFactory.createVoiceEntry(R.sourceNote.ParentVoiceEntry,this);return this.graphicalVoiceEntries.push(B),B}addGraphicalNoteToListAtCorrectYPosition(R,B){const D=R.notes;if(D.length===0||B.PositionAndShape.RelativePosition.y=0;G--){if(D[G].PositionAndShape.RelativePosition.y>B.PositionAndShape.RelativePosition.y){D.splice(G+1,0,B);break}if(G===0){D.splice(0,0,B);break}}}hasOnlyRests(){for(const B of this.graphicalVoiceEntries)for(const D of B.notes)if(!D.sourceNote.isRest())return!1;return!0}getSkylineMin(){var G;const R=(G=this.parentMeasure)==null?void 0:G.ParentStaffLine.SkyBottomLineCalculator;if(!R)return;const[B,D]=this.getAbsoluteStartAndEnd();return R.getSkyLineMinInRange(B,D)}getHighestYAtEntry(){return this.parentMeasure.ParentStaffLine.PositionAndShape.AbsolutePosition.y+this.getSkylineMin()}getLowestYAtEntry(){return this.parentMeasure.ParentStaffLine.PositionAndShape.AbsolutePosition.y+this.getBottomlineMax()}getBottomlineMax(){var G;const R=(G=this.parentMeasure)==null?void 0:G.ParentStaffLine.SkyBottomLineCalculator;if(!R)return;const[B,D]=this.getAbsoluteStartAndEnd();return R.getBottomLineMaxInRange(B,D)}getAbsoluteStartAndEnd(){let R=this.PositionAndShape.AbsolutePosition.x;R-=this.parentMeasure.ParentStaffLine.PositionAndShape.AbsolutePosition.x;const B=R+this.PositionAndShape.Size.width;return[R,B]}}const VF$8=Vex.Flow;class VexFlowStaffEntry extends GraphicalStaffEntry{constructor(R,B,D){super(R,B,D)}calculateXPosition(){const R=this.parentMeasure.getVFStave();let B=0;for(const D of this.graphicalVoiceEntries)if(D.vfStaveNote){if(D.vfStaveNote.setStave(R),R&&R.getLines&&R.getLines()===1&&D.vfStaveNote.getStemDirection()<0&&(D.vfStaveNote.setStemDirection(VF$8.Stem.UP),D.parentVoiceEntry.StemDirection=StemDirectionType.Up),!D.vfStaveNote.preFormatted)continue;D.applyBordersFromVexflow(),this.parentMeasure.ParentStaff.isTab?this.PositionAndShape.RelativePosition.x=(D.vfStaveNote.getAbsoluteX()+D.vfStaveNote.glyph.getWidth())/unitInPixels:this.PositionAndShape.RelativePosition.x=D.vfStaveNote.getBoundingBox().getX()/unitInPixels;const G=D.notes[0].sourceNote;G.isRest()&&G.Length.RealValue===this.parentMeasure.parentSourceMeasure.ActiveTimeSignature.RealValue&&(this.PositionAndShape.RelativePosition.x+=this.parentMeasure.parentSourceMeasure.Rules.WholeRestXShiftVexflow-.1,D.PositionAndShape.BorderLeft=-.7,D.PositionAndShape.BorderRight=.7),D.PositionAndShape.BorderLeftU.staffLine),D=this.calculateModifierXOffsets(B,1),G=this.calculateModifierXOffsets(B,.5);R.forEach((U,W)=>{U.baseFingeringXOffset=G[W],U.baseStringNumberXOffset=D[W]})}calculateModifierXOffsets(R,B){const D=[];for(let G=0;G=0;q--){if(Math.abs(R[G]-R[q])<=B&&U===D[q]){U++,W=!0;break}W=!1}D.push(U)}return D}}Vex.Flow;class VexFlowGraphicalNote extends GraphicalNote{constructor(R,B,D,G=OctaveEnum.NONE,U,W=void 0){if(super(R,B,U,W),this.clef=D,this.octaveShift=G,R.Pitch){const q=R.isRest()?R.Pitch:OctaveShift.getPitchFromOctaveShift(R.Pitch,G);this.vfpitch=VexFlowConverter.pitch(q,R.isRest(),this.clef,this.sourceNote.Notehead),this.vfpitch[1]=void 0}}setAccidental(R){const B=this.drawPitch(R);this.vfpitch=VexFlowConverter.pitch(B,this.sourceNote.isRest(),this.clef,this.sourceNote.Notehead),this.DrawnAccidental=B.Accidental}drawPitch(R){return OctaveShift.getPitchFromOctaveShift(R,this.octaveShift)}Transpose(R,B,D,G){const U=super.Transpose(R,B,D,G),W=OctaveShift.getPitchFromOctaveShift(U,this.octaveShift);return this.vfpitch=VexFlowConverter.pitch(W,this.sourceNote.isRest(),this.clef,this.sourceNote.Notehead),this.vfpitch[1]=void 0,W}setIndex(R,B){this.vfnote=[R,B],this.vfnoteIndex=B}notehead(R=void 0){let B=R;B||(B=this.vfnote[0]);const D=B.note_heads;return D&&D.length>this.vfnoteIndex&&D[this.vfnoteIndex]?B.note_heads[this.vfnoteIndex]:{line:0}}Clef(){return this.clef}getSVGId(){if(!!this.vfnote)return this.vfnote[0].getAttribute("id")}getSVGGElement(){if(!!this.vfnote)return this.vfnote[0].getAttribute("el")}getStemSVG(){return document.getElementById("vf-"+this.getSVGId()+"-stem")}getBeamSVGs(){const R=[];for(let B=0;;B++){const D=document.getElementById(`vf-${this.getSVGId()}-beam${B}`);if(!D)break;R.push(D)}return R}}class GraphicalChordSymbolContainer extends GraphicalObject{constructor(R,B,D,G,U,W){super(),this.chordSymbolContainer=R,this.boundingBox=new BoundingBox$1(this,B),this.rules=W,this.calculateLabel(D,U,G)}get GetChordSymbolContainer(){return this.chordSymbolContainer}get GraphicalLabel(){return this.graphicalLabel}calculateLabel(R,B,D){const G=ChordSymbolContainer.calculateChordText(this.chordSymbolContainer,B,D);this.graphicalLabel=new GraphicalLabel(new Label(G),R,this.rules.ChordSymbolTextAlignment,this.rules,this.boundingBox),this.graphicalLabel.PositionAndShape.RelativePosition=new PointF2D(this.rules.ChordSymbolRelativeXOffset,0),this.graphicalLabel.Label.colorDefault=this.rules.DefaultColorChordSymbol}}const VF$7=Vex.Flow;class VexFlowTabMeasure extends VexFlowMeasure{constructor(R,B=void 0,D=void 0){super(R,B,D),this.isTabMeasure=!0}resetLayout(){var B;const R=(B=this.ParentStaff.StafflineCount)!=null?B:6;this.stave=new VF$7.TabStave(0,0,0,{space_above_staff_ln:0,space_below_staff_ln:0,num_lines:R}),this.updateInstructionWidth()}graphicalMeasureCreatedCalculations(){for(let B=0,D=this.staffEntries.length;B1){const q=VexFlowConverter.StrokeTypeFromArpeggioType(W.type),Y=new VF$7.Stroke(q,{all_voices:this.rules.ArpeggiosGoAcrossVoices});this.rules.RenderArpeggios&&U.vfStaveNote.addStroke(0,Y)}else log$2.debug(`[OSMD] arpeggio in measure ${this.MeasureNumber} could not be drawn. voice entry had less than two notes, arpeggio is likely between voice entries, not currently supported in Vexflow.`)}this.vfVoices[B.VoiceId].addTickable(U.vfStaveNote)}}}}class StaffLine extends GraphicalObject{constructor(R,B){super(),this.measures=[],this.staffLines=new Array(5),this.octaveShifts=[],this.lyricLines=[],this.lyricsDashes=[],this.abstractExpressions=[],this.graphicalSlurs=[],this.Pedals=[],this.WavyLines=[],this.parentMusicSystem=R,this.parentStaff=B,this.boundingBox=new BoundingBox$1(this,R.PositionAndShape),this.skyBottomLine=MusicSheetCalculator.symbolFactory.createSkyBottomLineCalculator(this),this.staffHeight=this.parentMusicSystem.rules.StaffHeight,this.topLineOffset=0,this.bottomLineOffset=4,this.calculateStaffLineOffsets()}calculateStaffLineOffsets(){if(this.ParentStaff.isTab)switch(this.ParentStaff.StafflineCount){case 5:this.staffHeight=this.bottomLineOffset=this.ParentStaff.ParentInstrument.GetMusicSheet.Rules.TabStaffInterlineHeight*6;break;default:this.staffHeight=this.bottomLineOffset=this.ParentStaff.ParentInstrument.GetMusicSheet.Rules.TabStaffInterlineHeight*this.ParentStaff.StafflineCount;break}else switch(this.ParentStaff.StafflineCount){case 4:this.bottomLineOffset=1;break;case 3:this.topLineOffset=1,this.bottomLineOffset=1;break;case 2:this.topLineOffset=2,this.bottomLineOffset=1;break;case 1:this.topLineOffset=2,this.bottomLineOffset=2;break}}get Measures(){return this.measures}set Measures(R){this.measures=R}get StaffLines(){return this.staffLines}set StaffLines(R){this.staffLines=R}get Index(){return this.parentMusicSystem.StaffLines.indexOf(this)}get NextStaffLine(){const R=this.Index;return R!==this.parentMusicSystem.StaffLines.length?this.parentMusicSystem.StaffLines[R+1]:void 0}get LyricLines(){return this.lyricLines}get AbstractExpressions(){return this.abstractExpressions}set AbstractExpressions(R){this.abstractExpressions=R}set LyricLines(R){this.lyricLines=R}get LyricsDashes(){return this.lyricsDashes}set LyricsDashes(R){this.lyricsDashes=R}get ParentMusicSystem(){return this.parentMusicSystem}set ParentMusicSystem(R){this.parentMusicSystem=R}get ParentStaff(){return this.parentStaff}set ParentStaff(R){this.parentStaff=R}get SkyBottomLineCalculator(){return this.skyBottomLine}get SkyLine(){return this.skyBottomLine.SkyLine}get BottomLine(){return this.skyBottomLine.BottomLine}get OctaveShifts(){return this.octaveShifts}set OctaveShifts(R){this.octaveShifts=R}get StaffHeight(){return this.staffHeight}get TopLineOffset(){return this.topLineOffset}get BottomLineOffset(){return this.bottomLineOffset}get GraphicalSlurs(){return this.graphicalSlurs}addSlurToStaffline(R){this.graphicalSlurs.push(R)}addActivitySymbolClickArea(){const R=new StaffLineActivitySymbol(this),B=this.PositionAndShape;R.PositionAndShape.RelativePosition=new PointF2D(B.RelativePosition.x+B.BorderRight+.5,B.RelativePosition.y+.5),R.PositionAndShape.Parent=this.parentMusicSystem.PositionAndShape}isPartOfMultiStaffInstrument(){return this.parentStaff.ParentInstrument.Staves.length>1}findClosestStaffEntry(R){let B;for(let D=0,G=this.Measures.length;D0){const W=U.map(Y=>Y.PositionAndShape.Center.y),q=Math.max(...W);for(let Y=0;Y0?U[Y-1]:void 0;if(K){const te=this.getOverlap(Q.PositionAndShape,K.PositionAndShape);Q.squeeze(-(te.x+this.rules.DynamicExpressionSpacer))}if(ie){const te=this.getOverlap(ie.PositionAndShape,Q.PositionAndShape);Q.squeeze(te.x+this.rules.DynamicExpressionSpacer)}}}}}getDistance(R,B){const D=R.RelativePosition.x+R.BorderMarginRight,G=B.RelativePosition.x+B.BorderMarginLeft,U=R.RelativePosition.y+R.BorderMarginBottom,W=B.RelativePosition.y+B.BorderMarginTop;return new PointF2D(G-D,W-U)}getOverlap(R,B){return new PointF2D(R.RelativePosition.x+R.BorderMarginRight-(B.RelativePosition.x+B.BorderMarginLeft),R.RelativePosition.y+R.BorderMarginBottom-(B.RelativePosition.y+B.BorderMarginTop))}}class VexFlowStaffLine extends StaffLine{constructor(R,B){super(R,B),this.slursInVFStaffLine=[],this.alignmentManager=new AlignmentManager(this)}get SlursInVFStaffLine(){return this.slursInVFStaffLine}addVFSlurToVFStaffline(R){this.slursInVFStaffLine.push(R)}get AlignmentManager(){return this.alignmentManager}}const VF$6=Vex.Flow;class VexFlowMultiRestMeasure extends VexFlowMeasure{constructor(R,B=void 0,D=void 0){super(R,B,D),this.minimumStaffEntriesWidth=-1,D?this.rules=D.ParentMusicSystem.rules:B&&(this.rules=B.Rules),this.resetLayout(),this.multiRestElement=new VF$6.MultiMeasureRest(B.multipleRestMeasures,{})}draw(R){var U,W,q,Y,Q;const B=R.openGroup();(U=B==null?void 0:B.classList)==null||U.add("vf-measure");const D=R.openGroup();(W=D==null?void 0:D.classList)==null||W.add("vf-stave"),D==null||D.setAttribute("id",(Y=(q=this.stave)==null?void 0:q.attrs)==null?void 0:Y.id),this.stave.setContext(R).draw(),R.closeGroup();const G=R.openGroup();(Q=G==null?void 0:G.classList)==null||Q.add("vf-voices"),this.multiRestElement.setStave(this.stave),this.multiRestElement.setContext(R),this.multiRestElement.draw(),R.closeGroup();for(const Z of this.connectors)Z.setContext(R).draw();return R.closeGroup(),B}format(){}getVoicesWithinMeasure(){return[]}getGraphicalVoiceEntriesPerVoice(R){return[]}getRestFilledVexFlowStaveNotesPerVoice(R){return[]}handleBeam(R,B){}handleTuplet(R,B){}finalizeBeams(){}finalizeTuplets(){}layoutStaffEntry(R){}graphicalMeasureCreatedCalculations(){}createArticulations(){}createOrnaments(){}createFingerings(R){}getVFStave(){return this.stave}}const VF$5=Vex.Flow;class VexFlowBackend{getInnerElement(){return this.inner}getCanvas(){return this.canvas}getRenderElement(){let R=this.canvas;return this.getVexflowBackendType()===VF$5.Renderer.Backends.CANVAS&&(R=this.inner),R}getRenderer(){return this.renderer}removeAllChildrenFromContainer(R){for(;R.children.length!==0;)R.removeChild(R.children.item(0))}removeFromContainer(R){const B=this.getRenderElement();for(let D=0;D \r<`)),U.download="opensheetmusicdisplay_download.svg",U.innerHTML=window.location.href+"/download",document.body.appendChild(U)}}class VexFlowInstantaneousDynamicExpression extends GraphicalInstantaneousDynamicExpression{constructor(R,B,D){super(R,B,D);const G=new Label(this.Expression);this.label=new GraphicalLabel(G,this.rules.ContinuousDynamicTextHeight,TextAlignmentEnum.CenterCenter,this.rules,this.PositionAndShape),this.label.Label.fontStyle=FontStyles.BoldItalic,this.label.setLabelPositionAndShapeBorders(),this.PositionAndShape.calculateBoundingBox()}get InstantaneousDynamic(){return this.mInstantaneousDynamicExpression}get Expression(){return DynamicEnum[this.mInstantaneousDynamicExpression.DynEnum]}}class GraphicalOctaveShift extends GraphicalObject{constructor(R,B){super(),this.getOctaveShift=R,this.setSymbol(),this.PositionAndShape=new BoundingBox$1(this,B)}setSymbol(){switch(this.getOctaveShift.Type){case OctaveEnum.VA8:this.octaveSymbol=MusicSymbol.VA8;break;case OctaveEnum.VB8:this.octaveSymbol=MusicSymbol.VB8;break;case OctaveEnum.MA15:this.octaveSymbol=MusicSymbol.MA15;break;case OctaveEnum.MB15:this.octaveSymbol=MusicSymbol.MB15;break;default:throw new ArgumentOutOfRangeException("")}}}const VF$2=Vex.Flow;class VexFlowOctaveShift extends GraphicalOctaveShift{constructor(R,B){switch(super(R,B),R.Type){case OctaveEnum.VA8:this.position=VF$2.TextBracket.Positions.TOP,this.supscript="va",this.text="8";break;case OctaveEnum.MA15:this.position=VF$2.TextBracket.Positions.TOP,this.supscript="ma",this.text="15";break;case OctaveEnum.VB8:this.position=VF$2.TextBracket.Positions.BOTTOM,this.supscript="vb",this.text="8";break;case OctaveEnum.MB15:this.position=VF$2.TextBracket.Positions.BOTTOM,this.supscript="mb",this.text="15";break;default:log$2.error("Unknown or NONE octaveshift. This should not be called!");break}}setStartNote(R){for(const B of R.graphicalVoiceEntries){const D=B;if(D!=null&&D.vfStaveNote)return this.startNote=D.vfStaveNote,!0}return!1}setEndNote(R){for(const B of R.graphicalVoiceEntries){const D=B;if(D!=null&&D.vfStaveNote)return this.endNote=D.vfStaveNote,!0}return!1}getTextBracket(){return new VF$2.TextBracket({position:this.position,start:this.startNote,stop:this.endNote,superscript:this.supscript,text:this.text})}}Vex.Flow;class VexflowStafflineNoteCalculator{constructor(R){this.staffPitchListMapping=new Dictionary,this.baseLineNote=NoteEnum.B,this.baseLineOctave=1,this.rules=R}trackNote(R){if(!(R instanceof VexFlowGraphicalNote)||R.Clef().ClefType!==ClefEnum.percussion||R.sourceNote.isRest()||this.rules.PercussionOneLineCutoff===0||this.rules.PercussionForceVoicesOneLineCutoff===-1)return;const B=R.parentVoiceEntry.parentStaffEntry.sourceStaffEntry.ParentStaff.idInMusicSheet;let D;this.staffPitchListMapping.containsKey(B)||this.staffPitchListMapping.setValue(B,new Array),D=this.staffPitchListMapping.getValue(B);const G=R.sourceNote.Pitch;VexflowStafflineNoteCalculator.findOrInsert(D,G)}static PitchIndexOf(R,B,D=0){if(D>R.length-1)return-1;for(let G=D;Gthis.rules.PercussionOneLineCutoff&&!G)return R;const U=R,W=R.sourceNote.Pitch;let q=this.baseLineNote,Y=this.baseLineOctave;if(this.rules.PercussionUseXMLDisplayStep&&R.sourceNote.displayStepUnpitched!==void 0&&(q=R.sourceNote.displayStepUnpitched,Y=R.sourceNote.displayOctaveUnpitched+this.rules.PercussionOneLineXMLDisplayStepOctaveOffset),D.length<=this.rules.PercussionForceVoicesOneLineCutoff)U.setAccidental(new Pitch(q,Y,W.Accidental));else{const Q=VexflowStafflineNoteCalculator.PitchIndexOf(D,W);if(Q>-1){const Z=Math.ceil(D.length/2);if(!this.rules.PercussionUseXMLDisplayStep)if(Q>=Z)switch(Y=2,(Q-Z)%5){case 1:q=NoteEnum.E;break;case 2:q=NoteEnum.G;break;case 3:q=NoteEnum.B;break;case 4:q=NoteEnum.D,Y=3;break;default:q=NoteEnum.C;break}else switch(Q%5){case 1:q=NoteEnum.F;break;case 2:q=NoteEnum.D;break;case 3:q=NoteEnum.B,Y=0;break;case 4:q=NoteEnum.G,Y=0;break;default:q=NoteEnum.A;break}const K=new Pitch(q,Y,W.Accidental);U.setAccidental(K);const ie=U.parentVoiceEntry.parentVoiceEntry;!this.rules.SetWantedStemDirectionByXml&&ie.Notes.length<2&&(K.Octave>this.baseLineOctave||K.FundamentalNote===this.baseLineNote&&K.Octave===this.baseLineOctave?U.parentVoiceEntry.parentVoiceEntry.WantedStemDirection=StemDirectionType.Up:U.parentVoiceEntry.parentVoiceEntry.WantedStemDirection=StemDirectionType.Down)}}return U}getStafflineUniquePositionCount(R){return this.staffPitchListMapping.containsKey(R)?this.staffPitchListMapping.getValue(R).length:0}}class SkyBottomLineCalculator{constructor(R){this.mStaffLineParent=R,this.mRules=R.ParentMusicSystem.rules}calculateLines(){const R=Math.max(Math.ceil(this.StaffLineParent.PositionAndShape.Size.width*this.SamplingUnit),1);this.mSkyLine=[],this.mBottomLine=[];const B=new CanvasVexFlowBackend(this.StaffLineParent.ParentMusicSystem.rules);for(const W of this.StaffLineParent.Measures){W.PositionAndShape.calculateAbsolutePositionsRecursive(0,0);const q=W.getVFStave();let Y=q.getWidth();if(!(Y>0)&&!W.IsExtraGraphicalMeasure&&(log$2.warn("SkyBottomLineCalculator: width not > 0 in measure "+W.MeasureNumber),Y=50),!(Y>=50)&&W.IsExtraGraphicalMeasure)continue;B.initializeHeadless(Y);const Q=B.getContext(),Z=B.getCanvas();Y=Z.width;const K=Z.height;this.mRules.DYMusicScoreType==="jianpu"?q.setY(q.y-50):q.setY(q.y+100);const ie=q.getWidth();q.setWidth(Y),W.format(),q.setWidth(ie);try{W.draw(Q)}catch(le){log$2.warn("SkyBottomLineCalculator.calculateLines.draw",le)}const te=Q.getImageData(0,0,Y,K),ne=4,se=Math.max(Math.ceil(W.PositionAndShape.Size.width*this.mRules.SamplingUnit),1),re=new Array(se),ae=new Array(se);for(let le=0;le0){re[le]=ce;break}}for(let ce=K;ce>0;ce--){const pe=ce*Y*ne+le*ne;if(te.data[pe+3]>0){ae[le]=ce;break}}}for(let le=0;le(W-Math.max(...this.mSkyLine))/unitInPixels+this.StaffLineParent.TopLineOffset),this.mBottomLine=this.mBottomLine.map(W=>(W-Math.min(...this.mBottomLine))/unitInPixels+this.StaffLineParent.BottomLineOffset)}findPreviousValidNumber(R,B){for(let D=R;D>=0;D--)if(!isNaN(B[D]))return B[D];return 0}findNextValidNumber(R,B){if(R>=B.length)return B[R-1];for(let D=R;D=this.BottomLine.length&&(D=this.BottomLine.length-1),G<0&&(G=0),G>=this.BottomLine.length&&(G=this.BottomLine.length),this.SkyLine[D]=R.y;for(let W=D+1;W=this.BottomLine.length&&(D=this.BottomLine.length-1),G<0&&(G=0),G>=this.BottomLine.length&&(G=this.BottomLine.length),this.BottomLine[D]=R.y;for(let W=D+1;WR)}setBottomLineWithValue(R){this.BottomLine.forEach(B=>R)}getLeftIndexForPointX(R,B){const D=Math.floor(R*this.SamplingUnit);return D<0?0:D>=B?B-1:D}getRightIndexForPointX(R,B){const D=Math.ceil(R*this.SamplingUnit);return D<0?0:D>=B?B-1:D}updateStaffLineBorders(){this.mStaffLineParent.PositionAndShape.BorderTop=this.getSkyLineMin(),this.mStaffLineParent.PositionAndShape.BorderMarginTop=this.getSkyLineMin(),this.mStaffLineParent.PositionAndShape.BorderBottom=this.getBottomLineMax(),this.mStaffLineParent.PositionAndShape.BorderMarginBottom=this.getBottomLineMax()}getSkyLineMin(){return Math.min(...this.SkyLine.filter(R=>!isNaN(R)))}getSkyLineMinAtPoint(R){const B=Math.round(R*this.SamplingUnit);return this.mSkyLine[B]}getSkyLineMinInRange(R,B){return this.getMinInRange(this.SkyLine,R,B)}getBottomLineMax(){return Math.max(...this.BottomLine.filter(R=>!isNaN(R)))}getBottomLineMaxAtPoint(R){const B=Math.round(R*this.SamplingUnit);return this.mBottomLine[B]}getBottomLineMaxInRange(R,B){return this.getMaxInRange(this.BottomLine,R,B)}getBottomLineMaxInBoundingBox(R){const B=Math.floor(R.AbsolutePosition.x+R.BorderLeft),D=Math.ceil(R.AbsolutePosition.x+R.BorderRight);return this.getMaxInRange(this.mBottomLine,B,D)}updateWithBoundingBoxRecursively(R){if(R.ChildElements&&R.ChildElements.length>0)for(const B of R.ChildElements)this.updateWithBoundingBoxRecursively(B);else{const B=R.BorderTop+R.AbsolutePosition.y,D=R.BorderBottom+R.AbsolutePosition.y;if(B<0){const G=Math.floor(R.AbsolutePosition.x+R.BorderLeft),U=Math.ceil(R.AbsolutePosition.x+R.BorderRight);this.updateInRange(this.mSkyLine,G,U,B)}else if(D>this.StaffLineParent.StaffHeight){const G=Math.floor(R.AbsolutePosition.x+R.BorderLeft),U=Math.ceil(R.AbsolutePosition.x+R.BorderRight);this.updateInRange(this.mBottomLine,G,U,D)}}}updateInRange(R,B=0,D=R.length,G=0){if(B=Math.floor(B*this.SamplingUnit),D=Math.ceil(D*this.SamplingUnit),DR.length&&(D=R.length);for(let U=B;UMath.abs(R[U])?G:R[U]}setInRange(R,B=0,D=R.length,G=0){if(B=Math.floor(B*this.SamplingUnit),D=Math.ceil(D*this.SamplingUnit),DR.length&&(D=R.length);for(let U=B;U=R.length&&(B=R.length-1),D<0&&(D=0),D>=R.length&&(D=R.length),B>=0&&D<=R.length)return Math.min(...R.slice(B,D+1))}getMaxInRange(R,B,D){if(B=Math.floor(B*this.SamplingUnit),D=Math.ceil(D*this.SamplingUnit),!R)return Number.MIN_VALUE;if(B<0&&(B=0),B>=R.length&&(B=R.length-1),D<0&&(D=0),D>=R.length&&(D=R.length),B>=0&&D<=R.length)return Math.max(...R.slice(B,D+1))}get SamplingUnit(){return this.mRules.SamplingUnit}get StaffLineParent(){return this.mStaffLineParent}get SkyLine(){return this.mSkyLine}get BottomLine(){return this.mBottomLine}}var parser$3={exports:{}};/*! * d-path-parser - v1.0.0 * by Massimo Artizzu (MaxArt2501) * * https://github.com/MaxArt2501/d-path-parser * * Licensed under the MIT License * See LICENSE for details */(function(F,R){(function(B,D){F.exports=D()})(commonjsGlobal$2,function(){return function(D){for(var G={command:/\s*([achlmqstvz])/gi,number:/\s*([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/gi,comma:/\s*(?:(,)|\s)/g,flag:/\s*([01])/g},U={number:function(se){return+te("number",se)},"coordinate pair":function(se){var re=te("number",se);if(re===null&&!se)return null;te("comma");var ae=te("number",!0);return{x:+re,y:+ae}},"arc definition":function(se){var re=U["coordinate pair"](se);if(!re&&!se)return null;te("comma");var ae=+te("number",!0);te("comma",!0);var le=!!+te("flag",!0);te("comma");var ce=!!+te("flag",!0);te("comma");var he=U["coordinate pair"](!0);return{radii:re,rotation:ae,large:le,clockwise:ce,end:he}}},W=0,q=[];WB.bottom)switch(R.tagName.toLowerCase()){case"g":for(const ie of R.children)this.recursiveUpdate(ie,B,D,G);break;case"circle":case"rect":case"line":case"path":let Z=Math.floor((U.x-D.x)/unitInPixels*this.mRules.SamplingUnit);const K=Z+Math.ceil(U.width/unitInPixels*this.mRules.SamplingUnit);if(R.parentElement.classList.contains("vf-beams")&&R.hasAttribute("d")){const ie=parse$3(R.getAttribute("d"));if(ie.length===5){const te=ie[0],ne=ie[3],se=(ne.end.y-te.end.y)/(ne.end.x-te.end.x);let re=te.end.y/unitInPixels;for(Z;Z<=K;Z++)reQ[Z]&&(Q[Z]=re),re+=se/this.mRules.SamplingUnit}}else for(Z;Z<=K;Z++)WQ[Z]&&(Q[Z]=q);break}}calculateLinesForMeasure(R,B){var me,fe,ge;const D=B.getBBox(),G=Math.max(Math.round(R.PositionAndShape.Size.width*this.mRules.SamplingUnit),1),U=D.height/unitInPixels,q=B.getElementsByClassName("vf-stave")[0].getBBox();let Y=(q==null?void 0:q.height)/unitInPixels,Q=(q==null?void 0:q.y)/unitInPixels;const Z=R.getVFStave();let K=((me=Z.options)!=null&&me.num_lines?Z.options.num_lines:5)-1,ie=-1,te=0;const ne=[K];for(const Se of(fe=Z.options)==null?void 0:fe.line_config)Se.visible?(ie===-1&&(ie=te),ne.push(te)):K--,te++;const se=ne.pop();ie===-1&&(ie=0),K=se-ie;const re=(ge=Z.options)==null?void 0:ge.spacing_between_lines_px,ae=K*re/unitInPixels;Y-ae>.2&&(Y=ae,Q=ie*re/unitInPixels);const le=Q+Y,ce=new Array(G).fill(Q),he=new Array(G).fill(le),pe=[ce,he];if(U>Y)for(const Se of B.children)this.recursiveUpdate(Se,{top:Q,bottom:le},D,[ce,he]);return pe}calculateLines(){this.mSkyLine=[],this.mBottomLine=[];const R=document.createElement("div");document.body.append(R);const B=new SvgVexFlowBackend(this.mRules);B.initialize(R,1,"0");const D=B.getContext(),G=D.openGroup();G.classList.add("staffline");for(const U of this.StaffLineParent.Measures){U.PositionAndShape.calculateAbsolutePositionsRecursive(0,0),U.setAbsoluteCoordinates(U.PositionAndShape.AbsolutePosition.x*unitInPixels,U.PositionAndShape.AbsolutePosition.y*unitInPixels);const W=U.draw(D),[q,Y]=this.calculateLinesForMeasure(U,W);this.mSkyLine.push(...q),this.mBottomLine.push(...Y)}D.closeGroup();for(const U of G.getElementsByClassName("vf-ties"))for(const W of U.childNodes)if(W.nodeName.toLowerCase()==="path"){const q=W.getBBox();let Y=Math.floor(q.x/unitInPixels*this.mRules.SamplingUnit);const Q=Y+Math.ceil(q.width/unitInPixels*this.mRules.SamplingUnit),Z=q.y/unitInPixels,K=q.height/unitInPixels+Z;for(Y;Y<=Q;Y++)Zthis.mBottomLine[Y]&&(this.mBottomLine[Y]=K)}B.clear(),R.remove()}}const VF$1=Vex.Flow;class VexFlowGraphicalSymbolFactory{constructor(){this.hasBBox=!1,document.createElementNS("http://www.w3.org/2000/svg","g").getBBox!==void 0&&(this.hasBBox=!0)}createMusicSystem(R,B){return new VexFlowMusicSystem(R,B)}createStaffLine(R,B){return new VexFlowStaffLine(R,B)}createSkyBottomLineCalculator(R){return R.ParentMusicSystem.rules.PerformanceMode&&this.hasBBox?new SkyBottomLineCalculatorSVG(R):new SkyBottomLineCalculator(R)}createGraphicalMeasure(R,B,D=!1){return new VexFlowMeasure(B,R,void 0)}createMultiRestMeasure(R,B,D){return new VexFlowMultiRestMeasure(B,R,D)}createTabStaffMeasure(R,B){return new VexFlowTabMeasure(B,R)}createExtraGraphicalMeasure(R){const B=new VexFlowMeasure(R.ParentStaff,void 0,R);return B.IsExtraGraphicalMeasure=!0,B.ExtraGraphicalMeasurePreviousMeasure=R.Measures.last(),B}createStaffEntry(R,B){return new VexFlowStaffEntry(B,R,void 0)}createVoiceEntry(R,B){return new VexFlowVoiceEntry(R,B)}createNote(R,B,D,G=OctaveEnum.NONE,U,W=void 0){return new VexFlowGraphicalNote(R,B,D,G,U,W)}createGraceNote(R,B,D,G,U=OctaveEnum.NONE){return new VexFlowGraphicalNote(R,B,D,U,G)}addGraphicalAccidental(R,B){R.setAccidental(B)}addFermataAtTiedEndNote(R,B){}createInStaffClef(R,B){const D=R,G=VexFlowConverter.Clef(B,"small");D.vfClefBefore=new VF$1.ClefNote(G.type,G.size,G.annotation)}createChordSymbols(R,B,D,G){const U=B.parentMeasure.parentSourceMeasure.Rules;let W=0;const q=U.ChordSymbolXSpacing;for(const Y of R.ChordContainers){const Q=new GraphicalChordSymbolContainer(Y,B.PositionAndShape,U.ChordSymbolTextHeight,D,G,B.parentMeasure.parentSourceMeasure.Rules),Z=Q.GraphicalLabel;Z.PositionAndShape.RelativePosition.y-=U.ChordSymbolYOffset,Z.PositionAndShape.RelativePosition.x+=W,Z.setLabelPositionAndShapeBorders(),Q.PositionAndShape.calculateBoundingBox(),B.graphicalChordContainers.push(Q),W+=Z.PositionAndShape.Size.width+q}}createGraphicalTechnicalInstruction(R,B){}}Vex.Flow;class GraphicalTie{constructor(R,B=void 0,D=void 0){this.tie=R,this.startNote=B,this.endNote=D}get SVGElement(){return this.vfTie.getAttribute("el")}get GetTie(){return this.tie}get StartNote(){return this.startNote}get Tie(){return this.tie}set StartNote(R){this.startNote=R}get EndNote(){return this.endNote}set EndNote(R){this.endNote=R}}class GraphicalLyricEntry{constructor(R,B,D,G){this.lyricsEntry=R,this.graphicalStaffEntry=B;const U=B.parentMeasure.parentSourceMeasure.Rules.LyricsAlignmentStandard;R.Text.length>=4&&R.Parent.Notes[0].Length.Denominator>4&&TextAlignmentEnum.LeftBottom;const W=new Label(R.Text);this.graphicalLabel=new GraphicalLabel(W,D,U,this.graphicalStaffEntry.parentMeasure.parentSourceMeasure.Rules,B.PositionAndShape),this.graphicalLabel.PositionAndShape.RelativePosition=new PointF2D(0,G),U===TextAlignmentEnum.LeftBottom&&(this.graphicalLabel.PositionAndShape.RelativePosition.x-=1)}get LyricsEntry(){return this.lyricsEntry}get ParentLyricWord(){return this.graphicalLyricWord}set ParentLyricWord(R){this.graphicalLyricWord=R}get GraphicalLabel(){return this.graphicalLabel}set GraphicalLabel(R){this.graphicalLabel=R}get StaffEntryParent(){return this.graphicalStaffEntry}set StaffEntryParent(R){this.graphicalStaffEntry=R}}class GraphicalLyricWord{constructor(R){this.graphicalLyricsEntries=[],this.lyricWord=R,this.initialize()}get GetLyricWord(){return this.lyricWord}get GraphicalLyricsEntries(){return this.graphicalLyricsEntries}set GraphicalLyricsEntries(R){this.graphicalLyricsEntries=R}isFilled(){for(let R=0;R=_GraphicalCurve.bezierCurveStepSize?new PointF2D:new PointF2D(_GraphicalCurve.oneMinusTPow3[R]*this.bezierStartPt.x+_GraphicalCurve.bezierFactorOne[R]*this.bezierStartControlPt.x+_GraphicalCurve.bezierFactorTwo[R]*this.bezierEndControlPt.x+_GraphicalCurve.tPow3[R]*this.bezierEndPt.x,_GraphicalCurve.oneMinusTPow3[R]*this.bezierStartPt.y+_GraphicalCurve.bezierFactorOne[R]*this.bezierStartControlPt.y+_GraphicalCurve.bezierFactorTwo[R]*this.bezierEndControlPt.y+_GraphicalCurve.tPow3[R]*this.bezierEndPt.y)}};let GraphicalCurve=_GraphicalCurve;GraphicalCurve.bezierCurveStepSize=1e3;const _GraphicalSlur=class extends GraphicalCurve{constructor(F,R){super(),this.staffEntries=[],this.slur=F,this.rules=R}static Compare(F,R){if(F.staffEntries.length<1)return-1;if(R.staffEntries.length<1)return 1;const B=Fraction$1.minus(F.staffEntries[F.staffEntries.length-1].getAbsoluteTimestamp(),F.staffEntries[0].getAbsoluteTimestamp()),D=Fraction$1.minus(R.staffEntries[R.staffEntries.length-1].getAbsoluteTimestamp(),R.staffEntries[0].getAbsoluteTimestamp());return B.RealValue>D.RealValue?1:D.RealValue>B.RealValue?-1:0}calculateCurve(F){const R=this.staffEntries[0],B=this.staffEntries[this.staffEntries.length-1];let D=R.findGraphicalNoteFromNote(this.slur.StartNote);!D&&this.graceStart&&(D=R.findGraphicalNoteFromGraceNote(this.slur.StartNote)),D||(D=R.findEndTieGraphicalNoteFromNoteWithStartingSlur(this.slur.StartNote,this.slur));let G=B.findGraphicalNoteFromNote(this.slur.EndNote);!G&&this.graceEnd&&(G=B.findGraphicalNoteFromGraceNote(this.slur.EndNote));const U=R.parentMeasure.ParentStaffLine,W=U.SkyBottomLineCalculator;this.calculatePlacement(W,U);const q=this.calculateStartAndEnd(D,G,U,F,W),Y=q.startX,Q=q.endX;let Z=q.startY,K=q.endY;const ie=F.SlurTangentMinAngle,te=F.SlurTangentMaxAngle;let ne;if(this.placement===PlacementEnum.Above){Z-=F.SlurNoteHeadYOffset,K-=F.SlurNoteHeadYOffset;const se=new PointF2D(this.staffEntries[0].parentMeasure.PositionAndShape.RelativePosition.x+this.staffEntries[0].PositionAndShape.RelativePosition.x,Z);D?se.x+=this.staffEntries[0].PositionAndShape.BorderRight:se.x=this.staffEntries[0].parentMeasure.beginInstructionsWidth,this.graceStart&&(se.x+=B.PositionAndShape.RelativePosition.x);const re=new PointF2D(this.staffEntries[this.staffEntries.length-1].parentMeasure.PositionAndShape.RelativePosition.x+this.staffEntries[this.staffEntries.length-1].PositionAndShape.RelativePosition.x,K);if(G?re.x+=this.staffEntries[this.staffEntries.length-1].PositionAndShape.BorderLeft:re.x=this.staffEntries[this.staffEntries.length-1].parentMeasure.PositionAndShape.RelativePosition.x+this.staffEntries[this.staffEntries.length-1].parentMeasure.PositionAndShape.Size.width,this.graceEnd&&(re.x+=B.staffEntryParent.PositionAndShape.RelativePosition.x),ne=this.calculateTopPoints(se,re,U,W),ne.length===0){const He=new PointF2D((re.x-se.x)/2+se.x,(re.y-se.y)/2+se.y);ne.push(He)}const ae=Math.atan((K-Z)/(Q-Y)),le=new PointF2D(0,0);let ce=new PointF2D(Q-Y,-(K-Z));const he=Matrix2D.getRotationMatrix(ae),pe=he.getTransposeMatrix();ce=he.vectorMultiplication(ce);const me=this.calculateTranslatedAndRotatedPointListAbove(ne,Y,Z,he);let fe=this.calculateMaxLeftSlope(me,le,ce),ge=this.calculateMaxRightSlope(me,le,ce);const Se=le.y-le.x*fe,Ee=ce.y-ce.x*ge,ve=new PointF2D;let xe=!1;Math.abs(Math.abs(fe)-Math.abs(ge))<1e-4?(ve.x=ce.x/2,ve.y=0,xe=!0):(ve.x=(Ee-Se)/(fe-ge),ve.y=fe*ve.x+Se);const Me=this.calculateHeightWidthRatio(ce.x,me);let ye=0,we=0;if(Math.abs(Me)>.001){const He=Math.abs(fe/(Me*2)),Qe=Math.abs(fe);ye=Math.max(0,Qe*(Math.min(10,He-1)/10)),fe-=ye;const We=Math.abs(ge/(Me*2)),Ze=Math.abs(ge);we=Math.max(0,Ze*(Math.min(10,We-1)/10)),ge+=we}let Re=ie,Pe=-ie;if(!xe){const He=this.calculateAngles(ie,fe,ge,te);Re=He.startAngle,Pe=He.endAngle}const Ae=this.calculateControlPoints(ce.x,Re,Pe,me,Me,Z,K);let Le=Ae.startControlPoint,Ne=Ae.endControlPoint;Le=pe.vectorMultiplication(Le),Le.x+=Y,Le.y=-Le.y+Z,Ne=pe.vectorMultiplication(Ne),Ne.x+=Y,Ne.y=-Ne.y+Z,this.bezierStartPt=new PointF2D(Y,Z-ye),this.bezierStartControlPt=new PointF2D(Le.x,Le.y-ye),this.bezierEndControlPt=new PointF2D(Ne.x,Ne.y-we),this.bezierEndPt=new PointF2D(Q,K-we);const Ie=U.SkyLine.length,_e=W.getLeftIndexForPointX(this.bezierStartPt.x,Ie),Ve=W.getLeftIndexForPointX(this.bezierEndPt.x,Ie),qe=this.bezierEndPt.x-this.bezierStartPt.x,Ge=W.SamplingUnit;for(let He=_e;He=_e&&(U.SkyLine[Ze]=Math.min(U.SkyLine[Ze],We.y)),Ze++,Ze.001){const He=Math.abs(fe/(Me*2)),Qe=Math.abs(fe);ye=Math.max(0,Qe*(Math.min(10,He-1)/10)),fe-=ye;const We=Math.abs(ge/(Me*2)),Ze=Math.abs(ge);we=Math.max(0,Ze*(Math.min(10,We-1)/10)),ge+=we}let Re=ie,Pe=-ie;if(!xe){const He=this.calculateAngles(ie,fe,ge,te);Re=He.startAngle,Pe=He.endAngle}const Ae=this.calculateControlPoints(ce.x,Re,Pe,me,Me,Z,K);let Le=Ae.startControlPoint,Ne=Ae.endControlPoint;Le=pe.vectorMultiplication(Le),Le.x+=Y,Le.y+=Z,Ne=pe.vectorMultiplication(Ne),Ne.x+=Y,Ne.y+=Z,this.bezierStartPt=new PointF2D(Y,Z+ye),this.bezierStartControlPt=new PointF2D(Le.x,Le.y+ye),this.bezierEndControlPt=new PointF2D(Ne.x,Ne.y+we),this.bezierEndPt=new PointF2D(Q,K+we);const Ie=U.BottomLine.length,_e=W.getLeftIndexForPointX(this.bezierStartPt.x,Ie),Ve=W.getLeftIndexForPointX(this.bezierEndPt.x,Ie),qe=this.bezierEndPt.x-this.bezierStartPt.x,Ge=W.SamplingUnit;for(let He=_e;He=_e&&(U.BottomLine[Ze]=Math.max(U.BottomLine[Ze],We.y)),Ze++,Ze0){this.placement=PlacementEnum.Above;return}const B=this.staffEntries[0],D=this.staffEntries[this.staffEntries.length-1],G=B.graphicalVoiceEntries[0].parentVoiceEntry.StemDirection,U=D.graphicalVoiceEntries[0].parentVoiceEntry.StemDirection;if(G===U)this.placement=G===StemDirectionType.Up?PlacementEnum.Below:PlacementEnum.Above;else{let W=B.PositionAndShape.BorderLeft+B.PositionAndShape.RelativePosition.x+B.parentMeasure.PositionAndShape.RelativePosition.x,q=D.PositionAndShape.BorderRight+D.PositionAndShape.RelativePosition.x+D.parentMeasure.PositionAndShape.RelativePosition.x;this.graceStart&&(W+=D.PositionAndShape.RelativePosition.x),this.graceEnd&&(q+=D.staffEntryParent.PositionAndShape.RelativePosition.x);const Y=F.getSkyLineMinInRange(W,q)*-1;F.getBottomLineMaxInRange(W,q)-R.StaffHeight>Y?this.placement=PlacementEnum.Above:this.placement=PlacementEnum.Below}}calculateTopPoints(F,R,B,D){const G=[];let U=D.getRightIndexForPointX(F.x,B.SkyLine.length),W=D.getLeftIndexForPointX(R.x,B.SkyLine.length);U<0&&(U=0),W>=B.SkyLine.length&&(W=B.SkyLine.length-1);for(let q=U;q=B.BottomLine.length&&(W=B.BottomLine.length-1);for(let q=U;qQ&&F>Z&&(Y+=F/70*this.rules.SlurHeightFlattenLongSlursFactorByWidth,Y*=1+R/30*this.rules.SlurHeightFlattenLongSlursFactorByAngle,q/=Y);const K=Math.min(.5,Math.max(.1,1.7*R/80*q*Math.pow(Math.max(G,.05),.4))),ie=Math.min(.5,Math.max(.1,1.7*-B/80*q*Math.pow(Math.max(G,.05),.4))),te=new PointF2D;te.x=F*K*Math.cos(R*_GraphicalSlur.degreesToRadiansFactor),te.y=F*K*Math.sin(R*_GraphicalSlur.degreesToRadiansFactor);const ne=new PointF2D;ne.x=F-F*ie*Math.cos(B*_GraphicalSlur.degreesToRadiansFactor),ne.y=-(F*ie*Math.sin(B*_GraphicalSlur.degreesToRadiansFactor));let se=te.y-ne.y;for(;this.rules.SlurMaximumYControlPointDistance&&Math.abs(se)>this.rules.SlurMaximumYControlPointDistance;)se<0?(te.y+=1,ne.y-=1):(te.y-=1,ne.y+=1),se=te.y-ne.y;return{startControlPoint:te,endControlPoint:ne}}calculateAngles(F,R,B,D){let U=Math.atan(R)/_GraphicalSlur.degreesToRadiansFactor;R>0?U+=20:U-=20;let W=Math.atan(B)/_GraphicalSlur.degreesToRadiansFactor;B<0?W-=20:W+=20;const q=Math.min(Math.max(F,U),D),Y=Math.max(Math.min(-F,W),-D);return{startAngle:q,endAngle:Y}}};let GraphicalSlur=_GraphicalSlur;GraphicalSlur.degreesToRadiansFactor=Math.PI/180;class GraphicalPedal extends GraphicalObject{constructor(R,B){super(),this.getPedal=R,this.setSymbol(),this.PositionAndShape=new BoundingBox$1(this,B)}setSymbol(){!this.getPedal.IsLine&&this.getPedal.IsSign?this.pedalSymbol=MusicSymbol.PEDAL_SYMBOL:this.getPedal.IsLine&&this.getPedal.IsSign?this.pedalSymbol=MusicSymbol.PEDAL_MIXED:this.pedalSymbol=MusicSymbol.PEDAL_BRACKET}}class VexFlowPedal extends GraphicalPedal{constructor(R,B,D=!1,G=!1){switch(super(R,B),this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET,this.ChangeBegin=!1,this.ChangeEnd=!1,this.line=-3,this.EndSymbolPositionAndShape=void 0,this.ChangeBegin=R.ChangeBegin,this.ChangeEnd=R.ChangeEnd,this.pedalSymbol){case MusicSymbol.PEDAL_SYMBOL:this.vfStyle=Vex.Flow.PedalMarking.Styles.TEXT,this.EndSymbolPositionAndShape=new BoundingBox$1(this,B);break;case MusicSymbol.PEDAL_MIXED:D&&G?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_BOTH:D?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_BEGIN:G?this.vfStyle=Vex.Flow.PedalMarking.Styles.MIXED_OPEN_END:this.vfStyle=Vex.Flow.PedalMarking.Styles.MIXED;break;case MusicSymbol.PEDAL_BRACKET:default:D&&G?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_BOTH:D?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_BEGIN:G?this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET_OPEN_END:this.vfStyle=Vex.Flow.PedalMarking.Styles.BRACKET;break}}setStartNote(R){if(!R)return!1;for(const B of R.graphicalVoiceEntries){const D=B;if(D!=null&&D.vfStaveNote)return this.startNote=D.vfStaveNote,this.startVfVoiceEntry=D,!0}return!1}setEndNote(R){if(!R)return!1;for(const B of R.graphicalVoiceEntries){const D=B;if(D!=null&&D.vfStaveNote)return this.endNote=D.vfStaveNote,this.endVfVoiceEntry=D,!0}return!1}setEndMeasure(R){this.endMeasure=R}CalculateBoundingBox(){}setLine(R){this.line=R}getPedalMarking(){var B,D,G,U;const R=new Vex.Flow.PedalMarking([this.startNote,this.endNote]);return this.endMeasure&&R.setEndStave(this.endMeasure.getVFStave()),R.setStyle(this.vfStyle),R.setLine(this.line),R.setCustomText(this.DepressText,this.ReleaseText),(((B=this.endVfVoiceEntry)==null?void 0:B.parentStaffEntry)===((U=(G=(D=this.endVfVoiceEntry)==null?void 0:D.parentStaffEntry)==null?void 0:G.parentMeasure)==null?void 0:U.staffEntries.last())||!this.endVfVoiceEntry)&&(R.EndsStave=!0),R.ChangeBegin=this.ChangeBegin,R.ChangeEnd=this.ChangeEnd,R}}class GraphicalWavyLine extends GraphicalObject{constructor(R,B){super(),this.getWavyLine=R,this.PositionAndShape=new BoundingBox$1(this,B)}}class VexflowVibratoBracket extends GraphicalWavyLine{constructor(R,B,D=!1){super(R,B),this.line=1,this.isVibrato=!1,this.toEndOfStopStave=!1,this.isVibrato=D}get ToEndOfStopStave(){return this.toEndOfStopStave}setStartNote(R){for(const B of R.graphicalVoiceEntries){const D=B;if(D!=null&&D.vfStaveNote)return this.startNote=D.vfStaveNote,this.startVfVoiceEntry=D,!0}return!1}setEndNote(R){for(const B of R.graphicalVoiceEntries){const D=B;if(D!=null&&D.vfStaveNote){this.endNote=D.vfStaveNote,this.endVfVoiceEntry=D;const G=this.endVfVoiceEntry.parentStaffEntry.parentMeasure.staffEntries,U=G[G.length-1];return this.toEndOfStopStave=U===this.endVfVoiceEntry.parentStaffEntry,!0}}return!1}CalculateBoundingBox(){const R=this.getVibratoBracket();this.boundingBox.Size.height=R.render_options.wave_height*.2}getVibratoBracket(){const R=new Vex.Flow.VibratoBracket({start:this.startNote,stop:this.endNote,toEndOfStopStave:this.toEndOfStopStave});return R.setLine(this.line),this.isVibrato?R.render_options.vibrato_width=20:R.render_options.wave_girth=4,R}}const VF=Vex.Flow;class VexFlowMusicSheetCalculator extends MusicSheetCalculator{constructor(R){var B,D,G,U,W,q,Y,Q;super(),this.beamsNeedUpdate=!1,this.rules=R,MusicSheetCalculator.symbolFactory=new VexFlowGraphicalSymbolFactory,MusicSheetCalculator.TextMeasurer=new VexFlowTextMeasurer(this.rules),MusicSheetCalculator.stafflineNoteCalculator=new VexflowStafflineNoteCalculator(this.rules),((B=this.rules.DefaultVexFlowNoteFont)==null?void 0:B.toLowerCase())==="gonville"?Vex.Flow.DEFAULT_FONT_STACK=[(D=Vex.Flow.Fonts)==null?void 0:D.Gonville,(G=Vex.Flow.Fonts)==null?void 0:G.Bravura,(U=Vex.Flow.Fonts)==null?void 0:U.Custom]:((W=this.rules.DefaultVexFlowNoteFont)==null?void 0:W.toLowerCase())==="petaluma"&&(Vex.Flow.DEFAULT_FONT_STACK=[(q=Vex.Flow.Fonts)==null?void 0:q.Petaluma,(Y=Vex.Flow.Fonts)==null?void 0:Y.Gonville,(Q=Vex.Flow.Fonts)==null?void 0:Q.Bravura])}clearRecreatedObjects(){super.clearRecreatedObjects(),MusicSheetCalculator.stafflineNoteCalculator=new VexflowStafflineNoteCalculator(this.rules);for(const R of this.graphicalMusicSheet.MeasureList)for(const B of R)B==null||B.clean()}formatMeasures(){for(const R of this.graphicalMusicSheet.MeasureList){if(!R||!R[0])continue;R[0].format();for(const D of R){for(const G of D.staffEntries)G.calculateXPosition();D.finalizeBeams()}}this.beamsNeedUpdate=!1}calculateMeasureXLayout(R){const B=[];for(const Z of R)Z&&B.push(Z);if(B.length===0)return 0;R=B;const D=[],G=new VF.Formatter({softmaxFactor:this.rules.SoftmaxFactorVexFlow});let U=R[0].staffEntries.length,W=1;for(const Z of R){if(!Z)continue;let K=0;for(const ne of Z.staffEntries)K+=ne.setMaxAccidentals();Z.parentSourceMeasure.ImplicitMeasure&&(U=Math.max(Z.staffEntries.length,U),W=Math.max(Z.staffEntries.length+K,W));const ie=Z.vfVoices,te=[];for(const ne in ie)ie.hasOwnProperty(ne)&&(te.push(ie[ne]),D.push(ie[ne]));if(te.length===0){log$2.debug("Found a measure with no voices. Continuing anyway.",ie);continue}G.joinVoices(te)}let q=12;const Y=R[0].parentSourceMeasure,Q=.3;if(D.length>0){q=G.preCalculateMinTotalWidth(D)/unitInPixels*this.rules.VoiceSpacingMultiplierVexflow+this.rules.VoiceSpacingAddendVexflow+U*Q,Y!=null&&Y.ImplicitMeasure&&(q=Y.Duration.RealValue/Y.ActiveTimeSignature.RealValue*q,U>1&&(q+=W*Q*1.5),q*=this.rules.PickupMeasureWidthMultiplier),MusicSheetCalculator.setMeasuresMinStaffEntriesWidth(R,q);const Z=(ie,te)=>{G.formatToStave(D,te.getVFStave())},K=(ie,te)=>{G.formatToStave(D,te.getVFStave(),{align_rests:!0,context:void 0})};for(const ie of R){if(this.rules.AlignRests===AlignRestOption.Never)ie.formatVoices=Z;else if(this.rules.AlignRests===AlignRestOption.Always)ie.formatVoices=K;else if(this.rules.AlignRests===AlignRestOption.Auto){let te=!1;for(const ne of ie.staffEntries){let se=0,re=0;for(const ae of ne.graphicalVoiceEntries)if(ae.parentVoiceEntry.IsGrace||ae&&ae.notes&&ae.notes[0]&&ae.notes[0].sourceNote&&ae.notes[0].sourceNote.PrintObject&&se++,ae&&ae.notes&&ae.notes[0]&&ae.notes[0].sourceNote&&ae.notes[0].sourceNote.isRest()&&ae.notes[0].sourceNote.PrintObject&&re++,se>1&&re>=1){te=!0;break}if(te)break}te?ie.formatVoices=K:ie.formatVoices=Z}if(ie===R[0]){const te=ie;te.formatVoices(q*unitInPixels,te)}}}for(const Z of R)if(!!Z)for(const K of Z.staffEntries)K.calculateXPosition();for(const Z of R){if(!Z)continue;const K=Z.vfVoices,ie=[];for(const te in K)K.hasOwnProperty(te)&&ie.push(K[te]);if(ie.length===0){log$2.debug("Found a measure with no voices. Continuing anyway.",K);continue}G.joinVoices(ie)}return q}calculateElongationFactor(R,B,D,G,U,W,q,Y){let Q=U,Z=0;for(const K of R){const ie=K.GraphicalLabel.Label.textAlignment;let te=q,ne=Y;if(K instanceof GraphicalLyricEntry&&K.ParentLyricWord){K.LyricsEntry.SyllableIndex>0&&(te=this.rules.BetweenSyllableMinimumDistance,TextAlignment.IsCenterAligned(ie)&&(te+=1));const xe=K.ParentLyricWord.GetLyricWord.Syllables;xe.length>1&&K.LyricsEntry.SyllableIndex4&&(Ee*=1.1)}}else D[Z]&&(Ee=ce/he);ge=Math.max(Se,Ee),Q=Math.max(Q,ge);let ve=Math.max(ce-he||0,0);D[Z]&&(ve+=D[Z].cumulativeOverlap),D[Z]={cumulativeOverlap:ve,extend:K instanceof GraphicalLyricEntry?K.LyricsEntry.extend:!1,labelWidth:re,measureNumber:W,sourceNoteDuration:K instanceof GraphicalLyricEntry?K.LyricsEntry&&K.LyricsEntry.Parent.Notes[0].Length:!1,text:K instanceof GraphicalLyricEntry?K.LyricsEntry.Text:K.GraphicalLabel.Label.text,xPosition:le},Z++}return Q}calculateElongationFactorFromStaffEntries(R,B,D,G){let U=D;const W={},q={};for(const Y of R)Y.LyricsEntries.length>0&&(U=this.calculateElongationFactor(Y.LyricsEntries,Y,W,B,U,G,this.rules.HorizontalBetweenLyricsDistance,this.rules.LyricOverlapAllowedIntoNextMeasure)),Y.graphicalChordContainers.length>0&&(U=this.calculateElongationFactor(Y.graphicalChordContainers,Y,q,B,U,G,this.rules.ChordSymbolXSpacing,this.rules.ChordOverlapAllowedIntoNextMeasure));return U}calculateMeasureWidthFromStaffEntries(R,B){let D=1;for(const U of R)!U||U.staffEntries.length===0||(D=this.calculateElongationFactorFromStaffEntries(U.staffEntries,B,D,U.MeasureNumber));return D=Math.min(D,this.rules.MaximumLyricsElongationFactor),B*D}createGraphicalTie(R,B,D,G,U){return new GraphicalTie(R,G,U)}updateStaffLineBorders(R){R.SkyBottomLineCalculator.updateStaffLineBorders()}graphicalMeasureCreatedCalculations(R){R.rules=this.rules,R.graphicalMeasureCreatedCalculations()}layoutVoiceEntry(R,B,D,G){for(let U=0;U=2&&(W=G.vfnote[0],q=G.vfnote[1]);let Y,Q=0;if(U&&U.vfnote&&U.vfnote.length>=2&&(Y=U.vfnote[0],Q=U.vfnote[1]),B){if(W){const Z=new VF.StaveTie({first_indices:[q],first_note:W});G.parentVoiceEntry.parentStaffEntry.parentMeasure.addStaveTie(Z,R)}if(Y){const Z=new VF.StaveTie({last_indices:[Q],last_note:Y});U.parentVoiceEntry.parentStaffEntry.parentMeasure.addStaveTie(Z,R)}}else if(W||Y){let Z;if(D)if(R.Tie.Type==="S"){const ie=R.StartNote.sourceNote,te=R.EndNote.sourceNote;let ne=1;ie.FretNumber>te.FretNumber&&(ne=-1),Z=new VF.TabSlide({first_indices:[q],first_note:W,last_indices:[Q],last_note:Y},ne)}else Z=new VF.TabTie({first_indices:[q],first_note:W,last_indices:[Q],last_note:Y},R.Tie.Type);else{Z=new VF.StaveTie({first_indices:[q],first_note:W,last_indices:[Q],last_note:Y});const ie=R.Tie.getTieDirection(G.sourceNote);ie===PlacementEnum.Below?Z.setDirection(1):ie===PlacementEnum.Above&&Z.setDirection(-1);try{Math.abs((W==null?void 0:W.getTieRightX())-(Y==null?void 0:Y.getTieLeftX()))<10&&(Z.render_options.first_x_shift=-3,Z.render_options.last_x_shift=3)}catch(te){console.log(te)}}U.parentVoiceEntry.parentStaffEntry.parentMeasure.addStaveTie(Z,R)}}calculateDynamicExpressionsForMultiExpression(R,B,D){if(Bthis.rules.MaxMeasureToDrawIndex)return;const G=R.AbsoluteTimestamp,U=this.graphicalMusicSheet.MeasureList[B],W=U[D].ParentStaffLine,q=U[D];if(!W)return;const Y=this.getRelativePositionInStaffLineFromTimestamp(G,D,W,W==null?void 0:W.isPartOfMultiStaffInstrument());if(Y.x<=0&&(Y.x=q.beginInstructionsWidth+this.rules.RhythmRightMargin),R.InstantaneousDynamic){const Q=new VexFlowInstantaneousDynamicExpression(R.InstantaneousDynamic,W,q);this.calculateGraphicalInstantaneousDynamicExpression(Q,Y,G),this.dynamicExpressionMap.set(G.RealValue,Q.PositionAndShape)}if(R.StartingContinuousDynamic){const Q=R.StartingContinuousDynamic,Z=new VexFlowContinuousDynamicExpression(R.StartingContinuousDynamic,W,q.parentSourceMeasure);if(Z.StartMeasure=q,!Z.IsVerbal&&Q.EndMultiExpression)try{this.calculateGraphicalContinuousDynamic(Z,Y),Z.updateSkyBottomLine()}catch{}else Z.IsVerbal?this.calculateGraphicalVerbalContinuousDynamic(Z,Y):log$2.warn("This continuous dynamic is not covered. measure"+R.SourceMeasureParent.MeasureNumber)}}createMetronomeMark(R,B){var le,ce,he,pe,me,fe,ge,Se,Ee;const D=Math.max(R.ParentMultiTempoExpression.SourceMeasureParent.MeasureNumber-1,0),G=B||D,U=Math.max(R.StaffNumber-1,0),W=this.graphicalMusicSheet.MeasureList[G][U].getVFStave();let q="q";if(R.beatUnit){const ve=NoteTypeHandler.getNoteDurationFromType(R.beatUnit);q=VexFlowConverter.durations(ve,!1)[0]}let Y=this.rules.MetronomeMarkYShift,Q=!1;const Z=[];if(R.parentMeasure){for(const ve of R.parentMeasure.StaffLinkedExpressions)for(const xe of ve)xe&&xe instanceof UnknownExpression&&Z.push(xe);for(const ve of R.parentMeasure.TempoExpressions){const xe=((le=ve.InstantaneousTempo)==null?void 0:le.Enum)===TempoEnum.metronomeMark;if(!R.beatUnit&&ve.InstantaneousTempo.beatUnit){const Me=NoteTypeHandler.getNoteDurationFromType(R.beatUnit);q=VexFlowConverter.durations(Me,!1)[0]}if(ve.getPlacementOfFirstEntry()===PlacementEnum.Above&&!xe){Q=!0;break}}}Q&&(Y-=1.4);const K=(ce=this.graphicalMusicSheet.MeasureList[0][0].ParentStaffLine)==null?void 0:ce.SkyLine;let ie=R.TempoInBpm,te="",ne="",se="";for(const ve of this.graphicalMusicSheet.MeasureList[G][U].parentSourceMeasure.TempoExpressions){if(ne=ve.CombinedExpressionsText,isSpecialMark(ve.CombinedExpressionsText)){te=ve.CombinedExpressionsText;break}if(isSpeedKeyword(ve.CombinedExpressionsText)||isSpeedHiddenKeyword(ve.CombinedExpressionsText)){te=formatSpeedKeyword(ve.CombinedExpressionsText),ie=ve.sourceMeasure.TempoInBPM,isSpeedKeyword(ve.CombinedExpressionsText)&&(se=q);break}}const re={bpm:R.TempoInBpm,dots:R.dotted,duration:q,name:te};te&&(re.bpm=ie/(re.dots?1.5:1),isSpeedKeyword(ne)?re.duration=se:(ie===SpeedTag[te]||!SpeedTag[te])&&(re.duration=""));const ae=((pe=(he=this.graphicalMusicSheet.MeasureList[G][U].vfVoices)==null?void 0:he[1])==null?void 0:pe.boundingBox.y)||0;if(this.rules.MetronomeMarksDrawn){if(K){const ye=((fe=(me=this.graphicalMusicSheet.MeasureList[0])==null?void 0:me[U])==null?void 0:fe.ParentStaffLine).Measures.map(we=>we.MeasureNumber-1);if(ae&&ye.includes(G)&&(isSpeedKeyword(ne)||isSpeedHiddenKeyword(ne))){const we=K.slice(0,9);let Re=Math.min(...we);Re=Re<0?Re-1:Re,Y+=Re}ye.includes(G)&&Z.length?K[0]=Math.min(K[0],-4.5+Y-4):K[0]=Math.min(K[0],-4.5+Y)}W.options.line_config.reduce((Me,ye)=>(ye.visible&&Me++,Me),0)<5&&(Y-=2),W.setTempo(re,Y*unitInPixels);let xe=0;try{xe+=((Ee=(Se=(ge=this.graphicalMusicSheet.MeasureList[G][U])==null?void 0:ge.vfVoices)==null?void 0:Se[1])==null?void 0:Ee.getTickables())[R.parentMeasure.metronomeNoteIndex].getBoundingBox().getX()-W.getNoteStartX()}catch{}W.getModifiers()[W.getModifiers().length-1].setShiftX(xe)}}calculateRehearsalMark(R){var ie,te,ne,se,re;const B=R.rehearsalExpression;if(!B)return;const D=this.graphicalMusicSheet.MeasureList[0][0].MeasureNumber,G=Math.max(R.measureListIndex+1-D,0),U=0,W=(ie=this.graphicalMusicSheet.MeasureList[G][U])==null?void 0:ie.getVFStave();if(!W)return;const q=-this.rules.RehearsalMarkYOffsetDefault-this.rules.RehearsalMarkYOffset;let Y=this.rules.RehearsalMarkXOffsetDefault+this.rules.RehearsalMarkXOffset;R.IsSystemStartMeasure&&(Y+=this.rules.RehearsalMarkXOffsetSystemStartMeasure);const Q=this.rules.RehearsalMarkFontSize,Z=W.getModifiers(),K=Z.find(ae=>ae.getCategory().toLocaleLowerCase()==="repetitions");if(K&&K.setShiftY(K.y_shift-10),W.setSection(B.label,q,Y,Q),(te=this.graphicalMusicSheet.MeasureList[G][U])!=null&&te.ParentStaffLine.AbstractExpressions){const ae=Z.find(le=>le.getCategory().toLocaleLowerCase()==="stavesection");for(let le of((re=(se=(ne=R==null?void 0:R.VerticalMeasureList)==null?void 0:ne[0])==null?void 0:se.ParentStaffLine)==null?void 0:re.AbstractExpressions)||[])le instanceof GraphicalUnknownExpression&&(ae&&(le.Label.PositionAndShape.RelativePosition.y-=.5),K&&(le.Label.PositionAndShape.RelativePosition.y-=1.7))}}calculateSingleOctaveShift(R,B,D,G){var ne;const U=B.OctaveShiftStart,W=U.ParentStartMultiExpression.Timestamp,q=(ne=U.ParentEndMultiExpression)==null?void 0:ne.Timestamp,Y=this.rules.MinMeasureToDrawIndex,Q=this.rules.MaxMeasureToDrawIndex;let Z=this.graphicalMusicSheet.MeasureList[D][G].ParentStaffLine;Z||(Z=this.graphicalMusicSheet.MeasureList[Y][G].ParentStaffLine);let K;U.ParentEndMultiExpression?K=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(U.ParentEndMultiExpression.SourceMeasureParent,G):K=this.graphicalMusicSheet.getLastGraphicalMeasureFromIndex(G,!0),K.MeasureNumber>Q+1&&(K=this.graphicalMusicSheet.getLastGraphicalMeasureFromIndex(G,!0));let ie;if(U.ParentEndMultiExpression?ie=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(U.ParentStartMultiExpression.SourceMeasureParent,G):ie=this.graphicalMusicSheet.MeasureList[Y][G],ie.MeasureNumberQ||K.parentSourceMeasure.measureListIndexQ)return;let te=K.ParentStaffLine;if(te||(te=Z),K&&Z&&te){const se=new VexFlowOctaveShift(U,Z.PositionAndShape);if(!se.startNote){let le;for(const ce of ie.staffEntries)if(ce){le=ce;break}if(!le||(se.setStartNote(le),!se.startNote))return}if(!se.endNote){let le;for(let ce=K.staffEntries.length-1;ce>=0;ce++)if(K.staffEntries[ce]){le=K.staffEntries[ce];break}if(se.setEndNote(le),!se.endNote)return}let re=ie.findGraphicalStaffEntryFromTimestamp(W);re||(re=ie.staffEntries[0]);let ae=K.findGraphicalStaffEntryFromTimestamp(q);if(ae||(ae=K.staffEntries[K.staffEntries.length-1]),se.setStartNote(re),te!==Z){se.endsOnDifferentStaffLine=!0;let le=Z.Measures[Z.Measures.length-1];le===void 0&&(le=K);const ce=le.staffEntries[le.staffEntries.length-1];se.setEndNote(ce);const he=te.ParentMusicSystem.Id-Z.ParentMusicSystem.Id;if(he>0)for(let pe=Z.ParentMusicSystem.Id;peQ+1&&(K=this.graphicalMusicSheet.getLastGraphicalMeasureFromIndex(G,!0));let ie;if(U.ParentEndMultiExpression?ie=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(U.ParentStartMultiExpression.SourceMeasureParent,G):(ie=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(U.ParentStartMultiExpression.SourceMeasureParent,G),ie||(ie=this.graphicalMusicSheet.MeasureList[Y][G])),ie.MeasureNumberQ||K.parentSourceMeasure.measureListIndexQ)return;let te=K.ParentStaffLine;if(te||(te=Z),K&&Z&&te){let se=!1;Z!==te&&(se=!0);const re=new VexFlowPedal(U,Z.PositionAndShape,!1,se);let ae=ie.findGraphicalStaffEntryFromTimestamp(W);ae||(ae=ie.staffEntries[0]);let le=K.findGraphicalStaffEntryFromTimestamp(q);if(le||(le=K.staffEntries[K.staffEntries.length-1]),!re.setStartNote(ae))return;if(te!==Z)if(re.pedalSymbol===MusicSymbol.PEDAL_SYMBOL){re.setEndNote(le),re.setEndMeasure(K),re.ReleaseText=" ",re.CalculateBoundingBox(),this.calculatePedalSkyBottomLine(re.startVfVoiceEntry,re.endVfVoiceEntry,re,Z);const ce=te.Measures[0],he=new VexFlowPedal(U,ce.PositionAndShape),pe=ce.staffEntries[0];if(!he.setStartNote(pe))return;he.setEndNote(le),re.setEndMeasure(K),te.Pedals.push(he),he.CalculateBoundingBox(),he.DepressText=" ",this.calculatePedalSkyBottomLine(he.startVfVoiceEntry,he.endVfVoiceEntry,he,te)}else{let ce=Z.Measures[Z.Measures.length-1];ce===void 0&&(ce=K);const he=ce.staffEntries[ce.staffEntries.length-1];re.setEndNote(he),re.setEndMeasure(K),re.ChangeEnd=!1;const pe=te.ParentMusicSystem.Id-Z.ParentMusicSystem.Id;if(pe>0){let me=1;for(let fe=Z.ParentMusicSystem.Id;feQ+1&&(K=this.graphicalMusicSheet.getLastGraphicalMeasureFromIndex(G,!0));let ie;if(U.ParentEndMultiExpression?ie=this.graphicalMusicSheet.getGraphicalMeasureFromSourceMeasureAndIndex(U.ParentStartMultiExpression.SourceMeasureParent,G):ie=this.graphicalMusicSheet.MeasureList[Y][G],ie.MeasureNumberQ||K.parentSourceMeasure.measureListIndexQ)return;let te=K.ParentStaffLine;if(te||(te=Z),K&&Z&&te){const re=new VexflowVibratoBracket(U,Z.PositionAndShape,ie.ParentStaff.isTab);let ae=ie.findGraphicalStaffEntryFromTimestamp(W);ae||(ae=ie.staffEntries[0]);let le=K.findGraphicalStaffEntryFromTimestamp(q);if(le||(le=K.staffEntries[K.staffEntries.length-1]),re.setStartNote(ae),te!==Z){let ce=Z.Measures[Z.Measures.length-1];ce===void 0&&(ce=K);const he=ce.staffEntries[ce.staffEntries.length-1];if(re.setEndNote(he),te.ParentMusicSystem.Id-Z.ParentMusicSystem.Id>0)for(let me=Z.ParentMusicSystem.Id;meK){const ce=K;K=Z,Z=ce}G.SkyBottomLineCalculator.updateBottomLineInRange(Z,K,ie+ae)}for(const ae of G.Pedals){const le=ae,ce=le.getPedalMarking(),he=ce.line+3+(G.StaffLines.length-1);if(ie>he){const pe=ce.render_options.text_margin_right/10;let me=le.startVfVoiceEntry.PositionAndShape.AbsolutePosition.x-pe,fe;le.setLine(ie-3-(G.StaffLines.length-1));let ge=(ne=le.endVfVoiceEntry)==null?void 0:ne.PositionAndShape;if(ge||(ge=le.endMeasure.PositionAndShape),le.EndSymbolPositionAndShape){const Se=q.render_options.glyph_point_size/20;fe=me+3.4;const Ee=ge.AbsolutePosition.x-pe,ve=Ee+1.5;G.SkyBottomLineCalculator.updateBottomLineInRange(me,fe,ie+Se),G.SkyBottomLineCalculator.updateBottomLineInRange(Ee,ve,ie+Se)}else{const Se=ce.render_options.bracket_height/10;if(ce.EndsStave)fe=ge.AbsolutePosition.x+ge.Size.width-pe;else switch(q.style){case W.BRACKET_OPEN_END:case W.BRACKET_OPEN_BOTH:case W.MIXED_OPEN_END:fe=ge.AbsolutePosition.x+ge.BorderRight-pe;break;default:fe=ge.AbsolutePosition.x+ge.BorderLeft-pe;break}const Ee=(re=(se=le.endVfVoiceEntry)==null?void 0:se.parentStaffEntry)==null?void 0:re.vfClefBefore;if(Ee&&(fe+=Ee.getWidth()/10),me>fe){const ve=me;me=fe,fe=ve}G.SkyBottomLineCalculator.updateBottomLineInRange(me,fe,ie+Se)}}}}calculateOctaveShiftSkyBottomLine(R,B,D,G){if(!B){log$2.warn("octaveshift: no endStaffEntry");return}let U=R.PositionAndShape.Size.width,W=B.PositionAndShape.Size.width;R.hasOnlyRests()?U=-U:U/=2,B.hasOnlyRests()?W*=2:W/=2,R===B&&(W*=2);const q=R.PositionAndShape.AbsolutePosition.x-U,Y=B.PositionAndShape.AbsolutePosition.x+W;D.PositionAndShape.Size.width=q-Y;const Q=D.getTextBracket(),Z=Q.font.size/10;if(Q.position===VF.TextBracket.Positions.TOP){const K=Math.ceil(G.SkyBottomLineCalculator.getSkyLineMinInRange(q,Y));if(K===1/0)return;Q.start.getStave().options.top_text_position=Math.abs(K),G.SkyBottomLineCalculator.updateSkyLineInRange(q,Y,K-Z*2)}else{const K=G.SkyBottomLineCalculator.getBottomLineMaxInRange(q,Y);if(K===1/0)return;Q.start.getStave().options.bottom_text_position=K,R.parentMeasure!==B.parentMeasure&&(Q.stop.getStave().options.bottom_text_position=K),G.SkyBottomLineCalculator.updateBottomLineInRange(q,Y,K+Z*1.5)}}calculateWordRepetitionInstruction(R,B){let D;const G=this.graphicalMusicSheet.MeasureList[B];for(let U=0,W=G.length;U{D.updateSkyBottomLine()})}catch{}}handleTiedGraphicalNote(R,B,D,G,U,W,q,Y){}handleBeam(R,B,D){R.parentVoiceEntry.parentStaffEntry.parentMeasure.handleBeam(R,B)}handleVoiceEntryLyrics(R,B,D){R.LyricsEntries.forEach((G,U)=>{const W=new GraphicalLyricEntry(U,B,this.rules.LyricsHeight,this.rules.StaffHeight);if(B.LyricsEntries.push(W),W.GraphicalLabel.setLabelPositionAndShapeBorders(),U.Word){const Y=U.Word.Syllables.indexOf(U);let Q=D.indexOf(U.Word);if(Q===-1&&(D.push(U.Word),Q=D.indexOf(U.Word)),this.graphicalLyricWords.length===0||Q>this.graphicalLyricWords.length-1){const Z=new GraphicalLyricWord(U.Word);W.ParentLyricWord=Z,Z.GraphicalLyricsEntries[Y]=W,this.graphicalLyricWords.push(Z)}else{const Z=this.graphicalLyricWords[Q];W.ParentLyricWord=Z,Z.GraphicalLyricsEntries[Y]=W,Z.isFilled()&&(D.splice(Q,1),this.graphicalLyricWords.splice(this.graphicalLyricWords.indexOf(Z),1))}}})}handleVoiceEntryOrnaments(R,B,D){}handleVoiceEntryArticulations(R,B,D){}handleVoiceEntryTechnicalInstructions(R,B,D){}handleTuplet(R,B,D){R.parentVoiceEntry.parentStaffEntry.parentMeasure.handleTuplet(R,B)}findIndexGraphicalSlurFromSlur(R,B){for(let D=0;D=0){const K=G[Z];K.staffEntries.indexOf(W)===-1&&K.staffEntries.push(W),G.splice(Z,1)}}}for(const q of G)q.staffEntries.indexOf(W)===-1&&q.staffEntries.push(W)}}for(const B of this.musicSystems)for(const D of B.StaffLines){const G=D.GraphicalSlurs.sort(GraphicalSlur.Compare);for(const U of G)U.slur.isCrossed()||U.calculateCurve(this.rules)}}}class MusicPartManager{constructor(R){this.musicSheet=R}reInit(){this.init()}init(){this.parts=this.musicSheet.Repetitions.slice(),this.sheetStart=this.musicSheet.SelectionStart=new Fraction$1(0,1),this.sheetEnd=this.musicSheet.SelectionEnd=this.musicSheet.SheetEndTimestamp,this.calcMapping()}getCurrentRepetitionTimestampTransform(R){let B;for(let D=this.timestamps.length-1;D>=0;D--)if(B=this.timestamps[D],R.gte(B.from))return B;return this.timestamps[0]}absoluteEnrolledToSheetTimestamp(R){if(this.timestamps.length===0)return R;const B=this.getCurrentRepetitionTimestampTransform(R);return Fraction$1.plus(R,Fraction$1.minus(B.to,B.from))}get Parts(){return this.parts}get MusicSheet(){return this.musicSheet}getIterator(R){return R?new MusicPartManagerIterator(this.musicSheet,R,void 0):new MusicPartManagerIterator(this.musicSheet,this.musicSheet.SelectionStart,this.musicSheet.SelectionEnd)}setSelectionStart(R){this.musicSheet.SelectionStart=R,this.musicSheet.SelectionEnd=void 0}setSelectionRange(R,B){this.musicSheet.SelectionStart=R!=null?R:this.sheetStart,this.musicSheet.SelectionEnd=B!=null?B:this.sheetEnd}calcMapping(){this.timestamps=[];const R=this.getIterator();let B=R.CurrentRepetition,D=new TimestampTransform(R.CurrentEnrolledTimestamp.clone(),R.CurrentSourceTimestamp.clone(),void 0,0);for(this.timestamps.push(D);!R.EndReached;){if(R.JumpOccurred||B!==R.CurrentRepetition){if(B=R.CurrentRepetition,R.backJumpOccurred){const G=R.JumpResponsibleRepetition;D.nextBackJump=R.CurrentEnrolledTimestamp,D.curRepetition=G,D.curRepetitionIteration=R.CurrentJumpResponsibleRepetitionIterationBeforeJump;for(let U=this.timestamps.length-2;U>=0&&!(G.AbsoluteTimestamp.gt(this.timestamps[U].to)||this.timestamps[U].curRepetition);U--)this.timestamps[U].nextBackJump=D.nextBackJump,this.timestamps[U].curRepetition=G,this.timestamps[U].curRepetitionIteration=D.curRepetitionIteration}D=new TimestampTransform(R.CurrentEnrolledTimestamp.clone(),R.CurrentSourceTimestamp.clone(),void 0,0),this.timestamps.push(D)}R.moveToNext()}}}class TimestampTransform{constructor(R,B,D,G){this.from=R,this.to=B,this.curRepetition=D,this.curRepetitionIteration=G,this.nextBackJump=void 0,this.nextForwardJump=void 0}}class PartListEntry{constructor(R){this.enrolledTimestamps=[],this.visible=!0,this.musicSheet=R}get Visible(){return this.visible}set Visible(R){this.visible=R}getFirstSourceMeasure(){return this.musicSheet.SourceMeasures[this.startIndex]}getLastSourceMeasure(){return this.musicSheet.SourceMeasures[this.endIndex]}}class SourceMusicPart extends PartListEntry{constructor(R,B,D){super(R),this.musicSheet=R,this.startIndex=B,this.endIndex=D}get MeasuresCount(){return this.endIndex-this.startIndex+1}get StartIndex(){return this.startIndex}get EndIndex(){return this.endIndex}get ParentRepetition(){return this.parentRepetition}set ParentRepetition(R){this.parentRepetition=R}get AbsoluteTimestamp(){return Fraction$1.createFromFraction(this.musicSheet.SourceMeasures[this.startIndex].AbsoluteTimestamp)}setStartIndex(R){this.startIndex=R}setEndIndex(R){this.endIndex=R}}class Repetition extends PartListEntry{constructor(R,B=!1){super(R),this.backwardJumpInstructions=[],this.endingParts=[],this.endingIndexDict={},this.userNumberOfRepetitions=0,this.visibles=[],this.fromWords=!1,this.repetitonIterationOrder=[],this.numberOfEndings=1,this.musicSheet2=R,this.virtualOverallRepetition=B}get BackwardJumpInstructions(){return this.backwardJumpInstructions}get EndingIndexDict(){return this.endingIndexDict}get EndingParts(){return this.endingParts}get Visibles(){return this.visibles}set Visibles(R){this.visibles=R}get DefaultNumberOfRepetitions(){let R=2;return this.virtualOverallRepetition&&(R=1),Math.max(R,Object.keys(this.endingIndexDict).length,this.checkRepetitionForMultipleLyricVerses())}get UserNumberOfRepetitions(){return this.userNumberOfRepetitions}set UserNumberOfRepetitions(R){this.userNumberOfRepetitions=R,this.repetitonIterationOrder=[];const B=this.userNumberOfRepetitions-this.NumberOfEndings;for(let D=1;D<=this.userNumberOfRepetitions;D++)D<=B?this.repetitonIterationOrder.push(1):this.repetitonIterationOrder.push(D-B)}getForwardJumpTargetForIteration(R){const B=this.repetitonIterationOrder[R-1];return this.endingIndexDict[B]?this.endingIndexDict[B].part.StartIndex:-1}getBackwardJumpTarget(){return this.startMarker.measureIndex}setEndingsStartIndex(R,B){const D=new RepetitionEndingPart(new SourceMusicPart(this.musicSheet2,B,B));this.endingParts.push(D);for(const G of R)try{this.endingIndexDict[G]=D,D.endingIndices.push(G),this.numberOfEndings0&&(G=1),U.Add(new Fraction$1(G,B)),U}}class MusicSheet$1{constructor(){this.idString="random idString, not initialized",this.sourceMeasures=[],this.repetitions=[],this.dynListStaves=[],this.timestampSortedDynamicExpressionsList=[],this.timestampSortedTempoExpressionsList=[],this.instrumentalGroups=[],this.instruments=[],this.musicPartManager=void 0,this.musicSheetErrors=new MusicSheetErrors,this.staves=[],this.playbackDataDict=new Dictionary,this.transpose=0,this.defaultStartTempoInBpm=0,this.drawErroneousMeasures=!1,this.hasBeenOpenedForTheFirstTime=!1,this.currentEnrolledPosition=new Fraction$1(0,1),this.soundTempos=new Map,this.playbackSettings=new PlaybackSettings,this.playbackSettings.rhythm=new Fraction$1(4,4,0,!1),this.userStartTempoInBPM=100,this.pageWidth=120,this.MusicPartManager=new MusicPartManager(this),this.hasBPMInfo=!1}get SoundTempos(){return this.soundTempos}set SoundTempos(R){this.soundTempos=R}static getIndexFromStaff(R){return R.idInMusicSheet}get CurrentKeyInstruction(){return this.currentKeyInstruction}set CurrentKeyInstruction(R){this.currentKeyInstruction=R}get SourceMeasures(){return this.sourceMeasures}set SourceMeasures(R){this.sourceMeasures=R}get Repetitions(){return this.repetitions}set Repetitions(R){this.repetitions=R}get DynListStaves(){return this.dynListStaves}get TimestampSortedTempoExpressionsList(){return this.timestampSortedTempoExpressionsList}get TimestampSortedDynamicExpressionsList(){return this.timestampSortedDynamicExpressionsList}get InstrumentalGroups(){return this.instrumentalGroups}get Parts(){return this.instruments}get Instruments(){return this.instruments}get SheetPlaybackSetting(){return this.playbackSettings}set SheetPlaybackSetting(R){this.playbackSettings=R}get DrawErroneousMeasures(){return this.drawErroneousMeasures}set DrawErroneousMeasures(R){this.drawErroneousMeasures=R}get HasBeenOpenedForTheFirstTime(){return this.hasBeenOpenedForTheFirstTime}set HasBeenOpenedForTheFirstTime(R){this.hasBeenOpenedForTheFirstTime=R}InitializeStartTempoInBPM(R){this.playbackSettings.BeatsPerMinute=R,this.userStartTempoInBPM=R}get DefaultStartTempoInBpm(){return this.defaultStartTempoInBpm}set DefaultStartTempoInBpm(R){this.defaultStartTempoInBpm=R,this.InitializeStartTempoInBPM(R)}get Path(){return this.path}set Path(R){this.path=R}get Staves(){return this.staves}get TitleString(){return this.title?this.title.text:""}set TitleString(R){this.Title=new Label(R)}get SubtitleString(){return this.subtitle?this.subtitle.text:""}set SubtitleString(R){this.Subtitle=new Label(R)}get ComposerString(){return this.composer?this.composer.text:""}set ComposerString(R){this.Composer=new Label(R)}get LyricistString(){return this.lyricist?this.lyricist.text:""}set LyricistString(R){this.Lyricist=new Label(R)}get Title(){return this.title}set Title(R){this.title=R}get Subtitle(){return this.subtitle}set Subtitle(R){this.subtitle=R}get Composer(){return this.composer}set Composer(R){this.composer=R}get Lyricist(){return this.lyricist}set Lyricist(R){this.lyricist=R}get Rules(){return this.rules||(log$2.debug("warning: sheet.Rules was undefined. Creating new EngravingRules."),this.rules=new EngravingRules),this.rules}set Rules(R){this.rules=R}get SheetErrors(){return this.musicSheetErrors}get PlaybackDataDict(){return this.playbackDataDict}get SelectionStart(){return this.selectionStart}set SelectionStart(R){this.selectionStart=R.clone(),this.currentEnrolledPosition=R.clone()}get SelectionEnd(){return this.selectionEnd}set SelectionEnd(R){this.selectionEnd=R}set HasBPMInfo(R){this.hasBPMInfo=R}get HasBPMInfo(){return this.hasBPMInfo}addMeasure(R){this.sourceMeasures.push(R),R.measureListIndex=this.sourceMeasures.length-1}checkForInstrumentWithNoVoice(){for(let R=0,B=this.instruments.length;R0){const R=this.TimestampSortedTempoExpressionsList[0];if(R.InstantaneousTempo)return R.InstantaneousTempo.TempoInBpm;if(R.ContinuousTempo)return R.ContinuousTempo.StartTempo}return this.userStartTempoInBPM}get Errors(){return this.musicSheetErrors.measureErrors}get FirstMeasureNumber(){try{return this.getFirstSourceMeasure().MeasureNumber}catch(R){return log$2.info("MusicSheet.FirstMeasureNumber: ",R),0}}get LastMeasureNumber(){try{return this.getLastSourceMeasure().MeasureNumber}catch(R){return log$2.info("MusicSheet.LastMeasureNumber: ",R),0}}get CurrentEnrolledPosition(){return this.currentEnrolledPosition.clone()}set CurrentEnrolledPosition(R){this.currentEnrolledPosition=R.clone()}get Transpose(){return this.transpose}set Transpose(R){this.transpose=R}get FullNameString(){return this.ComposerString+" "+this.TitleString}get IdString(){return this.idString}set IdString(R){this.idString=R}getEnrolledSelectionStartTimeStampWorkaround(){const R=this.MusicPartManager.getIterator(this.SelectionStart);return Fraction$1.createFromFraction(R.CurrentEnrolledTimestamp)}get SheetEndTimestamp(){const R=this.getLastSourceMeasure();return Fraction$1.plus(R.AbsoluteTimestamp,R.Duration)}getSourceMeasureFromTimeStamp(R){for(let B=0,D=this.sourceMeasures.length;B0&&G.Voices[0].Visible&&R.push(G)}return R}}MusicSheet$1.defaultTitle="[no title given]";class LyricWord{constructor(){this.syllables=[]}get Syllables(){return this.syllables}containsVoiceEntry(R){for(let B=0,D=this.Syllables.length;B=0&&(this.syllableIndex=U)}get Text(){return this.text}set Text(R){this.text=R}get Word(){return this.word}get Parent(){return this.parent}set Parent(R){this.parent=R}get VerseNumber(){return this.verseNumber}get SyllableIndex(){return this.syllableIndex}}class LyricsReader{constructor(R){this.openLyricWords={},this.musicSheet=R}addLyricEntry(R,B){var D,G;if(R){const U=R;for(let W=0,q=U.length;W0)for(let he=ae;he1&&(te=parseInt(re[1],10))}catch{const ae=ITextTranslation.translateText("ReaderErrorMessages/LyricVerseNumberError","Invalid lyric verse number");this.musicSheet.SheetErrors.pushMeasureError(ae);continue}}let se;if(Q==="single"||Q==="end"){if(this.openLyricWords[te]){this.currentLyricWord=this.openLyricWords[te];const re=this.currentLyricWord.Syllables.length;se=new LyricsEntry(K,te,this.currentLyricWord,B,re),this.currentLyricWord.Syllables.push(se),delete this.openLyricWords[te],this.currentLyricWord=void 0}else se=new LyricsEntry(K,te,void 0,B);se.extend=Y.element("extend")!==void 0}else if(Q==="begin")this.openLyricWords[te]&&(delete this.openLyricWords[te],this.currentLyricWord=void 0),this.currentLyricWord=new LyricWord,this.openLyricWords[te]=this.currentLyricWord,se=new LyricsEntry(K,te,this.currentLyricWord,B,0),this.currentLyricWord.Syllables.push(se);else if(Q==="middle")if(this.openLyricWords[te]){this.currentLyricWord=this.openLyricWords[te];const re=this.currentLyricWord.Syllables.length;se=new LyricsEntry(K,te,this.currentLyricWord,B,re),this.currentLyricWord.Syllables.push(se)}else se=new LyricsEntry(K,te,void 0,B);se&&(B.LyricsEntries[te]||(B.LyricsEntries.setValue(te,se),(G=(D=B.ParentSourceStaffEntry)==null?void 0:D.VerticalContainerParent)!=null&&G.ParentMeasure&&(B.ParentSourceStaffEntry.VerticalContainerParent.ParentMeasure.hasLyrics=!0)),B.ParentVoice.Parent.LyricVersesNumbers[te]||B.ParentVoice.Parent.LyricVersesNumbers.push(te))}}}catch{const Z=ITextTranslation.translateText("ReaderErrorMessages/LyricError","Error while reading lyric entry.");this.musicSheet.SheetErrors.pushMeasureError(Z);continue}}B.ParentVoice.Parent.LyricVersesNumbers=B.ParentVoice.Parent.LyricVersesNumbers.filter((W,q,Y)=>Y.indexOf(W)===q)}}}class Articulation{constructor(R,B){this.articulationEnum=R,this.placement=B}Equals(R){return R.articulationEnum===this.articulationEnum&&R.placement===this.placement}}class ArticulationReader{constructor(R){this.rules=R}getAccEnumFromString(R){switch(R){case"sharp":return AccidentalEnum.SHARP;case"flat":return AccidentalEnum.FLAT;case"natural":return AccidentalEnum.NATURAL;case"double-sharp":case"sharp-sharp":return AccidentalEnum.DOUBLESHARP;case"double-flat":case"flat-flat":return AccidentalEnum.DOUBLEFLAT;case"triple-sharp":return AccidentalEnum.TRIPLESHARP;case"triple-flat":return AccidentalEnum.TRIPLEFLAT;case"quarter-sharp":return AccidentalEnum.QUARTERTONESHARP;case"quarter-flat":return AccidentalEnum.QUARTERTONEFLAT;case"three-quarters-sharp":return AccidentalEnum.THREEQUARTERSSHARP;case"three-quarters-flat":return AccidentalEnum.THREEQUARTERSFLAT;case"slash-quarter-sharp":return AccidentalEnum.SLASHQUARTERSHARP;case"slash-sharp":return AccidentalEnum.SLASHSHARP;case"double-slash-flat":return AccidentalEnum.DOUBLESLASHFLAT;case"sori":return AccidentalEnum.SORI;case"koron":return AccidentalEnum.KORON;default:return AccidentalEnum.NONE}}addArticulationExpression(R,B){var D,G;if(R!==void 0&&R.elements().length>0){const U=R.elements();for(let W=0,q=U.length;W0&&B.Articulations[0].articulationEnum!==ArticulationEnum.staccato&&B.Articulations.splice(0,0,te),Q==="strongaccent"){const ne=(G=Y==null?void 0:Y.attribute("type"))==null?void 0:G.value;ne==="up"?te.articulationEnum=ArticulationEnum.marcatoup:ne==="down"&&(te.articulationEnum=ArticulationEnum.marcatodown)}if(Q==="detachedlegato"){const ne=new Articulation(ArticulationEnum.staccato,K),se=new Articulation(ArticulationEnum.tenuto,K);B.Articulations.push(ne,se)}if(!B.hasArticulation(te))switch(B.Articulations.push(te),te.articulationEnum){case ArticulationEnum.staccato:case ArticulationEnum.staccatissimo:B.DurationModifier=te;break;case ArticulationEnum.accent:case ArticulationEnum.strongaccent:B.VolumeModifier=te;break;default:break}}}catch(Z){const K="Invalid note articulation.";log$2.debug("addArticulationExpression",K,Z);return}}}}addFermata(R,B){var U;let D=ArticulationEnum.fermata;R.attributes().length>0&&R.attribute("type")&&R.attribute("type").value==="inverted"&&(D=ArticulationEnum.invertedfermata);let G=PlacementEnum.Above;((U=R.attribute("placement"))==null?void 0:U.value)==="below"&&(G=PlacementEnum.Below),B.Articulations.push(new Articulation(D,G))}addTechnicalArticulations(R,B,D){var q,Y;const G={bend:ArticulationEnum.bend,"down-bow":ArticulationEnum.downbow,"open-string":ArticulationEnum.naturalharmonic,"snap-pizzicato":ArticulationEnum.snappizzicato,stopped:ArticulationEnum.lefthandpizzicato,"up-bow":ArticulationEnum.upbow};for(const Q in G){if(!G.hasOwnProperty(Q))continue;const Z=G[Q],K=R.element(Q);if(K){let ie;((q=K.attribute("placement"))==null?void 0:q.value)==="above"&&(ie=PlacementEnum.Above),((Y=K.attribute("placement"))==null?void 0:Y.value)==="below"&&(ie=PlacementEnum.Below);const te=new Articulation(Z,ie);B.hasArticulation(te)||B.Articulations.push(te)}}const U=R.element("fingering");if(U){const Q=this.createTechnicalInstruction(U,D);Q.type=TechnicalInstructionType.Fingering,D.Fingering=Q,B.TechnicalInstructions.push(Q)}const W=R.element("string");if(W){const Q=this.createTechnicalInstruction(W,D);Q.type=TechnicalInstructionType.String,D.StringInstruction=Q,B.TechnicalInstructions.push(Q)}}createTechnicalInstruction(R,B){const D=new TechnicalInstruction;D.sourceNote=B,D.value=R.value;const G=R.attribute("placement");return this.rules.FingeringPositionFromXML&&(D.placement=this.getPlacement(G)),D}getPlacement(R,B=PlacementEnum.NotYetDefined){if(B!==PlacementEnum.NotYetDefined)return B;if(R)switch(R.value){case"above":return PlacementEnum.Above;case"below":return PlacementEnum.Below;case"left":return PlacementEnum.Left;case"right":return PlacementEnum.Right;default:return PlacementEnum.NotYetDefined}else return PlacementEnum.NotYetDefined}addOrnament(R,B){if(R){let D;const G={"delayed-inverted-turn":OrnamentEnum.DelayedInvertedTurn,"delayed-turn":OrnamentEnum.DelayedTurn,"inverted-mordent":OrnamentEnum.InvertedMordent,"inverted-turn":OrnamentEnum.InvertedTurn,mordent:OrnamentEnum.Mordent,"trill-mark":OrnamentEnum.Trill,turn:OrnamentEnum.Turn};for(const U in G){if(!G.hasOwnProperty(U))continue;const W=R.element(U);if(W){D=new OrnamentContainer(G[U]);const q=W.attribute("placement");q&&q.value==="below"&&(D.placement=PlacementEnum.Below)}}if(D){const U=R.elements("accidental-mark");if(U){let W=PlacementEnum.Below,q=AccidentalEnum.NONE;const Y=U;for(let Q=0,Z=Y.length;Q0&&(this.currentVoiceEntry.GraceVoiceEntriesBefore=this.graceVoiceEntriesTempList,this.graceVoiceEntriesTempList=[]))}finalizeReadingMeasure(){this.graceVoiceEntriesTempList.length>0&&this.currentNormalVoiceEntry!==void 0&&this.currentNormalVoiceEntry.GraceVoiceEntriesAfter.concat(this.graceVoiceEntriesTempList),this.graceVoiceEntriesTempList=[],this.pluginManager.processVoiceMeasureReadPlugins(this.currMeasureVoiceEntries,this.activeKey,this.activeRhythm),this.currMeasureVoiceEntries.length=0,this.openBeams.length>1&&this.handleOpenBeam()}read(R,B,D,G,U,W,q,Y,Q,Z,K,ie,te,ne,se,re,ae,le,ce,he,pe,me){this.currentStaffEntry=q,this.currentMeasure=Y;try{this.currentNote=W?this.addRestNote(R.element("rest"),B,G,U,te,ne,ce):this.addSingleNote(R,B,G,D,U,K,ie,te,ne,se,re,ae,le,ce,pe,me),this.currentNote.DotsXml=he;const fe=R.elements("lyric");this.lyricsReader!==void 0&&fe&&(this.lyricsReader.addLyricEntry(fe,this.currentVoiceEntry),this.voice.Parent.HasLyrics=!0);let ge=!1;const Se=R.element("notations");if(Se){this.articulationReader&&this.readArticulations(Se,this.currentVoiceEntry,this.currentNote);const Ee=Se.elements("slur");this.slurReader!==void 0&&Ee.length>0&&!this.currentNote.ParentVoiceEntry.IsGrace&&this.slurReader.addSlur(Ee,this.currentNote);const ve=Se.elements("tuplet");ve.length>0&&(this.openTupletNumber=this.addTuplet(R,ve),ge=!0);const xe=Se.element("arpeggiate");if(xe!==void 0){let Re;if(this.currentVoiceEntry.Arpeggio)Re=this.currentVoiceEntry.Arpeggio;else{let Pe=!1;for(const Ae of this.currentStaffEntry.VoiceEntries)if(Ae.Arpeggio){Pe=!0,Re=Ae.Arpeggio;break}if(!Pe){let Ae=ArpeggioType.ARPEGGIO_DIRECTIONLESS;const Le=xe.attribute("direction");if(Le)switch(Le.value){case"up":Ae=ArpeggioType.ROLL_UP;break;case"down":Ae=ArpeggioType.ROLL_DOWN;break;default:Ae=ArpeggioType.ARPEGGIO_DIRECTIONLESS}Re=new Arpeggio(this.currentVoiceEntry,Ae),this.currentVoiceEntry.Arpeggio=Re}}Re.addNote(this.currentNote)}const Me=Se.elements("tied");Me.length>0&&this.addTie(Me,Q,Z,TieTypes.SIMPLE);const ye=Se.elements("slide");ye.length>0&&this.addTie(ye,Q,Z,TieTypes.SLIDE);const we=Se.element("technical");if(we){const Re=we.elements("hammer-on");Re.length>0&&this.addTie(Re,Q,Z,TieTypes.HAMMERON);const Pe=we.elements("pull-off");Pe.length>0&&this.addTie(Pe,Q,Z,TieTypes.PULLOFF)}}R.element("time-modification")!==void 0&&!ge&&this.handleTimeModificationNode(R)}catch(fe){log$2.warn(fe);const ge=ITextTranslation.translateText("ReaderErrorMessages/NoteError","Ignored erroneous Note.");this.musicSheet.SheetErrors.pushMeasureError(ge),this.musicSheet.SheetErrors.pushMeasureError(fe)}return this.currentNote}checkForStaffEntryLink(R,B,D,G){const U=new StaffEntryLink(this.currentVoiceEntry);U.LinkStaffEntries.push(D),D.Link=U;const W=this.currentVoiceEntry.Timestamp.clone(),q=G.getVerticalContainerByTimestamp(W);return D=q.StaffEntries[R],D||(D=new SourceStaffEntry(q,B),q.StaffEntries[R]=D),D.VoiceEntries.push(this.currentVoiceEntry),U.LinkStaffEntries.push(D),D.Link=U,D}checkForOpenBeam(){this.openBeams.length>0&&this.currentNote&&this.handleOpenBeam()}checkOpenTies(){const R=this.openTieDict;for(const B in R)if(R.hasOwnProperty(B)){const D=R[B];Fraction$1.plus(D.StartNote.ParentStaffEntry.Timestamp,D.Duration).lt(D.StartNote.SourceMeasure.Duration)&&delete R[B]}}hasVoiceEntry(){return this.currentVoiceEntry!==void 0}readArticulations(R,B,D){const G=R.element("articulations");G&&this.articulationReader.addArticulationExpression(G,B);const U=R.element("fermata");U&&this.articulationReader.addFermata(U,B);const W=R.element("technical");W&&this.articulationReader.addTechnicalArticulations(W,B,D);const q=R.element("ornaments");q&&this.articulationReader.addOrnament(q,B)}addSingleNote(R,B,D,G,U,W,q,Y,Q,Z,K,ie,te,ne,se,re){let ae=0,le,ce=AccidentalEnum.NONE,he=NoteEnum.C,pe=NoteEnum.C,me=0,fe=0,ge,Se,Ee;const ve=R.elements();for(let Le=0,Ne=ve.length;Le0&&this.openBeams.last().ExtendedNoteList.push(ne),ne}addNoteInfo(R,B,D,G,U,W,q,Y,Q){R.NoteTypeXml=B,R.PrintObject=D,R.IsCueNote=G,R.NormalNotes=U,R.displayStepUnpitched=W,R.displayOctaveUnpitched=q,R.NoteheadColorXml=Y,R.NoteheadColor=Y}createBeam(R,B){var D;try{const G=R.element("beam");let U;if(G!==void 0&&G.hasAttributes&&(U=G.attribute("number")),U){let W=parseInt(U.value,10);const q=R.elements("beam"),Y=q[0].value;q&&(Y==="begin"?(W===((D=this.openBeams.last())==null?void 0:D.BeamNumber)?(this.beamNumberOffset++,W+=this.beamNumberOffset):this.openBeams.last()&&this.handleOpenBeam(),this.openBeams.push(new Beam(W,this.beamNumberOffset))):W+=this.beamNumberOffset);let Q=!1;if(!(W>0&&W<=this.openBeams.length)||!this.openBeams[W-1]){log$2.debug("[OSMD] invalid beamnumber");return}for(let Z=0,K=this.openBeams[W-1].Notes.length;Z1){let G=R.element("time-modification");G&&(G=G.element("actual-notes"));const U=B;for(let W=0,q=U.length;W1&&this.openTupletNumber--),this.tupletDict[K]=te;const se=[];se.push(this.currentNote),te.Notes.push(se),te.Fractions.push(this.getTupletNoteDurationFromType(R)),this.currentNote.NoteTuplet=te,this.openTupletNumber=K}else if(Z.value==="stop"){let K=1;Y.attribute("number")&&(K=parseInt(Y.attribute("number").value,10));const ie=this.tupletDict[K];if(ie){const te=Y.attribute("placement");te&&(te.value==="below"?ie.tupletLabelNumberPlacement=PlacementEnum.Below:ie.tupletLabelNumberPlacement=PlacementEnum.Above,ie.PlacementFromXml=!0);const ne=[];if(ne.push(this.currentNote),ie.Notes.push(ne),!ie.PlacementFromXml){let se=!1;for(const re of ie.Notes){for(const ae of re)if(!ae.isRest()){ae.StemDirectionXml===StemDirectionType.Down?ie.tupletLabelNumberPlacement=PlacementEnum.Below:ie.tupletLabelNumberPlacement=PlacementEnum.Above,se=!0;break}if(se)break}}ie.Fractions.push(this.getTupletNoteDurationFromType(R)),this.currentNote.NoteTuplet=ie,delete this.tupletDict[K],Object.keys(this.tupletDict).length===0?this.openTupletNumber=0:Object.keys(this.tupletDict).length>1&&this.openTupletNumber--}}}}}else if(B[0]){const G=B[0];if(G.hasAttributes){const U=G.attribute("type").value;let W=1;G.attribute("number")&&(W=parseInt(G.attribute("number").value,10));const q=isNaN(W),Y=G.attribute("bracket");if(Y&&Y.value==="yes"&&(D=!0),U==="start"){let Q=0,Z=R.element("time-modification");if(Z&&(Z=Z.element("actual-notes")),Z&&(Q=parseInt(Z.value,10),isNaN(Q))){const ne=ITextTranslation.translateText("ReaderErrorMessages/TupletNoteDurationError","Invalid tuplet note duration.");throw this.musicSheet.SheetErrors.pushMeasureError(ne),new MusicSheetReadingException(ne)}q&&(this.openTupletNumber++,W=this.openTupletNumber);let K=this.tupletDict[W];K||(K=this.tupletDict[W]=new Tuplet(Q,D),K.tupletLabelNumberPlacement=PlacementEnum.Above);const ie=G.attribute("placement");ie&&(ie.value==="below"?K.tupletLabelNumberPlacement=PlacementEnum.Below:K.tupletLabelNumberPlacement=PlacementEnum.Above,K.PlacementFromXml=!0);const te=[];te.push(this.currentNote),K.Notes.push(te),K.Fractions.push(this.getTupletNoteDurationFromType(R)),this.currentNote.NoteTuplet=K,this.openTupletNumber=W}else if(U==="stop"){q&&(W=this.openTupletNumber);const Q=this.tupletDict[this.openTupletNumber];if(Q){const Z=G.attribute("placement");Z&&(Z.value==="below"?Q.tupletLabelNumberPlacement=PlacementEnum.Below:Q.tupletLabelNumberPlacement=PlacementEnum.Above,Q.PlacementFromXml=!0);const K=[];if(K.push(this.currentNote),Q.Notes.push(K),!Q.PlacementFromXml){let ie=!1;for(const te of Q.Notes){for(const ne of te)if(!ne.isRest()){ne.StemDirectionXml===StemDirectionType.Down?Q.tupletLabelNumberPlacement=PlacementEnum.Below:Q.tupletLabelNumberPlacement=PlacementEnum.Above,ie=!0;break}if(ie)break}}Q.Fractions.push(this.getTupletNoteDurationFromType(R)),this.currentNote.NoteTuplet=Q,Object.keys(this.tupletDict).length===0?this.openTupletNumber=0:Object.keys(this.tupletDict).length>1&&this.openTupletNumber--,delete this.tupletDict[W]}}}}return this.openTupletNumber}handleTimeModificationNode(R){if(this.tupletDict[this.openTupletNumber])try{const B=this.tupletDict[this.openTupletNumber],D=CollectionUtil.last(B.Notes),G=D[0].ParentVoiceEntry;let U;G.Timestamp.Equals(this.currentVoiceEntry.Timestamp)?U=D:(U=[],B.Notes.push(U),B.Fractions.push(this.getTupletNoteDurationFromType(R))),U.push(this.currentNote),this.currentNote.NoteTuplet=B}catch(B){const D=ITextTranslation.translateText("ReaderErrorMessages/TupletNumberError","Invalid tuplet number.");throw this.musicSheet.SheetErrors.pushMeasureError(D),B}else if(this.currentVoiceEntry.Notes.length>0){const B=this.currentVoiceEntry.Notes[0];if(B.NoteTuplet){const D=B.NoteTuplet;CollectionUtil.last(D.Notes).push(this.currentNote),this.currentNote.NoteTuplet=D}}}addTie(R,B,D,G){if(R){if(R.length===1){const U=R[0];if(U!==void 0&&U.attributes()){const W=this.getTieDirection(U),q=U.attribute("type").value;try{if(q==="start"){const Y=this.findCurrentNoteInTieDict(this.currentNote);Y<0&&delete this.openTieDict[Y];const Q=this.getNextAvailableNumberForTie(),Z=new Tie(this.currentNote,G);this.openTieDict[Q]=Z,Z.TieNumber=Q,Z.TieDirection=W}else if(q==="stop"){const Y=this.findCurrentNoteInTieDict(this.currentNote),Q=this.openTieDict[Y];Q&&(Q.AddNote(this.currentNote),delete this.openTieDict[Y])}}catch{const Q=ITextTranslation.translateText("ReaderErrorMessages/TieError","Error while reading tie.");this.musicSheet.SheetErrors.pushMeasureError(Q)}}}else if(R.length===2){const U=this.findCurrentNoteInTieDict(this.currentNote);if(U>=0){const W=this.openTieDict[U];W.AddNote(this.currentNote);for(const q of R)if(q.attribute("type").value==="start"){const Q=this.getTieDirection(q);W.NoteIndexToTieDirection[W.Notes.length-1]=Q}}}}}getTieDirection(R){let B=PlacementEnum.NotYetDefined;const D=R.attribute("placement");D&&(D.value==="above"?B=PlacementEnum.Above:D.value==="below"&&(B=PlacementEnum.Below));const G=R.attribute("orientation");return G&&(G.value==="over"?B=PlacementEnum.Above:G.value==="under"&&(B=PlacementEnum.Below)),B}getNextAvailableNumberForTie(){const R=Object.keys(this.openTieDict);if(R.length===0)return 1;R.sort((B,D)=>+B-+D);for(let B=0;B0?G.RealValue>0?(Q=Fraction$1.multiply(Fraction$1.minus(G,U),Q),this.directionTimestamp=Fraction$1.plus(Q,G)):this.directionTimestamp=Fraction$1.createFromFraction(Q):this.offsetDivisions<0&&(G.RealValue>0?(Q=Fraction$1.multiply(Fraction$1.minus(G,U),Q),this.directionTimestamp=Fraction$1.minus(G,Q)):this.directionTimestamp=Fraction$1.createFromFraction(Q));const Z=R.attribute("placement");if(Z)try{const K=Z.value;K==="below"?this.placement=PlacementEnum.Below:K==="above"&&(this.placement=PlacementEnum.Above)}catch(K){const ie=ITextTranslation.translateText("ReaderErrorMessages/ExpressionPlacementError","Invalid expression placement -> set to default.");log$2.debug("ExpressionReader.readExpressionParameters",ie,K),this.musicSheet.SheetErrors.pushMeasureError(ie),this.placement=PlacementEnum.Below}if(this.placement===PlacementEnum.NotYetDefined)try{const K=R.element("direction-type");if(K){const ie=K.element("dynamics");if(ie){const re=ie.attribute("default-y");re&&this.readExpressionPlacement(re,"read dynamics y pos")}const te=K.element("wedge");if(te){const re=te.attribute("default-y");re&&this.readExpressionPlacement(re,"read wedge y pos")}const ne=K.element("words");if(ne){const re=ne.attribute("default-y");re&&this.readExpressionPlacement(re,"read words y pos")}const se=K.element("rehearsal");if(se){const re=se.attribute("default-y");re&&this.readExpressionPlacement(re,"read rehearsal pos")}}}catch(K){const ie=ITextTranslation.translateText("ReaderErrorMessages/ExpressionPlacementError","Invalid expression placement -> set to default.");log$2.debug("ExpressionReader.readExpressionParameters",ie,K),this.musicSheet.SheetErrors.pushMeasureError(ie),this.placement=PlacementEnum.Below}this.placement===PlacementEnum.NotYetDefined&&(B.Staves.length>1?this.placement=PlacementEnum.Below:B.HasLyrics?this.placement=PlacementEnum.Above:this.placement=PlacementEnum.Below)}read(R,B,D,G=void 0,U=0){let W=!1,q=!1;const Y=R.element("sound");if(Y){const K=Y.attribute("tempo"),ie=Y.attribute("dynamics");if(K){const te=K.value.match(/^(\d+)(\.\d+)?$/);(te==null?void 0:te.length)>0?this.soundTempo=Math.round(Number.parseFloat(K.value)):(log$2.info("invalid xml tempo: "+K.value),this.soundTempo=100),B.TempoInBPM=this.soundTempo,this.musicSheet.DefaultStartTempoInBpm===0&&(this.musicSheet.DefaultStartTempoInBpm=this.soundTempo),this.musicSheet.HasBPMInfo=!0,W=!0}if(ie){const te=ie.value.match(/\d+/);this.soundDynamic=te!==void 0?parseInt(te[0],10):100,q=!0}}const Q=R.element("direction-type");if(!Q)return;let Z=Q.element("metronome");if(Z){B.metronomeNoteIndex=U;const K=Z.element("beat-unit"),ie=Z.element("beat-unit-dot")!==void 0,te=Z.element("per-minute");if(K!==void 0&&te){Z.hasAttributes&&Z.attribute("default-x")!==void 0&&(this.directionTimestamp=Fraction$1.createFromFraction(D));const se=parseFloat(te.value);this.createNewTempoExpressionIfNeeded(B);const re=new InstantaneousTempoExpression(void 0,this.placement,this.staffNumber,se,this.currentMultiTempoExpression,!0);re.parentMeasure=B,this.soundTempo=se,B.TempoInBPM=this.soundTempo*(ie?1.5:1),this.musicSheet.DefaultStartTempoInBpm===0&&(this.musicSheet.DefaultStartTempoInBpm=this.soundTempo),B.MeasureNumberXML===1&&this.musicSheet.SourceMeasures.length===0&&(this.musicSheet.DefaultStartTempoInBpm=this.soundTempo),this.musicSheet.HasBPMInfo=!0,re.dotted=ie,re.beatUnit=K.value,this.currentMultiTempoExpression.addExpression(re,""),this.currentMultiTempoExpression.CombinedExpressionsText="test"}return}if(Z=Q.element("dynamics"),Z){const K=R.element("notations")!==void 0;this.interpretInstantaneousDynamics(Z,B,D,K);return}if(Z=Q.element("words"),Z){const K=Q.elements("words");let ie="";for(const te of K)ie+=te.value;if(Z.value=ie,W||isSpeedKeyword(Z.value)||isSpeedHiddenKeyword(Z.value)){this.createNewTempoExpressionIfNeeded(B),this.currentMultiTempoExpression.CombinedExpressionsText=Z.value,(isSpeedKeyword(Z.value)||isSpeedHiddenKeyword(Z.value))&&(Z.value=void 0);const te=new InstantaneousTempoExpression(Z.value,this.placement,this.staffNumber,this.soundTempo,this.currentMultiTempoExpression);this.currentMultiTempoExpression.addExpression(te,"")}else q||this.interpretWords(Z,B,D);return}if(Z=Q.element("wedge"),Z){this.interpretWedge(Z,B,G,B.MeasureNumber);return}if(Z=Q.element("rehearsal"),Z){this.interpretRehearsalMark(Z,B,D,B.MeasureNumber);return}}closeOpenExpressions(R,B){for(const D of this.openContinuousDynamicExpressions)this.createNewMultiExpressionIfNeeded(R,D.NumberXml,B),this.closeOpenContinuousDynamic(D,R,B);this.openContinuousTempoExpression&&this.closeOpenContinuousTempo(Fraction$1.plus(R.AbsoluteTimestamp,B))}addOctaveShift(R,B,D){var q;let G=1;const U=R.element("staff");if(U)try{G=parseInt(U.value,10)}catch(Y){const Q=ITextTranslation.translateText("ReaderErrorMessages/OctaveShiftStaffError","Invalid octave shift staff number -> set to default");this.musicSheet.SheetErrors.pushMeasureError(Q),G=1,log$2.debug("ExpressionReader.addOctaveShift",Q,Y)}const W=R.element("direction-type");if(W){const Y=W.element("octave-shift"),Q=this.readPlacement(R);if(Y!==void 0&&Y.hasAttributes)try{const Z=this.readNumber(Y);if(Y.attribute("size")){const K=parseInt(Y.attribute("size").value,10);let ie=0;K===8?ie=1:K===15&&(ie=2);let te=(q=Y.attribute("type"))==null?void 0:q.value;if(te||(Q===PlacementEnum.Above?te="down":Q===PlacementEnum.Below&&(te="up")),te==="up"||te==="down"){const ne=new OctaveShift(te,ie);ne.StaffNumber=G,this.getMultiExpression=this.createNewMultiExpressionIfNeeded(B,Z),this.getMultiExpression.OctaveShiftStart=ne,ne.ParentStartMultiExpression=this.getMultiExpression,this.openOctaveShift=ne}else if(te==="stop"){if(this.openOctaveShift){this.getMultiExpression=this.createNewMultiExpressionIfNeeded(B,this.openOctaveShift.numberXml,D);const ne=this.getMultiExpression;ne.OctaveShiftEnd=this.openOctaveShift,this.openOctaveShift.ParentEndMultiExpression=this.getMultiExpression,this.openOctaveShift=void 0}}else te||log$2.debug("octave-shift missing type in xml")}}catch(Z){const K=ITextTranslation.translateText("ReaderErrorMessages/OctaveShiftError","Error while reading octave shift.");this.musicSheet.SheetErrors.pushMeasureError(K),log$2.debug("ExpressionReader.addOctaveShift",K,Z)}}}addPedalMarking(R,B,D){var U,W,q,Y;const G=R.element("direction-type");if(G){const Q=G.element("pedal");if(Q!==void 0&&Q.hasAttributes){let Z=!1,K=!1;try{switch(((U=Q.attribute("line"))==null?void 0:U.value)==="yes"?K=!0:((W=Q.attribute("line"))==null?void 0:W.value)==="no"&&(K=!1,Z=!0),((q=Q.attribute("sign"))==null?void 0:q.value)==="yes"?Z=!0:((Y=Q.attribute("sign"))==null?void 0:Y.value)==="no"&&(Z=!1,K=!0),Q.attribute("type").value){case"start":this.openPedal&&this.openPedal.IsLine&&this.endOpenPedal(B),this.createNewMultiExpressionIfNeeded(B,-1),this.openPedal=new Pedal(K,Z),this.getMultiExpression.PedalStart=this.openPedal,this.openPedal.ParentStartMultiExpression=this.getMultiExpression;break;case"stop":this.openPedal&&this.endOpenPedal(B);break;case"change":this.openPedal&&this.openPedal.IsLine&&(this.openPedal.ChangeEnd=!0,this.createNewMultiExpressionIfNeeded(B,-1),this.getMultiExpression.PedalEnd=this.openPedal,this.openPedal.ParentEndMultiExpression=this.getMultiExpression,this.createNewMultiExpressionIfNeeded(B,-1),this.openPedal=new Pedal(K,Z),this.openPedal.ChangeBegin=!0,this.getMultiExpression.PedalStart=this.openPedal,this.openPedal.ParentStartMultiExpression=this.getMultiExpression);break;case"continue":break;default:break}}catch(ie){const te=ITextTranslation.translateText("ReaderErrorMessages/PedalError","Error while reading pedal.");this.musicSheet.SheetErrors.pushMeasureError(te),log$2.debug("ExpressionReader.addPedalMarking",te,ie)}}}}endOpenPedal(R){this.createNewMultiExpressionIfNeeded(R,-1),this.getMultiExpression.PedalEnd=this.openPedal,this.openPedal.ParentEndMultiExpression=this.getMultiExpression,this.openPedal=void 0}addWavyLine(R,B,D,G){if(R&&R.hasAttributes)try{switch(R.attribute("type").value){case"start":this.createNewMultiExpressionIfNeeded(B,-1),this.openWavyLine=new WavyLine(this.placement),this.getMultiExpression.WavyLineStart=this.openWavyLine,this.openWavyLine.ParentStartMultiExpression=this.getMultiExpression;break;case"stop":this.openWavyLine&&(this.createNewMultiExpressionIfNeeded(B,-1,D),this.getMultiExpression.WavyLineEnd=this.openWavyLine,this.openWavyLine.ParentEndMultiExpression=this.getMultiExpression,this.openWavyLine=void 0);break;case"continue":break;default:break}}catch(U){const W=ITextTranslation.translateText("ReaderErrorMessages/WavyLineError","Error while reading wavy-line.");this.musicSheet.SheetErrors.pushMeasureError(W),log$2.debug("ExpressionReader.addWavyLine",W,U)}}initialize(){this.placement=PlacementEnum.NotYetDefined,this.soundTempo=0,this.soundDynamic=0,this.offsetDivisions=0}readPlacement(R){var D;const B=(D=R.attribute("placement"))==null?void 0:D.value;return B==="above"?PlacementEnum.Above:B==="below"?PlacementEnum.Below:PlacementEnum.NotYetDefined}readExpressionPlacement(R,B){try{const D=parseInt(R.value,10);D<0?this.placement=PlacementEnum.Below:D>0&&(this.placement=PlacementEnum.Above)}catch(D){log$2.debug("ExpressionReader.readExpressionParameters",B,D)}}interpretInstantaneousDynamics(R,B,D,G){if(R.hasElements){R.hasAttributes&&R.attribute("default-x")&&(this.directionTimestamp=Fraction$1.createFromFraction(D));const U=this.readNumber(R);let W=R.elements()[0].name;if(W==="other-dynamics"&&(W=R.elements()[0].value),W){G?this.createNewMultiExpressionIfNeeded(B,U,Fraction$1.createFromFraction(D)):this.createNewMultiExpressionIfNeeded(B,U);const q=new InstantaneousDynamicExpression(W,this.soundDynamic,this.placement,this.staffNumber,B);q.InMeasureTimestamp=D.clone(),this.getMultiExpression.addExpression(q,""),this.initialize(),this.activeInstantaneousDynamic?this.activeInstantaneousDynamic.DynEnum=q.DynEnum:this.activeInstantaneousDynamic=new InstantaneousDynamicExpression(W,0,PlacementEnum.NotYetDefined,1,B)}}}interpretWords(R,B,D){const G=R.value;let U;const W=R.attribute("font-style");if(W&&W.value==="italic"&&(U=FontStyles.Italic),G.length>0){if(R.hasAttributes&&R.attribute("default-x")&&(this.directionTimestamp=Fraction$1.createFromFraction(D)),this.checkIfWordsNodeIsRepetitionInstruction(G))return;this.fillMultiOrTempoExpression(G,B,D,U),this.initialize()}}readNumber(R){var G;let B=1;const D=(G=R.attribute("number"))==null?void 0:G.value;return D&&(B=Number.parseInt(D,10)),B}interpretWedge(R,B,D,G){var W,q;R!==void 0&&R.hasAttributes&&R.attribute("default-x")&&(this.directionTimestamp=Fraction$1.createFromFraction(D));const U=this.readNumber(R);((q=(W=R.attribute("type"))==null?void 0:W.value)==null?void 0:q.toLowerCase())==="stop"?this.createNewMultiExpressionIfNeeded(B,U,D):this.createNewMultiExpressionIfNeeded(B,U),this.addWedge(R,B,D),this.initialize()}interpretRehearsalMark(R,B,D,G){B.rehearsalExpression=new RehearsalExpression(R.value,this.placement)}createNewMultiExpressionIfNeeded(R,B,D=void 0){D||(D=this.directionTimestamp);let G=this.getMultiExpression;return(!G||G&&(G.SourceMeasureParent!==R||G.numberXml!==B||G.SourceMeasureParent===R&&G.Timestamp!==D))&&(this.getMultiExpression=G=new MultiExpression(R,Fraction$1.createFromFraction(D)),R.StaffLinkedExpressions[this.globalStaffIndex].push(G)),G}createNewTempoExpressionIfNeeded(R){(!this.currentMultiTempoExpression||this.currentMultiTempoExpression.SourceMeasureParent!==R||this.currentMultiTempoExpression.Timestamp!==this.directionTimestamp)&&(this.currentMultiTempoExpression=new MultiTempoExpression(R,Fraction$1.createFromFraction(this.directionTimestamp)),R.TempoExpressions.push(this.currentMultiTempoExpression))}addWedge(R,B,D){if(R!==void 0&&R.hasAttributes){const G=this.readNumber(R),U=R.attribute("type").value.toLowerCase();try{if(U==="crescendo"||U==="diminuendo"){const W=new ContinuousDynamicExpression(ContDynamicEnum[U],this.placement,this.staffNumber,B,this.activeInstantaneousDynamic,G);this.openContinuousDynamicExpressions.push(W);let q=this.getMultiExpression;q||(q=this.createNewMultiExpressionIfNeeded(B,G)),q.StartingContinuousDynamic=W,W.StartMultiExpression=q,this.activeInstantaneousDynamic!==void 0&&this.activeInstantaneousDynamic.StaffNumber===W.StaffNumber&&(this.activeInstantaneousDynamic=void 0)}else if(U==="stop")for(const W of this.openContinuousDynamicExpressions)W.NumberXml===G&&W.NumberXml===G&&this.closeOpenContinuousDynamic(W,B,D)}catch(W){const q="ReaderErrorMessages/WedgeError, Error while reading Crescendo / Diminuendo.";this.musicSheet.SheetErrors.pushMeasureError(q),log$2.debug("ExpressionReader.addWedge",q,W)}}}fillMultiOrTempoExpression(R,B,D,G){if(!R)return;const U=R.trim();this.createExpressionFromString("",U,B,D,R,G)}createExpressionFromString(R,B,D,G,U,W){if(InstantaneousTempoExpression.isInputStringInstantaneousTempo(B)||ContinuousTempoExpression.isInputStringContinuousTempo(B)){if(D.TempoExpressions.length>0)for(let Z=0,K=D.TempoExpressions.length;Z0)for(let Z=0,K=D.TempoExpressions.length;Z0&&!this.hasDigit(B)&&this.globalStaffIndex>0){if(ie.EntriesList[0].label.indexOf(B)>=0)return!1;break}}let Y=TextAlignmentEnum.CenterBottom;this.musicSheet.Rules.CompactMode&&(Y=TextAlignmentEnum.LeftBottom);const Q=new UnknownExpression(B,this.placement,Y,this.staffNumber);return Q.fontStyle=W,q.addExpression(Q,R),!1}closeOpenContinuousDynamic(R,B,D){if(!R)return;const G=R.NumberXml;R.EndMultiExpression=this.createNewMultiExpressionIfNeeded(B,G,D),R.StartMultiExpression.EndingContinuousDynamic=R,this.openContinuousDynamicExpressions=this.openContinuousDynamicExpressions.filter(U=>U!==R)}closeOpenContinuousTempo(R){this.openContinuousTempoExpression.AbsoluteEndTimestamp=R,this.openContinuousTempoExpression=void 0}checkIfWordsNodeIsRepetitionInstruction(R){return R=R.trim().toLowerCase(),R==="coda"||R==="tocoda"||R==="to coda"||R==="fine"||R==="d.c."||R==="dacapo"||R==="da capo"||R==="d.s."||R==="dalsegno"||R==="dal segno"||R==="d.c. al fine"||R==="d.s. al fine"||R==="d.c. al coda"||R==="d.s. al coda"}hasDigit(R){return/\d/.test(R)}}class Slur{constructor(){}get StartNote(){return this.startNote}set StartNote(R){this.startNote=R}get EndNote(){return this.endNote}set EndNote(R){this.endNote=R}startNoteHasMoreStartingSlurs(){if(!this.startNote)return!1;for(let R=0,B=this.startNote.NoteSlurs.length;R0){const G=D.attribute("type").value;let U=1;try{D.attribute("number")&&(U=parseInt(D.attribute("number").value,10))}catch(Q){log$2.debug("VoiceGenerator.addSlur number: ",Q)}let W=PlacementEnum.NotYetDefined;const q=D.attribute("placement");q&&q.value&&(q.value==="above"?W=PlacementEnum.Above:q.value==="below"&&(W=PlacementEnum.Below));const Y=D.attribute("orientation");if(Y&&Y.value&&(Y.value==="over"?W=PlacementEnum.Above:Y.value==="under"&&(W=PlacementEnum.Below)),G==="start"){let Q=this.openSlurDict[U];Q||(Q=new Slur,this.openSlurDict[U]=Q),Q.StartNote=B,Q.PlacementXml=W}else if(G==="stop"){const Q=this.openSlurDict[U];Q&&(Q.EndNote=B,B.checkForDoubleSlur(Q)||(B.NoteSlurs.push(Q),Q.StartNote.NoteSlurs.push(Q)),delete this.openSlurDict[U])}}}}catch{const G=ITextTranslation.translateText("ReaderErrorMessages/SlurError","Error while reading slur.");this.musicSheet.SheetErrors.pushMeasureError(G)}}}class InstrumentReader{constructor(R,B,D,G){this.voiceGeneratorsDict={},this.staffMainVoiceGeneratorDict={},this.divisions=0,this.currentClefNumber=1,this.currentXmlMeasureIndex=0,this.activeKeyHasBeenInitialized=!1,this.abstractInstructions=[],this.openChordSymbolContainers=[],this.soundTempos=new Map,this.xmlNotes=[],this.repetitionInstructionReader=B,this.xmlMeasureList=D,this.musicSheet=G.GetMusicSheet,this.instrument=G,this.activeClefs=new Array(G.Staves.length),this.activeClefsHaveBeenInitialized=new Array(G.Staves.length);for(let U=0;U=this.xmlMeasureList.length)return!1;this.currentMeasure=R,this.followingMultirestMeasures=Math.max(this.followingMultirestMeasures-1,0),this.inSourceMeasureInstrumentIndex=this.musicSheet.getGlobalStaffIndexOfFirstStaff(this.instrument),this.repetitionInstructionReader&&this.repetitionInstructionReader.prepareReadingMeasure(R,this.currentXmlMeasureIndex);let G=new Fraction$1(0,1),U=new Fraction$1(0,1),W=!1;this.maxTieNoteFraction=new Fraction$1(0,1);let q=!1;const Y=[];try{const ce=this.xmlMeasureList[this.currentXmlMeasureIndex],he=ce.elements();if(R.Rules.UseXMLMeasureNumbers&&!Number.isInteger(R.MeasureNumberXML)){const me=parseInt((Q=ce.attribute("number"))==null?void 0:Q.value,10);Number.isInteger(me)&&(R.MeasureNumberXML=me)}let pe;for(let me=0;me0&&(pe=he[me-1]),fe.name==="print"){const ge=fe.attribute("new-system");(ge==null?void 0:ge.value)==="yes"&&(R.printNewSystemXml=!0);const Se=fe.attribute("new-page");(Se==null?void 0:Se.value)==="yes"&&(R.printNewPageXml=!0)}else if(fe.name==="note"){fe.element("grace")||(this.xmlNotes.push(fe),Y.push(fe));let ge=!0;((Z=fe.attribute("print-object"))==null?void 0:Z.value)==="no"&&(ge=!1);let Se=1;this.instrument.Staves.length>1&&fe.element("staff")&&(Se=parseInt(fe.element("staff").value,10),isNaN(Se)&&(log$2.debug("InstrumentReader.readNextXmlMeasure.get staff number"),Se=1)),this.currentStaff=this.instrument.Staves[Se-1];const Ee=fe.element("chord")!==void 0;if(fe.element("voice")){const De=parseInt(fe.element("voice").value,10);this.currentVoiceGenerator=this.getOrCreateVoiceGenerator(De,Se-1)}else(!Ee||!this.currentVoiceGenerator)&&(this.currentVoiceGenerator=this.getOrCreateVoiceGenerator(1,Se-1));let ve=0,xe=new Fraction$1(0,1),Me=2,ye,we=!1;if(fe.element("duration")){if(ve=parseInt(fe.element("duration").value,10),isNaN(ve)){const De=ITextTranslation.translateText("ReaderErrorMessages/NoteDurationError","Invalid Note Duration.");this.musicSheet.SheetErrors.pushMeasureError(De),log$2.debug("InstrumentReader.readNextXmlMeasure",De);continue}else if(xe=new Fraction$1(ve,4*this.divisions),ve===0?xe=this.getNoteDurationFromTypeNode(fe):ye=this.getNoteDurationFromTypeNode(fe),fe.element("time-modification")){xe=this.getNoteDurationForTuplet(fe);const De=fe.element("time-modification");De!=null&&De.element("normal-notes")&&(Me=parseInt(De.element("normal-notes").value,10)),we=!0}}const Re=fe.element("rest")!==void 0,Pe=fe.element("notations"),Ae=fe.element("grace")!==void 0||ve===0||Ee&&q;let Le=!1,Ne=!1;if(Ae){const De=fe.element("duration"),et=fe.element("grace");et&&et.attributes()&&et.attribute("slash")&&et.attribute("slash").value==="yes"&&(Le=!0),De||(xe=this.getNoteDurationFromTypeNode(fe));const it=fe.element("notations");it&&it.element("slur")&&(Ne=!0)}let Ie=!1;fe.element("cue")&&(Ie=!0);const Ve=fe.element("type");let qe=NoteType.UNDEFINED;if(Ve){const De=Ve.attribute("size");(De==null?void 0:De.value)==="cue"&&(Ie=!0),qe=NoteTypeHandler.StringToNoteType(Ve.value)}let Ge=StemDirectionType.Undefined,He;const Qe=fe.element("stem");if(Qe){switch(Qe.value){case"down":Ge=StemDirectionType.Down;break;case"up":Ge=StemDirectionType.Up;break;case"double":Ge=StemDirectionType.Double;break;case"none":Ge=StemDirectionType.None;break;default:Ge=StemDirectionType.Undefined}const De=Qe.attribute("color");De&&(He=this.parseXmlColor(De.value))}let We=0,Ze="",lt="";if(Pe){const De=Pe.element("ornaments");if(De){const it=De.element("tremolo");if(it){const Je=it.attribute("type");if(Ze=Je.value,Je){const ct=parseInt(it.value,10);ct>0&&(We=ct),(Je.value==="start"||Je.value==="stop")&&(xe=new Fraction$1(parseInt(fe.element("duration").value,10),4*this.divisions))}}const rt=De.elements("wavy-line");if(rt!==void 0)for(const Je of rt){const ct=this.expressionReaders[this.readExpressionStaffNumber(fe)-1];ct&&(ct.readExpressionParameters(Je,this.instrument,this.divisions,G,U,this.currentMeasure.MeasureNumber,!1),ct.addWavyLine(Je,this.currentMeasure,G,U))}}const et=Pe.element("glissando");et&&et.attribute("type").value==="start"&&(lt="start")}let ht;const yt=fe.element("notehead");if(yt){const De=yt.attribute("color");De&&(ht=this.parseXmlColor(De.value))}let Fe;const Te=fe.attribute("color");Te&&(Fe=this.parseXmlColor(Te.value),ht||(ht=Fe),He||(He=Fe));let je=G.clone();Ee&&(je=U.clone()),this.currentStaffEntry=this.currentMeasure.findOrCreateStaffEntry(je,this.inSourceMeasureInstrumentIndex+Se-1,this.currentStaff).staffEntry,(!this.currentVoiceGenerator.hasVoiceEntry()||!Ee&&!Ae&&!q||Ae&&!q||Ae&&!Ee||!Ae&&q)&&this.currentVoiceGenerator.createVoiceEntry(je,this.currentStaffEntry,this.activeKey,this.ActiveRhythm,Ae,Le,Ne),!Ae&&!Ee&&(U=G.clone(),G.Add(xe)),Ee&&this.currentStaffEntry!==void 0&&this.currentStaffEntry.ParentStaff!==this.currentStaff&&(this.currentStaffEntry=this.currentVoiceGenerator.checkForStaffEntryLink(this.inSourceMeasureInstrumentIndex+Se-1,this.currentStaff,this.currentStaffEntry,this.currentMeasure));const Ke=this.currentStaffEntry!==void 0&&this.currentStaffEntry.Timestamp!==void 0&&this.currentStaffEntry.Timestamp.Equals(new Fraction$1(0,1))&&!this.currentStaffEntry.hasNotes();this.saveAbstractInstructionList(this.instrument.Staves.length,Ke),this.openChordSymbolContainers.length!==0&&(this.currentStaffEntry.ChordContainers=this.openChordSymbolContainers,this.openChordSymbolContainers=[]),this.activeRhythm,!we&&!Ae&&(xe=new Fraction$1(ve,4*this.divisions));const Oe=fe.elements("dot").length;if(this.currentVoiceGenerator.read(fe,xe,ye,qe,Me,Re,this.currentStaffEntry,this.currentMeasure,B,this.maxTieNoteFraction,Ee,D,ge,Ie,Ae,Ge,We,He,ht,Oe,Ze,lt),Pe!==void 0&&Pe.element("dynamics")){const De=this.expressionReaders[this.readExpressionStaffNumber(fe)-1];De&&(De.readExpressionParameters(fe,this.instrument,this.divisions,G,U,this.currentMeasure.MeasureNumber,!1),De.read(fe,this.currentMeasure,U,void 0,Y.length))}q=Ae}else if(fe.name==="attributes"){const ge=fe.element("divisions");if(ge&&(this.divisions=parseInt(ge.value,10),isNaN(this.divisions))){const ve=ITextTranslation.translateText("ReaderErrorMessages/DivisionError","Invalid divisions value at Instrument: ");if(log$2.debug("InstrumentReader.readNextXmlMeasure",ve),this.divisions=this.readDivisionsFromNotes(),this.divisions>0)this.musicSheet.SheetErrors.push(ve+this.instrument.Name);else throw W=!0,new MusicSheetReadingException(ve+this.instrument.Name)}if(!fe.element("divisions")&&this.divisions===0&&this.currentXmlMeasureIndex===0){const ve=ITextTranslation.translateText("ReaderErrorMessages/DivisionError","Invalid divisions value at Instrument: ");if(this.divisions=this.readDivisionsFromNotes(),this.divisions>0)this.musicSheet.SheetErrors.push(ve+this.instrument.Name);else throw W=!0,new MusicSheetReadingException(ve+this.instrument.Name)}this.addAbstractInstruction(fe,D,pe,G.clone()),G.Equals(new Fraction$1(0,1))&&this.isAttributesNodeAtBeginOfMeasure(this.xmlMeasureList[this.currentXmlMeasureIndex],fe)&&this.saveAbstractInstructionList(this.instrument.Staves.length,!0),this.isAttributesNodeAtEndOfMeasure(this.xmlMeasureList[this.currentXmlMeasureIndex],fe)&&this.saveClefInstructionAtEndOfMeasure();const Se=fe.elements("staff-details");for(const ve of Se){const xe=ve.element("staff-lines");if(xe){let Me=1;const ye=ve.attribute("number");ye&&(Me=parseInt(ye.value,10)),this.instrument.Staves[Me-1].StafflineCount=parseInt(xe.value,10)}}const Ee=fe.element("measure-style");if(Ee){const ve=Ee.element("multiple-rest");if(ve){const xe=ve.value;let Me=0;try{Me=Number.parseInt(xe,10),R.multipleRestMeasures!==void 0&&Me!==R.multipleRestMeasures?R.multipleRestMeasures=0:(R.multipleRestMeasures=Me,this.currentMultirestStartMeasure=R,this.followingMultirestMeasures=Me+1)}catch(ye){console.log("multirest parse error: "+ye)}}}}else if(fe.name==="forward"){const ge=parseInt(fe.element("duration").value,10);G.Add(new Fraction$1(ge,4*this.divisions))}else if(fe.name==="backup"){const ge=parseInt(fe.element("duration").value,10);G.Sub(new Fraction$1(ge,4*this.divisions)),G.IsNegative()&&(G=new Fraction$1(0,1)),U.Sub(new Fraction$1(ge,4*this.divisions)),U.IsNegative()&&(U=new Fraction$1(0,1))}else if(fe.name==="direction"){const ge=fe.elements("direction-type"),Se=fe.element("direction-type");let Ee=Math.min(1,G.RealValue);this.activeRhythm!==void 0&&this.activeRhythm.Rhythm&&(Ee/=this.activeRhythm.Rhythm.RealValue);let ve=!1;if(this.repetitionInstructionReader&&(ve=this.repetitionInstructionReader.handleRepetitionInstructionsFromWordsOrSymbols(Se,Ee)),!ve){let xe=this.expressionReaders[0];const Me=this.readExpressionStaffNumber(fe)-1;if(MeRe==null?void 0:Re.toLocaleLowerCase()).includes((K=ye.value)==null?void 0:K.toLocaleLowerCase())&&(this.currentGradualChangeMeasure=this.currentMeasure,this.currentMeasure.speedInfo={startWord:(ie=ye.value)==null?void 0:ie.toLocaleLowerCase(),startXmlNoteIndex:Y.length,endXmlNoteIndex:0,resetXmlNoteIndex:0,startMeasureListIndex:this.currentXmlMeasureIndex,endMeasureListIndex:0,resetMeasureListIndex:0},this.xmlNotes=[]),ye.value.startsWith(GRADIENT_SPEED_CLOSE_TAG)&&((te=this.currentGradualChangeMeasure)==null?void 0:te.speedInfo)&&(this.currentGradualChangeMeasure.speedInfo={...this.currentGradualChangeMeasure.speedInfo,endXmlNoteIndex:this.xmlNotes.length,endMeasureListIndex:this.currentXmlMeasureIndex}),((ne=ye.value)==null?void 0:ne.toLocaleLowerCase())==="a tempo".toLocaleLowerCase()&&((se=this.currentGradualChangeMeasure)==null?void 0:se.speedInfo))){const{endXmlNoteIndex:Re,resetXmlNoteIndex:Pe,endMeasureListIndex:Ae}=this.currentGradualChangeMeasure.speedInfo;Pe===0&&(this.currentGradualChangeMeasure.speedInfo={...this.currentGradualChangeMeasure.speedInfo,endXmlNoteIndex:Re||this.xmlNotes.length,endMeasureListIndex:Ae||this.currentXmlMeasureIndex,resetXmlNoteIndex:this.xmlNotes.length,resetMeasureListIndex:this.currentXmlMeasureIndex}),this.xmlNotes=[]}if(ge.find(we=>we.element("metronome"))&&((re=this.currentGradualChangeMeasure)==null?void 0:re.speedInfo)){const{endXmlNoteIndex:we,resetXmlNoteIndex:Re,endMeasureListIndex:Pe}=this.currentGradualChangeMeasure.speedInfo;Re===0&&(this.currentGradualChangeMeasure.speedInfo={...this.currentGradualChangeMeasure.speedInfo,endXmlNoteIndex:we||this.xmlNotes.length,endMeasureListIndex:Pe||this.currentXmlMeasureIndex,resetXmlNoteIndex:this.xmlNotes.length,resetMeasureListIndex:this.currentXmlMeasureIndex}),this.xmlNotes=[]}xe.readExpressionParameters(fe,this.instrument,this.divisions,G,U,this.currentMeasure.MeasureNumber,!1),xe.read(fe,this.currentMeasure,G,U.clone(),Y.length)}}}else if(fe.name==="barline"){this.repetitionInstructionReader&&this.repetitionInstructionReader.handleLineRepetitionInstructions(fe)&&(this.currentMeasure.HasEndLine=!0);const ge=fe.attribute("location");if(me===he.length-1||ge&&ge.value==="right"){const Ee=(ae=fe.element("bar-style"))==null?void 0:ae.value;if(Ee&&(this.currentMeasure.endingBarStyleXml=Ee,this.currentMeasure.endingBarStyleEnum=SystemLinesEnumHelper.xmlBarlineStyleToSystemLinesEnum(Ee),(le=this.currentGradualChangeMeasure)!=null&&le.speedInfo)){const{endXmlNoteIndex:ve,resetXmlNoteIndex:xe,endMeasureListIndex:Me}=this.currentGradualChangeMeasure.speedInfo;xe===0&&(this.currentGradualChangeMeasure.speedInfo={...this.currentGradualChangeMeasure.speedInfo,endXmlNoteIndex:ve||this.xmlNotes.length,endMeasureListIndex:Me||this.currentXmlMeasureIndex,resetXmlNoteIndex:this.xmlNotes.length,resetMeasureListIndex:this.currentXmlMeasureIndex}),this.currentGradualChangeMeasure=void 0,this.xmlNotes=[]}}}else if(fe.name==="sound")try{if(fe.attribute("tempo")){const ge=parseFloat(fe.attribute("tempo").value);fe.element("offset")&&(this.soundTempos.has(this.currentXmlMeasureIndex)||this.soundTempos.set(this.currentXmlMeasureIndex,[]),this.soundTempos.get(this.currentXmlMeasureIndex).push(ge)),this.currentXmlMeasureIndex===0&&(this.musicSheet.DefaultStartTempoInBpm=ge,this.musicSheet.HasBPMInfo=!0)}}catch(ge){log$2.debug("InstrumentReader.readTempoInstruction",ge)}else fe.name==="harmony"&&this.openChordSymbolContainers.push(ChordSymbolReader.readChordSymbol(fe,this.musicSheet,this.activeKey))}for(const me in this.voiceGeneratorsDict)this.voiceGeneratorsDict.hasOwnProperty(me)&&this.voiceGeneratorsDict[me].checkForOpenBeam();if(this.currentXmlMeasureIndex===this.xmlMeasureList.length-1){for(let me=0;me{this.voiceGeneratorsDict[me].finalizeReadingMeasure()}),this.musicSheet.HasBPMInfo?R.TempoInBPM===0&&this.previousMeasure&&(this.currentMeasure.TempoInBPM=this.previousMeasure.TempoInBPM):this.currentMeasure.TempoInBPM=120,this.currentMeasure.TempoInBPM||(this.currentMeasure.TempoInBPM=this.musicSheet.DefaultStartTempoInBpm)}catch(ce){if(W)throw new MusicSheetReadingException(ce.Message);const he=ITextTranslation.translateText("ReaderErrorMessages/MeasureError","Error while reading Measure.");this.musicSheet.SheetErrors.pushMeasureError(he),log$2.debug("InstrumentReader.readNextXmlMeasure",he,ce)}return this.previousMeasure=this.currentMeasure,this.currentXmlMeasureIndex+=1,!0}parseXmlColor(R){if(!!R)return R.length===7?R:R.length===9?"#"+R.substr(3):void 0}doCalculationsAfterDurationHasBeenSet(){for(const R in this.voiceGeneratorsDict)this.voiceGeneratorsDict.hasOwnProperty(R)&&this.voiceGeneratorsDict[R].checkOpenTies()}getOrCreateVoiceGenerator(R,B){const D=this.instrument.Staves[B];let G=this.voiceGeneratorsDict[R];if(G)D.Voices.indexOf(G.GetVoice)===-1&&D.Voices.push(G.GetVoice);else{const U=this.staffMainVoiceGeneratorDict[B];U?(G=new VoiceGenerator(this.pluginManager,D,R,this.slurReader,U.GetVoice),D.Voices.push(G.GetVoice),this.voiceGeneratorsDict[R]=G):(G=new VoiceGenerator(this.pluginManager,D,R,this.slurReader),D.Voices.push(G.GetVoice),this.voiceGeneratorsDict[R]=G,this.staffMainVoiceGeneratorDict[B]=G)}return G}createExpressionGenerators(R){this.expressionReaders=new Array(R);for(let B=0;B0?B=this.musicSheet.SourceMeasures[0]:B=this.currentMeasure;const D=new ClefInstruction(ClefEnum.G,0,2);let G;B.FirstInstructionsStaffEntries[R]?(G=B.FirstInstructionsStaffEntries[R],G.removeFirstInstructionOfTypeClefInstruction()):(G=new SourceStaffEntry(void 0,void 0),B.FirstInstructionsStaffEntries[R]=G),D.Parent=G,G.Instructions.splice(0,0,D)}createDefaultKeyInstruction(){let R;this.musicSheet.SourceMeasures.length>0?R=this.musicSheet.SourceMeasures[0]:R=this.currentMeasure;const B=new KeyInstruction(void 0,0,KeyEnum.major);for(let D=this.inSourceMeasureInstrumentIndex;D0&&D[G-1].name==="backup")return!0;let U=-1;for(let W=0;W0||U<0}isAttributesNodeAtEndOfMeasure(R,B){const D=R.elements().slice();let G=0;for(let W=0;WU}getNoteDurationFromTypeNode(R){const B=R.element("type");if(B){const D=B.value;return NoteTypeHandler.getNoteDurationFromType(D)}return new Fraction$1(0,4*this.divisions)}addAbstractInstruction(R,B,D,G){if(R.element("divisions")&&R.elements().length===1)return;const U=R.element("transpose");if(U){const Y=U.element("chromatic");Y&&(this.instrument.PlaybackTranspose=parseInt(Y.value,10))}const W=R.elements("clef");let q;if(W.length>0)for(let Y=0,Q=W.length;Y using default clef line."),this.musicSheet.SheetErrors.pushMeasureError(q),ie=2,log$2.debug("InstrumentReader.addAbstractInstruction",q,ce)}const re=Z.element("sign");if(re)try{K=ClefEnum[re.value],ClefInstruction.isSupportedClef(K)||(q=ITextTranslation.translateText("ReaderErrorMessages/ClefError","Unsupported clef found -> using default clef."),this.musicSheet.SheetErrors.pushMeasureError(q),K=ClefEnum.G,ie=2),K===ClefEnum.TAB&&(ne=-1)}catch(ce){q=ITextTranslation.translateText("ReaderErrorMessages/ClefError","Invalid clef found -> using default clef."),this.musicSheet.SheetErrors.pushMeasureError(q),K=ClefEnum.G,ie=2,log$2.debug("InstrumentReader.addAbstractInstruction",q,ce)}const ae=Z.element("clef-octave-change");if(ae)try{ne=parseInt(ae.value,10)}catch{q=ITextTranslation.translateText("ReaderErrorMessages/ClefOctaveError","Invalid clef octave found -> using default clef octave."),this.musicSheet.SheetErrors.pushMeasureError(q),ne=0}if(Z.hasAttributes&&Z.attribute("number"))try{te=parseInt(Z.attribute("number").value,10),te>this.currentClefNumber&&(te=this.currentClefNumber),this.currentClefNumber=te+1}catch{q=ITextTranslation.translateText("ReaderErrorMessages/ClefError","Invalid clef found -> using default clef."),this.musicSheet.SheetErrors.pushMeasureError(q),te=1,this.currentClefNumber=te+1}const le=new ClefInstruction(K,ne,ie);this.abstractInstructions.push([te,le,G])}if(R.element("key")!==void 0&&this.instrument.MidiInstrumentId!==MidiInstrument.Percussion){let Y=0;const Q=R.element("key").element("fifths");if(Q)try{Y=parseInt(Q.value,10)}catch(te){q=ITextTranslation.translateText("ReaderErrorMessages/KeyError","Invalid key found -> set to default."),this.musicSheet.SheetErrors.pushMeasureError(q),Y=0,log$2.debug("InstrumentReader.addAbstractInstruction",q,te)}let Z=KeyEnum.none,K=R.element("key");if(K&&(K=K.element("mode")),K)try{Z=KeyEnum[K.value]}catch(te){q=ITextTranslation.translateText("ReaderErrorMessages/KeyError","Invalid key found -> set to default."),this.musicSheet.SheetErrors.pushMeasureError(q),Z=KeyEnum.major,log$2.debug("InstrumentReader.addAbstractInstruction",q,te)}const ie=new KeyInstruction(void 0,Y,Z);this.abstractInstructions.push([1,ie,G])}if(R.element("time")){const Y=R.element("time");let Q=RhythmSymbolEnum.NONE,Z=!0;if(Y!==void 0&&Y.hasAttributes){const ae=Y.attribute("symbol");ae&&(ae.value==="common"?Q=RhythmSymbolEnum.COMMON:ae.value==="cut"&&(Q=RhythmSymbolEnum.CUT));const le=Y.attribute("print-object");le&&le.value==="no"&&(Z=!1)}let K=0,ie=0;const te=Y&&Y.element("senza-misura")!==void 0,ne=R.elements("time"),se=[],re=[];for(let ae=0,le=ne.length;ae0&&re!==void 0&&se.length===re.length){const le=se.length,ce=new Array(le);let he=0;for(let pe=0;pe set to default."),this.musicSheet.SheetErrors.pushMeasureError(q),K=4,ie=4,log$2.debug("InstrumentReader.addAbstractInstruction",q,le)}const ae=new RhythmInstruction(new Fraction$1(K,ie,0,!1),Q);ae.PrintObject=Z,this.abstractInstructions.push([1,ae,G])}}}saveAbstractInstructionList(R,B){for(let D=this.abstractInstructions.length-1;D>=0;D--){const G=this.abstractInstructions[D],U=G[0],W=G[1],q=G[2];if(W instanceof ClefInstruction){const Y=W;if(this.currentXmlMeasureIndex===0||U<=this.activeClefs.length&&Y!==this.activeClefs[U-1])if(!B&&this.currentStaffEntry!==void 0&&!this.currentStaffEntry.hasNotes()&&U-1===this.instrument.Staves.indexOf(this.currentStaffEntry.ParentStaff)){const Q=Y,Z=this.currentStaffEntry;if(q&&Math.abs(q.RealValue-Z.Timestamp.RealValue)>.01)continue;Q.Parent=Z,Z.removeFirstInstructionOfTypeClefInstruction(),Z.Instructions.push(Q),this.activeClefs[U-1]=Y,this.abstractInstructions.splice(D,1)}else if(B){if(q.RealValue!==0)continue;let Q;if(this.currentMeasure){const Z=Y,K=this.inSourceMeasureInstrumentIndex+U-1,ie=this.currentMeasure.FirstInstructionsStaffEntries[K];if(this.currentXmlMeasureIndex===0)if(!ie)Q=new SourceStaffEntry(void 0,void 0),this.currentMeasure.FirstInstructionsStaffEntries[K]=Q,Z.Parent=Q,Q.Instructions.push(Z),this.activeClefsHaveBeenInitialized[U-1]=!0;else if(this.currentMeasure.FirstInstructionsStaffEntries[K]!==void 0&&!(ie.Instructions[0]instanceof ClefInstruction))Q=ie,Z.Parent=Q,Q.removeFirstInstructionOfTypeClefInstruction(),Q.Instructions.splice(0,0,Z),this.activeClefsHaveBeenInitialized[U-1]=!0;else{const te=new SourceStaffEntry(void 0,void 0);this.currentMeasure.LastInstructionsStaffEntries[K]=te,Z.Parent=te,te.Instructions.push(Z)}else if(this.activeClefsHaveBeenInitialized[U-1]){let te=this.previousMeasure;this.followingMultirestMeasures>0&&this.currentMeasure.Rules.RenderMultipleRestMeasures&&(te=this.currentMultirestStartMeasure);const ne=new SourceStaffEntry(void 0,void 0);te.LastInstructionsStaffEntries[K]=ne,Z.Parent=ne,ne.Instructions.push(Z)}else{const te=this.musicSheet.SourceMeasures[0];te.FirstInstructionsStaffEntries[K]?(Q=te.FirstInstructionsStaffEntries[K],Q.removeFirstInstructionOfTypeClefInstruction()):Q=new SourceStaffEntry(void 0,void 0),Z.Parent=Q,Q.Instructions.splice(0,0,Z),this.activeClefsHaveBeenInitialized[U-1]=!0}this.activeClefs[U-1]=Y,this.abstractInstructions.splice(D,1)}}else{let Q;const Z=this.activeRhythm.Rhythm;Z.RealValue>0&&q.RealValue/Z.RealValue>.9&&(this.currentMeasure.LastInstructionsStaffEntries[U-1]||(this.currentMeasure.LastInstructionsStaffEntries[U-1]=new SourceStaffEntry(void 0,this.instrument.Staves[U-1])),Q=this.currentMeasure.LastInstructionsStaffEntries[U-1]),Q&&(Y.Parent=Q,Q.Instructions.push(Y),this.activeClefs[U-1]=Y,this.abstractInstructions.splice(D,1))}else U<=this.activeClefs.length&&Y===this.activeClefs[U-1]&&this.abstractInstructions.splice(D,1)}if(W instanceof KeyInstruction){const Y=W;if(!this.activeKey||this.activeKey.Key!==Y.Key){this.activeKey=Y,this.abstractInstructions.splice(D,1);let Q;if(this.activeKeyHasBeenInitialized?Q=this.currentMeasure:(this.activeKeyHasBeenInitialized=!0,this.currentXmlMeasureIndex>0?Q=this.musicSheet.SourceMeasures[0]:Q=this.currentMeasure),Q)for(let Z=this.inSourceMeasureInstrumentIndex;Z=0;R--){const B=this.abstractInstructions[R][0],D=this.abstractInstructions[R][1];if(D instanceof ClefInstruction){const G=D;if(!this.activeClefs[B-1]||G.ClefType!==this.activeClefs[B-1].ClefType||G.ClefType===this.activeClefs[B-1].ClefType&&G.Line!==this.activeClefs[B-1].Line){const U=new SourceStaffEntry(void 0,void 0);this.currentMeasure.LastInstructionsStaffEntries[this.inSourceMeasureInstrumentIndex+B-1]=U;const W=G;W.Parent=U,U.Instructions.push(W),this.activeClefs[B-1]=G,this.abstractInstructions.splice(R,1)}}}}getNoteDurationForTuplet(R){let B=new Fraction$1(0,1);const D=this.getNoteDurationFromTypeNode(R);if(R.element("time-modification")){const G=R.element("time-modification");if(G&&G.element("actual-notes")!==void 0&&G.element("normal-notes")){const U=G.element("actual-notes"),W=G.element("normal-notes");if(U!==void 0&&W){const q=parseInt(U.value,10),Y=parseInt(W.value,10);B=new Fraction$1(Y*D.Numerator,q*D.Denominator)}}}return B}readExpressionStaffNumber(R){let B=1;if(R.element("staff")){const D=R.element("staff");if(D)try{B=parseInt(D.value,10)}catch(G){const U=ITextTranslation.translateText("ReaderErrorMessages/ExpressionStaffError","Invalid Expression staff number -> set to default.");this.musicSheet.SheetErrors.pushMeasureError(U),B=1,log$2.debug("InstrumentReader.readExpressionStaffNumber",U,G)}}return B}readDivisionsFromNotes(){let R=0,B=this.currentXmlMeasureIndex,D=!1;for(;!D;){const G=this.xmlMeasureList[B].elements();for(let U=0,W=G.length;U0){D=!0;break}}if(R===0&&(B++,B===this.xmlMeasureList.length)){const U=ITextTranslation.translateText("ReaderErrorMEssages/DivisionsError","Invalid divisions value at Instrument: ");throw new MusicSheetReadingException(U+this.instrument.Name)}}return R}}const _SubInstrument=class{constructor(F){this.parentInstrument=F,this.fixedKey=-1,this.name=this.parseMidiInstrument(this.parentInstrument.Name),this.midiInstrumentID=_SubInstrument.midiInstrument[this.name],this.volume=1}get ParentInstrument(){return this.parentInstrument}static isPianoInstrument(F){return F===MidiInstrument.Acoustic_Grand_Piano||F===MidiInstrument.Bright_Acoustic_Piano||F===MidiInstrument.Electric_Grand_Piano||F===MidiInstrument.Electric_Piano_1||F===MidiInstrument.Electric_Piano_2}setMidiInstrument(F){this.midiInstrumentID=_SubInstrument.midiInstrument[this.parseMidiInstrument(F)]}parseMidiInstrument(F){try{if(F){let R=F.toLowerCase().trim();R=R.replace(/\s+/g,"_");for(const B in _SubInstrument.midiInstrument)if(R.indexOf(B)!==-1)return B}if(this.parentInstrument.Name){let R=this.parentInstrument.Name.toLowerCase().trim();R=R.replace(/\s+/g,"_");for(const B in _SubInstrument.midiInstrument)if(R.indexOf(B)!==-1)return B}}catch{log$2.error("Error parsing MIDI Instrument. Default to Grand Piano.")}return"unnamed"}};let SubInstrument=_SubInstrument;SubInstrument.midiInstrument={alto_saxophone:MidiInstrument.Alto_Sax,baritone_saxophone:MidiInstrument.Baritone_Sax,horn_in_f:MidiInstrument.French_Horn,english_horn:MidiInstrument.English_Horn,euphonium:MidiInstrument.Euphonium,clarinet_in_bb:MidiInstrument.clarinet_in_bb,clarinet_in_eb:MidiInstrument.clarinet_in_eb,clarinet:MidiInstrument.Clarinet,alto_clarinet:MidiInstrument.Alto_Clarinet,bass_clarinet:MidiInstrument.Bass_Clarinet,bassoon:MidiInstrument.Bassoon,bass_trombone:MidiInstrument.Bass_Trombone,alt:MidiInstrument.Synth_Voice,alto:MidiInstrument.Synth_Voice,banjo:MidiInstrument.Banjo,bariton:MidiInstrument.Synth_Voice,baritone:MidiInstrument.Synth_Voice,bass:MidiInstrument.Synth_Voice,blockfl\u00F6te:MidiInstrument.Recorder,brass:MidiInstrument.Trombone,bratsche:MidiInstrument.Viola,cello:MidiInstrument.Cello,contrabass:MidiInstrument.Contrabass,drums:MidiInstrument.Percussion,flute:MidiInstrument.Flute,fl\u00F6te:MidiInstrument.Flute,frenchhorn:MidiInstrument.French_Horn,gitarre:MidiInstrument.Acoustic_Guitar_nylon,guitar:MidiInstrument.Acoustic_Guitar_nylon,harfe:MidiInstrument.Orchestral_Harp,harp:MidiInstrument.Orchestral_Harp,klarinette:MidiInstrument.Clarinet,klavier:MidiInstrument.Acoustic_Grand_Piano,kontrabass:MidiInstrument.Contrabass,oboe:MidiInstrument.Oboe,organ:MidiInstrument.Church_Organ,orgel:MidiInstrument.Church_Organ,orgue:MidiInstrument.Church_Organ,percussion:MidiInstrument.Synth_Drum,\u5C0F\u519B\u9F13:MidiInstrument.Synth_Drum,snare_drum:MidiInstrument.Synth_Drum,bass_drum:MidiInstrument.Synth_Drum,side_drum:MidiInstrument.Synth_Drum,piano:MidiInstrument.Acoustic_Grand_Piano,piccolo:MidiInstrument.Piccolo,posaune:MidiInstrument.Trombone,recorder:MidiInstrument.Recorder,sax:MidiInstrument.Tenor_Sax,schlagwerk:MidiInstrument.Percussion,schlagzeug:MidiInstrument.Percussion,sopran:MidiInstrument.Synth_Voice,steeldrum:MidiInstrument.Steel_Drums,streicher:MidiInstrument.String_Ensemble_1,strings:MidiInstrument.String_Ensemble_1,tenor:MidiInstrument.Synth_Voice,tpt:MidiInstrument.Trumpet,trombone:MidiInstrument.Trombone,trompete:MidiInstrument.Trumpet,trumpet:MidiInstrument.Trumpet,tuba:MidiInstrument.Tuba,unnamed:MidiInstrument.Acoustic_Grand_Piano,viola:MidiInstrument.Viola,violin:MidiInstrument.Violin,"violon-c":MidiInstrument.Cello,"violon.":MidiInstrument.Violin,voice:MidiInstrument.Synth_Voice,woodblock:MidiInstrument.Woodblock,alto_clarinet_in_eb:MidiInstrument.AltoClarinetInEb,trumpet_in_bb:MidiInstrument.TrumpetInBb,tenor_saxophone:MidiInstrument.TenorSaxophone};class StringUtil{static StringContainsSeparatedWord(R,B,D=!1){return new RegExp("( |^)"+B+"([ .]|$)",D?"i":void 0).test(R)}}class RepetitionInstructionReader{set MusicSheet(R){this.musicSheet=R,this.xmlMeasureList=new Array(this.musicSheet.Instruments.length),this.repetitionInstructions=[]}prepareReadingMeasure(R,B){this.currentMeasureIndex=B}handleLineRepetitionInstructions(R){let B=!1;if(R.elements().length>0){let D="",G=!1,U="",W="",q="";const Y=[],Q=R.element("bar-style");Q&&(q=Q.value),R.attributes().length>0&&R.attribute("location")?D=R.attribute("location").value:D="right";const Z=R.elements();for(let K=0,ie=Z.length;K0)if(D==="left"){if(W==="start"){const K=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.Ending,AlignmentType.Begin,void 0,Y);this.addInstruction(this.repetitionInstructions,K)}if(U==="forward"){const K=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.StartLine);this.addInstruction(this.repetitionInstructions,K)}}else{if(W==="stop"){const K=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.Ending,AlignmentType.End,void 0,Y);this.addInstruction(this.repetitionInstructions,K)}if(U==="backward"){const K=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.BackJumpLine);this.addInstruction(this.repetitionInstructions,K)}}}return B}handleRepetitionInstructionsFromWordsOrSymbols(R,B){const D=R.element("words"),G=this.currentMeasureIndex;if(D){const U="d\\s?\\.s\\.",W=D.value.trim().toLowerCase();if(StringUtil.StringContainsSeparatedWord(W,U+" al fine",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DalSegnoAlFine);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,U+" al coda",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DalSegnoAlCoda);return this.addInstruction(this.repetitionInstructions,Y),!0}const q="d\\.\\s?c\\.";if(StringUtil.StringContainsSeparatedWord(W,q+" al fine",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DaCapoAlFine);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,q+" al coda",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DaCapoAlCoda);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,q)||StringUtil.StringContainsSeparatedWord(W,"da\\s?capo",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DaCapo);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,U,!0)||StringUtil.StringContainsSeparatedWord(W,"dal\\s?segno",!0)){let Y;return StringUtil.StringContainsSeparatedWord(W,"al\\s?coda",!0)?Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DalSegnoAlCoda):Y=new RepetitionInstruction(G,RepetitionInstructionEnum.DalSegno),this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,"to\\s?coda",!0)||StringUtil.StringContainsSeparatedWord(W,"a (la )?coda",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.ToCoda);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,"fine",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.Fine);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,"coda",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.Coda);return this.addInstruction(this.repetitionInstructions,Y),!0}if(StringUtil.StringContainsSeparatedWord(W,"segno",!0)){const Y=new RepetitionInstruction(G,RepetitionInstructionEnum.Segno);return this.addInstruction(this.repetitionInstructions,Y),!0}}else if(R.element("segno")){const U=new RepetitionInstruction(G,RepetitionInstructionEnum.Segno);return this.addInstruction(this.repetitionInstructions,U),!0}else if(R.element("coda")){const U=new RepetitionInstruction(G,RepetitionInstructionEnum.Coda);return this.addInstruction(this.repetitionInstructions,U),!0}return!1}removeRedundantInstructions(){let R=0,B=0,D=0,G=0;for(let U=0;U0&&this.findInstructionInPreviousMeasure(U,W.measureIndex,RepetitionInstructionEnum.ToCoda)&&(W.type=RepetitionInstructionEnum.None),B===0&&D===0&&(W.type=RepetitionInstructionEnum.ToCoda,W.alignment=AlignmentType.End,W.measureIndex--);break;case RepetitionInstructionEnum.Segno:if(R-G>0){let q=!1;for(let Y=0,Q=this.repetitionInstructions.length;Y0?Z.type=RepetitionInstructionEnum.DalSegnoAlCoda:Z.type=RepetitionInstructionEnum.DalSegno,W.type=RepetitionInstructionEnum.None,q=!0;break;case RepetitionInstructionEnum.DalSegno:case RepetitionInstructionEnum.DalSegnoAlFine:case RepetitionInstructionEnum.DalSegnoAlCoda:W.type=RepetitionInstructionEnum.None,q=!0;break}if(q)break}if(q)break;D-B>0?W.type=RepetitionInstructionEnum.DalSegnoAlCoda:W.type=RepetitionInstructionEnum.DalSegno,W.alignment=AlignmentType.End,W.measureIndex--}break}if(this.backwardSearchForPreviousIdenticalInstruction(U,W)||W.type===RepetitionInstructionEnum.None)this.repetitionInstructions.splice(U,1),U--;else switch(W.type){case RepetitionInstructionEnum.Fine:break;case RepetitionInstructionEnum.ToCoda:D++;break;case RepetitionInstructionEnum.Coda:B++;break;case RepetitionInstructionEnum.Segno:R++;break;case RepetitionInstructionEnum.DalSegnoAlFine:case RepetitionInstructionEnum.DalSegnoAlCoda:G++;break}}this.repetitionInstructions.sort(RepetitionInstructionComparer.Compare)}findInstructionInPreviousMeasure(R,B,D){for(let G=R-1;G>=0;G--){const U=this.repetitionInstructions[G];if(B-U.measureIndex===1&&U.type===D)return!0}return!1}backwardSearchForPreviousIdenticalInstruction(R,B){for(let D=R-1;D>=0;D--)if(this.repetitionInstructions[D].equals(B))return!0;return!1}addInstruction(R,B){let D=!0;for(let G=0,U=R.length;G0;)try{const q=this.openRepetitions.last();if(q.RepetitonUnderConstruction.FromWords){if(q.WaitingForCoda){let Y=q.RepetitonUnderConstruction.BackwardJumpInstructions.last().measureIndex+1;Y>=this.musicSheet.SourceMeasures.length&&(Y=-1),q.RepetitonUnderConstruction.setEndingStartIndex(2,Y)}else if(q.RepetitonUnderConstruction.BackwardJumpInstructions.length===0){this.openRepetitions.splice(this.openRepetitions.length-1,1);continue}}else if(q.RepetitonUnderConstruction.BackwardJumpInstructions.length===0){const Y=D.length-1,Q=new RepetitionInstruction(Y,RepetitionInstructionEnum.BackJumpLine,AlignmentType.End,q.RepetitonUnderConstruction);q.RepetitonUnderConstruction.BackwardJumpInstructions.push(Q),D[Y].LastRepetitionInstructions.push(Q)}this.finalizeRepetition(this.openRepetitions.last())}catch{try{const Y=this.openRepetitions.last().RepetitonUnderConstruction;for(const Q of this.repetitionInstructions)Q.parentRepetition===Y&&(Q.parentRepetition=void 0);this.openRepetitions.splice(this.openRepetitions.length-1,1)}catch(Y){log$2.error("RepetitionCalculator: calculateRepetitions2",Y)}}let G=!1;const U=0,W=this.musicSheet.SourceMeasures.length-1;for(const q of this.musicSheet.Repetitions)if(q.StartIndex===U&&q.EndIndex===W){G=!0;break}if(!G){const q=new Repetition(this.musicSheet,!0);q.FromWords=!0,q.startMarker=new RepetitionInstruction(U,RepetitionInstructionEnum.StartLine),q.startMarker.parentRepetition=q,this.musicSheet.SourceMeasures[U].FirstRepetitionInstructions.push(q.startMarker),q.endMarker=new RepetitionInstruction(W,RepetitionInstructionEnum.BackJumpLine),q.endMarker.parentRepetition=q,q.BackwardJumpInstructions.push(q.endMarker),q.UserNumberOfRepetitions=q.DefaultNumberOfRepetitions,this.musicSheet.Repetitions.push(q)}for(let q=0,Y=this.musicSheet.SourceMeasures.length;q1&&Q.FirstRepetitionInstructions.sort(RepetitionInstructionComparer.Compare),Q.LastRepetitionInstructions.length>1&&Q.LastRepetitionInstructions.sort(RepetitionInstructionComparer.Compare)}}handleRepetitionInstructions(R){let B;switch(R.type){case RepetitionInstructionEnum.StartLine:B=this.createNewRepetition(this.currentMeasureIndex),R.parentRepetition=B.RepetitonUnderConstruction,B.RepetitonUnderConstruction.FromWords=!1,B.RepetitonUnderConstruction.startMarker=R,this.currentMeasure.FirstRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.BackJumpLine:B=this.getOrCreateCurrentRepetition2(!1),R.parentRepetition=B.RepetitonUnderConstruction,B.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R),B.RepetitonUnderConstruction.EndingParts.length===0&&this.finalizeRepetition(B);break;case RepetitionInstructionEnum.Ending:if(B=this.getOrCreateCurrentRepetition(),R.parentRepetition=B.RepetitonUnderConstruction,R.endingIndices.contains(1)&&R.alignment===AlignmentType.Begin){if(B.RepetitonUnderConstruction.BackwardJumpInstructions.length>0||B.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)){B=void 0;for(let G=this.openRepetitions.length-1;G>=0;G--){const U=this.openRepetitions[G];if(U.RepetitonUnderConstruction.BackwardJumpInstructions.length===0)for(B=U;this.openRepetitions.length-1>G;){const W=this.openRepetitions.last();this.finalizeRepetition(W)}}B===void 0&&(B=this.createNewRepetition(0),B.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None))}B.RepetitonUnderConstruction.forwardJumpInstruction===void 0&&(B.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(this.currentMeasureIndex-1,RepetitionInstructionEnum.ForwardJump,AlignmentType.End,B.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[this.currentMeasureIndex-1].LastRepetitionInstructions.push(B.RepetitonUnderConstruction.forwardJumpInstruction))}if(R.alignment===AlignmentType.Begin)B.RepetitonUnderConstruction.setEndingsStartIndex(R.endingIndices,this.currentMeasureIndex),this.currentMeasure.FirstRepetitionInstructions.push(R);else for(let G=0,U=R.endingIndices.length;G0&&Math.abs(B.RepetitonUnderConstruction.BackwardJumpInstructions.last().measureIndex-this.currentMeasureIndex)<=1||this.openRepetitions.length&&this.openRepetitions.find(G=>G.RepetitonUnderConstruction.startMarker.type===RepetitionInstructionEnum.StartLine).RepetitonUnderConstruction.StartIndex===this.currentMeasureIndex)break;B=this.createNewRepetition(this.currentMeasureIndex),R.parentRepetition=B.RepetitonUnderConstruction,B.RepetitonUnderConstruction.FromWords=!0,B.SegnoFound=!0,B.RepetitonUnderConstruction.startMarker=R,this.currentMeasure.FirstRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.Fine:if(this.openRepetitions.length===0||(B=this.getCurrentRepetition(!0),B===void 0))break;R.parentRepetition=B.RepetitonUnderConstruction,B.RepetitonUnderConstruction.FromWords=!0,B.RepetitonUnderConstruction.forwardJumpInstruction===void 0?(B.FineFound=!0,B.RepetitonUnderConstruction.forwardJumpInstruction=R,B.RepetitonUnderConstruction.setEndingStartIndex(2,-2),this.currentMeasure.LastRepetitionInstructions.push(R)):this.currentMeasure.LastRepetitionInstructions.push(new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.Fine,AlignmentType.End,void 0));break;case RepetitionInstructionEnum.ToCoda:if(this.openRepetitions.length===0||(B=this.getCurrentRepetition(!0),B===void 0))break;B.RepetitonUnderConstruction.forwardJumpInstruction===void 0&&(R.parentRepetition=B.RepetitonUnderConstruction,B.RepetitonUnderConstruction.FromWords=!0,B.ToCodaFound=!0,B.RepetitonUnderConstruction.forwardJumpInstruction=R,this.currentMeasure.LastRepetitionInstructions.push(R));break;case RepetitionInstructionEnum.Coda:if(this.openRepetitions.length===0)break;B=this.getOrCreateCurrentRepetition2(!0),R.parentRepetition=B.RepetitonUnderConstruction,B.WaitingForCoda?(B.CodaFound=!0,B.RepetitonUnderConstruction.setEndingStartIndex(2,this.currentMeasureIndex),this.currentMeasure.LastRepetitionInstructions.push(R),this.finalizeRepetition(B),this.currentMeasureIndex>0&&(this.musicSheet.SourceMeasures[this.currentMeasureIndex-1].printNewSystemXml=!0)):B.ToCodaFound||(B.RepetitonUnderConstruction.BackwardJumpInstructions.length===0?(B.ToCodaFound=!0,B.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.ToCoda,AlignmentType.End,B.RepetitonUnderConstruction),this.currentMeasure.LastRepetitionInstructions.push(B.RepetitonUnderConstruction.forwardJumpInstruction)):this.currentMeasure.LastRepetitionInstructions.push(new RepetitionInstruction(this.currentMeasureIndex,RepetitionInstructionEnum.Coda,AlignmentType.Begin,void 0)));break;case RepetitionInstructionEnum.DaCapo:B=this.getOrCreateCurrentRepetition(),B.RepetitonUnderConstruction.BackwardJumpInstructions.length>0&&this.finalizeRepetition(B),B.RepetitonUnderConstruction.StartIndex!==0&&(B=this.createNewRepetition(0)),R.parentRepetition=B.RepetitonUnderConstruction,B.RepetitonUnderConstruction.FromWords=!0,B.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,B.RepetitonUnderConstruction),B.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R),B.RepetitonUnderConstruction.EndingParts.length===0&&this.finalizeRepetition(B);break;case RepetitionInstructionEnum.DalSegno:if(B=this.getOrCreateCurrentRepetition2(!0),B.RepetitonUnderConstruction.BackwardJumpInstructions.length>0&&(this.finalizeRepetition(B),B=this.createNewRepetition(0),B.RepetitonUnderConstruction.FromWords=!0,B.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,B.RepetitonUnderConstruction)),R.parentRepetition=B.RepetitonUnderConstruction,!B.SegnoFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Segno,R.measureIndex);G>=0&&(B.SegnoFound=!0,B.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(G,RepetitionInstructionEnum.Segno,AlignmentType.Begin,B.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[G].FirstRepetitionInstructions.splice(0,0,B.RepetitonUnderConstruction.startMarker))}B.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)&&B.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),B.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.DalSegnoAlFine:if(this.openRepetitions.length===0)break;if(B=this.getOrCreateCurrentRepetition2(!0),R.parentRepetition=B.RepetitonUnderConstruction,!B.SegnoFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Segno,R.measureIndex);G>=0&&(B.SegnoFound=!0,B.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(G,RepetitionInstructionEnum.Segno,AlignmentType.Begin,B.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[G].FirstRepetitionInstructions.splice(0,0,B.RepetitonUnderConstruction.startMarker))}if(!B.FineFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Fine,R.measureIndex);G>=0&&(B.FineFound=!0,B.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(G,RepetitionInstructionEnum.Fine,AlignmentType.Begin,B.RepetitonUnderConstruction),B.RepetitonUnderConstruction.setEndingStartIndex(2,-2),this.musicSheet.SourceMeasures[G].LastRepetitionInstructions.splice(0,0,B.RepetitonUnderConstruction.forwardJumpInstruction))}B.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)||B.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),B.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.DaCapoAlFine:if(B=this.getOrCreateCurrentRepetition(),B.RepetitonUnderConstruction.BackwardJumpInstructions.length>0&&(this.finalizeRepetition(B),B=this.createNewRepetition(0)),B.RepetitonUnderConstruction.startMarker!==void 0&&B.RepetitonUnderConstruction.StartIndex!==0&&(B=this.createNewRepetition(0)),B.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,B.RepetitonUnderConstruction),B.RepetitonUnderConstruction.FromWords=!0,R.parentRepetition=B.RepetitonUnderConstruction,!B.FineFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Fine,R.measureIndex);G>=0&&(B.FineFound=!0,B.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(G,RepetitionInstructionEnum.Fine,AlignmentType.Begin,B.RepetitonUnderConstruction),B.RepetitonUnderConstruction.setEndingStartIndex(2,-2),this.musicSheet.SourceMeasures[G].LastRepetitionInstructions.splice(0,0,B.RepetitonUnderConstruction.forwardJumpInstruction))}B.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)||B.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),B.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.DalSegnoAlCoda:if(this.openRepetitions.length===0)break;if(B=this.getOrCreateCurrentRepetition2(!0),R.parentRepetition=B.RepetitonUnderConstruction,!B.SegnoFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Segno,R.measureIndex);G>=0&&(B.SegnoFound=!0,B.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(G,RepetitionInstructionEnum.Segno,AlignmentType.Begin,B.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[G].FirstRepetitionInstructions.splice(0,0,B.RepetitonUnderConstruction.startMarker))}if(!B.ToCodaFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.ToCoda,R.measureIndex);if(G>=0)B.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(G,RepetitionInstructionEnum.ToCoda,AlignmentType.Begin,B.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[G].LastRepetitionInstructions.splice(0,0,B.RepetitonUnderConstruction.forwardJumpInstruction),B.ToCodaFound=!0;else{const U=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Coda,R.measureIndex);U>=0&&(B.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(U,RepetitionInstructionEnum.ToCoda,AlignmentType.Begin,B.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[U].LastRepetitionInstructions.splice(0,0,B.RepetitonUnderConstruction.forwardJumpInstruction),B.ToCodaFound=!0)}}B.ToCodaFound&&(B.WaitingForCoda=!0),B.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)||B.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),B.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.DaCapoAlCoda:if(B=this.getOrCreateCurrentRepetition(),B.RepetitonUnderConstruction.BackwardJumpInstructions.length>0?(this.finalizeRepetition(B),B=this.createNewRepetition(0)):B.RepetitonUnderConstruction.EndingParts.length===0&&(this.finalizeRepetition(B),B=this.createNewRepetition(0)),B.RepetitonUnderConstruction.startMarker!==void 0&&B.RepetitonUnderConstruction.StartIndex!==0&&(B=this.createNewRepetition(0)),B.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,B.RepetitonUnderConstruction),B.RepetitonUnderConstruction.FromWords=!0,R.parentRepetition=B.RepetitonUnderConstruction,!B.ToCodaFound){const G=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.ToCoda,R.measureIndex);if(G>=0)B.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(G,RepetitionInstructionEnum.ToCoda,AlignmentType.Begin,B.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[G].LastRepetitionInstructions.splice(0,0,B.RepetitonUnderConstruction.forwardJumpInstruction),B.ToCodaFound=!0;else{const U=this.findInstructionInMainListBackwards(RepetitionInstructionEnum.Coda,R.measureIndex);U>=0&&(B.RepetitonUnderConstruction.forwardJumpInstruction=new RepetitionInstruction(U,RepetitionInstructionEnum.ToCoda,AlignmentType.Begin,B.RepetitonUnderConstruction),this.musicSheet.SourceMeasures[U].LastRepetitionInstructions.splice(0,0,B.RepetitonUnderConstruction.forwardJumpInstruction),B.ToCodaFound=!0)}}B.ToCodaFound&&(B.WaitingForCoda=!0),B.RepetitonUnderConstruction.EndingIndexDict.hasOwnProperty(1)||B.RepetitonUnderConstruction.setEndingEndIndex(1,this.currentMeasureIndex),B.RepetitonUnderConstruction.BackwardJumpInstructions.push(R),this.currentMeasure.LastRepetitionInstructions.push(R);break;case RepetitionInstructionEnum.None:break;default:throw new ArgumentOutOfRangeException("currentRepetitionInstruction")}return!0}findInstructionInMainListBackwards(R,B){for(let D=this.repetitionInstructions.length-1;D>=0;D--){const G=this.repetitionInstructions[D];if(G.measureIndex<=B&&G.type===R)return G.measureIndex}return-1}finalizeRepetition(R){const B=R.RepetitonUnderConstruction;if(B.BackwardJumpInstructions.length>0){let D=!0;const G=this.getLastFinalizedRepetition();if(G!==void 0&&B.coversIdenticalMeasures(G)){if(B.NumberOfEndings>G.NumberOfEndings){const U=this.musicSheet.Repetitions.indexOf(G,0);U>-1&&this.musicSheet.Repetitions.splice(U,1),G.removeFromRepetitionInstructions(),this.musicSheet.Repetitions.push(B)}D=!1,B.removeFromRepetitionInstructions()}else this.musicSheet.Repetitions.push(B);D&&(B.startMarker.type===RepetitionInstructionEnum.None&&this.musicSheet.SourceMeasures[B.StartIndex].FirstRepetitionInstructions.push(B.startMarker),B.UserNumberOfRepetitions=B.DefaultNumberOfRepetitions)}this.openRepetitions.splice(this.openRepetitions.length-1,1)}getCurrentRepetition(R){let B;for(let D=this.openRepetitions.length-1;D>=0;D--)if(this.openRepetitions[D].RepetitonUnderConstruction.FromWords===R){for(B=this.openRepetitions[D];D0)return this.openRepetitions.last();const R=this.createNewRepetition(0);return R.RepetitonUnderConstruction.startMarker=new RepetitionInstruction(0,RepetitionInstructionEnum.None,AlignmentType.Begin,R.RepetitonUnderConstruction),R}getOrCreateCurrentRepetition2(R){let B;if(this.openRepetitions.length&&this.openRepetitions.last().RepetitonUnderConstruction.EndingParts.length<2){for(let G=this.openRepetitions.length-1;G>=0;G--)if(B=this.openRepetitions[G],B.RepetitonUnderConstruction.FromWords===R){for(;G0){const D=this.openRepetitions.last(),G=D.RepetitonUnderConstruction;if(G.BackwardJumpInstructions.length>0){const U=Object.keys(G.EndingIndexDict);(U.length===0||G.EndingIndexDict[U[U.length-1]].part.EndIndex>=0)&&this.finalizeRepetition(D)}}const B=new RepetitionBuildingContainer(this.musicSheet);return this.lastRepetitionCommonPartStartIndex=R,this.openRepetitions.push(B),B}getLastFinalizedRepetition(){if(this.musicSheet.Repetitions.length>0)return this.musicSheet.Repetitions.last()}}class RepetitionBuildingContainer{constructor(R){this.RepetitonUnderConstruction=new Repetition(R)}}class MusicSymbolModuleFactory{static createRepetitionInstructionReader(){return new RepetitionInstructionReader}static createRepetitionCalculator(){return new RepetitionCalculator}}class ReaderPluginManager{constructor(){this.voiceMeasureReadPlugins=[]}addVoiceMeasureReadPlugin(R){this.voiceMeasureReadPlugins.push(R)}processVoiceMeasureReadPlugins(R,B,D){for(const G of this.voiceMeasureReadPlugins)try{G.measureReadCalculations(R,B,D)}catch(U){log$2.info("VoiceGenerator.addSingleNote: ",U)}}}class MusicSheetReader{constructor(R=void 0,B=new EngravingRules){this.completeNumberOfStaves=0,this.pluginManager=new ReaderPluginManager,R?this.afterSheetReadingModules=R:this.afterSheetReadingModules=[],this.repetitionInstructionReader=MusicSymbolModuleFactory.createRepetitionInstructionReader(),this.repetitionCalculator=MusicSymbolModuleFactory.createRepetitionCalculator(),this.rules=B}get PluginManager(){return this.pluginManager}get CompleteNumberOfStaves(){return this.completeNumberOfStaves}static doCalculationsAfterDurationHasBeenSet(R){for(const B of R)B.doCalculationsAfterDurationHasBeenSet()}createMusicSheet(R,B){try{return this._createMusicSheet(R,B)}catch(D){log$2.error("MusicSheetReader.CreateMusicSheet",D);return}}_removeFromArray(R,B){const D=R.indexOf(B);D!==-1&&R.splice(D,1)}trimString(R){return R.replace(/^\s+|\s+$/g,"")}_lastElement(R){return R[R.length-1]}_createMusicSheet(R,B){var K;const D=[];let G=0;if(this.musicSheet=new MusicSheet$1,this.musicSheet.Path=B,this.musicSheet.Rules=this.rules,!R)throw new MusicSheetReadingException("Undefined root element");this.pushSheetLabels(R,B);const U=R.element("part-list");if(!U)throw new MusicSheetReadingException("Undefined partListNode");const W=R.elements("part"),q=U.elements();this.initializeReading(q,W,D);let Y=!0;this.currentFraction=new Fraction$1(0,1);let Q=!1,Z=R.element("identification");for(Z&&(Z=Z.element("encoding")),Z&&(Z=Z.element("software")),Z!==void 0&&Z.value==="Guitar Pro 5"&&(Q=!0);Y;){this.currentMeasure!==void 0&&this.currentMeasure.HasEndLine&&this.rules.NewPartAndSystemAfterFinalBarline&&(G=0),this.currentMeasure=new SourceMeasure(this.completeNumberOfStaves,this.musicSheet.Rules);for(const ie of D)try{Y=Y&&ie.readNextXmlMeasure(this.currentMeasure,this.currentFraction,Q)}catch(te){const ne=ITextTranslation.translateText("ReaderErrorMessages/InstrumentError","Error while reading instruments.");throw new MusicSheetReadingException(ne,te)}Y&&(this.musicSheet.addMeasure(this.currentMeasure),this.checkIfRhythmInstructionsAreSetAndEqual(D),this.checkSourceMeasureForNullEntries(),G=this.setSourceMeasureDuration(D,G),MusicSheetReader.doCalculationsAfterDurationHasBeenSet(D),this.currentMeasure.AbsoluteTimestamp=this.currentFraction.clone(),this.musicSheet.SheetErrors.finalizeMeasure(this.currentMeasure.MeasureNumber),this.currentFraction.Add(this.currentMeasure.Duration),this.previousMeasure=this.currentMeasure,this.musicSheet.SoundTempos=(K=D[0])==null?void 0:K.SoundTempos)}this.repetitionInstructionReader&&(this.repetitionInstructionReader.removeRedundantInstructions(),this.repetitionCalculator&&this.repetitionCalculator.calculateRepetitions(this.musicSheet,this.repetitionInstructionReader.repetitionInstructions)),this.musicSheet.DefaultStartTempoInBpm===0&&(this.musicSheet.DefaultStartTempoInBpm=100),this.musicSheet.checkForInstrumentWithNoVoice(),this.musicSheet.fillStaffList();for(let ie=0,te=this.afterSheetReadingModules.length;ieD){if(this.areRhythmInstructionsMixed(B)&&q.SymbolEnum!==RhythmSymbolEnum.NONE)continue;D=q.Rhythm.RealValue,G=B.indexOf(q)}}if(B.length>0&&B.lengthR.Denominator){const D=B.Denominator/R.Denominator;R.expand(D)}}checkIfMeasureIsImplicit(R,B){return!this.previousMeasure&&R.lt(B)?!0:this.previousMeasure?Fraction$1.plus(this.previousMeasure.Duration,R).Equals(B):!1}allInstrumentsHaveSameDuration(R,B){let D=0;for(let G=0,U=R.length;G=0;R--)for(let B=this.currentMeasure.VerticalSourceStaffEntryContainers[R].StaffEntries.length-1;B>=0;B--){const D=this.currentMeasure.VerticalSourceStaffEntryContainers[R].StaffEntries[B];if(D)for(let G=D.VoiceEntries.length-1;G>=0;G--){const U=D.VoiceEntries[G];U.Notes.length===0&&(this._removeFromArray(U.ParentVoice.VoiceEntries,U),this._removeFromArray(D.VoiceEntries,U))}D!==void 0&&D.VoiceEntries.length===0&&(this.currentMeasure.VerticalSourceStaffEntryContainers[R].StaffEntries[B]=void 0)}for(let R=this.currentMeasure.VerticalSourceStaffEntryContainers.length-1;R>=0;R--){let B=0;for(let D=0,G=this.currentMeasure.VerticalSourceStaffEntryContainers[R].StaffEntries.length;DB){if(!this.musicSheet.Title){const ce=ne.attribute("font-size").value,he=parseFloat(ce);D0&&Z.MidiInstrumentId!==MidiInstrument.Percussion&&(se.midiInstrumentID=Math.max(0,parseInt(ce.value,10)-1));else if(ce.name==="midi-unpitched")se.fixedKey=Math.max(0,parseInt(ce.value,10));else if(ce.name==="volume")try{const he=parseFloat(ce.value);se.volume=he/127}catch(he){log$2.debug("ExpressionReader.readExpressionParameters","read volume",he)}else if(ce.name==="pan")try{const he=parseFloat(ce.value);se.pan=he/64}catch(he){log$2.debug("ExpressionReader.readExpressionParameters","read pan",he)}}catch(he){log$2.info("MusicSheetReader.createInstrumentGroups midi settings: ",he)}}}}catch(se){log$2.info("MusicSheetReader.createInstrumentGroups: ",se)}}if(Z.SubInstruments.length===0){const ie=new SubInstrument(Z);Z.SubInstruments.push(ie)}D[Q]=Z,G?(G.InstrumentalGroups.push(Z),this.musicSheet.Instruments.push(Z)):(this.musicSheet.InstrumentalGroups.push(Z),this.musicSheet.Instruments.push(Z))}else if(Y.name==="part-group"&&Y.attribute("type").value==="start"){const Q=new InstrumentalGroup("group",this.musicSheet,G);G?G.InstrumentalGroups.push(Q):this.musicSheet.InstrumentalGroups.push(Q),G=Q}else if(Y.name==="part-group"&&Y.attribute("type").value==="stop"&&G){if(G.InstrumentalGroups.length===1){const Q=G.InstrumentalGroups[0];G.Parent?(G.Parent.InstrumentalGroups.push(Q),this._removeFromArray(G.Parent.InstrumentalGroups,G)):(this.musicSheet.InstrumentalGroups.push(Q),this._removeFromArray(this.musicSheet.InstrumentalGroups,G))}G=G.Parent}}}catch(U){const W=ITextTranslation.translateText("ReaderErrorMessages/InstrumentError","Error while reading Instruments");throw new MusicSheetReadingException(W,U)}for(let U=0,W=this.musicSheet.Instruments.length;U0){const U=G[0];if(U){let W=U.element("attributes");W&&(W=W.element("staves")),W?B+=parseInt(W.value,10):B++}}}if(isNaN(B)||B<=0){const D=ITextTranslation.translateText("ReaderErrorMessages/StaffError","Invalid number of staves.");throw new MusicSheetReadingException(D)}return B}getInstrumentNumberOfStavesFromXml(R){let B=0;const D=R.element("measure");if(D){const G=D.element("attributes");let U;G&&(U=G.element("staves")),!G||!U?B=1:B=parseInt(U.value,10)}if(isNaN(B)||B<=0){const G=ITextTranslation.translateText("ReaderErrorMessages/StaffError","Invalid number of Staves.");throw new MusicSheetReadingException(G)}return B}}var jszip_min={exports:{}};/*! JSZip v3.7.1 - A JavaScript class for generating and reading zip files (c) 2009-2016 Stuart Knightley Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown. JSZip uses the library pako released under the MIT license : https://github.com/nodeca/pako/blob/master/LICENSE */(function(F,R){(function(B){F.exports=B()})(function(){return function B(D,G,U){function W(Q,Z){if(!G[Q]){if(!D[Q]){var K=typeof commonjsRequire$1=="function"&&commonjsRequire$1;if(!Z&&K)return K(Q,!0);if(q)return q(Q,!0);var ie=new Error("Cannot find module '"+Q+"'");throw ie.code="MODULE_NOT_FOUND",ie}var te=G[Q]={exports:{}};D[Q][0].call(te.exports,function(ne){var se=D[Q][1][ne];return W(se||ne)},te,te.exports,B,D,G,U)}return G[Q].exports}for(var q=typeof commonjsRequire$1=="function"&&commonjsRequire$1,Y=0;Y>2,te=(3&Q)<<4|Z>>4,ne=1>6:64,se=2>4,Z=(15&ie)<<4|(te=q.indexOf(Y.charAt(se++)))>>2,K=(3&te)<<6|(ne=q.indexOf(Y.charAt(se++))),le[re++]=Q,te!==64&&(le[re++]=Z),ne!==64&&(le[re++]=K);return le}},{"./support":30,"./utils":32}],2:[function(B,D,G){var U=B("./external"),W=B("./stream/DataWorker"),q=B("./stream/Crc32Probe"),Y=B("./stream/DataLengthProbe");function Q(Z,K,ie,te,ne){this.compressedSize=Z,this.uncompressedSize=K,this.crc32=ie,this.compression=te,this.compressedContent=ne}Q.prototype={getContentWorker:function(){var Z=new W(U.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new Y("data_length")),K=this;return Z.on("end",function(){if(this.streamInfo.data_length!==K.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),Z},getCompressedWorker:function(){return new W(U.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},Q.createWorkerFrom=function(Z,K,ie){return Z.pipe(new q).pipe(new Y("uncompressedSize")).pipe(K.compressWorker(ie)).pipe(new Y("compressedSize")).withStreamInfo("compression",K)},D.exports=Q},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(B,D,G){var U=B("./stream/GenericWorker");G.STORE={magic:"\0\0",compressWorker:function(W){return new U("STORE compression")},uncompressWorker:function(){return new U("STORE decompression")}},G.DEFLATE=B("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(B,D,G){var U=B("./utils"),W=function(){for(var q,Y=[],Q=0;Q<256;Q++){q=Q;for(var Z=0;Z<8;Z++)q=1&q?3988292384^q>>>1:q>>>1;Y[Q]=q}return Y}();D.exports=function(q,Y){return q!==void 0&&q.length?U.getTypeOf(q)!=="string"?function(Q,Z,K,ie){var te=W,ne=ie+K;Q^=-1;for(var se=ie;se>>8^te[255&(Q^Z[se])];return-1^Q}(0|Y,q,q.length,0):function(Q,Z,K,ie){var te=W,ne=ie+K;Q^=-1;for(var se=ie;se>>8^te[255&(Q^Z.charCodeAt(se))];return-1^Q}(0|Y,q,q.length,0):0}},{"./utils":32}],5:[function(B,D,G){G.base64=!1,G.binary=!1,G.dir=!1,G.createFolders=!0,G.date=null,G.compression=null,G.compressionOptions=null,G.comment=null,G.unixPermissions=null,G.dosPermissions=null},{}],6:[function(B,D,G){var U=null;U=typeof Promise!="undefined"?Promise:B("lie"),D.exports={Promise:U}},{lie:37}],7:[function(B,D,G){var U=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",W=B("pako"),q=B("./utils"),Y=B("./stream/GenericWorker"),Q=U?"uint8array":"array";function Z(K,ie){Y.call(this,"FlateWorker/"+K),this._pako=null,this._pakoAction=K,this._pakoOptions=ie,this.meta={}}G.magic="\b\0",q.inherits(Z,Y),Z.prototype.processChunk=function(K){this.meta=K.meta,this._pako===null&&this._createPako(),this._pako.push(q.transformTo(Q,K.data),!1)},Z.prototype.flush=function(){Y.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},Z.prototype.cleanUp=function(){Y.prototype.cleanUp.call(this),this._pako=null},Z.prototype._createPako=function(){this._pako=new W[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var K=this;this._pako.onData=function(ie){K.push({data:ie,meta:K.meta})}},G.compressWorker=function(K){return new Z("Deflate",K)},G.uncompressWorker=function(){return new Z("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(B,D,G){function U(te,ne){var se,re="";for(se=0;se>>=8;return re}function W(te,ne,se,re,ae,le){var ce,he,pe=te.file,me=te.compression,fe=le!==Q.utf8encode,ge=q.transformTo("string",le(pe.name)),Se=q.transformTo("string",Q.utf8encode(pe.name)),Ee=pe.comment,ve=q.transformTo("string",le(Ee)),xe=q.transformTo("string",Q.utf8encode(Ee)),Me=Se.length!==pe.name.length,ye=xe.length!==Ee.length,we="",Re="",Pe="",Ae=pe.dir,Le=pe.date,Ne={crc32:0,compressedSize:0,uncompressedSize:0};ne&&!se||(Ne.crc32=te.crc32,Ne.compressedSize=te.compressedSize,Ne.uncompressedSize=te.uncompressedSize);var Ie=0;ne&&(Ie|=8),fe||!Me&&!ye||(Ie|=2048);var _e=0,Ve=0;Ae&&(_e|=16),ae==="UNIX"?(Ve=798,_e|=function(Ge,He){var Qe=Ge;return Ge||(Qe=He?16893:33204),(65535&Qe)<<16}(pe.unixPermissions,Ae)):(Ve=20,_e|=function(Ge){return 63&(Ge||0)}(pe.dosPermissions)),ce=Le.getUTCHours(),ce<<=6,ce|=Le.getUTCMinutes(),ce<<=5,ce|=Le.getUTCSeconds()/2,he=Le.getUTCFullYear()-1980,he<<=4,he|=Le.getUTCMonth()+1,he<<=5,he|=Le.getUTCDate(),Me&&(Re=U(1,1)+U(Z(ge),4)+Se,we+="up"+U(Re.length,2)+Re),ye&&(Pe=U(1,1)+U(Z(ve),4)+xe,we+="uc"+U(Pe.length,2)+Pe);var qe="";return qe+=` \0`,qe+=U(Ie,2),qe+=me.magic,qe+=U(ce,2),qe+=U(he,2),qe+=U(Ne.crc32,4),qe+=U(Ne.compressedSize,4),qe+=U(Ne.uncompressedSize,4),qe+=U(ge.length,2),qe+=U(we.length,2),{fileRecord:K.LOCAL_FILE_HEADER+qe+ge+we,dirRecord:K.CENTRAL_FILE_HEADER+U(Ve,2)+qe+U(ve.length,2)+"\0\0\0\0"+U(_e,4)+U(re,4)+ge+we+ve}}var q=B("../utils"),Y=B("../stream/GenericWorker"),Q=B("../utf8"),Z=B("../crc32"),K=B("../signature");function ie(te,ne,se,re){Y.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=ne,this.zipPlatform=se,this.encodeFileName=re,this.streamFiles=te,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}q.inherits(ie,Y),ie.prototype.push=function(te){var ne=te.meta.percent||0,se=this.entriesCount,re=this._sources.length;this.accumulate?this.contentBuffer.push(te):(this.bytesWritten+=te.data.length,Y.prototype.push.call(this,{data:te.data,meta:{currentFile:this.currentFile,percent:se?(ne+100*(se-re-1))/se:100}}))},ie.prototype.openedSource=function(te){this.currentSourceOffset=this.bytesWritten,this.currentFile=te.file.name;var ne=this.streamFiles&&!te.file.dir;if(ne){var se=W(te,ne,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:se.fileRecord,meta:{percent:0}})}else this.accumulate=!0},ie.prototype.closedSource=function(te){this.accumulate=!1;var ne=this.streamFiles&&!te.file.dir,se=W(te,ne,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(se.dirRecord),ne)this.push({data:function(re){return K.DATA_DESCRIPTOR+U(re.crc32,4)+U(re.compressedSize,4)+U(re.uncompressedSize,4)}(te),meta:{percent:100}});else for(this.push({data:se.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},ie.prototype.flush=function(){for(var te=this.bytesWritten,ne=0;ne=this.index;Y--)Q=(Q<<8)+this.byteAt(Y);return this.index+=q,Q},readString:function(q){return U.transformTo("string",this.readData(q))},readData:function(q){},lastIndexOfSignature:function(q){},readAndCheckSignature:function(q){},readDate:function(){var q=this.readInt(4);return new Date(Date.UTC(1980+(q>>25&127),(q>>21&15)-1,q>>16&31,q>>11&31,q>>5&63,(31&q)<<1))}},D.exports=W},{"../utils":32}],19:[function(B,D,G){var U=B("./Uint8ArrayReader");function W(q){U.call(this,q)}B("../utils").inherits(W,U),W.prototype.readData=function(q){this.checkOffset(q);var Y=this.data.slice(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(B,D,G){var U=B("./DataReader");function W(q){U.call(this,q)}B("../utils").inherits(W,U),W.prototype.byteAt=function(q){return this.data.charCodeAt(this.zero+q)},W.prototype.lastIndexOfSignature=function(q){return this.data.lastIndexOf(q)-this.zero},W.prototype.readAndCheckSignature=function(q){return q===this.readData(4)},W.prototype.readData=function(q){this.checkOffset(q);var Y=this.data.slice(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./DataReader":18}],21:[function(B,D,G){var U=B("./ArrayReader");function W(q){U.call(this,q)}B("../utils").inherits(W,U),W.prototype.readData=function(q){if(this.checkOffset(q),q===0)return new Uint8Array(0);var Y=this.data.subarray(this.zero+this.index,this.zero+this.index+q);return this.index+=q,Y},D.exports=W},{"../utils":32,"./ArrayReader":17}],22:[function(B,D,G){var U=B("../utils"),W=B("../support"),q=B("./ArrayReader"),Y=B("./StringReader"),Q=B("./NodeBufferReader"),Z=B("./Uint8ArrayReader");D.exports=function(K){var ie=U.getTypeOf(K);return U.checkSupport(ie),ie!=="string"||W.uint8array?ie==="nodebuffer"?new Q(K):W.uint8array?new Z(U.transformTo("uint8array",K)):new q(U.transformTo("array",K)):new Y(K)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(B,D,G){G.LOCAL_FILE_HEADER="PK",G.CENTRAL_FILE_HEADER="PK",G.CENTRAL_DIRECTORY_END="PK",G.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",G.ZIP64_CENTRAL_DIRECTORY_END="PK",G.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(B,D,G){var U=B("./GenericWorker"),W=B("../utils");function q(Y){U.call(this,"ConvertWorker to "+Y),this.destType=Y}W.inherits(q,U),q.prototype.processChunk=function(Y){this.push({data:W.transformTo(this.destType,Y.data),meta:Y.meta})},D.exports=q},{"../utils":32,"./GenericWorker":28}],25:[function(B,D,G){var U=B("./GenericWorker"),W=B("../crc32");function q(){U.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}B("../utils").inherits(q,U),q.prototype.processChunk=function(Y){this.streamInfo.crc32=W(Y.data,this.streamInfo.crc32||0),this.push(Y)},D.exports=q},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(B,D,G){var U=B("../utils"),W=B("./GenericWorker");function q(Y){W.call(this,"DataLengthProbe for "+Y),this.propName=Y,this.withStreamInfo(Y,0)}U.inherits(q,W),q.prototype.processChunk=function(Y){if(Y){var Q=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=Q+Y.data.length}W.prototype.processChunk.call(this,Y)},D.exports=q},{"../utils":32,"./GenericWorker":28}],27:[function(B,D,G){var U=B("../utils"),W=B("./GenericWorker");function q(Y){W.call(this,"DataWorker");var Q=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,Y.then(function(Z){Q.dataIsReady=!0,Q.data=Z,Q.max=Z&&Z.length||0,Q.type=U.getTypeOf(Z),Q.isPaused||Q._tickAndRepeat()},function(Z){Q.error(Z)})}U.inherits(q,W),q.prototype.cleanUp=function(){W.prototype.cleanUp.call(this),this.data=null},q.prototype.resume=function(){return!!W.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,U.delay(this._tickAndRepeat,[],this)),!0)},q.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(U.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},q.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var Y=null,Q=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":Y=this.data.substring(this.index,Q);break;case"uint8array":Y=this.data.subarray(this.index,Q);break;case"array":case"nodebuffer":Y=this.data.slice(this.index,Q)}return this.index=Q,this.push({data:Y,meta:{percent:this.max?this.index/this.max*100:0}})},D.exports=q},{"../utils":32,"./GenericWorker":28}],28:[function(B,D,G){function U(W){this.name=W||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}U.prototype={push:function(W){this.emit("data",W)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(W){this.emit("error",W)}return!0},error:function(W){return!this.isFinished&&(this.isPaused?this.generatedError=W:(this.isFinished=!0,this.emit("error",W),this.previous&&this.previous.error(W),this.cleanUp()),!0)},on:function(W,q){return this._listeners[W].push(q),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(W,q){if(this._listeners[W])for(var Y=0;Y "+W:W}},D.exports=U},{}],29:[function(B,D,G){var U=B("../utils"),W=B("./ConvertWorker"),q=B("./GenericWorker"),Y=B("../base64"),Q=B("../support"),Z=B("../external"),K=null;if(Q.nodestream)try{K=B("../nodejs/NodejsStreamOutputAdapter")}catch{}function ie(ne,se){return new Z.Promise(function(re,ae){var le=[],ce=ne._internalType,he=ne._outputType,pe=ne._mimeType;ne.on("data",function(me,fe){le.push(me),se&&se(fe)}).on("error",function(me){le=[],ae(me)}).on("end",function(){try{var me=function(fe,ge,Se){switch(fe){case"blob":return U.newBlob(U.transformTo("arraybuffer",ge),Se);case"base64":return Y.encode(ge);default:return U.transformTo(fe,ge)}}(he,function(fe,ge){var Se,Ee=0,ve=null,xe=0;for(Se=0;Se>>6:(re<65536?se[ce++]=224|re>>>12:(se[ce++]=240|re>>>18,se[ce++]=128|re>>>12&63),se[ce++]=128|re>>>6&63),se[ce++]=128|63&re);return se}(te)},G.utf8decode=function(te){return W.nodebuffer?U.transformTo("nodebuffer",te).toString("utf-8"):function(ne){var se,re,ae,le,ce=ne.length,he=new Array(2*ce);for(se=re=0;se>10&1023,he[re++]=56320|1023&ae)}return he.length!==re&&(he.subarray?he=he.subarray(0,re):he.length=re),U.applyFromCharCode(he)}(te=U.transformTo(W.uint8array?"uint8array":"array",te))},U.inherits(K,Y),K.prototype.processChunk=function(te){var ne=U.transformTo(W.uint8array?"uint8array":"array",te.data);if(this.leftOver&&this.leftOver.length){if(W.uint8array){var se=ne;(ne=new Uint8Array(se.length+this.leftOver.length)).set(this.leftOver,0),ne.set(se,this.leftOver.length)}else ne=this.leftOver.concat(ne);this.leftOver=null}var re=function(le,ce){var he;for((ce=ce||le.length)>le.length&&(ce=le.length),he=ce-1;0<=he&&(192&le[he])==128;)he--;return he<0||he===0?ce:he+Q[le[he]]>ce?he:ce}(ne),ae=ne;re!==ne.length&&(W.uint8array?(ae=ne.subarray(0,re),this.leftOver=ne.subarray(re,ne.length)):(ae=ne.slice(0,re),this.leftOver=ne.slice(re,ne.length))),this.push({data:G.utf8decode(ae),meta:te.meta})},K.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:G.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},G.Utf8DecodeWorker=K,U.inherits(ie,Y),ie.prototype.processChunk=function(te){this.push({data:G.utf8encode(te.data),meta:te.meta})},G.Utf8EncodeWorker=ie},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(B,D,G){var U=B("./support"),W=B("./base64"),q=B("./nodejsUtils"),Y=B("set-immediate-shim"),Q=B("./external");function Z(re){return re}function K(re,ae){for(var le=0;le>8;this.dir=!!(16&this.externalFileAttributes),te==0&&(this.dosPermissions=63&this.externalFileAttributes),te==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(te){if(this.extraFields[1]){var ne=U(this.extraFields[1].value);this.uncompressedSize===W.MAX_VALUE_32BITS&&(this.uncompressedSize=ne.readInt(8)),this.compressedSize===W.MAX_VALUE_32BITS&&(this.compressedSize=ne.readInt(8)),this.localHeaderOffset===W.MAX_VALUE_32BITS&&(this.localHeaderOffset=ne.readInt(8)),this.diskNumberStart===W.MAX_VALUE_32BITS&&(this.diskNumberStart=ne.readInt(4))}},readExtraFields:function(te){var ne,se,re,ae=te.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});te.index+4>>6:(te<65536?ie[re++]=224|te>>>12:(ie[re++]=240|te>>>18,ie[re++]=128|te>>>12&63),ie[re++]=128|te>>>6&63),ie[re++]=128|63&te);return ie},G.buf2binstring=function(K){return Z(K,K.length)},G.binstring2buf=function(K){for(var ie=new U.Buf8(K.length),te=0,ne=ie.length;te>10&1023,le[ne++]=56320|1023&se)}return Z(le,ne)},G.utf8border=function(K,ie){var te;for((ie=ie||K.length)>K.length&&(ie=K.length),te=ie-1;0<=te&&(192&K[te])==128;)te--;return te<0||te===0?ie:te+Y[K[te]]>ie?te:ie}},{"./common":41}],43:[function(B,D,G){D.exports=function(U,W,q,Y){for(var Q=65535&U|0,Z=U>>>16&65535|0,K=0;q!==0;){for(q-=K=2e3>>1:W>>>1;q[Y]=W}return q}();D.exports=function(W,q,Y,Q){var Z=U,K=Q+Y;W^=-1;for(var ie=Q;ie>>8^Z[255&(W^q[ie])];return-1^W}},{}],46:[function(B,D,G){var U,W=B("../utils/common"),q=B("./trees"),Y=B("./adler32"),Q=B("./crc32"),Z=B("./messages"),K=0,ie=4,te=0,ne=-2,se=-1,re=4,ae=2,le=8,ce=9,he=286,pe=30,me=19,fe=2*he+1,ge=15,Se=3,Ee=258,ve=Ee+Se+1,xe=42,Me=113,ye=1,we=2,Re=3,Pe=4;function Ae(Te,je){return Te.msg=Z[je],je}function Le(Te){return(Te<<1)-(4Te.avail_out&&(Ke=Te.avail_out),Ke!==0&&(W.arraySet(Te.output,je.pending_buf,je.pending_out,Ke,Te.next_out),Te.next_out+=Ke,je.pending_out+=Ke,Te.total_out+=Ke,Te.avail_out-=Ke,je.pending-=Ke,je.pending===0&&(je.pending_out=0))}function _e(Te,je){q._tr_flush_block(Te,0<=Te.block_start?Te.block_start:-1,Te.strstart-Te.block_start,je),Te.block_start=Te.strstart,Ie(Te.strm)}function Ve(Te,je){Te.pending_buf[Te.pending++]=je}function qe(Te,je){Te.pending_buf[Te.pending++]=je>>>8&255,Te.pending_buf[Te.pending++]=255&je}function Ge(Te,je){var Ke,Oe,De=Te.max_chain_length,et=Te.strstart,it=Te.prev_length,rt=Te.nice_match,Je=Te.strstart>Te.w_size-ve?Te.strstart-(Te.w_size-ve):0,ct=Te.window,dt=Te.w_mask,pt=Te.prev,vt=Te.strstart+Ee,wt=ct[et+it-1],gt=ct[et+it];Te.prev_length>=Te.good_match&&(De>>=2),rt>Te.lookahead&&(rt=Te.lookahead);do if(ct[(Ke=je)+it]===gt&&ct[Ke+it-1]===wt&&ct[Ke]===ct[et]&&ct[++Ke]===ct[et+1]){et+=2,Ke++;do;while(ct[++et]===ct[++Ke]&&ct[++et]===ct[++Ke]&&ct[++et]===ct[++Ke]&&ct[++et]===ct[++Ke]&&ct[++et]===ct[++Ke]&&ct[++et]===ct[++Ke]&&ct[++et]===ct[++Ke]&&ct[++et]===ct[++Ke]&&etJe&&--De!=0);return it<=Te.lookahead?it:Te.lookahead}function He(Te){var je,Ke,Oe,De,et,it,rt,Je,ct,dt,pt=Te.w_size;do{if(De=Te.window_size-Te.lookahead-Te.strstart,Te.strstart>=pt+(pt-ve)){for(W.arraySet(Te.window,Te.window,pt,pt,0),Te.match_start-=pt,Te.strstart-=pt,Te.block_start-=pt,je=Ke=Te.hash_size;Oe=Te.head[--je],Te.head[je]=pt<=Oe?Oe-pt:0,--Ke;);for(je=Ke=pt;Oe=Te.prev[--je],Te.prev[je]=pt<=Oe?Oe-pt:0,--Ke;);De+=pt}if(Te.strm.avail_in===0)break;if(it=Te.strm,rt=Te.window,Je=Te.strstart+Te.lookahead,ct=De,dt=void 0,dt=it.avail_in,ct=Se)for(et=Te.strstart-Te.insert,Te.ins_h=Te.window[et],Te.ins_h=(Te.ins_h<=Se&&(Te.ins_h=(Te.ins_h<=Se)if(Oe=q._tr_tally(Te,Te.strstart-Te.match_start,Te.match_length-Se),Te.lookahead-=Te.match_length,Te.match_length<=Te.max_lazy_match&&Te.lookahead>=Se){for(Te.match_length--;Te.strstart++,Te.ins_h=(Te.ins_h<=Se&&(Te.ins_h=(Te.ins_h<=Se&&Te.match_length<=Te.prev_length){for(De=Te.strstart+Te.lookahead-Se,Oe=q._tr_tally(Te,Te.strstart-1-Te.prev_match,Te.prev_length-Se),Te.lookahead-=Te.prev_length-1,Te.prev_length-=2;++Te.strstart<=De&&(Te.ins_h=(Te.ins_h<Te.pending_buf_size-5&&(Ke=Te.pending_buf_size-5);;){if(Te.lookahead<=1){if(He(Te),Te.lookahead===0&&je===K)return ye;if(Te.lookahead===0)break}Te.strstart+=Te.lookahead,Te.lookahead=0;var Oe=Te.block_start+Ke;if((Te.strstart===0||Te.strstart>=Oe)&&(Te.lookahead=Te.strstart-Oe,Te.strstart=Oe,_e(Te,!1),Te.strm.avail_out===0)||Te.strstart-Te.block_start>=Te.w_size-ve&&(_e(Te,!1),Te.strm.avail_out===0))return ye}return Te.insert=0,je===ie?(_e(Te,!0),Te.strm.avail_out===0?Re:Pe):(Te.strstart>Te.block_start&&(_e(Te,!1),Te.strm.avail_out),ye)}),new Ze(4,4,8,4,Qe),new Ze(4,5,16,8,Qe),new Ze(4,6,32,32,Qe),new Ze(4,4,16,16,We),new Ze(8,16,32,32,We),new Ze(8,16,128,128,We),new Ze(8,32,128,256,We),new Ze(32,128,258,1024,We),new Ze(32,258,258,4096,We)],G.deflateInit=function(Te,je){return Fe(Te,je,le,15,8,0)},G.deflateInit2=Fe,G.deflateReset=yt,G.deflateResetKeep=ht,G.deflateSetHeader=function(Te,je){return Te&&Te.state?Te.state.wrap!==2?ne:(Te.state.gzhead=je,te):ne},G.deflate=function(Te,je){var Ke,Oe,De,et;if(!Te||!Te.state||5>8&255),Ve(Oe,Oe.gzhead.time>>16&255),Ve(Oe,Oe.gzhead.time>>24&255),Ve(Oe,Oe.level===9?2:2<=Oe.strategy||Oe.level<2?4:0),Ve(Oe,255&Oe.gzhead.os),Oe.gzhead.extra&&Oe.gzhead.extra.length&&(Ve(Oe,255&Oe.gzhead.extra.length),Ve(Oe,Oe.gzhead.extra.length>>8&255)),Oe.gzhead.hcrc&&(Te.adler=Q(Te.adler,Oe.pending_buf,Oe.pending,0)),Oe.gzindex=0,Oe.status=69):(Ve(Oe,0),Ve(Oe,0),Ve(Oe,0),Ve(Oe,0),Ve(Oe,0),Ve(Oe,Oe.level===9?2:2<=Oe.strategy||Oe.level<2?4:0),Ve(Oe,3),Oe.status=Me);else{var it=le+(Oe.w_bits-8<<4)<<8;it|=(2<=Oe.strategy||Oe.level<2?0:Oe.level<6?1:Oe.level===6?2:3)<<6,Oe.strstart!==0&&(it|=32),it+=31-it%31,Oe.status=Me,qe(Oe,it),Oe.strstart!==0&&(qe(Oe,Te.adler>>>16),qe(Oe,65535&Te.adler)),Te.adler=1}if(Oe.status===69)if(Oe.gzhead.extra){for(De=Oe.pending;Oe.gzindex<(65535&Oe.gzhead.extra.length)&&(Oe.pending!==Oe.pending_buf_size||(Oe.gzhead.hcrc&&Oe.pending>De&&(Te.adler=Q(Te.adler,Oe.pending_buf,Oe.pending-De,De)),Ie(Te),De=Oe.pending,Oe.pending!==Oe.pending_buf_size));)Ve(Oe,255&Oe.gzhead.extra[Oe.gzindex]),Oe.gzindex++;Oe.gzhead.hcrc&&Oe.pending>De&&(Te.adler=Q(Te.adler,Oe.pending_buf,Oe.pending-De,De)),Oe.gzindex===Oe.gzhead.extra.length&&(Oe.gzindex=0,Oe.status=73)}else Oe.status=73;if(Oe.status===73)if(Oe.gzhead.name){De=Oe.pending;do{if(Oe.pending===Oe.pending_buf_size&&(Oe.gzhead.hcrc&&Oe.pending>De&&(Te.adler=Q(Te.adler,Oe.pending_buf,Oe.pending-De,De)),Ie(Te),De=Oe.pending,Oe.pending===Oe.pending_buf_size)){et=1;break}et=Oe.gzindexDe&&(Te.adler=Q(Te.adler,Oe.pending_buf,Oe.pending-De,De)),et===0&&(Oe.gzindex=0,Oe.status=91)}else Oe.status=91;if(Oe.status===91)if(Oe.gzhead.comment){De=Oe.pending;do{if(Oe.pending===Oe.pending_buf_size&&(Oe.gzhead.hcrc&&Oe.pending>De&&(Te.adler=Q(Te.adler,Oe.pending_buf,Oe.pending-De,De)),Ie(Te),De=Oe.pending,Oe.pending===Oe.pending_buf_size)){et=1;break}et=Oe.gzindexDe&&(Te.adler=Q(Te.adler,Oe.pending_buf,Oe.pending-De,De)),et===0&&(Oe.status=103)}else Oe.status=103;if(Oe.status===103&&(Oe.gzhead.hcrc?(Oe.pending+2>Oe.pending_buf_size&&Ie(Te),Oe.pending+2<=Oe.pending_buf_size&&(Ve(Oe,255&Te.adler),Ve(Oe,Te.adler>>8&255),Te.adler=0,Oe.status=Me)):Oe.status=Me),Oe.pending!==0){if(Ie(Te),Te.avail_out===0)return Oe.last_flush=-1,te}else if(Te.avail_in===0&&Le(je)<=Le(Ke)&&je!==ie)return Ae(Te,-5);if(Oe.status===666&&Te.avail_in!==0)return Ae(Te,-5);if(Te.avail_in!==0||Oe.lookahead!==0||je!==K&&Oe.status!==666){var rt=Oe.strategy===2?function(Je,ct){for(var dt;;){if(Je.lookahead===0&&(He(Je),Je.lookahead===0)){if(ct===K)return ye;break}if(Je.match_length=0,dt=q._tr_tally(Je,0,Je.window[Je.strstart]),Je.lookahead--,Je.strstart++,dt&&(_e(Je,!1),Je.strm.avail_out===0))return ye}return Je.insert=0,ct===ie?(_e(Je,!0),Je.strm.avail_out===0?Re:Pe):Je.last_lit&&(_e(Je,!1),Je.strm.avail_out===0)?ye:we}(Oe,je):Oe.strategy===3?function(Je,ct){for(var dt,pt,vt,wt,gt=Je.window;;){if(Je.lookahead<=Ee){if(He(Je),Je.lookahead<=Ee&&ct===K)return ye;if(Je.lookahead===0)break}if(Je.match_length=0,Je.lookahead>=Se&&0Je.lookahead&&(Je.match_length=Je.lookahead)}if(Je.match_length>=Se?(dt=q._tr_tally(Je,1,Je.match_length-Se),Je.lookahead-=Je.match_length,Je.strstart+=Je.match_length,Je.match_length=0):(dt=q._tr_tally(Je,0,Je.window[Je.strstart]),Je.lookahead--,Je.strstart++),dt&&(_e(Je,!1),Je.strm.avail_out===0))return ye}return Je.insert=0,ct===ie?(_e(Je,!0),Je.strm.avail_out===0?Re:Pe):Je.last_lit&&(_e(Je,!1),Je.strm.avail_out===0)?ye:we}(Oe,je):U[Oe.level].func(Oe,je);if(rt!==Re&&rt!==Pe||(Oe.status=666),rt===ye||rt===Re)return Te.avail_out===0&&(Oe.last_flush=-1),te;if(rt===we&&(je===1?q._tr_align(Oe):je!==5&&(q._tr_stored_block(Oe,0,0,!1),je===3&&(Ne(Oe.head),Oe.lookahead===0&&(Oe.strstart=0,Oe.block_start=0,Oe.insert=0))),Ie(Te),Te.avail_out===0))return Oe.last_flush=-1,te}return je!==ie?te:Oe.wrap<=0?1:(Oe.wrap===2?(Ve(Oe,255&Te.adler),Ve(Oe,Te.adler>>8&255),Ve(Oe,Te.adler>>16&255),Ve(Oe,Te.adler>>24&255),Ve(Oe,255&Te.total_in),Ve(Oe,Te.total_in>>8&255),Ve(Oe,Te.total_in>>16&255),Ve(Oe,Te.total_in>>24&255)):(qe(Oe,Te.adler>>>16),qe(Oe,65535&Te.adler)),Ie(Te),0=Ke.w_size&&(et===0&&(Ne(Ke.head),Ke.strstart=0,Ke.block_start=0,Ke.insert=0),ct=new W.Buf8(Ke.w_size),W.arraySet(ct,je,dt-Ke.w_size,Ke.w_size,0),je=ct,dt=Ke.w_size),it=Te.avail_in,rt=Te.next_in,Je=Te.input,Te.avail_in=dt,Te.next_in=0,Te.input=je,He(Ke);Ke.lookahead>=Se;){for(Oe=Ke.strstart,De=Ke.lookahead-(Se-1);Ke.ins_h=(Ke.ins_h<>>=Se=ge>>>24,ce-=Se,(Se=ge>>>16&255)===0)we[Z++]=65535≥else{if(!(16&Se)){if((64&Se)==0){ge=he[(65535&ge)+(le&(1<>>=Se,ce-=Se),ce<15&&(le+=ye[Y++]<>>=Se=ge>>>24,ce-=Se,!(16&(Se=ge>>>16&255))){if((64&Se)==0){ge=pe[(65535&ge)+(le&(1<>>=Se,ce-=Se,(Se=Z-K)>3,le&=(1<<(ce-=Ee<<3))-1,U.next_in=Y,U.next_out=Z,U.avail_in=Y>>24&255)+(xe>>>8&65280)+((65280&xe)<<8)+((255&xe)<<24)}function le(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new U.Buf16(320),this.work=new U.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function ce(xe){var Me;return xe&&xe.state?(Me=xe.state,xe.total_in=xe.total_out=Me.total=0,xe.msg="",Me.wrap&&(xe.adler=1&Me.wrap),Me.mode=ne,Me.last=0,Me.havedict=0,Me.dmax=32768,Me.head=null,Me.hold=0,Me.bits=0,Me.lencode=Me.lendyn=new U.Buf32(se),Me.distcode=Me.distdyn=new U.Buf32(re),Me.sane=1,Me.back=-1,ie):te}function he(xe){var Me;return xe&&xe.state?((Me=xe.state).wsize=0,Me.whave=0,Me.wnext=0,ce(xe)):te}function pe(xe,Me){var ye,we;return xe&&xe.state?(we=xe.state,Me<0?(ye=0,Me=-Me):(ye=1+(Me>>4),Me<48&&(Me&=15)),Me&&(Me<8||15=Pe.wsize?(U.arraySet(Pe.window,Me,ye-Pe.wsize,Pe.wsize,0),Pe.wnext=0,Pe.whave=Pe.wsize):(we<(Re=Pe.wsize-Pe.wnext)&&(Re=we),U.arraySet(Pe.window,Me,ye-we,Re,Pe.wnext),(we-=Re)?(U.arraySet(Pe.window,Me,ye-we,we,0),Pe.wnext=we,Pe.whave=Pe.wsize):(Pe.wnext+=Re,Pe.wnext===Pe.wsize&&(Pe.wnext=0),Pe.whave>>8&255,ye.check=q(ye.check,et,2,0),_e=Ie=0,ye.mode=2;break}if(ye.flags=0,ye.head&&(ye.head.done=!1),!(1&ye.wrap)||(((255&Ie)<<8)+(Ie>>8))%31){xe.msg="incorrect header check",ye.mode=30;break}if((15&Ie)!=8){xe.msg="unknown compression method",ye.mode=30;break}if(_e-=4,Te=8+(15&(Ie>>>=4)),ye.wbits===0)ye.wbits=Te;else if(Te>ye.wbits){xe.msg="invalid window size",ye.mode=30;break}ye.dmax=1<>8&1),512&ye.flags&&(et[0]=255&Ie,et[1]=Ie>>>8&255,ye.check=q(ye.check,et,2,0)),_e=Ie=0,ye.mode=3;case 3:for(;_e<32;){if(Le===0)break e;Le--,Ie+=we[Pe++]<<_e,_e+=8}ye.head&&(ye.head.time=Ie),512&ye.flags&&(et[0]=255&Ie,et[1]=Ie>>>8&255,et[2]=Ie>>>16&255,et[3]=Ie>>>24&255,ye.check=q(ye.check,et,4,0)),_e=Ie=0,ye.mode=4;case 4:for(;_e<16;){if(Le===0)break e;Le--,Ie+=we[Pe++]<<_e,_e+=8}ye.head&&(ye.head.xflags=255&Ie,ye.head.os=Ie>>8),512&ye.flags&&(et[0]=255&Ie,et[1]=Ie>>>8&255,ye.check=q(ye.check,et,2,0)),_e=Ie=0,ye.mode=5;case 5:if(1024&ye.flags){for(;_e<16;){if(Le===0)break e;Le--,Ie+=we[Pe++]<<_e,_e+=8}ye.length=Ie,ye.head&&(ye.head.extra_len=Ie),512&ye.flags&&(et[0]=255&Ie,et[1]=Ie>>>8&255,ye.check=q(ye.check,et,2,0)),_e=Ie=0}else ye.head&&(ye.head.extra=null);ye.mode=6;case 6:if(1024&ye.flags&&(Le<(Ge=ye.length)&&(Ge=Le),Ge&&(ye.head&&(Te=ye.head.extra_len-ye.length,ye.head.extra||(ye.head.extra=new Array(ye.head.extra_len)),U.arraySet(ye.head.extra,we,Pe,Ge,Te)),512&ye.flags&&(ye.check=q(ye.check,we,Ge,Pe)),Le-=Ge,Pe+=Ge,ye.length-=Ge),ye.length))break e;ye.length=0,ye.mode=7;case 7:if(2048&ye.flags){if(Le===0)break e;for(Ge=0;Te=we[Pe+Ge++],ye.head&&Te&&ye.length<65536&&(ye.head.name+=String.fromCharCode(Te)),Te&&Ge>9&1,ye.head.done=!0),xe.adler=ye.check=0,ye.mode=12;break;case 10:for(;_e<32;){if(Le===0)break e;Le--,Ie+=we[Pe++]<<_e,_e+=8}xe.adler=ye.check=ae(Ie),_e=Ie=0,ye.mode=11;case 11:if(ye.havedict===0)return xe.next_out=Ae,xe.avail_out=Ne,xe.next_in=Pe,xe.avail_in=Le,ye.hold=Ie,ye.bits=_e,2;xe.adler=ye.check=1,ye.mode=12;case 12:if(Me===5||Me===6)break e;case 13:if(ye.last){Ie>>>=7&_e,_e-=7&_e,ye.mode=27;break}for(;_e<3;){if(Le===0)break e;Le--,Ie+=we[Pe++]<<_e,_e+=8}switch(ye.last=1&Ie,_e-=1,3&(Ie>>>=1)){case 0:ye.mode=14;break;case 1:if(Ee(ye),ye.mode=20,Me!==6)break;Ie>>>=2,_e-=2;break e;case 2:ye.mode=17;break;case 3:xe.msg="invalid block type",ye.mode=30}Ie>>>=2,_e-=2;break;case 14:for(Ie>>>=7&_e,_e-=7&_e;_e<32;){if(Le===0)break e;Le--,Ie+=we[Pe++]<<_e,_e+=8}if((65535&Ie)!=(Ie>>>16^65535)){xe.msg="invalid stored block lengths",ye.mode=30;break}if(ye.length=65535&Ie,_e=Ie=0,ye.mode=15,Me===6)break e;case 15:ye.mode=16;case 16:if(Ge=ye.length){if(Le>>=5,_e-=5,ye.ndist=1+(31&Ie),Ie>>>=5,_e-=5,ye.ncode=4+(15&Ie),Ie>>>=4,_e-=4,286>>=3,_e-=3}for(;ye.have<19;)ye.lens[it[ye.have++]]=0;if(ye.lencode=ye.lendyn,ye.lenbits=7,Ke={bits:ye.lenbits},je=Q(0,ye.lens,0,19,ye.lencode,0,ye.work,Ke),ye.lenbits=Ke.bits,je){xe.msg="invalid code lengths set",ye.mode=30;break}ye.have=0,ye.mode=19;case 19:for(;ye.have>>16&255,lt=65535&De,!((We=De>>>24)<=_e);){if(Le===0)break e;Le--,Ie+=we[Pe++]<<_e,_e+=8}if(lt<16)Ie>>>=We,_e-=We,ye.lens[ye.have++]=lt;else{if(lt===16){for(Oe=We+2;_e>>=We,_e-=We,ye.have===0){xe.msg="invalid bit length repeat",ye.mode=30;break}Te=ye.lens[ye.have-1],Ge=3+(3&Ie),Ie>>>=2,_e-=2}else if(lt===17){for(Oe=We+3;_e>>=We)),Ie>>>=3,_e-=3}else{for(Oe=We+7;_e>>=We)),Ie>>>=7,_e-=7}if(ye.have+Ge>ye.nlen+ye.ndist){xe.msg="invalid bit length repeat",ye.mode=30;break}for(;Ge--;)ye.lens[ye.have++]=Te}}if(ye.mode===30)break;if(ye.lens[256]===0){xe.msg="invalid code -- missing end-of-block",ye.mode=30;break}if(ye.lenbits=9,Ke={bits:ye.lenbits},je=Q(Z,ye.lens,0,ye.nlen,ye.lencode,0,ye.work,Ke),ye.lenbits=Ke.bits,je){xe.msg="invalid literal/lengths set",ye.mode=30;break}if(ye.distbits=6,ye.distcode=ye.distdyn,Ke={bits:ye.distbits},je=Q(K,ye.lens,ye.nlen,ye.ndist,ye.distcode,0,ye.work,Ke),ye.distbits=Ke.bits,je){xe.msg="invalid distances set",ye.mode=30;break}if(ye.mode=20,Me===6)break e;case 20:ye.mode=21;case 21:if(6<=Le&&258<=Ne){xe.next_out=Ae,xe.avail_out=Ne,xe.next_in=Pe,xe.avail_in=Le,ye.hold=Ie,ye.bits=_e,Y(xe,qe),Ae=xe.next_out,Re=xe.output,Ne=xe.avail_out,Pe=xe.next_in,we=xe.input,Le=xe.avail_in,Ie=ye.hold,_e=ye.bits,ye.mode===12&&(ye.back=-1);break}for(ye.back=0;Ze=(De=ye.lencode[Ie&(1<>>16&255,lt=65535&De,!((We=De>>>24)<=_e);){if(Le===0)break e;Le--,Ie+=we[Pe++]<<_e,_e+=8}if(Ze&&(240&Ze)==0){for(ht=We,yt=Ze,Fe=lt;Ze=(De=ye.lencode[Fe+((Ie&(1<>ht)])>>>16&255,lt=65535&De,!(ht+(We=De>>>24)<=_e);){if(Le===0)break e;Le--,Ie+=we[Pe++]<<_e,_e+=8}Ie>>>=ht,_e-=ht,ye.back+=ht}if(Ie>>>=We,_e-=We,ye.back+=We,ye.length=lt,Ze===0){ye.mode=26;break}if(32&Ze){ye.back=-1,ye.mode=12;break}if(64&Ze){xe.msg="invalid literal/length code",ye.mode=30;break}ye.extra=15&Ze,ye.mode=22;case 22:if(ye.extra){for(Oe=ye.extra;_e>>=ye.extra,_e-=ye.extra,ye.back+=ye.extra}ye.was=ye.length,ye.mode=23;case 23:for(;Ze=(De=ye.distcode[Ie&(1<>>16&255,lt=65535&De,!((We=De>>>24)<=_e);){if(Le===0)break e;Le--,Ie+=we[Pe++]<<_e,_e+=8}if((240&Ze)==0){for(ht=We,yt=Ze,Fe=lt;Ze=(De=ye.distcode[Fe+((Ie&(1<>ht)])>>>16&255,lt=65535&De,!(ht+(We=De>>>24)<=_e);){if(Le===0)break e;Le--,Ie+=we[Pe++]<<_e,_e+=8}Ie>>>=ht,_e-=ht,ye.back+=ht}if(Ie>>>=We,_e-=We,ye.back+=We,64&Ze){xe.msg="invalid distance code",ye.mode=30;break}ye.offset=lt,ye.extra=15&Ze,ye.mode=24;case 24:if(ye.extra){for(Oe=ye.extra;_e>>=ye.extra,_e-=ye.extra,ye.back+=ye.extra}if(ye.offset>ye.dmax){xe.msg="invalid distance too far back",ye.mode=30;break}ye.mode=25;case 25:if(Ne===0)break e;if(Ge=qe-Ne,ye.offset>Ge){if((Ge=ye.offset-Ge)>ye.whave&&ye.sane){xe.msg="invalid distance too far back",ye.mode=30;break}He=Ge>ye.wnext?(Ge-=ye.wnext,ye.wsize-Ge):ye.wnext-Ge,Ge>ye.length&&(Ge=ye.length),Qe=ye.window}else Qe=Re,He=Ae-ye.offset,Ge=ye.length;for(Nefe?(Se=He[Qe+re[Me]],_e[Ve+re[Me]]):(Se=96,0),le=1<>Ae)+(ce-=le)]=ge<<24|Se<<16|Ee|0,ce!==0;);for(le=1<>=1;if(le!==0?(Ie&=le-1,Ie+=le):Ie=0,Me++,--qe[xe]==0){if(xe===we)break;xe=K[ie+re[Me]]}if(Re>>7)]}function Ve(De,et){De.pending_buf[De.pending++]=255&et,De.pending_buf[De.pending++]=et>>>8&255}function qe(De,et,it){De.bi_valid>ae-it?(De.bi_buf|=et<>ae-De.bi_valid,De.bi_valid+=it-ae):(De.bi_buf|=et<>>=1,it<<=1,0<--et;);return it>>>1}function Qe(De,et,it){var rt,Je,ct=new Array(re+1),dt=0;for(rt=1;rt<=re;rt++)ct[rt]=dt=dt+it[rt-1]<<1;for(Je=0;Je<=et;Je++){var pt=De[2*Je+1];pt!==0&&(De[2*Je]=He(ct[pt]++,pt))}}function We(De){var et;for(et=0;et>1;1<=it;it--)ht(De,ct,it);for(Je=vt;it=De.heap[1],De.heap[1]=De.heap[De.heap_len--],ht(De,ct,1),rt=De.heap[1],De.heap[--De.heap_max]=it,De.heap[--De.heap_max]=rt,ct[2*Je]=ct[2*it]+ct[2*rt],De.depth[Je]=(De.depth[it]>=De.depth[rt]?De.depth[it]:De.depth[rt])+1,ct[2*it+1]=ct[2*rt+1]=Je,De.heap[1]=Je++,ht(De,ct,1),2<=De.heap_len;);De.heap[--De.heap_max]=De.heap[1],function(gt,Tt){var Rt,Ht,mi,Zt,si,vi,At=Tt.dyn_tree,oi=Tt.max_code,Mi=Tt.stat_desc.static_tree,Ai=Tt.stat_desc.has_stree,En=Tt.stat_desc.extra_bits,Yi=Tt.stat_desc.extra_base,fi=Tt.stat_desc.max_length,er=0;for(Zt=0;Zt<=re;Zt++)gt.bl_count[Zt]=0;for(At[2*gt.heap[gt.heap_max]+1]=0,Rt=gt.heap_max+1;Rt>=7;Je>>=1)if(1&wt&&pt.dyn_ltree[2*vt]!==0)return W;if(pt.dyn_ltree[18]!==0||pt.dyn_ltree[20]!==0||pt.dyn_ltree[26]!==0)return q;for(vt=32;vt>>3,(ct=De.static_len+3+7>>>3)<=Je&&(Je=ct)):Je=ct=it+5,it+4<=Je&&et!==-1?Oe(De,et,it,rt):De.strategy===4||ct===Je?(qe(De,2+(rt?1:0),3),yt(De,ve,xe)):(qe(De,4+(rt?1:0),3),function(pt,vt,wt,gt){var Tt;for(qe(pt,vt-257,5),qe(pt,wt-1,5),qe(pt,gt-4,4),Tt=0;Tt>>8&255,De.pending_buf[De.d_buf+2*De.last_lit+1]=255&et,De.pending_buf[De.l_buf+De.last_lit]=255&it,De.last_lit++,et===0?De.dyn_ltree[2*it]++:(De.matches++,et--,De.dyn_ltree[2*(ye[it]+K+1)]++,De.dyn_dtree[2*_e(et)]++),De.last_lit===De.lit_bufsize-1},G._tr_align=function(De){qe(De,2,3),Ge(De,ce,ve),function(et){et.bi_valid===16?(Ve(et,et.bi_buf),et.bi_buf=0,et.bi_valid=0):8<=et.bi_valid&&(et.pending_buf[et.pending++]=255&et.bi_buf,et.bi_buf>>=8,et.bi_valid-=8)}(De)}},{"../utils/common":41}],53:[function(B,D,G){D.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(B,D,G){D.exports=typeof setImmediate=="function"?setImmediate:function(){var U=[].slice.apply(arguments);U.splice(1,0,0),setTimeout.apply(null,U)}},{}]},{},[10])(10)})})(jszip_min);var JSZip=jszip_min.exports;class MXLHelper{static MXLtoIXmlElement(R){const B=new JSZip;return B.loadAsync(R).then(U=>B.file("META-INF/container.xml").async("text"),U=>{throw U}).then(U=>{const Y=new DOMParser().parseFromString(U,"text/xml").getElementsByTagName("rootfile")[0].getAttribute("full-path");return B.file(Y).async("text")},U=>{throw U}).then(U=>{const q=new DOMParser().parseFromString(U,"text/xml"),Y=new IXmlElement(q.documentElement);return Promise.resolve(Y)},U=>{throw U}).then(U=>U,U=>{throw new Error("extractSheetFromMxl: "+U.message)})}static MXLtoXMLstring(R){const B=new JSZip;return B.loadAsync(R).then(D=>B.file("META-INF/container.xml").async("text"),D=>{throw log$2.error(D),D}).then(D=>{const W=new DOMParser().parseFromString(D,"text/xml").getElementsByTagName("rootfile")[0].getAttribute("full-path");return B.file(W).async("text")},D=>{throw D})}}class PlaybackNoteGenerator{calculate(R){const B=new MusicPartManagerIterator(R);for(;!B.EndReached;){const D=B.CurrentEnrolledTimestamp,G=B.CurrentAudibleVoiceEntries();for(const U of G)this.handleVoiceEntry(R,U,D);B.moveToNext()}}handleVoiceEntry(R,B,D){if(B.IsGrace)return;const G=B.ParentVoice;let U;R.PlaybackDataDict.containsKey(G)?U=R.PlaybackDataDict.getValue(G):(U=[],R.PlaybackDataDict.setValue(G,U));for(const W of B.PlaybackEntries)if(W.HasNotes){for(const Y of W.Notes)Y.setLength();const q=Fraction$1.plus(D,W.TimestampShift);PlaybackNoteGenerator.addEntrySorted(U,W,q)}}static addEntrySorted(R,B,D){if(R.length===0)R.push({enrolledTimestamp:D,playbackEntry:B});else for(let G=R.length-1;G>=0;G--){const U=R[G];if(D.RealValue>U.enrolledTimestamp.RealValue)if(G===R.length-1){R.push({enrolledTimestamp:D,playbackEntry:B});break}else{R.splice(G+1,0,{enrolledTimestamp:D,playbackEntry:B});break}}}}class ScreenViewingRegion{constructor(R,B,D,G){this.psi=new BoundingBox$1(void 0),this.displaySizeInPixel=R,this.RelativeDisplaySize=B,this.RelativeDisplayPosition=D,this.WidthInUnits=G}static createWithRelativeDefaults(R,B){return new ScreenViewingRegion(R,new SizeF2D(1,1),new PointF2D(0,0),B)}static createWithDefaults(){return new ScreenViewingRegion(new SizeF2D(1,1),new SizeF2D(1,1),new PointF2D(0,0),1)}get UpperLeftPositionInUnits(){return this.psi.AbsolutePosition}set UpperLeftPositionInUnits(R){this.psi.AbsolutePosition=R}get DisplaySizeInPixel(){return this.displaySizeInPixel}set DisplaySizeInPixel(R){this.displaySizeInPixel=R,this.regionSizeInPixel=new SizeF2D(this.displaySizeInPixel.width*this.relativeRegionSize.width,this.displaySizeInPixel.height*this.relativeRegionSize.height),this.recalculateDependentVariables()}get RelativeDisplaySize(){return this.relativeRegionSize}set RelativeDisplaySize(R){this.relativeRegionSize=R,this.regionSizeInPixel=new SizeF2D(this.displaySizeInPixel.width*this.relativeRegionSize.width,this.displaySizeInPixel.height*this.relativeRegionSize.height),this.recalculateDependentVariables()}get RegionSizeInPixel(){return this.regionSizeInPixel}get WidthInUnits(){return this.psi.BorderRight}set WidthInUnits(R){this.psi.BorderRight=R,this.recalculateDependentVariables()}get ViewRegionInUnits(){return new SizeF2D(this.psi.BorderRight,this.psi.BorderBottom)}isVisible(R,B){const D=this.psi.collisionDetection(R);return this.psi.liesInsideBorders(R),D}isInsideDisplayArea(R,B){return this.RelativeDisplayPosition.x<=R&&R<=this.RelativeDisplayPosition.x+this.RelativeDisplaySize.width&&this.RelativeDisplayPosition.y<=B&&B<=this.RelativeDisplayPosition.y+this.RelativeDisplaySize.height}transformToUnitCoordinates(R){return new PointF2D(this.UpperLeftPositionInUnits.x+this.ViewRegionInUnits.width*((R.x-this.RelativeDisplayPosition.x)/this.RelativeDisplaySize.width),this.UpperLeftPositionInUnits.y+this.ViewRegionInUnits.height*((R.y-this.RelativeDisplayPosition.y)/this.RelativeDisplaySize.height))}transformLengthXToUnitCoordinates(R){return R/this.horizontalUnitToPixelRatio}transformLengthYToUnitCoordinates(R){return R/this.verticalUnitToPixelRatio}recalculateDependentVariables(){const R=this.regionSizeInPixel.width/this.regionSizeInPixel.height;this.psi.BorderBottom=this.psi.BorderRight/R,this.horizontalUnitToPixelRatio=this.regionSizeInPixel.width/this.ViewRegionInUnits.width,this.verticalUnitToPixelRatio=this.regionSizeInPixel.height/this.ViewRegionInUnits.height}}class AbstractZoomView{constructor(R){this.aspectRatio=1,this.zoomViews=[],this.mouseZoomMode=!1,this.autoScrollY=!0,this.displayInteractionManager=R,this.displayInteractionManager.addListener(this),this.offsetXMin=Number.MIN_VALUE,this.offsetYMin=Number.MIN_VALUE,this.rangeXMin=1,this.rangeYMin=1,this.offsetXMax=Number.MAX_VALUE,this.offsetYMax=Number.MAX_VALUE,this.rangeXMax=1e9,this.rangeYMax=1e9,this.XScrollingEnabled=!1,this.YScrollingEnabled=!0}positionTouched(R,B){if(!this.convertToUnitsReady())return;const D=this.getPositionInUnits(R,B);this.unitPosTouched(D,R,B)}get TouchActive(){return this.displayInteractionManager.TouchActive}get TouchMoving(){return this.displayInteractionManager.TouchMoving}positionDoubleTouched(R,B){if(!this.convertToUnitsReady())return;const D=this.getPositionInUnits(R,B);this.unitPosDoubleTouched(D,R,B)}get UsesManuallyControlledZoomMode(){return this.usesManuallyControlledZoomMode}set UsesManuallyControlledZoomMode(R){this.usesManuallyControlledZoomMode=R}mouseDown(R,B,D=!1){if(!this.convertToUnitsReady())return;this.selectScrollControllerY(!1),this.lastRangeX=Math.max(1,this.RangeX),this.lastRangeY=Math.max(1,this.RangeY),this.lastOffsetX=this.OffsetX,this.lastOffsetY=this.OffsetY;const G=this.getPositionInUnits(R,B);this.unitPosTouchDown(G,R,B),this.usesManuallyControlledZoomMode||(D?this.mouseZoomMode=!0:this.mouseZoomMode=!1)}mouseUp(R,B){const D=this.getPositionInUnits(R,B);this.unitPosTouchUp(D,R,B)}mouseMove(R,B,D,G){this.mouseZoomMode?(Math.abs(D-0)>1e-8&&(this.RangeX=Math.abs(this.lastRangeX/(1+D))),!this.lockRanges&&Math.abs(G-0)>1e-8&&(this.RangeY=Math.abs(this.lastRangeY/(1-G)))):(Math.abs(D-0)>1e-8&&(this.OffsetX=this.lastOffsetX-D*this.RangeX),Math.abs(G-0)>1e-8&&(this.OffsetY=this.lastOffsetY-G*this.RangeY));const U=this.getPositionInUnits(R,B);this.unitPosMove(U,R,B)}zoom(R){this.RangeX=Math.abs(this.lastRangeX/R)}addZoomView(R){this.zoomViews.push(R)}get OffsetX(){return this.offsetX}set OffsetX(R){this.offsetX=Math.min(this.offsetXMax,Math.max(this.offsetXMin,R));for(const B of this.zoomViews)B.viewportXChanged(this.offsetX,this.RangeX)}get OffsetY(){return this.offsetY}set OffsetY(R){this.offsetY=R,this.offsetY>this.offsetYMax?this.offsetY=this.offsetYMax:this.offsetY(F[F.SingleTouch=0]="SingleTouch",F[F.DoubleTouch=1]="DoubleTouch",F[F.TouchUp=2]="TouchUp",F[F.TouchDown=3]="TouchDown",F[F.Move=4]="Move",F))(InteractionType||{});class VoiceEntryInteractionListener{constructor(R){this.renderingManager=R}userDisplayInteraction(R,B,D){var G,U;switch(D){case InteractionType.TouchDown:case InteractionType.SingleTouch:case InteractionType.DoubleTouch:{const W=this.renderingManager.GraphicalMusicSheet.GetNearestVoiceEntry(B);W&&W.parentStaffEntry.parentVerticalContainer!==void 0&&((G=W.notes[0])==null?void 0:G.sourceNote.Pitch)!==void 0&&((U=this.renderingManager.PlaybackManager)==null||U.playVoiceEntry(W.parentVoiceEntry));break}}}}class SheetRenderingManager extends AbstractZoomView{constructor(R,B){super(R),this.mainViewingRegion=ScreenViewingRegion.createWithDefaults(),this.tryAgainToRenderCount=0,this.yOffsetMouseDown=Number.MIN_VALUE,this.unlockCursorDistancePixel=50,this.relativeTopPosition=.06,this.internalPreviewImageScale=3,this.listeners=[],this.LockDisplayToCursor=!0,this.ZoomActive=!1,this.rules=B,this.addZoomView(this),this.lockRanges=!0,this.TopBarHeightInPixel=70,this.BottomBarHeightInPixel=0,this.rules.UseDefaultVoiceInteractionListener&&this.listeners.push(new VoiceEntryInteractionListener(this))}addListener(R){this.listeners.push(R)}get Listeners(){return this.listeners}convertToUnitsReady(){return this.graphicalMusicSheet!==void 0}unitPosTouched(R,B,D){if(!this.SingleTouchDisabled){const G=new PointF2D(B,D);this.handleUserDisplayInteraction(G,R,InteractionType.SingleTouch)}}unitPosDoubleTouched(R,B,D){if(!this.DoubleTouchDisabled){const G=new PointF2D(B,D);this.handleUserDisplayInteraction(G,R,InteractionType.DoubleTouch)}}unitPosTouchDown(R,B,D){const G=new PointF2D(B,D);this.handleUserDisplayInteraction(G,R,InteractionType.TouchDown),this.yOffsetMouseDown=R.y}unitPosTouchUp(R,B,D){const G=new PointF2D(B,D);this.handleUserDisplayInteraction(G,R,InteractionType.TouchUp),this.displayInteractionManager.WasZoomGestureActive===!1&&this.unlockFromCursorIfNecessary(R),this.yOffsetMouseDown=Number.MIN_VALUE}unitPosMove(R,B,D){const G=new PointF2D(B,D);this.handleUserDisplayInteraction(G,R,InteractionType.Move),this.unlockFromCursorIfNecessary(R)}get MainViewingRegion(){return this.mainViewingRegion}setMusicSheet(R){this.graphicalMusicSheet=R,this.adaptDisplayLimitsToSheet(),this.setYOffset(0,!0)}viewportXChanged(R,B){this.graphicalMusicSheet!==void 0&&this.horizontalViewportChanged(R,B)}viewportYChanged(R,B){this.graphicalMusicSheet!==void 0&&(this.yOffsetMouseDown<=Number.MIN_VALUE+.5&&(this.yOffsetMouseDown=R),this.verticalViewportChanged(R,B))}displaySizeChanged(R,B){super.viewSizeChanged(R,B),!(Math.abs(R-0)<1e-7||Math.abs(B-0)<1e-7)&&(this.graphicalMusicSheet!==void 0&&this.graphicalMusicSheet.EnforceRedrawOfMusicSystems(),this.mainViewingRegion.DisplaySizeInPixel=new SizeF2D(R,B),this.adaptDisplayLimitsToSheet())}calcDisplayYPosition(R){return R.PositionAndShape.AbsolutePosition.y+R.PositionAndShape.BorderMarginTop-this.topBarHeightInUnits()-this.relativeTopPosition*this.heightWithoutTopBottomBarsInUnits()}yPositionForLastSystem(R){return R.PositionAndShape.AbsolutePosition.y+R.PositionAndShape.BorderMarginBottom-this.topBarHeightInUnits()-(1-this.relativeTopPosition)*this.heightWithoutTopBottomBarsInUnits()}scorePositionChanged(R,B,D,G,U,W){const q=this.calcDisplayYPosition(G);this.setYPosition(q,W)}setXPosition(R,B){this.LockDisplayToCursor&&this.setXOffset(R,B)}setYPosition(R,B){this.LockDisplayToCursor&&this.setYOffset(R,B)}get DrawingParameters(){return this.musicSheetDrawer.drawingParameters}topBarHeightInUnits(){return this.mainViewingRegion.transformLengthYToUnitCoordinates(this.TopBarHeightInPixel)}bottomBarHeightInUnits(){return this.mainViewingRegion.transformLengthYToUnitCoordinates(this.BottomBarHeightInPixel)}heightWithoutTopBottomBarsInUnits(){return this.mainViewingRegion.ViewRegionInUnits.height-this.topBarHeightInUnits()-this.bottomBarHeightInUnits()}activePositionToBottomBarHeight(){return(this.mainViewingRegion.ViewRegionInUnits.height-this.topBarHeightInUnits()-this.bottomBarHeightInUnits())*(1-2*this.relativeTopPosition)}getClickPosition(R,B){return this.mainViewingRegion.transformToUnitCoordinates(new PointF2D(R,B))}graphicalObjectIsVisible(R){return this.mainViewingRegion.isVisible(R,!1)}adaptDisplayLimitsToSheet(){if(this.graphicalMusicSheet===void 0||this.graphicalMusicSheet.MusicPages.length===0||this.graphicalMusicSheet.MusicPages[0].MusicSystems.length===0)return;this.offsetXMin=0,this.rangeXMin=this.graphicalMusicSheet.MinAllowedSystemWidth,this.rangeXMax=300,this.offsetYMin=-.3*this.RangeY;const R=this.graphicalMusicSheet.MusicPages.last().PositionAndShape;this.offsetYMax=Math.max(0,R.BorderMarginBottom-.7*this.RangeY),this.OffsetY>this.offsetYMax&&this.setYOffset(this.offsetYMax,!0)}horizontalViewportChanged(R,B){this.mainViewingRegion.WidthInUnits!==B&&(this.mainViewingRegion.WidthInUnits=B)}verticalViewportChanged(R,B){this.mainViewingRegion.UpperLeftPositionInUnits=new PointF2D(this.mainViewingRegion.UpperLeftPositionInUnits.x,R)}unlockFromCursorIfNecessary(R){if(this.LockDisplayToCursor===!1||this.ZoomActive||this.displayInteractionManager.ZoomGestureActive||this.displayInteractionManager.WasZoomGestureActive)return;Math.abs((R.y-this.yOffsetMouseDown)*this.mainViewingRegion.RegionSizeInPixel.height/this.mainViewingRegion.ViewRegionInUnits.height)>this.unlockCursorDistancePixel&&(this.LockDisplayToCursor=!1)}getPositionInUnits(R,B){return this.mainViewingRegion.transformToUnitCoordinates(new PointF2D(R,B))}handleUserDisplayInteraction(R,B,D){switch(D){case InteractionType.TouchDown:case InteractionType.SingleTouch:case InteractionType.DoubleTouch:{const G=this.graphicalMusicSheet.GetNearestVoiceEntry(B);if(G){const U=new CustomEvent("note-click",{detail:{...G,setAvtivePlay:()=>{var W,q;if(G.parentStaffEntry.parentVerticalContainer!==void 0){const Y=G.parentStaffEntry.parentVerticalContainer.AbsoluteTimestamp;this.setStartPosition(Y),((W=G.notes[0])==null?void 0:W.sourceNote.Pitch)!==void 0&&(console.log("playback clicked note",G.parentVoiceEntry),(q=this.PlaybackManager)==null||q.playVoiceEntry(G.parentVoiceEntry))}}}});window.dispatchEvent(U)}}case InteractionType.TouchUp:case InteractionType.TouchDown:case InteractionType.Move:for(const G of this.listeners)G.userDisplayInteraction(R,B,D);break;default:throw new Error("type")}}setStartPosition(R){var B;this.graphicalMusicSheet!==void 0&&(this.graphicalMusicSheet.ParentMusicSheet.SelectionStart=R,(B=this.PlaybackManager)==null||B.reset())}get GraphicalMusicSheet(){return this.graphicalMusicSheet}}class WebSheetRenderingManager extends SheetRenderingManager{mouseMove(R,B,D,G){const U=this.getPositionInUnits(R,B);this.unitPosMove(U,R,B)}}class AbstractDisplayInteractionManager{constructor(){this.listeners=[],this.zoomGestureActive=!1,this.touchCount=0,this.touchActive=!1,this.touchMoving=!1,this.displayWidth=1,this.displayHeight=1,this.displayDpi=96,this.maxNumerOfFingers=2,this.movementThreshInch=.075,this.interactionWasZoomGesture=!1}addListener(R){this.listeners.push(R)}get ZoomGestureActive(){return this.zoomGestureActive}get WasZoomGestureActive(){return this.interactionWasZoomGesture}displaySizeChanged(R,B){this.displayWidth=R,this.displayHeight=B;for(const D of this.listeners)D.displaySizeChanged(this.displayWidth,this.displayHeight)}Dispose(){this.dispose()}Initialize(){this.initialize()}get DisplayDpi(){return this.displayDpi}get TouchActive(){return this.touchActive}get TouchMoving(){return this.touchMoving}touchDown(R,B,D){this.interactionWasZoomGesture=!1;const G=R/this.displayWidth,U=B/this.displayHeight;this.lastRelPosX=G,this.lastRelPosY=U,this.lastPixelX=R,this.lastPixelY=B,this.touchActive=!0,this.touchMoving=!1,this.touchCount=Math.min(this.touchCount+1,this.maxNumerOfFingers);for(const W of this.listeners)W.mouseDown(G,U,!D)}move(R,B){if(this.touchActive&&!this.zoomGestureActive){const D=R/this.displayWidth,G=B/this.displayHeight,U=D-this.lastRelPosX,W=G-this.lastRelPosY;this.touchMoving=!0;for(const q of this.listeners)q.mouseMove(D,G,U,W)}}zoomGestureStarted(){this.zoomGestureActive=!0}zoomGestureCompleted(){this.zoomGestureActive=!1,this.interactionWasZoomGesture=!0}zoomGestureMove(R){this.zoomGestureActive&&this.listeners.forEach(function(B){B.zoom(R)})}touchUp(R,B){this.touchActive=!1,this.touchMoving=!1,this.touchCount=Math.max(0,this.touchCount-1);const D=R/this.displayWidth,G=B/this.displayHeight;for(const U of this.listeners)U.mouseUp(D,G)}click(R,B){if(!this.mouseDidMove(this.lastPixelX,R,this.lastPixelY,B)&&!this.ZoomGestureActive){const D=R/this.displayWidth,G=B/this.displayHeight;for(const U of this.listeners)U.positionTouched(D,G)}}doubleClick(R,B){if(!this.mouseDidMove(this.lastPixelX,R,this.lastPixelY,B)&&!this.ZoomGestureActive){const D=R/this.displayWidth,G=B/this.displayHeight;for(const U of this.listeners)U.positionDoubleTouched(D,G)}}mouseDidMove(R,B,D,G){const U=Math.abs(R-B)/this.displayDpi,W=Math.abs(D-G)/this.displayDpi;return U>this.movementThreshInch||W>this.movementThreshInch}}class WebDisplayInteractionManager extends AbstractDisplayInteractionManager{constructor(R){super(),this.fullOffsetLeft=0,this.fullOffsetTop=0,this.fullScrollTop=0,this.fullScrollLeft=0,this.parentScrollMap=new Map,this.scrollCallbackMap=new Map,this.timeout=void 0,this.resizeObserver=void 0,this.EventCallbackMap=new Dictionary,this.DOUBLE_CLICK_WINDOW=200,this.lastClick=0,this.osmdSheetMusicContainer=R,this.listenForInteractions()}get FullOffsetTop(){return this.fullOffsetTop}get FullScrollTop(){return this.fullScrollTop}get FullOffsetLeft(){return this.fullOffsetLeft}get FullScrollLeft(){return this.fullScrollLeft}static resizeCallback(R,B){clearTimeout(B.timeout),B.timeout=setTimeout(()=>{B.fullOffsetLeft=0,B.fullOffsetTop=0;let D=B.osmdSheetMusicContainer;for(;D;)B.fullOffsetLeft+=D.offsetLeft,B.fullOffsetTop+=D.offsetTop,D=D.offsetParent;B.resizeEventListener(),B.deregisterScrollOffsets(),B.registerScrollOffsets()},500)}registerScrollOffsets(){let R=this.osmdSheetMusicContainer;this.fullScrollTop=0,this.fullScrollLeft=0;const B=this;for(;R&&R!==document.documentElement;){if(this.parentScrollMap.set(R,[R.scrollTop,R.scrollLeft]),this.fullScrollLeft+=R.scrollLeft,this.fullScrollTop+=R.scrollTop,R.scrollHeight>R.clientHeight){const D=function(G){const U=B.parentScrollMap.get(this),W=U[0],q=U[1];B.fullScrollTop=B.fullScrollTop-W+this.scrollTop,B.fullScrollLeft=B.fullScrollLeft-q+this.scrollLeft,B.parentScrollMap.set(this,[this.scrollTop,this.scrollLeft])};this.scrollCallbackMap.set(R,D),R.addEventListener("scroll",D)}R=R.parentElement}}deregisterScrollOffsets(){for(const R of this.scrollCallbackMap.keys())R.removeEventListener("scroll",this.scrollCallbackMap.get(R));this.scrollCallbackMap.clear()}initialize(){this.fullOffsetLeft=0,this.fullOffsetTop=0;let R=this.osmdSheetMusicContainer;const B=[],D=this;for(window.ResizeObserver&&(this.resizeObserver=new ResizeObserver(G=>{WebDisplayInteractionManager.resizeCallback(G,D)}));R;)this.fullOffsetLeft+=R.offsetLeft,this.fullOffsetTop+=R.offsetTop,this.resizeObserver?this.resizeObserver.observe(R):B.push(R),R=R.offsetParent;if(this.resizeObserver)this.disposeResizeListener=()=>{D.resizeObserver.disconnect(),D.resizeObserver=void 0};else{let G=()=>{WebDisplayInteractionManager.resizeCallback(B,D)};window.addEventListener("resize",G),this.disposeResizeListener=()=>{window.removeEventListener("resize",G),G=void 0}}D.registerScrollOffsets()}dispose(){this.disposeResizeListener();for(const R of this.EventCallbackMap.keys()){const B=this.EventCallbackMap.getValue(R);B[0].removeEventListener(R,B[1])}this.EventCallbackMap.clear(),this.deregisterScrollOffsets(),this.scrollCallbackMap.clear(),this.parentScrollMap.clear()}isTouch(){if("ontouchstart"in window||window.DocumentTouch)return!0;if(!window.matchMedia)return!1;const B=["(",["-webkit-","-moz-","-o-","-ms-"].join("touch-enabled),("),"heartz",")"].join("");return window.matchMedia(B).matches}get downEventName(){return this.isTouch()?"touchstart":"mousedown"}get moveEventName(){return this.isTouch()?"touchmove":"mousemove"}listenForInteractions(){const R=this.downEventListener.bind(this),B=this.touchEndEventListener.bind(this),D=this.moveEventListener.bind(this);this.osmdSheetMusicContainer.addEventListener("mousedown",R),this.osmdSheetMusicContainer.addEventListener("touchend",B),document.addEventListener(this.moveEventName,D),this.EventCallbackMap.setValue("mousedown",[this.osmdSheetMusicContainer,R]),this.EventCallbackMap.setValue("touchend",[this.osmdSheetMusicContainer,B]),this.EventCallbackMap.setValue(this.moveEventName,[document,D])}downEventListener(R){const B=new Date().getTime(),D=B-this.lastClick;clearTimeout(this.clickTimeout);let G=0,U=0;this.isTouch()&&R instanceof TouchEvent?(G=R.touches[0].pageX,U=R.touches[0].pageY):R instanceof MouseEvent&&(G=R.pageX,U=R.pageY);const W=this.getOffsetCoordinates(G,U);if(D0)this.doubleClick(W.x,W.y);else{const q=this;this.clickTimeout=setTimeout(function(){clearTimeout(this.clickTimeout),q.isTouch()?q.touchDown(W.x,W.y,void 0):q.click(W.x,W.y)},this.DOUBLE_CLICK_WINDOW)}this.lastClick=B}moveEventListener(R){let B=0,D=0;if(this.isTouch()&&R instanceof TouchEvent){let U;R.touches&&R.touches.length>0?U=R.touches[0]:R.changedTouches&&R.changedTouches.length>0&&(U=R.changedTouches[0]),B=U==null?void 0:U.clientX,D=U==null?void 0:U.clientY}else R instanceof MouseEvent&&(B=R.clientX,D=R.clientY);const G=this.getOffsetCoordinates(B,D);this.move(G.x,G.y)}touchEndEventListener(R){let B;R.touches&&R.touches.length>0?B=R.touches[0]:R.changedTouches&&R.changedTouches.length>0&&(B=R.changedTouches[0]);const D=this.getOffsetCoordinates(B==null?void 0:B.pageX,B==null?void 0:B.pageY);this.touchUp(D.x,D.y)}resizeEventListener(){this.displaySizeChanged(this.osmdSheetMusicContainer.clientWidth,this.osmdSheetMusicContainer.clientHeight)}getOffsetCoordinates(R,B){const D=R-this.fullOffsetLeft+this.fullScrollLeft,G=B-this.fullOffsetTop+this.fullScrollTop;return new PointF2D(D,G)}}class DynamicsCalculator{static fillDynamicsList(R,B,D){for(let G=0;G=0&&D[Y].push(new DynamicsContainer(q.InstantaneousDynamic,Y))}if(q.StartingContinuousDynamic!==void 0){D[G].push(new DynamicsContainer(q.StartingContinuousDynamic,q.StaffNumber));const Y=this.getOtherStaffIndexIfLinkedStavesAreDetected(R,G,q.StartingContinuousDynamic.Placement);Y>=0&&D[Y].push(new DynamicsContainer(q.StartingContinuousDynamic,Y))}}}}static getOtherStaffIndexIfLinkedStavesAreDetected(R,B,D){const G=R.getStaffFromIndex(B),U=G.ParentInstrument.Staves.indexOf(G),W=G.ParentInstrument.Staves.length;return W>1&&U===0&&D===PlacementEnum.Below?B+1:W>1&&U===1&&D===PlacementEnum.Above?B-1:-1}static fillDynamicExpressions(R){const B=R.DynListStaves,D=R.getCompleteNumberOfStaves(),G=R.TimestampSortedDynamicExpressionsList;for(let U=0;U{R(this.processStringXml(D))},D=>{log$2.error(new Error("[OSMD] Invalid MXL file: "+D)),B(new Error("[OSMD] Invalid MXL file: "+D))})}processStringXml(F){const R=new DOMParser;if(F.substr(0,3)==="\uF7EF\uF7BB\uF7BF")return log$2.debug("[OSMD] UTF with BOM detected, truncate first three bytes and pass along: "+F),R.parseFromString(F.substr(3),"application/xml");if(F.substr(0,6).includes("{B.isMxl(K)?B.processMxl(K,q,Y):q(B.processStringXml(K))},K=>{throw Y(K),K});else{const K=new Error("[OSMD] osmd.load(string): Could not process string. Did not find {R.init(this.sheet.MusicPartManager,this.graphic)}),this.renderingManager.setMusicSheet(this.graphic),this.interactionManager.Initialize()}render(){var R;if(!this.graphic)throw new Error("OpenSheetMusicDisplay: Before rendering a music sheet, please load a MusicXML file");(R=this.drawer)==null||R.clear();let F=this.container.offsetWidth;this.rules.RenderSingleHorizontalStaffline&&(F=this.rules.SheetMaximumWidth),this.sheet.pageWidth=F/this.zoom/10,this.renderingManager.MainViewingRegion.WidthInUnits=this.sheet.pageWidth,this.rules.PageFormat&&!this.rules.PageFormat.IsUndefined?(this.rules.PageHeight=this.sheet.pageWidth/this.rules.PageFormat.aspectRatio,log$2.debug("[OSMD] PageHeight: "+this.rules.PageHeight)):(log$2.debug("[OSMD] endless/undefined pageformat, id: "+this.rules.PageFormat.idString),this.rules.PageHeight=100001),this.graphic.reCalculate(),this.drawingParameters.drawCursors&&(this.graphic.Cursors.length=0),this.createOrRefreshRenderBackend(),this.needBackendUpdate=!1,this.drawer.setZoom(this.zoom),this.drawer.drawSheet(this.graphic),this.enableOrDisableCursors(this.drawingParameters.drawCursors),this.drawingParameters.drawCursors&&this.cursors.forEach(B=>{B.update()}),this.zoomUpdated=!1,this.interactionManager.displaySizeChanged(this.container.clientWidth,this.container.clientHeight)}createOrRefreshRenderBackend(){this.drawer&&this.drawer.Backends&&(this.drawer.Backends[0]&&this.drawer.Backends[0].removeAllChildrenFromContainer(this.container),this.drawer.Backends.clear()),this.drawingParameters.Rules=this.rules,this.drawer=new VexFlowMusicSheetDrawer(this.drawingParameters),this.drawer.drawableBoundingBoxElement=this.DrawBoundingBox,this.drawer.bottomLineVisible=this.drawBottomLine,this.drawer.skyLineVisible=this.drawSkyLine;let F=this.container.offsetWidth;this.rules.RenderSingleHorizontalStaffline&&(F=this.graphic.MusicPages[0].PositionAndShape.Size.width*10*this.zoom);let R;const B=32767;for(const D of this.graphic.MusicPages){if(D.PageNumber>this.rules.MaxPageToDrawNumber)break;const G=this.createBackend(this.backendType,D),U=" exceeds CanvasBackend limit of 32767. Cutting off score.";G.getOSMDBackendType()===BackendType.Canvas&&F>B&&(log$2.warn("[OSMD] Warning: width of "+F+U),F=B),this.rules.PageFormat&&!this.rules.PageFormat.IsUndefined?R=F/this.rules.PageFormat.aspectRatio:(R=D.PositionAndShape.Size.height,R+=this.rules.PageBottomMargin,R+=this.rules.CompactMode?this.rules.PageTopMarginNarrow:this.rules.PageTopMargin,this.rules.RenderTitle&&(R+=this.rules.TitleTopDistance),R*=this.zoom*10),G.getOSMDBackendType()===BackendType.Canvas&&R>B&&(log$2.warn("[OSMD] Warning: height of "+R+U),R=Math.min(R,B)),G.resize(F,R),G.clear(),this.drawer.Backends.push(G),this.graphic.drawer=this.drawer}}exportSVG(){var F;for(const R of(F=this.drawer)==null?void 0:F.Backends)R instanceof SvgVexFlowBackend&&R.export()}IsReadyToRender(){return this.graphic!==void 0}clear(){var F;(F=this.drawer)==null||F.clear(),this.reset()}dispose(){this.disposeResizeListener&&this.disposeResizeListener(),this.InteractionManager&&this.InteractionManager.Dispose()}setOptions(F){if(this.rules||(this.rules=new EngravingRules),this.drawingParameters||(this.drawingParameters=new DrawingParameters,this.drawingParameters.Rules=this.rules),F==null){log$2.warn(`warning: osmd.setOptions() called without an options parameter, has no effect. example usage: osmd.setOptions({drawCredits: false, drawPartNames: false})`);return}this.OnXMLRead=function(G){return G},F.onXMLRead&&(this.OnXMLRead=F.onXMLRead),F.drawingParameters&&(this.drawingParameters.DrawingParametersEnum=DrawingParametersEnum[F.drawingParameters.toLowerCase()]);let B=!this.drawer||!this.drawer.Backends||this.drawer.Backends.length<1;if(F.backend!==void 0){const G=OSMDOptions.BackendTypeFromString(F.backend);B=B||this.backendType!==G,this.backendType=G}this.needBackendUpdate=B,F.autoBeam!==void 0&&(this.rules.AutoBeamNotes=F.autoBeam);const D=F.autoBeamOptions;if(D&&(D.maintain_stem_directions===void 0&&(D.maintain_stem_directions=!1),this.rules.AutoBeamOptions=D,D.groups&&D.groups.length)){for(const G of D.groups)if(G.length!==2)throw new Error("Each fraction in autoBeamOptions.groups must be of length 2, e.g. [3,4] for beaming three fourths")}F.percussionOneLineCutoff!==void 0&&(this.rules.PercussionOneLineCutoff=F.percussionOneLineCutoff),this.rules.PercussionOneLineCutoff!==0&&F.percussionForceVoicesOneLineCutoff!==void 0&&(this.rules.PercussionForceVoicesOneLineCutoff=F.percussionForceVoicesOneLineCutoff),F.alignRests!==void 0&&(this.rules.AlignRests=F.alignRests),F.coloringMode!==void 0&&this.setColoringMode(F),F.coloringEnabled!==void 0&&(this.rules.ColoringEnabled=F.coloringEnabled),F.colorStemsLikeNoteheads!==void 0&&(this.rules.ColorStemsLikeNoteheads=F.colorStemsLikeNoteheads),F.disableCursor&&(this.drawingParameters.drawCursors=!1),F.drawHiddenNotes&&(this.drawingParameters.drawHiddenNotes=!0),F.drawCredits!==void 0&&(this.drawingParameters.DrawCredits=F.drawCredits),F.drawComposer!==void 0&&(this.drawingParameters.DrawComposer=F.drawComposer),F.drawTitle!==void 0&&(this.drawingParameters.DrawTitle=F.drawTitle),F.drawSubtitle!==void 0&&(this.drawingParameters.DrawSubtitle=F.drawSubtitle),F.drawLyricist!==void 0&&(this.drawingParameters.DrawLyricist=F.drawLyricist),F.drawMetronomeMarks!==void 0&&(this.rules.MetronomeMarksDrawn=F.drawMetronomeMarks),F.drawPartNames!==void 0&&(this.drawingParameters.DrawPartNames=F.drawPartNames,F.drawPartAbbreviations||(this.rules.RenderPartAbbreviations=F.drawPartNames)),F.drawPartAbbreviations!==void 0&&(this.rules.RenderPartAbbreviations=F.drawPartAbbreviations),F.drawFingerings===!1&&(this.rules.RenderFingerings=!1),F.drawMeasureNumbers!==void 0&&(this.rules.RenderMeasureNumbers=F.drawMeasureNumbers),F.drawMeasureNumbersOnlyAtSystemStart&&(this.rules.RenderMeasureNumbersOnlyAtSystemStart=F.drawMeasureNumbersOnlyAtSystemStart),F.drawLyrics!==void 0&&(this.rules.RenderLyrics=F.drawLyrics),F.drawTimeSignatures!==void 0&&(this.rules.RenderTimeSignatures=F.drawTimeSignatures),F.drawSlurs!==void 0&&(this.rules.RenderSlurs=F.drawSlurs),F.measureNumberInterval!==void 0&&(this.rules.MeasureNumberLabelOffset=F.measureNumberInterval),F.useXMLMeasureNumbers!==void 0&&(this.rules.UseXMLMeasureNumbers=F.useXMLMeasureNumbers),F.fingeringPosition!==void 0&&(this.rules.FingeringPosition=AbstractExpression.PlacementEnumFromString(F.fingeringPosition)),F.fingeringInsideStafflines!==void 0&&(this.rules.FingeringInsideStafflines=F.fingeringInsideStafflines),F.newSystemFromXML!==void 0&&(this.rules.NewSystemAtXMLNewSystemAttribute=F.newSystemFromXML),F.newPageFromXML!==void 0&&(this.rules.NewPageAtXMLNewPageAttribute=F.newPageFromXML),F.fillEmptyMeasuresWithWholeRest!==void 0&&(this.rules.FillEmptyMeasuresWithWholeRest=F.fillEmptyMeasuresWithWholeRest),F.followCursor!==void 0&&(this.FollowCursor=F.followCursor),F.setWantedStemDirectionByXml!==void 0&&(this.rules.SetWantedStemDirectionByXml=F.setWantedStemDirectionByXml),F.darkMode?(this.rules.applyDefaultColorMusic("#FFFFFF"),this.rules.PageBackgroundColor="#000000"):F.darkMode===!1&&(this.rules.applyDefaultColorMusic("#000000"),this.rules.PageBackgroundColor=void 0),F.defaultColorMusic&&this.rules.applyDefaultColorMusic(F.defaultColorMusic),F.defaultColorNotehead&&(this.rules.DefaultColorNotehead=F.defaultColorNotehead),F.defaultColorRest&&(this.rules.DefaultColorRest=F.defaultColorRest),F.defaultColorStem&&(this.rules.DefaultColorStem=F.defaultColorStem),F.defaultColorLabel&&(this.rules.DefaultColorLabel=F.defaultColorLabel),F.defaultColorTitle&&(this.rules.DefaultColorTitle=F.defaultColorTitle),F.defaultFontFamily&&(this.rules.DefaultFontFamily=F.defaultFontFamily),F.defaultFontStyle&&(this.rules.DefaultFontStyle=F.defaultFontStyle),F.drawUpToMeasureNumber&&(this.rules.MaxMeasureToDrawIndex=F.drawUpToMeasureNumber-1),F.drawFromMeasureNumber&&(this.rules.MinMeasureToDrawIndex=F.drawFromMeasureNumber-1),F.drawUpToPageNumber&&(this.rules.MaxPageToDrawNumber=F.drawUpToPageNumber),F.drawUpToSystemNumber&&(this.rules.MaxSystemToDrawNumber=F.drawUpToSystemNumber),F.tupletsRatioed&&(this.rules.TupletsRatioed=!0),F.tupletsBracketed&&(this.rules.TupletsBracketed=!0),F.tripletsBracketed&&(this.rules.TripletsBracketed=!0),F.autoResize?(this.resizeHandlerAttached||this.autoResize(),this.autoResizeEnabled=!0):F.autoResize===!1&&(this.autoResizeEnabled=!1),F.pageFormat!==void 0&&this.setPageFormat(F.pageFormat),F.pageBackgroundColor!==void 0&&(this.rules.PageBackgroundColor=F.pageBackgroundColor),F.performanceMode!==void 0&&(this.rules.PerformanceMode=F.performanceMode),F.renderSingleHorizontalStaffline!==void 0&&(this.rules.RenderSingleHorizontalStaffline=F.renderSingleHorizontalStaffline),F.spacingFactorSoftmax!==void 0&&(this.rules.SoftmaxFactorVexFlow=F.spacingFactorSoftmax),F.spacingBetweenTextLines!==void 0&&(this.rules.SpacingBetweenTextLines=F.spacingBetweenTextLines),F.stretchLastSystemLine!==void 0&&(this.rules.StretchLastSystemLine=F.stretchLastSystemLine),F.autoGenerateMutipleRestMeasuresFromRestMeasures!==void 0&&(this.rules.AutoGenerateMutipleRestMeasuresFromRestMeasures=F.autoGenerateMutipleRestMeasuresFromRestMeasures),F.cursorsOptions!==void 0?this.cursorsOptions=F.cursorsOptions:this.cursorsOptions=[{type:0,color:this.EngravingRules.DefaultColorCursor,alpha:.5,follow:!0}]}setColoringMode(F){if(F.coloringMode===ColoringModes.XML){this.rules.ColoringMode=ColoringModes.XML;return}const R=[NoteEnum.C,NoteEnum.D,NoteEnum.E,NoteEnum.F,NoteEnum.G,NoteEnum.A,NoteEnum.B,-1];let B;if(F.coloringMode===ColoringModes.CustomColorSet){if(!F.coloringSetCustom||F.coloringSetCustom.length!==8)throw new Error("Invalid amount of colors: With coloringModes.customColorSet, you have to provide a coloringSetCustom parameter with 8 strings (C to B, rest note).");for(const G of F.coloringSetCustom)if(!/^\#[0-9a-fA-F]{6}$/.test(G))throw new Error(`One of the color strings in options.coloringSetCustom was not a valid HTML Hex color: `+G);B=F.coloringSetCustom}else if(F.coloringMode===ColoringModes.AutoColoring){B=[];const G=Object.keys(AutoColorSet);for(let U=0;U{F.hide()}),this.sheet=void 0,this.graphic=void 0,this.zoom=1}autoResize(){const F=this;this.handleResize(()=>{},()=>{var R;((R=this.graphic)==null?void 0:R.GetCalculator)instanceof VexFlowMusicSheetCalculator&&(this.graphic.GetCalculator.beamsNeedUpdate=!0),F.IsReadyToRender()&&F.render()})}handleResize(F,R){let B,D;const U=this;function W(){!U.AutoResizeEnabled||(B=new Date().getTime(),D||(F(),B=new Date().getTime(),D=window.setTimeout(q,200)))}function q(){D=void 0,window.clearTimeout(D),new Date().getTime()-B<200?D=window.setTimeout(q,200):R()}window.attachEvent?window.attachEvent("onresize",W):window.addEventListener("resize",W),this.disposeResizeListener=()=>{window.detachEvent?window.detachEvent("onresize",W):window.removeEventListener("resize",W),this.resizeHandlerAttached=!1},this.resizeHandlerAttached=!0,window.setTimeout(F,0),window.setTimeout(R,1)}enableOrDisableCursors(F){var R,B,D,G,U,W;if(this.drawingParameters.drawCursors=F,F){for(let q=0;q{q.hide()})}createBackend(F,R){let B;return F===void 0||F===BackendType.SVG?B=new SvgVexFlowBackend(this.rules):B=new CanvasVexFlowBackend(this.rules),B.graphicalMusicPage=R,B.initialize(this.container,this.zoom),B.getContext().setFillStyle(this.rules.DefaultColorMusic),B.getContext().setStrokeStyle(this.rules.DefaultColorMusic),B}static StringToPageFormat(F){let R=PageFormat.UndefinedPageFormat;if(F.match("^[0-9]+x[0-9]+$")){const B=F.split("x"),D=Number.parseInt(B[0],10),G=Number.parseInt(B[1],10);D>0&&D<32768&&G>0&&G<32768&&(R=new PageFormat(D,G,`customPageFormat${F}`))}return F=F.replace(" ","_"),F=F.replace("Landscape","L"),F=F.replace("Portrait","P"),_OpenSheetMusicDisplay.PageFormatStandards.hasOwnProperty(F)&&(R=_OpenSheetMusicDisplay.PageFormatStandards[F]),R}setPageFormat(F){const R=_OpenSheetMusicDisplay.StringToPageFormat(F);this.needBackendUpdate=!R.Equals(this.rules.PageFormat),this.rules.PageFormat=R}setCustomPageFormat(F,R){if(F>0&&R>0){const B=new PageFormat(F,R);this.rules.PageFormat=B}}set DrawSkyLine(F){this.drawSkyLine=F,this.drawer&&(this.drawer.skyLineVisible=F)}get DrawSkyLine(){return this.drawer.skyLineVisible}set DrawBottomLine(F){this.drawBottomLine=F,this.drawer&&(this.drawer.bottomLineVisible=F)}get DrawBottomLine(){return this.drawer.bottomLineVisible}set DrawBoundingBox(F){this.setDrawBoundingBox(F,!0)}get DrawBoundingBox(){return this.drawBoundingBox}setDrawBoundingBox(F,R=!1){this.drawBoundingBox=F,this.drawer&&(this.drawer.drawableBoundingBoxElement=F),R&&this.render()}get AutoResizeEnabled(){return this.autoResizeEnabled}set AutoResizeEnabled(F){this.autoResizeEnabled=F}get Zoom(){return this.zoom}set Zoom(F){var R;this.zoom=F,this.zoomUpdated=!0,((R=this.graphic)==null?void 0:R.GetCalculator)instanceof VexFlowMusicSheetCalculator&&(this.graphic.GetCalculator.beamsNeedUpdate=this.zoomUpdated)}set FollowCursor(F){this.followCursor=F}get FollowCursor(){return this.followCursor}set TransposeCalculator(F){MusicSheetCalculator.transposeCalculator=F}get TransposeCalculator(){return MusicSheetCalculator.transposeCalculator}get Sheet(){return this.sheet}get Drawer(){return this.drawer}get GraphicSheet(){return this.graphic}get DrawingParameters(){return this.drawingParameters}get EngravingRules(){return this.rules}get InteractionManager(){return this.interactionManager}get Version(){return this.version}};let OpenSheetMusicDisplay=_OpenSheetMusicDisplay;OpenSheetMusicDisplay.PageFormatStandards={A3_L:new PageFormat(420,297,"A3_L"),A3_P:new PageFormat(297,420,"A3_P"),A4_L:new PageFormat(297,210,"A4_L"),A4_P:new PageFormat(210,297,"A4_P"),A5_L:new PageFormat(210,148,"A5_L"),A5_P:new PageFormat(148,210,"A5_P"),A6_L:new PageFormat(148,105,"A6_L"),A6_P:new PageFormat(105,148,"A6_P"),Endless:PageFormat.UndefinedPageFormat,Letter_L:new PageFormat(279.4,215.9,"Letter_L"),Letter_P:new PageFormat(215.9,279.4,"Letter_P")};var handlebars={exports:{}},handlebars_runtime={exports:{}},base$1={},utils={};utils.__esModule=!0;utils.extend=extend;utils.indexOf=indexOf;utils.escapeExpression=escapeExpression;utils.isEmpty=isEmpty;utils.createFrame=createFrame;utils.blockParams=blockParams;utils.appendContextPath=appendContextPath;var escape$1={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},badChars=/[&<>"'`=]/g,possible=/[&<>"'`=]/;function escapeChar(F){return escape$1[F]}function extend(F){for(var R=1;R0?(U.ids&&(U.ids=[U.name]),D.helpers.each(G,U)):W(this);if(U.data&&U.ids){var Y=B.createFrame(U.data);Y.contextPath=B.appendContextPath(U.data.contextPath,U.name),U={data:Y}}return q(G,U)})},F.exports=R.default})(blockHelperMissing,blockHelperMissing.exports);var each={exports:{}};(function(F,R){R.__esModule=!0;function B(W){return W&&W.__esModule?W:{default:W}}var D=utils,G=exception.exports,U=B(G);R.default=function(W){W.registerHelper("each",function(q,Y){if(!Y)throw new U.default("Must pass iterator to #each");var Q=Y.fn,Z=Y.inverse,K=0,ie="",te=void 0,ne=void 0;Y.data&&Y.ids&&(ne=D.appendContextPath(Y.data.contextPath,Y.ids[0])+"."),D.isFunction(q)&&(q=q.call(this)),Y.data&&(te=D.createFrame(Y.data));function se(he,pe,me){te&&(te.key=he,te.index=pe,te.first=pe===0,te.last=!!me,ne&&(te.contextPath=ne+he)),ie=ie+Q(q[he],{data:te,blockParams:D.blockParams([q[he],he],[ne+he,null])})}if(q&&typeof q=="object")if(D.isArray(q))for(var re=q.length;K=0?U=W:U=parseInt(U,10)}return U},log:function(U){if(U=D.lookupLevel(U),typeof console!="undefined"&&D.lookupLevel(D.level)<=U){var W=D.methodMap[U];console[W]||(W="log");for(var q=arguments.length,Y=Array(q>1?q-1:0),Q=1;Q= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};base$1.REVISION_CHANGES=REVISION_CHANGES;var objectType="[object Object]";function HandlebarsEnvironment(F,R,B){this.helpers=F||{},this.partials=R||{},this.decorators=B||{},_helpers$2.registerDefaultHelpers(this),_decorators.registerDefaultDecorators(this)}HandlebarsEnvironment.prototype={constructor:HandlebarsEnvironment,logger:_logger2.default,log:_logger2.default.log,registerHelper:function F(R,B){if(_utils$3.toString.call(R)===objectType){if(B)throw new _exception2$3.default("Arg not supported with multiple helpers");_utils$3.extend(this.helpers,R)}else this.helpers[R]=B},unregisterHelper:function F(R){delete this.helpers[R]},registerPartial:function F(R,B){if(_utils$3.toString.call(R)===objectType)_utils$3.extend(this.partials,R);else{if(typeof B=="undefined")throw new _exception2$3.default('Attempting to register a partial called "'+R+'" as undefined');this.partials[R]=B}},unregisterPartial:function F(R){delete this.partials[R]},registerDecorator:function F(R,B){if(_utils$3.toString.call(R)===objectType){if(B)throw new _exception2$3.default("Arg not supported with multiple decorators");_utils$3.extend(this.decorators,R)}else this.decorators[R]=B},unregisterDecorator:function F(R){delete this.decorators[R]},resetLoggedPropertyAccesses:function F(){_internalProtoAccess$1.resetLoggedProperties()}};var log=_logger2.default.log;base$1.log=log;base$1.createFrame=_utils$3.createFrame;base$1.logger=_logger2.default;var safeString={exports:{}};(function(F,R){R.__esModule=!0;function B(D){this.string=D}B.prototype.toString=B.prototype.toHTML=function(){return""+this.string},R.default=B,F.exports=R.default})(safeString,safeString.exports);var runtime={},wrapHelper$1={};wrapHelper$1.__esModule=!0;wrapHelper$1.wrapHelper=wrapHelper;function wrapHelper(F,R){if(typeof F!="function")return F;var B=function(){var G=arguments[arguments.length-1];return arguments[arguments.length-1]=R(G),F.apply(this,arguments)};return B}runtime.__esModule=!0;runtime.checkRevision=checkRevision;runtime.template=template;runtime.wrapProgram=wrapProgram;runtime.resolvePartial=resolvePartial;runtime.invokePartial=invokePartial;runtime.noop=noop;function _interopRequireDefault$3(F){return F&&F.__esModule?F:{default:F}}function _interopRequireWildcard$1(F){if(F&&F.__esModule)return F;var R={};if(F!=null)for(var B in F)Object.prototype.hasOwnProperty.call(F,B)&&(R[B]=F[B]);return R.default=F,R}var _utils$2=utils,Utils=_interopRequireWildcard$1(_utils$2),_exception$2=exception.exports,_exception2$2=_interopRequireDefault$3(_exception$2),_base=base$1,_helpers$1=helpers$1,_internalWrapHelper=wrapHelper$1,_internalProtoAccess=protoAccess;function checkRevision(F){var R=F&&F[0]||1,B=_base.COMPILER_REVISION;if(!(R>=_base.LAST_COMPATIBLE_COMPILER_REVISION&&R<=_base.COMPILER_REVISION))if(R<_base.LAST_COMPATIBLE_COMPILER_REVISION){var D=_base.REVISION_CHANGES[B],G=_base.REVISION_CHANGES[R];throw new _exception2$2.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+D+") or downgrade your runtime to an older version ("+G+").")}else throw new _exception2$2.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+F[1]+").")}function template(F,R){if(!R)throw new _exception2$2.default("No environment passed to template");if(!F||!F.main)throw new _exception2$2.default("Unknown template object: "+typeof F);F.main.decorator=F.main_d,R.VM.checkRevision(F.compiler);var B=F.compiler&&F.compiler[0]===7;function D(W,q,Y){Y.hash&&(q=Utils.extend({},q,Y.hash),Y.ids&&(Y.ids[0]=!0)),W=R.VM.resolvePartial.call(this,W,q,Y);var Q=Utils.extend({},Y,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),Z=R.VM.invokePartial.call(this,W,q,Q);if(Z==null&&R.compile&&(Y.partials[Y.name]=R.compile(W,F.compilerOptions,R),Z=Y.partials[Y.name](q,Q)),Z!=null){if(Y.indent){for(var K=Z.split(` `),ie=0,te=K.length;ie2&&ve.push("'"+this.terminals_[ge]+"'");this.lexer.showPosition?xe="Parse error on line "+(ne+1)+`: `+this.lexer.showPosition()+` Expecting `+ve.join(", ")+", got '"+(this.terminals_[ce]||ce)+"'":xe="Parse error on line "+(ne+1)+": Unexpected "+(ce==1?"end of input":"'"+(this.terminals_[ce]||ce)+"'"),this.parseError(xe,{text:this.lexer.match,token:this.terminals_[ce]||ce,line:this.lexer.yylineno,loc:re,expected:ve})}}if(pe[0]instanceof Array&&pe.length>1)throw new Error("Parse Error: multiple actions possible at state: "+he+", token: "+ce);switch(pe[0]){case 1:Q.push(ce),Z.push(this.lexer.yytext),K.push(this.lexer.yylloc),Q.push(pe[1]),ce=null,se=this.lexer.yyleng,te=this.lexer.yytext,ne=this.lexer.yylineno,re=this.lexer.yylloc;break;case 2:if(Se=this.productions_[pe[1]][1],fe.$=Z[Z.length-Se],fe._$={first_line:K[K.length-(Se||1)].first_line,last_line:K[K.length-1].last_line,first_column:K[K.length-(Se||1)].first_column,last_column:K[K.length-1].last_column},ae&&(fe._$.range=[K[K.length-(Se||1)].range[0],K[K.length-1].range[1]]),me=this.performAction.call(fe,te,se,ne,this.yy,pe[1],Z,K),typeof me!="undefined")return me;Se&&(Q=Q.slice(0,-1*Se*2),Z=Z.slice(0,-1*Se),K=K.slice(0,-1*Se)),Q.push(this.productions_[pe[1]][0]),Z.push(fe.$),K.push(fe._$),Ee=ie[Q[Q.length-2]][Q[Q.length-1]],Q.push(Ee);break;case 3:return!0}}return!0}},G=function(){var W={EOF:1,parseError:function(Y,Q){if(this.yy.parser)this.yy.parser.parseError(Y,Q);else throw new Error(Y)},setInput:function(Y){return this._input=Y,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Y=this._input[0];this.yytext+=Y,this.yyleng++,this.offset++,this.match+=Y,this.matched+=Y;var Q=Y.match(/(?:\r\n?|\n).*/g);return Q?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Y},unput:function(Y){var Q=Y.length,Z=Y.split(/(?:\r\n?|\n)/g);this._input=Y+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Q-1),this.offset-=Q;var K=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Z.length-1&&(this.yylineno-=Z.length-1);var ie=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Z?(Z.length===K.length?this.yylloc.first_column:0)+K[K.length-Z.length].length-Z[0].length:this.yylloc.first_column-Q},this.options.ranges&&(this.yylloc.range=[ie[0],ie[0]+this.yyleng-Q]),this},more:function(){return this._more=!0,this},less:function(Y){this.unput(this.match.slice(Y))},pastInput:function(){var Y=this.matched.substr(0,this.matched.length-this.match.length);return(Y.length>20?"...":"")+Y.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Y=this.match;return Y.length<20&&(Y+=this._input.substr(0,20-Y.length)),(Y.substr(0,20)+(Y.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Y=this.pastInput(),Q=new Array(Y.length+1).join("-");return Y+this.upcomingInput()+` `+Q+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Y,Q,Z,K,ie;this._more||(this.yytext="",this.match="");for(var te=this._currentRules(),ne=0;neQ[0].length)&&(Q=Z,K=ne,!this.options.flex)));ne++);return Q?(ie=Q[0].match(/(?:\r\n?|\n).*/g),ie&&(this.yylineno+=ie.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ie?ie[ie.length-1].length-ie[ie.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Q[0].length},this.yytext+=Q[0],this.match+=Q[0],this.matches=Q,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(Q[0].length),this.matched+=Q[0],Y=this.performAction.call(this,this.yy,this,te[K],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Y||void 0):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. `+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Y=this.next();return typeof Y!="undefined"?Y:this.lex()},begin:function(Y){this.conditionStack.push(Y)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(Y){this.begin(Y)}};return W.options={},W.performAction=function(Y,Q,Z,K){function ie(te,ne){return Q.yytext=Q.yytext.substring(te,Q.yyleng-ne+te)}switch(Z){case 0:if(Q.yytext.slice(-2)==="\\\\"?(ie(0,1),this.begin("mu")):Q.yytext.slice(-1)==="\\"?(ie(0,1),this.begin("emu")):this.begin("mu"),Q.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),this.conditionStack[this.conditionStack.length-1]==="raw"?15:(ie(5,9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(Q.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return Q.yytext=ie(1,2).replace(/\\"/g,'"'),80;case 32:return Q.yytext=ie(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return Q.yytext=Q.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},W.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^\/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],W.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},W}();D.lexer=G;function U(){this.yy={}}return U.prototype=D,D.Parser=U,new U}();R.default=B,F.exports=R.default})(parser$2,parser$2.exports);var whitespaceControl={exports:{}},visitor={exports:{}};(function(F,R){R.__esModule=!0;function B(Q){return Q&&Q.__esModule?Q:{default:Q}}var D=exception.exports,G=B(D);function U(){this.parents=[]}U.prototype={constructor:U,mutating:!1,acceptKey:function(Z,K){var ie=this.accept(Z[K]);if(this.mutating){if(ie&&!U.prototype[ie.type])throw new G.default('Unexpected node type "'+ie.type+'" found when accepting '+K+" on "+Z.type);Z[K]=ie}},acceptRequired:function(Z,K){if(this.acceptKey(Z,K),!Z[K])throw new G.default(Z.type+" requires "+K)},acceptArray:function(Z){for(var K=0,ie=Z.length;K0)throw new _exception2$1.default("Invalid path: "+D,{loc:B});Y===".."&&U++}else G.push(Y)}return{type:"PathExpression",data:F,depth:U,parts:G,original:D,loc:B}}function prepareMustache(F,R,B,D,G,U){var W=D.charAt(3)||D.charAt(2),q=W!=="{"&&W!=="&",Y=/\*/.test(D);return{type:Y?"Decorator":"MustacheStatement",path:F,params:R,hash:B,escaped:q,strip:G,loc:this.locInfo(U)}}function prepareRawBlock(F,R,B,D){validateClose(F,B),D=this.locInfo(D);var G={type:"Program",body:R,strip:{},loc:D};return{type:"BlockStatement",path:F.path,params:F.params,hash:F.hash,program:G,openStrip:{},inverseStrip:{},closeStrip:{},loc:D}}function prepareBlock(F,R,B,D,G,U){D&&D.path&&validateClose(F,D);var W=/\*/.test(F.open);R.blockParams=F.blockParams;var q=void 0,Y=void 0;if(B){if(W)throw new _exception2$1.default("Unexpected inverse block on decorator",B);B.chain&&(B.program.body[0].closeStrip=D.strip),Y=B.strip,q=B.program}return G&&(G=q,q=R,R=G),{type:W?"DecoratorBlock":"BlockStatement",path:F.path,params:F.params,hash:F.hash,program:R,inverse:q,openStrip:F.strip,inverseStrip:Y,closeStrip:D&&D.strip,loc:this.locInfo(U)}}function prepareProgram(F,R){if(!R&&F.length){var B=F[0].loc,D=F[F.length-1].loc;B&&D&&(R={source:B.source,start:{line:B.start.line,column:B.start.column},end:{line:D.end.line,column:D.end.column}})}return{type:"Program",body:F,strip:{},loc:R}}function preparePartialBlock(F,R,B,D){return validateClose(F,B),{type:"PartialBlockStatement",name:F.path,params:F.params,hash:F.hash,program:R,openStrip:F.strip,closeStrip:B&&B.strip,loc:this.locInfo(D)}}base.__esModule=!0;base.parseWithoutProcessing=parseWithoutProcessing;base.parse=parse$2;function _interopRequireWildcard(F){if(F&&F.__esModule)return F;var R={};if(F!=null)for(var B in F)Object.prototype.hasOwnProperty.call(F,B)&&(R[B]=F[B]);return R.default=F,R}function _interopRequireDefault$1(F){return F&&F.__esModule?F:{default:F}}var _parser=parser$2.exports,_parser2=_interopRequireDefault$1(_parser),_whitespaceControl=whitespaceControl.exports,_whitespaceControl2=_interopRequireDefault$1(_whitespaceControl),_helpers=helpers,Helpers=_interopRequireWildcard(_helpers),_utils$1=utils;base.parser=_parser2.default;var yy={};_utils$1.extend(yy,Helpers);function parseWithoutProcessing(F,R){if(F.type==="Program")return F;_parser2.default.yy=yy,yy.locInfo=function(D){return new yy.SourceLocation(R&&R.srcName,D)};var B=_parser2.default.parse(F);return B}function parse$2(F,R){var B=parseWithoutProcessing(F,R),D=new _whitespaceControl2.default(R);return D.accept(B)}var compiler={};compiler.__esModule=!0;compiler.Compiler=Compiler;compiler.precompile=precompile;compiler.compile=compile;function _interopRequireDefault(F){return F&&F.__esModule?F:{default:F}}var _exception=exception.exports,_exception2=_interopRequireDefault(_exception),_utils=utils,_ast=ast.exports,_ast2=_interopRequireDefault(_ast),slice=[].slice;function Compiler(){}Compiler.prototype={compiler:Compiler,equals:function F(R){var B=this.opcodes.length;if(R.opcodes.length!==B)return!1;for(var D=0;D1)throw new _exception2.default("Unsupported number of partial arguments: "+D.length,R);D.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):D.push({type:"PathExpression",parts:[],depth:0}));var G=R.name.original,U=R.name.type==="SubExpression";U&&this.accept(R.name),this.setupFullMustacheParams(R,B,void 0,!0);var W=R.indent||"";this.options.preventIndent&&W&&(this.opcode("appendContent",W),W=""),this.opcode("invokePartial",U,G,W),this.opcode("append")},PartialBlockStatement:function F(R){this.PartialStatement(R)},MustacheStatement:function F(R){this.SubExpression(R),R.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function F(R){this.DecoratorBlock(R)},ContentStatement:function F(R){R.value&&this.opcode("appendContent",R.value)},CommentStatement:function F(){},SubExpression:function F(R){transformLiteralToPath(R);var B=this.classifySexpr(R);B==="simple"?this.simpleSexpr(R):B==="helper"?this.helperSexpr(R):this.ambiguousSexpr(R)},ambiguousSexpr:function F(R,B,D){var G=R.path,U=G.parts[0],W=B!=null||D!=null;this.opcode("getContext",G.depth),this.opcode("pushProgram",B),this.opcode("pushProgram",D),G.strict=!0,this.accept(G),this.opcode("invokeAmbiguous",U,W)},simpleSexpr:function F(R){var B=R.path;B.strict=!0,this.accept(B),this.opcode("resolvePossibleLambda")},helperSexpr:function F(R,B,D){var G=this.setupFullMustacheParams(R,B,D),U=R.path,W=U.parts[0];if(this.options.knownHelpers[W])this.opcode("invokeKnownHelper",G.length,W);else{if(this.options.knownHelpersOnly)throw new _exception2.default("You specified knownHelpersOnly, but used the unknown helper "+W,R);U.strict=!0,U.falsy=!0,this.accept(U),this.opcode("invokeHelper",G.length,U.original,_ast2.default.helpers.simpleId(U))}},PathExpression:function F(R){this.addDepth(R.depth),this.opcode("getContext",R.depth);var B=R.parts[0],D=_ast2.default.helpers.scopedId(R),G=!R.depth&&!D&&this.blockParamIndex(B);G?this.opcode("lookupBlockParam",G,R.parts):B?R.data?(this.options.data=!0,this.opcode("lookupData",R.depth,R.parts,R.strict)):this.opcode("lookupOnContext",R.parts,R.falsy,R.strict,D):this.opcode("pushContext")},StringLiteral:function F(R){this.opcode("pushString",R.value)},NumberLiteral:function F(R){this.opcode("pushLiteral",R.value)},BooleanLiteral:function F(R){this.opcode("pushLiteral",R.value)},UndefinedLiteral:function F(){this.opcode("pushLiteral","undefined")},NullLiteral:function F(){this.opcode("pushLiteral","null")},Hash:function F(R){var B=R.pairs,D=0,G=B.length;for(this.opcode("pushHash");D=0)return[B,U]}}};function precompile(F,R,B){if(F==null||typeof F!="string"&&F.type!=="Program")throw new _exception2.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+F);R=R||{},"data"in R||(R.data=!0),R.compat&&(R.useDepths=!0);var D=B.parse(F,R),G=new B.Compiler().compile(D,R);return new B.JavaScriptCompiler().compile(G,R)}function compile(F,R,B){if(R===void 0&&(R={}),F==null||typeof F!="string"&&F.type!=="Program")throw new _exception2.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+F);R=_utils.extend({},R),"data"in R||(R.data=!0),R.compat&&(R.useDepths=!0);var D=void 0;function G(){var W=B.parse(F,R),q=new B.Compiler().compile(W,R),Y=new B.JavaScriptCompiler().compile(q,R,void 0,!0);return B.template(Y)}function U(W,q){return D||(D=G()),D.call(this,W,q)}return U._setup=function(W){return D||(D=G()),D._setup(W)},U._child=function(W,q,Y,Q){return D||(D=G()),D._child(W,q,Y,Q)},U}function argEquals(F,R){if(F===R)return!0;if(_utils.isArray(F)&&_utils.isArray(R)&&F.length===R.length){for(var B=0;B0&&(se+=", "+re.join(", "));var ae=0;Object.keys(this.aliases).forEach(function(he){var pe=ne.aliases[he];pe.children&&pe.referenceCount>1&&(se+=", alias"+ ++ae+"="+he,pe.children[0]="alias"+ae)}),this.lookupPropertyFunctionIsUsed&&(se+=", "+this.lookupPropertyFunctionVarDeclaration());var le=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&le.push("blockParams"),this.useDepths&&le.push("depths");var ce=this.mergeSource(se);return te?(le.push(ce),Function.apply(this,le)):this.source.wrap(["function(",le.join(","),`) { `,ce,"}"])},mergeSource:function(te){var ne=this.environment.isSimple,se=!this.forceBuffer,re=void 0,ae=void 0,le=void 0,ce=void 0;return this.source.each(function(he){he.appendToBuffer?(le?he.prepend(" + "):le=he,ce=he):(le&&(ae?le.prepend("buffer += "):re=!0,ce.add(";"),le=ce=void 0),ae=!0,ne||(se=!1))}),se?le?(le.prepend("return "),ce.add(";")):ae||this.source.push('return "";'):(te+=", buffer = "+(re?"":this.initializeBuffer()),le?(le.prepend("return buffer + "),ce.add(";")):this.source.push("return buffer;")),te&&this.source.prepend("var "+te.substring(2)+(re?"":`; `)),this.source.merge()},lookupPropertyFunctionVarDeclaration:function(){return` lookupProperty = container.lookupProperty || function(parent, propertyName) { if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { return parent[propertyName]; } return undefined } `.trim()},blockValue:function(te){var ne=this.aliasable("container.hooks.blockHelperMissing"),se=[this.contextName(0)];this.setupHelperArgs(te,0,se);var re=this.popStack();se.splice(1,0,re),this.push(this.source.functionCall(ne,"call",se))},ambiguousBlockValue:function(){var te=this.aliasable("container.hooks.blockHelperMissing"),ne=[this.contextName(0)];this.setupHelperArgs("",0,ne,!0),this.flushInline();var se=this.topStack();ne.splice(1,0,se),this.pushSource(["if (!",this.lastHelper,") { ",se," = ",this.source.functionCall(te,"call",ne),"}"])},appendContent:function(te){this.pendingContent?te=this.pendingContent+te:this.pendingLocation=this.source.currentLocation,this.pendingContent=te},append:function(){if(this.isInline())this.replaceStack(function(ne){return[" != null ? ",ne,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var te=this.popStack();this.pushSource(["if (",te," != null) { ",this.appendToBuffer(te,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(te){this.lastContext=te},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(te,ne,se,re){var ae=0;!re&&this.options.compat&&!this.lastContext?this.push(this.depthedLookup(te[ae++])):this.pushContext(),this.resolvePath("context",te,ae,ne,se)},lookupBlockParam:function(te,ne){this.useBlockParams=!0,this.push(["blockParams[",te[0],"][",te[1],"]"]),this.resolvePath("context",ne,1)},lookupData:function(te,ne,se){te?this.pushStackLiteral("container.data(data, "+te+")"):this.pushStackLiteral("data"),this.resolvePath("data",ne,0,!0,se)},resolvePath:function(te,ne,se,re,ae){var le=this;if(this.options.strict||this.options.assumeObjects){this.push(K(this.options.strict&&ae,this,ne,te));return}for(var ce=ne.length;sethis.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var te=this.inlineStack;this.inlineStack=[];for(var ne=0,se=te.length;neF!==null&&F.isSecureContext,createNativeAudioBufferConstructor=F=>F===null?null:F.hasOwnProperty("AudioBuffer")?F.AudioBuffer:null,createNativeAudioContextConstructor=F=>F===null?null:F.hasOwnProperty("AudioContext")?F.AudioContext:F.hasOwnProperty("webkitAudioContext")?F.webkitAudioContext:null,createNativeAudioWorkletNodeConstructor=F=>F===null?null:F.hasOwnProperty("AudioWorkletNode")?F.AudioWorkletNode:null,createNativeOfflineAudioContextConstructor=F=>F===null?null:F.hasOwnProperty("OfflineAudioContext")?F.OfflineAudioContext:F.hasOwnProperty("webkitOfflineAudioContext")?F.webkitOfflineAudioContext:null,createWindow=()=>typeof window=="undefined"?null:window,window$1=createWindow();createNativeOfflineAudioContextConstructor(window$1);createNativeAudioContextConstructor(window$1);createNativeAudioWorkletNodeConstructor(window$1);createNativeAudioBufferConstructor(window$1);createIsSecureContext(window$1);var lib$2={exports:{}},lib$1={exports:{}};function b64ToUint6(F){return F>64&&F<91?F-65:F>96&&F<123?F-71:F>47&&F<58?F+4:F===43?62:F===47?63:0}function decode(F,R){for(var B=F.replace(/[^A-Za-z0-9\+\/]/g,""),D=B.length,G=R?Math.ceil((D*3+1>>2)/R)*R:D*3+1>>2,U=new Uint8Array(G),W,q,Y=0,Q=0,Z=0;Z>>(16>>>W&24)&255;Y=0}return U}var base64={decode},fetch$1=function(F,R){return new Promise(function(B,D){var G=new XMLHttpRequest;R&&(G.responseType=R),G.open("GET",F),G.onload=function(){G.status===200?B(G.response):D(Error(G.statusText))},G.onerror=function(){D(Error("Network Error"))},G.send()})};(function(F){var R=base64,B=fetch$1;function D(fe){return function(ge){return typeof ge=="string"&&fe.test(ge)}}function G(fe,ge){return typeof fe=="string"?fe+ge:typeof fe=="function"?fe(ge):ge}function U(fe,ge,Se,Ee){var ve=W(ge)?q:Y(ge)?Q:Z(ge)?K:ie(ge)?te:ne(ge)?se:re(ge)?ae:le(ge)?ce:he(ge)?pe:null,xe=Se||{};return ve?ve(fe,ge,xe):Ee?Promise.resolve(Ee):Promise.reject("Source not valid ("+ge+")")}U.fetch=B;function W(fe){return fe instanceof ArrayBuffer}function q(fe,ge,Se){return new Promise(function(Ee,ve){fe.decodeAudioData(ge,function(xe){Ee(xe)},function(){ve("Can't decode audio data ("+ge.slice(0,30)+"...)")})})}var Y=D(/\.(mp3|wav|ogg)(\?.*)?$/i);function Q(fe,ge,Se){var Ee=G(Se.from,ge);return U(fe,U.fetch(Ee,"arraybuffer"),Se)}function Z(fe){return fe&&typeof fe.then=="function"}function K(fe,ge,Se){return ge.then(function(Ee){return U(fe,Ee,Se)})}var ie=Array.isArray;function te(fe,ge,Se){return Promise.all(ge.map(function(Ee){return U(fe,Ee,Se,Ee)}))}function ne(fe){return fe&&typeof fe=="object"}function se(fe,ge,Se){var Ee={},ve=Object.keys(ge).map(function(xe){if(Se.only&&Se.only.indexOf(xe)===-1)return null;var Me=ge[xe];return U(fe,Me,Se,Me).then(function(ye){Ee[xe]=ye})});return Promise.all(ve).then(function(){return Ee})}var re=D(/\.json(\?.*)?$/i);function ae(fe,ge,Se){var Ee=G(Se.from,ge);return U(fe,U.fetch(Ee,"text").then(JSON.parse),Se)}var le=D(/^data:audio/);function ce(fe,ge,Se){var Ee=ge.indexOf(",");return U(fe,R.decode(ge.slice(Ee+1)).buffer,Se)}var he=D(/\.js(\?.*)?$/i);function pe(fe,ge,Se){var Ee=G(Se.from,ge);return U(fe,U.fetch(Ee,"text").then(me),Se)}function me(fe){var ge=fe.indexOf("MIDI.Soundfont.");if(ge<0)throw Error("Invalid MIDI.js Soundfont format");ge=fe.indexOf("=",ge)+2;var Se=fe.lastIndexOf(",");return JSON.parse(fe.slice(ge,Se)+"}")}F.exports&&(F.exports=U),typeof window!="undefined"&&(window.loadAudio=U)})(lib$1);var lib={exports:{}},adsr=ADSR$1;function ADSR$1(F){var R=F.createGain(),B=R._voltage=getVoltage(F),D=scale(B),G=scale(B),U=scale(B);return R._startAmount=scale(G),R._endAmount=scale(U),R._multiplier=scale(D),R._multiplier.connect(R),R._startAmount.connect(R),R._endAmount.connect(R),R.value=D.gain,R.startValue=G.gain,R.endValue=U.gain,R.startValue.value=0,R.endValue.value=0,Object.defineProperties(R,props),R}var props={attack:{value:0,writable:!0},decay:{value:0,writable:!0},sustain:{value:1,writable:!0},release:{value:0,writable:!0},getReleaseDuration:{value:function(){return this.release}},start:{value:function(F){var R=this._multiplier.gain,B=this._startAmount.gain,D=this._endAmount.gain;this._voltage.start(F),this._decayFrom=this._decayFrom=F+this.attack,this._startedAt=F;var G=this.sustain;R.cancelScheduledValues(F),B.cancelScheduledValues(F),D.cancelScheduledValues(F),D.setValueAtTime(0,F),this.attack?(R.setValueAtTime(0,F),R.linearRampToValueAtTime(1,F+this.attack),B.setValueAtTime(1,F),B.linearRampToValueAtTime(0,F+this.attack)):(R.setValueAtTime(1,F),B.setValueAtTime(0,F)),this.decay&&R.setTargetAtTime(G,this._decayFrom,getTimeConstant(this.decay))}},stop:{value:function(F,R){R&&(F=F-this.release);var B=F+this.release;if(this.release){var D=this._multiplier.gain,G=this._startAmount.gain,U=this._endAmount.gain;D.cancelScheduledValues(F),G.cancelScheduledValues(F),U.cancelScheduledValues(F);var W=getTimeConstant(this.release);if(this.attack&&F=R&&(Q=R),Q}var ADSR=adsr,EMPTY={},DEFAULTS={gain:1,attack:.01,decay:.1,sustain:.9,release:.3,loop:!1,cents:0,loopStart:0,loopEnd:0};function SamplePlayer(F,R,B){var D=!1,G=0,U={},W=F.createGain();W.gain.value=1;var q=Object.assign({},DEFAULTS,B),Y={context:F,out:W,opts:q};return R instanceof AudioBuffer?Y.buffer=R:Y.buffers=R,Y.start=function(K,ie,te){if(Y.buffer&&K!==null)return Y.start(null,K,ie);var ne=K?Y.buffers[K]:Y.buffer;if(ne){if(!D){console.warn("SamplePlayer not connected to any node.");return}}else{console.warn("Buffer "+K+" not found.");return}var se=te||EMPTY;ie=Math.max(F.currentTime,ie||0),Y.emit("start",ie,K,se);var re=Z(K,ne,se);return re.id=Q(K,re),re.env.start(ie),re.source.start(ie),Y.emit("started",ie,re.id,re),se.duration&&re.stop(ie+se.duration),re},Y.play=function(K,ie,te){return Y.start(K,ie,te)},Y.stop=function(K,ie){var te;return ie=ie||Object.keys(U),ie.map(function(ne){return te=U[ne],te?(te.stop(K),te.id):null})},Y.connect=function(K){return D=!0,W.connect(K),Y},Y.emit=function(K,ie,te,ne){Y.onevent&&Y.onevent(K,ie,te,ne);var se=Y["on"+K];se&&se(ie,te,ne)},Y;function Q(K,ie){return ie.id=G++,U[ie.id]=ie,ie.source.onended=function(){var te=F.currentTime;ie.source.disconnect(),ie.env.disconnect(),ie.disconnect(),Y.emit("ended",te,ie.id,ie)},ie.id}function Z(K,ie,te){var ne=F.createGain();return ne.gain.value=0,ne.connect(W),ne.env=envelope(F,te,q),ne.env.connect(ne.gain),ne.source=F.createBufferSource(),ne.source.buffer=ie,ne.source.connect(ne),ne.source.loop=te.loop||q.loop,ne.source.playbackRate.value=centsToRate(te.cents||q.cents),ne.source.loopStart=te.loopStart||q.loopStart,ne.source.loopEnd=te.loopEnd||q.loopEnd,ne.stop=function(se){var re=se||F.currentTime;Y.emit("stop",re,K);var ae=ne.env.stop(re);ne.source.stop(ae)},ne}}function isNum$1(F){return typeof F=="number"}var PARAMS=["attack","decay","sustain","release"];function envelope(F,R,B){var D=ADSR(F),G=R.adsr||B.adsr;return PARAMS.forEach(function(U,W){G?D[U]=G[W]:D[U]=R[U]||B[U]}),D.value.value=isNum$1(R.gain)?R.gain:isNum$1(B.gain)?B.gain:1,D}function centsToRate(F){return F?Math.pow(2,F/1200):1}var player=SamplePlayer,events=function(F){return F.on=function(R,B){if(arguments.length===1&&typeof R=="function")return F.on("event",R);var D="on"+R,G=F[D];return F[D]=G?chain(G,B):B,F},F};function chain(F,R){return function(B,D,G,U){F(B,D,G,U),R(B,D,G,U)}}var REGEX$1=/^([a-gA-G])(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)\s*$/;function regex$1(){return REGEX$1}var SEMITONES$1=[0,2,4,5,7,9,11];function parse$1(F,R,B){if(typeof F!="string")return null;var D=REGEX$1.exec(F);if(!D||!R&&D[4])return null;var G={letter:D[1].toUpperCase(),acc:D[2].replace(/x/g,"##")};return G.pc=G.letter+G.acc,G.step=(G.letter.charCodeAt(0)+3)%7,G.alt=G.acc[0]==="b"?-G.acc.length:G.acc.length,G.chroma=SEMITONES$1[G.step]+G.alt,D[3]&&(G.oct=+D[3],G.midi=G.chroma+12*(G.oct+1),G.freq=midiToFreq$1(G.midi,B)),R&&(G.tonicOf=D[4]),G}function midiToFreq$1(F,R){return Math.pow(2,(F-69)/12)*(R||440)}var parser$1={parse:parse$1,regex:regex$1,midiToFreq:midiToFreq$1},FNS=["letter","acc","pc","step","alt","chroma","oct","midi","freq"];FNS.forEach(function(F){parser$1[F]=function(R){var B=parse$1(R);return B&&typeof B[F]!="undefined"?B[F]:null}});var noteParser$1=parser$1,note=noteParser$1,isMidi=function(F){return F!==null&&F!==[]&&F>=0&&F<129},toMidi=function(F){return isMidi(F)?+F:note.midi(F)},notes=function(F){if(F.buffers){var R=F.opts.map,B=typeof R=="function"?R:toMidi,D=function(U){return U?B(U)||U:null};F.buffers=mapBuffers(F.buffers,D);var G=F.start;F.start=function(U,W,q){var Y=D(U),Q=Y%1;return Q&&(Y=Math.floor(Y),q=Object.assign(q||{},{cents:Math.floor(Q*100)})),G(Y,W,q)}}return F};function mapBuffers(F,R){return Object.keys(F).reduce(function(B,D){return B[R(D)]=F[D],B},{})}var isArr=Array.isArray,isObj=function(F){return F&&typeof F=="object"},OPTS={},scheduler=function(F){return F.schedule=function(R,B){var D=F.context.currentTime,G=R6?null:LETTERS.charAt(F)+accStr(R)+octStr(B)}function midi(F){if((isNum(F)||isStr(F))&&F>=0&&F<128)return+F;var R=parse(F);return R&&isDef(R.midi)?R.midi:null}function freq(F,R){var B=midi(F);return B===null?null:midiToFreq(B,R)}function letter(F){return(parse(F)||{}).letter}function acc(F){return(parse(F)||{}).acc}function pc(F){return(parse(F)||{}).pc}function step(F){return(parse(F)||{}).step}function alt(F){return(parse(F)||{}).alt}function chroma(F){return(parse(F)||{}).chroma}function oct(F){return(parse(F)||{}).oct}var noteParser=Object.freeze(Object.defineProperty({__proto__:null,regex,parse,build,midi,freq,letter,acc,pc,step,alt,chroma,oct},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(noteParser),parser=require$$0;function Soundfont(F,R){if(console.warn("new Soundfont() is deprected"),console.log("Please use Soundfont.instrument() instead of new Soundfont().instrument()"),!(this instanceof Soundfont))return new Soundfont(F);this.nameToUrl=R||Soundfont.nameToUrl,this.ctx=F,this.instruments={},this.promises=[]}Soundfont.prototype.onready=function(F){console.warn("deprecated API"),console.log("Please use Promise.all(Soundfont.instrument(), Soundfont.instrument()).then() instead of new Soundfont().onready()"),Promise.all(this.promises).then(F)};Soundfont.prototype.instrument=function(F,R){console.warn("new Soundfont().instrument() is deprecated."),console.log("Please use Soundfont.instrument() instead.");var B=this.ctx;if(F=F||"default",F in this.instruments)return this.instruments[F];var D={name:F,play:oscillatorPlayer(B,R)};if(this.instruments[F]=D,F!=="default"){var G=Soundfont.instrument(B,F,R).then(function(U){return D.play=U.play,D});this.promises.push(G),D.onready=function(U){console.warn("onready is deprecated. Use Soundfont.instrument().then()"),G.then(U)}}else D.onready=function(U){console.warn("onready is deprecated. Use Soundfont.instrument().then()"),U()};return D};function loadBuffers(F,R,B){return console.warn("Soundfont.loadBuffers is deprecate."),console.log("Use Soundfont.instrument(..) and get buffers properties from the result."),Soundfont.instrument(F,R,B).then(function(D){return D.buffers})}Soundfont.loadBuffers=loadBuffers;function oscillatorPlayer(F,R){return R=R||{},function(B,D,G,U){console.warn("The oscillator player is deprecated."),console.log("Starting with version 0.9.0 you will have to wait until the soundfont is loaded to play sounds.");var W=B>0&&B<129?+B:parser.midi(B),q=W?parser.midiToFreq(W,440):null;if(!!q){G=G||.2,U=U||{};var Y=U.destination||R.destination||F.destination,Q=U.vcoType||R.vcoType||"sine",Z=U.gain||R.gain||.4,K=F.createOscillator();K.type=Q,K.frequency.value=q;var ie=F.createGain();return ie.gain.value=Z,K.connect(ie),ie.connect(Y),K.start(D),G>0&&K.stop(D+G),K}}}Soundfont.noteToMidi=parser.midi;var legacy=Soundfont;(function(F){var R=lib$1.exports,B=lib.exports;function D(q,Y,Q){if(arguments.length===1)return function(ne,se){return D(q,ne,se)};var Z=Q||{},K=Z.isSoundfontURL||G,ie=Z.nameToUrl||U,te=K(Y)?Y:ie(Y,Z.soundfont,Z.format);return R(q,te,{only:Z.only||Z.notes}).then(function(ne){var se=B(q,ne,Z).connect(Z.destination?Z.destination:q.destination);return se.url=te,se.name=Y,se})}function G(q){return/\.js(\?.*)?$/i.test(q)}function U(q,Y,Q){return Q=Q==="ogg"?Q:"mp3",Y=Y==="FluidR3_GM"?Y:"MusyngKite","https://gleitz.github.io/midi-js-soundfonts/"+Y+"/"+q+"-"+Q+".js"}var W=legacy;W.instrument=D,W.nameToUrl=U,F.exports&&(F.exports=W),typeof window!="undefined"&&(window.Soundfont=W)})(lib$2);NoteEnum.C,NoteEnum.D,NoteEnum.E,NoteEnum.F,NoteEnum.G,NoteEnum.A,NoteEnum.B;const browserInfo$2=browser(),getLinkId=()=>location.hash.split("?")[0].split("/").pop()||"",retain=F=>Math.ceil(F*1e6)/1e6;function formatBeatUnit(F){let R=4;switch(F){case"1024th":R=1024;break;case"512th":R=512;break;case"256th":R=256;break;case"128th":R=128;break;case"64th":R=64;break;case"32nd":R=32;break;case"16th":R=16;break;case"eighth":R=8;break;case"quarter":R=4;break;case"half":R=2;break;case"whole":R=1;break;case"breve":R=.5;break;case"long":R=.25;break;case"maxima":R=.125;break}return R}const formatLyricsEntries=F=>{var D,G;const R=((D=F.parentStaffEntry)==null?void 0:D.voiceEntries)||[],B=[];for(const U of R)if((G=U.lyricsEntries)!=null&&G.table){const W=Object.values(U.lyricsEntries.table);for(const q of W)B.push(q==null?void 0:q.value.text)}return B},getMeasureDurationDiff=F=>{const{realValue:R}=F.activeTimeSignature,{realValue:B}=F.duration;return R-B},getAllNodes=F=>{var Q,Z,K,ie,te,ne,se,re,ae,le,ce,he,pe,me,fe,ge,Se,Ee,ve,xe,Me,ye,we,Re,Pe,Ae,Le,Ne,Ie,_e,Ve,qe,Ge,He,Qe,We,Ze,lt,ht,yt,Fe;const R=getLinkId();let B=browserInfo$2.huawei?.08:0;const D=[],G=[],U=[],{baseSpeed:W=100}=state$2,q=(Te,je)=>{var et,it,rt,Je,ct,dt;return["906"].includes(R)?((et=je.measures[0])==null?void 0:et.realKey)||Te:["782","784"].includes(R)&&[14,16,30,32].includes((it=je.firstVerticalMeasure)==null?void 0:it.measureNumber)?((rt=D[D.length-1])==null?void 0:rt.realKey)||Te:["900","901","640","641","739","740","800","801","773","774","869","872","714","715"].includes(R)&&(((Je=je.firstVerticalMeasure)==null?void 0:Je.measureNumber)===3||((ct=je.firstVerticalMeasure)==null?void 0:ct.measureNumber)===9)&&((dt=je.measures[0])==null?void 0:dt.realKey)||Te};if(F!=null&&F.cursor){try{F.cursor.reset()}catch{}const Te=F.cursor.iterator;let je=0,Ke=0,Oe=[],De=[],et=0,it=0,rt=0,Je="quarter",ct=1,dt=0,pt=0,vt=0,wt=0,gt=!1,Tt=0;for(;!Te.endReached;){const Rt=F.cursor.cursorElement,Ht={move:!1};Rt&&(Ht.move=!0,Ht.x=Rt.offsetLeft,Ht.y=Rt.offsetTop,Ht.w=Rt.offsetWidth,Ht.h=Rt.offsetHeight);const mi=(Q=Te.currentVoiceEntries)!=null&&Q[0]?[(Z=Te.currentVoiceEntries)==null?void 0:Z[0]]:[],Zt=(K=Te.currentVoiceEntries)==null?void 0:K[1];let si=!1;for(const vi of mi){let At=vi.notes[0];if(["Piano"].includes((ie=state$2.activeDetail)==null?void 0:ie.code)){let oi=[];try{oi=(te=Te.currentVoiceEntries)==null?void 0:te.map(Mi=>Mi.notes).flat().sort((Mi,Ai)=>Mi.Length.realValue-Ai.Length.realValue),At=oi[0]}catch{}}if(At){if(Ke===0&&U.push(At.sourceMeasure),Ke===0&&state$2.isSpecialBookCategory)for(const ei of(ne=At.sourceMeasure)==null?void 0:ne.TempoExpressions)(se=ei==null?void 0:ei.InstantaneousTempo)!=null&&se.beatUnit&&(Je=ei.InstantaneousTempo.beatUnit);ct=(re=At.sourceMeasure)==null?void 0:re.MeasureNumberXML,pt==((ae=At.sourceMeasure)==null?void 0:ae.MeasureNumberXML)?vt++:(pt=(le=At.sourceMeasure)==null?void 0:le.MeasureNumberXML,vt=0);let oi=At.sourceMeasure.tempoInBPM;const{metronomeNoteIndex:Mi}=Te.currentMeasure;Mi!==0&&Mi>Ke&&(oi=((ce=D[D.length-1])==null?void 0:ce.speed)||100);const Ai=[(he=At.sourceMeasure.verticalMeasureList)==null?void 0:he[0]],{realValue:En}=Te.currentTimeStamp,{RealValue:Yi,Denominator:fi}=formatDuration(Te.currentMeasure.activeTimeSignature,Te.currentMeasure.duration);let{wholeValue:er,numerator:Ur,denominator:yr,realValue:Hr}=At.length,Gn=et,Mn=(state$2.isSpecialBookCategory?getTimeByBeatUnit(Je,oi,Te.currentMeasure.activeTimeSignature.Denominator):W)||1,vr=(state$2.isSpecialBookCategory?oi:W)||1;je===0&&(B+=getFixTime(Mn));let ji=Math.min(Yi,Hr)*formatBeatUnit(Je)*(60/Mn);const tr=Yi*fi*(60/Mn);["Piano"].includes((pe=state$2.activeDetail)==null?void 0:pe.code)&&(ji=(Te.currentTimeStamp.realValue-wt||(Ur===0?Yi:(er+Ur)/yr))*fi*(60/Mn)),At.isRestFlag&&((me=At==null?void 0:At.sourceMeasure)==null?void 0:me.allRests)&&(Tt=(fe=At==null?void 0:At.sourceMeasure)==null?void 0:fe.multipleRestMeasures),Tt>0&&(Tt-=1,ji=tr),At.isRestFlag&&ji>tr&&(ji=tr),At.DotsXml&&At.tuplet&&(ji=ji*1.5),gt&&(ji=1e-7,gt=!1,si=!0);const ss=(ge=At.sourceMeasure.staffLinkedExpressions)==null?void 0:ge[0];for(const ei of ss||[])if(ei&&((Se=ei.expressions)==null?void 0:Se.find(qr=>qr.label==="\u8DF3\u8FC7\u4E0B\u4E00\u4E2A"))&&Fraction$1.Equal((Ee=At.voiceEntry)==null?void 0:Ee.Timestamp,ei.Timestamp)){gt=!0;break}wt=Te.currentTimeStamp.realValue,et+=ji,it+=ji;let Wr=ji+Gn;const Is=At.ParentVoiceEntry.ParentVoice.Parent.SubInstruments[0].fixedKey||0,Qi=(xe=(ve=Ai[0])==null?void 0:ve.vfVoices["1"])==null?void 0:xe.tickables[vt];if(D.length&&D[D.length-1].relativeTime===Gn)continue;if(je===0){const ei=getMeasureDurationDiff(Te.currentMeasure);console.log("diff",ei),ei>0&&(rt=ei*fi*(60/Mn),((Me=state$2.activeDetail)==null?void 0:Me.audioType)==="MIDI"&&(rt=0),B+=rt)}const an={skipMode:si,NoteToGraphicalNoteObjectId:At.NoteToGraphicalNoteObjectId,cursorBox:Ht,skipNextNote:gt,measureNumberPrinted:ct,difftime:rt,octaveOffset:(ye=Ai[0])==null?void 0:ye.octaveOffset,frequency:(we=At.pitch)==null?void 0:we.frequency,speed:vr,beatSpeed:Mn,i:je,si:Ke,stepSpeeds:De,indexOfMeasures:dt,measureOpenIndex:U.length-1,measures:Oe,tempoInBPM:At.sourceMeasure.tempoInBPM,measureLength:tr,relaMeasureLength:it,id:Qi==null?void 0:Qi.attrs.id,note:At.halfTone+12,relativeTime:retain(Gn),time:retain(Gn+B),endtime:retain(Wr+B),relaEndtime:retain(Wr),realValue:En,halfTone:At.halfTone,voiceEntry:{isStaccato:At.voiceEntry.isStaccato(),Timestamp:{...At.voiceEntry.Timestamp},ornamentContainer:At.voiceEntry.ornamentContainer?{...At.voiceEntry.ornamentContainer}:""},noteElement:{NoteToGraphicalNoteObjectId:At.NoteToGraphicalNoteObjectId,notehead:At.notehead?{filled:At.notehead.filled,shape:At.notehead.shape,sourceNote:(Re=At.notehead.sourceNote)==null?void 0:Re.NoteToGraphicalNoteObjectId}:"",noteheadColor:At.noteheadColor,isRestFlag:At.isRestFlag,sourceMeasure:{measureListIndex:(Pe=At==null?void 0:At.SourceMeasure)==null?void 0:Pe.measureListIndex,MeasureNumberXML:(Ae=At==null?void 0:At.SourceMeasure)==null?void 0:Ae.MeasureNumberXML,allRests:(Le=At==null?void 0:At.SourceMeasure)==null?void 0:Le.allRests,isRestFlag:(Ne=At==null?void 0:At.SourceMeasure)==null?void 0:Ne.isRestFlag,multipleRestMeasures:(Ie=At==null?void 0:At.SourceMeasure)==null?void 0:Ie.multipleRestMeasures,verticalMeasureList:Array.isArray((_e=At==null?void 0:At.SourceMeasure)==null?void 0:_e.verticalMeasureList)?At.SourceMeasure.verticalMeasureList.map(ei=>{const{x:Rs,y:qr,width:ks,height:ma,start_x:wn,end_x:ga}=(ei==null?void 0:ei.stave)||{};return ei?{stave:{x:Rs,y:qr,width:ks,height:ma,start_x:wn,end_x:ga},boundingBox:ei&&ei.boundingBox?{absolutePosition:{...ei.boundingBox.absolutePosition},size:{...ei.boundingBox.size}}:""}:void 0}):[],activeTimeSignature:{...At.activeTimeSignature}},tie:At.tie?{StartNote:{NoteToGraphicalNoteObjectId:At.tie.StartNote.NoteToGraphicalNoteObjectId},notes:Array.isArray(At.tie.notes)&&((Ve=At.tie.notes)==null?void 0:Ve.map(ei=>({NoteToGraphicalNoteObjectId:ei.NoteToGraphicalNoteObjectId})))||[]}:"",slurs:Array.isArray(At.slurs)?At.slurs.map(ei=>({startNote:{NoteToGraphicalNoteObjectId:ei.startNote.NoteToGraphicalNoteObjectId},endNote:{NoteToGraphicalNoteObjectId:ei.endNote.NoteToGraphicalNoteObjectId}})):[],pitch:{prevFrequency:(qe=At.pitch)==null?void 0:qe.prevFrequency,nextFrequency:(Ge=At.pitch)==null?void 0:Ge.nextFrequency,frequency:(He=At.pitch)==null?void 0:He.frequency},Length:{...At.Length}},svgElelent:Qi?{bbox:((Qe=Qi.getBoundingBox)==null?void 0:Qe.call(Qi))||"",top_y:Qi.top_y,note_height:Qi.note_height}:"",fixedKey:Is,realKey:0,duration:0,formatLyricsEntries:formatLyricsEntries(At),stave:Ai[0]&&Ai[0].stave?{attrs:Ai[0].stave?{...Ai[0].stave.attrs}:{}}:"",firstVerticalMeasure:{measureNumber:(We=Ai==null?void 0:Ai[0])==null?void 0:We.measureNumber},noteLength:1,halfTone1:Array.isArray(vi.notes)?vi.notes.map(ei=>ei.halfTone+12).filter(Boolean):[],halfTone2:Zt&&Array.isArray(Zt.notes)?Zt.notes.map(ei=>ei.halfTone+12).filter(Boolean):[]};an.realKey=q(At.halfTone-Is*12,an),an.duration=an.endtime-an.time;const Ls=((lt=(Ze=Ai[0])==null?void 0:Ze.vfVoices["1"])==null?void 0:lt.tickables)||[],_n=((Fe=(yt=(ht=At.sourceMeasure.verticalMeasureList)==null?void 0:ht[0])==null?void 0:yt.staffEntries)==null?void 0:Fe.length)||Ls.length;an.noteLength=_n||1,D.push(an),G.push(an.id),Oe.push({realKey:an.realKey,NoteToGraphicalNoteObjectId:At.NoteToGraphicalNoteObjectId}),Ke<_n-1?Ke++:(Ke=0,it=0,Oe=[])}}F.cursor.next(),je++}try{F.cursor.reset()}catch{}}const Y=D.sort((Te,je)=>Te.relativeTime-je.relativeTime).map((Te,je)=>({...Te,i:je}));for(let Te=0;Te{if(F.product){if(R||R===0)if(B&&R-B===1)F.cursor.setPosition({...state$2.times[R].cursorBox});else if(B&&R-B>0)for(;R-B>0;)B++,F.cursor.setPosition({...state$2.times[B].cursorBox});else F.cursor.setPosition({...state$2.times[R].cursorBox})}else if(R||R===0)if(B&&R-B===1)F.cursor.next();else if(B&&R-B>0)for(;R-B>0;)B++,F.cursor.next();else{let D=0;for(F.cursor.reset();D{if(R>state$2.times[state$2.times.length-1].endtime)return-1;let B=0;const D=F.filter((G,U)=>{const W=F[U-1];return(W==null?void 0:W.skipNextNote)===!1});for(let G=0;G=U.time)(!W||U.time!=W.time)&&(B=U.i);else break}if(state$2.sectionStatus&&state$2.section.length===2){const G=state$2.befireSection||state$2.section[0];B=Math.min(Math.max(B,G.i),state$2.section[1].i),console.log("endIndex",B)}return B},getSlursNote=(F,R)=>{var G,U;const B=state$2.times.find(W=>W.NoteToGraphicalNoteObjectId==F.NoteToGraphicalNoteObjectId)||{};let D=R==="end"?(G=B.noteElement.slurs[0])==null?void 0:G.endNote:(U=B.noteElement.slurs[0])==null?void 0:U.startNote;if(!!D)return state$2.times.find(W=>W.NoteToGraphicalNoteObjectId==D.NoteToGraphicalNoteObjectId)},getNoteBySlursStart=(F,R,B)=>{let D=F,G=getSlursNote(D,B);if(!G&&R)for(const U of D.measures){const W=state$2.times.find(q=>q.NoteToGraphicalNoteObjectId==U.NoteToGraphicalNoteObjectId);W.noteElement.slurs.length&&(G=getSlursNote(W,B),D=W)}if(D&&G!==D.noteElement){for(const U of state$2.times)if(G===U.noteElement)return U}return D},getParentNote=F=>{let R;if(F){for(const B of state$2.times)if(F.NoteToGraphicalNoteObjectId===B.noteElement.NoteToGraphicalNoteObjectId)return B}return R},getNoteByMeasuresSlursStart=F=>{let R=F,B;if(F.noteElement.tie&&F.noteElement.tie.StartNote&&(B=F.noteElement.tie.StartNote),R&&B&&B!==R.noteElement){for(const D of state$2.times)if(B.NoteToGraphicalNoteObjectId===D.noteElement.NoteToGraphicalNoteObjectId)return D}return R},getActtiveNoteByTimes=F=>{var G;const R=(G=F.target)==null?void 0:G.dataset,B={};for(const U of state$2.times)U.id&&(B[U.id]=U);return B[R.id||""]},getPrevHasSourceNote=F=>{const R=Math.max(state$2.times.indexOf(F)-1,0);for(let B=R;B>=0;B--){const D=state$2.times[B];if(D!=null&&D.stave)return D}},getBoundingBoxByverticalNote=F=>{var D,G,U,W,q,Y,Q,Z,K;let R=(G=(D=F==null?void 0:F.noteElement)==null?void 0:D.sourceMeasure)==null?void 0:G.verticalMeasureList;R=!R||!R[0]?((U=F==null?void 0:F.noteElement)==null?void 0:U.isRestFlag)&&((Y=(q=(W=getPrevHasSourceNote(F))==null?void 0:W.noteElement)==null?void 0:q.sourceMeasure)==null?void 0:Y.verticalMeasureList):R;let B=0;if(R){const ie=R[state.partIndex];for(let te=0;te0&&(B+=(Q=R[te-1])==null?void 0:Q.stave.height),B+=se;const{x:re,y:ae,width:le,context:ce,start_x:he,end_x:pe}=ie==null?void 0:ie.stave;return{measureIndex:((Z=F==null?void 0:F.noteElement)==null?void 0:Z.sourceMeasure.measureListIndex)||0,MeasureNumberXML:((K=F==null?void 0:F.noteElement)==null?void 0:K.sourceMeasure.MeasureNumberXML)||1,start_x:he,end_x:pe,height:B,x:re,y:ae,width:le,context:ce}}}}return{measureIndex:0,height:B,start_x:0,end_x:0,x:0,y:0,width:0,context:{element:null}}},getDuration=F=>{var R;if(F){const B=(R=F==null?void 0:F.graphic)==null?void 0:R.measureList[0][0];if(B){const{duration:D,tempoInBPM:G,activeTimeSignature:U,TempoExpressions:W}=B==null?void 0:B.parentSourceMeasure;if(D){let q="quarter";for(const Y of W)q=Y.InstantaneousTempo.beatUnit||"quarter";return{...formatDuration(U),tempoInBPM:G,beatUnit:q}}}}return{}},formatDuration=(F,R)=>F,getTimeByBeatUnit=(F,R,B)=>{let D=4;switch(F){case"1024th":D=1024;break;case"512th":D=512;break;case"256th":D=256;break;case"128th":D=128;break;case"64th":D=64;break;case"32nd":D=32;break;case"16th":D=16;break;case"eighth":D=8;break;case"quarter":D=4;break;case"half":D=2;break;case"whole":D=1;break;case"breve":D=.5;break;case"long":D=.25;break;case"maxima":D=.125;break}return B/D*R},getEnvHostname=()=>location.origin.indexOf("online")>-1?"https://mstuonline.dayaedu.com":location.origin.indexOf("dev")>-1?"http://mstudev.dayaedu.com":"https://mstutest.dayaedu.com",getTvIconUrl=()=>location.origin.indexOf("online")>-1?"https://mteaonline.dayaedu.com/#/guide":location.origin.indexOf("dev")>-1?"http://mteadev.dayaedu.com/#/guide":"https://mteatest.dayaedu.com/#/guide",setPrefix=F=>F?"?"+F:"",formatXML=(F,R)=>{var Y,Q,Z;if(!F)return"";const B=new DOMParser().parseFromString(F,"text/xml"),D=B.getElementsByTagName("measure");let G=-1,U=-1;const W=document.createElement("direction"),q=` quarter 100 1 1`;W.innerHTML=q,B.getElementsByTagName("per-minute").length===0&&((Y=D[0])==null||Y.insertAdjacentElement("afterbegin",W));for(const K of D){G===-1&&K.getElementsByTagName("beats").length&&(G=parseInt(K.getElementsByTagName("beats")[0].textContent||"4")),U===-1&&K.getElementsByTagName("beat-type").length&&(U=parseInt(K.getElementsByTagName("beat-type")[0].textContent||"4"));const ie=parseInt(((Q=K.getElementsByTagName("divisions")[0])==null?void 0:Q.textContent)||"256");if(K.getElementsByTagName("note").length===0){const te=(Z=K.getElementsByTagName("forward")[0])==null?void 0:Z.getElementsByTagName("duration")[0];te&&(te.textContent="0"),K.innerHTML=K.innerHTML+` ${ie*G} 1 whole `}}if(R){const K=B.querySelector("work-title");K&&R.title&&(K.textContent=R.title)}return new XMLSerializer().serializeToString(B)},getCustomInfo=F=>{var G,U,W;const R={showSpeed:!0,parsedXML:F,code:""},B=new DOMParser().parseFromString(F,"text/xml"),D=B.getElementsByTagName("words");for(const q of D)q&&((G=q.textContent)==null?void 0:G.trim())==="\u9690\u85CF\u901F\u5EA6"&&(R.showSpeed=!1,q.textContent=""),q&&((U=q.textContent)==null?void 0:U.trim())==="@"&&(q.textContent="segno");return R.parsedXML=new XMLSerializer().serializeToString(B),R.code=((W=B.querySelector("part-name"))==null?void 0:W.innerHTML)||"",R},setElementNoteBefore=(F,R,B)=>{let D=0;if(!!R){for(let G=0;G0){let G=0;for(let U=0;U{if(F){const R=F.toLocaleLowerCase(),B="d\\s?\\.s\\.",D="d\\.\\s?c\\.";return R==="@"||StringUtil.StringContainsSeparatedWord(R,B+" al fine",!0)||StringUtil.StringContainsSeparatedWord(R,B+" al coda",!0)||StringUtil.StringContainsSeparatedWord(R,D+" al fine",!0)||StringUtil.StringContainsSeparatedWord(R,D+" al coda",!0)||StringUtil.StringContainsSeparatedWord(R,D)||StringUtil.StringContainsSeparatedWord(R,"da\\s?capo",!0)||StringUtil.StringContainsSeparatedWord(R,B,!0)||StringUtil.StringContainsSeparatedWord(R,"dal\\s?segno",!0)||StringUtil.StringContainsSeparatedWord(R,"al\\s?coda",!0)||StringUtil.StringContainsSeparatedWord(R,"to\\s?coda",!0)||StringUtil.StringContainsSeparatedWord(R,"a (la )?coda",!0)||StringUtil.StringContainsSeparatedWord(R,"fine",!0)||StringUtil.StringContainsSeparatedWord(R,"coda",!0)||StringUtil.StringContainsSeparatedWord(R,"segno",!0)}return!1},onlyVisible=(F,R)=>{var K,ie,te,ne,se,re;if(!F)return"";const B=new DOMParser().parseFromString(F,"text/xml"),D=((ie=(K=B.getElementsByTagName("part-list"))==null?void 0:K[0])==null?void 0:ie.getElementsByTagName("score-part"))||[],G=Array.from(D).map(ae=>{var le;return((le=ae.getElementsByTagName("part-name"))==null?void 0:le[0].textContent)||""}),U=B.getElementsByTagName("part")||[];if(!U.length)return"";const W=[...(te=U[0])==null?void 0:te.getElementsByTagName("measure")],q=[...(ne=U[0])==null?void 0:ne.getElementsByTagName("metronome")],Y=[...(se=U[0])==null?void 0:se.getElementsByTagName("words")],Q=[...(re=U[0])==null?void 0:re.getElementsByTagName("rehearsal")],Z=D[R];if(state$2.partListNames=G,Z){const ae=Z.getAttribute("id");Array.from(U).forEach(he=>{var pe,me,fe,ge,Se;if(he&&he.getAttribute("id")!==ae)(pe=he.parentNode)==null||pe.removeChild(he);else if(he&&he.getAttribute("id")!=="P1"){const Ee={};for(let ve=0;ve{var Re;const xe=(Re=ve.parentElement)==null?void 0:Re.parentElement,Me=xe==null?void 0:xe.parentElement,ye=[...(Me==null?void 0:Me.childNodes)||[]],we=xe?ye.indexOf(xe):-1;if(Me&&we>-1){const Pe=W.indexOf(Me),Ae=he.getElementsByTagName("measure")[Pe];setElementNoteBefore(xe,Me,Ae)}}),Y.forEach(ve=>{var Me;const xe=ve.textContent||"";if((isSpecialMark(xe)||isSpeedKeyword(xe)||isGradientWords(xe)||isRepeatWord(xe)||GRADIENT_SPEED_RESET_TAG)&&xe){const ye=(Me=ve.parentElement)==null?void 0:Me.parentElement,we=ye==null?void 0:ye.parentElement,Re=[...(we==null?void 0:we.childNodes)||[]],Pe=ye?Re.indexOf(ye):-1;if(ye&&we&&Pe>-1){const Ae=W.indexOf(we),Le=he.getElementsByTagName("measure")[Ae];setElementNoteBefore(ye,we,Le)}}}),Q.forEach(ve=>{var ye,we;const xe=(ye=ve.parentElement)==null?void 0:ye.parentElement,Me=xe==null?void 0:xe.parentElement;if(Me){const Re=W.indexOf(Me);(we=he.getElementsByTagName("measure")[Re])==null||we.appendChild(xe.cloneNode(!0))}})}if(he&&he.getAttribute("id")===ae){const Ee=he.getElementsByTagName("barline"),ve=(ge=Ee[Ee.length-1])==null?void 0:ge.parentElement;if(((Se=ve==null?void 0:ve.lastElementChild)==null?void 0:Se.tagName)!=="barline"){const xe=(ve==null?void 0:ve.children)||[];for(let Me of xe)if(Me.tagName==="barline"){ve==null||ve.appendChild(Me);break}}}}),Array.from(D).forEach(he=>{var pe;he&&he.getAttribute("id")!==ae&&((pe=he.parentNode)==null||pe.removeChild(he))});const le=B.getElementsByTagName("note"),ce=he=>{var fe;let pe=le[he+1];for(let ge=he;ge{var fe;const me=he.getElementsByTagName("grace");me&&me.length&&he.appendChild((fe=ce(pe))==null?void 0:fe.cloneNode(!0))})}return new XMLSerializer().serializeToString(B)},appoggianceFormate=F=>{var G,U,W,q;if(!F)return F;const R=new DOMParser().parseFromString(F,"text/xml"),B=R.querySelectorAll("grace");if(!B.length)return F;const D=Y=>Y.querySelector("grace")?D(Y==null?void 0:Y.nextElementSibling):Y;for(let Y of B){const Q=(G=Y.parentElement)==null?void 0:G.querySelector("notations");if(Q&&Q.querySelectorAll("slur").length>1){let Z=D((U=Y.parentElement)==null?void 0:U.nextElementSibling);if(Z&&Z.querySelectorAll("slur").length>0){const K=Array.from(((W=Z.querySelector("notations"))==null?void 0:W.children)||[]).map(te=>te.getAttribute("number")),ie=Q.querySelectorAll("slur");for(let te of ie)K.includes(te.getAttribute("number"))||(q=Z.querySelector("notations"))==null||q.appendChild(te)}}}return new XMLSerializer().serializeToString(R)},getVoicePartInfo=()=>{const{MusicalInstrumentClassification:F,chinesePartName:R}=state$4;let B=-1;const{partListNames:D,partIndex:G}=state$2;if(D.filter(W=>(W||"").trim()!=="").length)for(const W of Object.entries(F)){const[q,Y]=W,Q=D[G],Z=Y.filter(K=>K&&Q.indexOf(K||"")>-1);if(Q&&(Z.length||Y.includes(Q)))return isNaN(+q)||(B=+q),{realPartListNames:D,subjectId:B,partListNames:Y,partName:Q,chinesePartName:R[Q]||Q}}return{subjectId:B,partListNames:[]}},classids=[1,30],idIsInClassIds=(F,R,B=!1)=>{if(!F)return!1;let D=!1;for(const G of F){if(G.id===R&&(B||classids.includes(G.id))){D=!0;break}if(G.sysMusicScoreCategoriesList&&(D=idIsInClassIds(G.sysMusicScoreCategoriesList,R,B||classids.includes(G.id)),D))break}return D},getFeature=F=>F.feature?F.feature:F.lessonTrainingId?"LESSON_TRAINING":"PRACTICE",useOriginSearch=()=>{const F=location.search||location.hash.replaceAll("#/",""),R=queryString.parse(F);if(R.Authorization&&sessionStorage.setItem("Authorization",R.Authorization||""),R.setting)try{R.setting=JSON.parse(decodeURIComponent(R.setting))}catch{}return R.feature=getFeature(R),R},useReload=()=>{const F=useOriginSearch(),R=queryString.stringify({...F,_t:Date.now()},{});location.search="?"+R},useMenu=()=>{const F=ref(!0);return useEventListener("click",R=>{const B=R.path||R.composedPath(),D=B[0];if(D){const G=D.dataset.id&&D.dataset.id.indexOf("auto")>-1,U=B.find(W=>{var q;return W.tagName==="BUTTON"||((q=W.getAttribute)==null?void 0:q.call(W,"role"))==="button"});if(G||U)return}F.value=!F.value},{target:document.body.querySelector("#colexiu-detail-music-sheet")}),watch(()=>state.playState,(R,B)=>{let D=B;D==="suspend"&&(D="pause"),F.value=D!=="pause"}),[F]};var dayjs_min={exports:{}};(function(F,R){(function(B,D){F.exports=D()})(commonjsGlobal$2,function(){var B=1e3,D=6e4,G=36e5,U="millisecond",W="second",q="minute",Y="hour",Q="day",Z="week",K="month",ie="quarter",te="year",ne="date",se="Invalid Date",re=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,ae=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,le={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},ce=function(Me,ye,we){var Re=String(Me);return!Re||Re.length>=ye?Me:""+Array(ye+1-Re.length).join(we)+Me},he={s:ce,z:function(Me){var ye=-Me.utcOffset(),we=Math.abs(ye),Re=Math.floor(we/60),Pe=we%60;return(ye<=0?"+":"-")+ce(Re,2,"0")+":"+ce(Pe,2,"0")},m:function Me(ye,we){if(ye.date()1)return Me(Le[0])}else{var Ne=ye.name;me[Ne]=ye,Pe=Ne}return!Re&&Pe&&(pe=Pe),Pe||!Re&&pe},Se=function(Me,ye){if(fe(Me))return Me.clone();var we=typeof ye=="object"?ye:{};return we.date=Me,we.args=arguments,new ve(we)},Ee=he;Ee.l=ge,Ee.i=fe,Ee.w=function(Me,ye){return Se(Me,{locale:ye.$L,utc:ye.$u,x:ye.$x,$offset:ye.$offset})};var ve=function(){function Me(we){this.$L=ge(we.locale,null,!0),this.parse(we)}var ye=Me.prototype;return ye.parse=function(we){this.$d=function(Re){var Pe=Re.date,Ae=Re.utc;if(Pe===null)return new Date(NaN);if(Ee.u(Pe))return new Date;if(Pe instanceof Date)return new Date(Pe);if(typeof Pe=="string"&&!/Z$/i.test(Pe)){var Le=Pe.match(re);if(Le){var Ne=Le[2]-1||0,Ie=(Le[7]||"0").substring(0,3);return Ae?new Date(Date.UTC(Le[1],Ne,Le[3]||1,Le[4]||0,Le[5]||0,Le[6]||0,Ie)):new Date(Le[1],Ne,Le[3]||1,Le[4]||0,Le[5]||0,Le[6]||0,Ie)}}return new Date(Pe)}(we),this.$x=we.x||{},this.init()},ye.init=function(){var we=this.$d;this.$y=we.getFullYear(),this.$M=we.getMonth(),this.$D=we.getDate(),this.$W=we.getDay(),this.$H=we.getHours(),this.$m=we.getMinutes(),this.$s=we.getSeconds(),this.$ms=we.getMilliseconds()},ye.$utils=function(){return Ee},ye.isValid=function(){return this.$d.toString()!==se},ye.isSame=function(we,Re){var Pe=Se(we);return this.startOf(Re)<=Pe&&Pe<=this.endOf(Re)},ye.isAfter=function(we,Re){return Se(we){var R;F.EngravingRules.CompactMode=!0,F.EngravingRules.DYMinNoteWidth=3,F.EngravingRules.VoiceSpacingMultiplierVexflow=.65,F.EngravingRules.VoiceSpacingAddendVexflow=2,F.EngravingRules.MinSkyBottomDistBetweenStaves=2,F.EngravingRules.MinSkyBottomDistBetweenSystems=2,F.EngravingRules.MinimumStaffLineDistance=4,F.EngravingRules.BetweenStaffDistance=2.5,F.EngravingRules.StaffDistance=3.5,F.EngravingRules.MinimumDistanceBetweenSystems=1,F.EngravingRules.PageBottomMargin=0,F.EngravingRules.PageLeftMargin=2,F.EngravingRules.PageRightMargin=2,F.EngravingRules.PageTopMarginNarrow=3,F.EngravingRules.WedgeEndDistanceBetweenTimestampsFactor=1,F.EngravingRules.RehearsalMarkXOffset=-18,F.EngravingRules.RehearsalMarkYOffset=10,F.EngravingRules.DYWorkId=((R=state$2.activeDetail)==null?void 0:R.parentCategoriesId)||0},useEngravingRules=(F,R)=>{onMounted(()=>{setEngravingRules(F);for(const B in R)if(Object.prototype.hasOwnProperty.call(R,B)){let D=B;const G=R[D];F.EngravingRules[D]=G}})},useOsmd=(F,R,B={})=>{const D=ref();if(F.value){const G=new EngravingRules;for(const[U,W]of Object.entries(B))G[U]=W;D.value=new OpenSheetMusicDisplay(F.value,{followCursor:!1,autoResize:!0,drawSubtitle:!1,drawTitle:!1,autoBeam:!0,drawMetronomeMarks:!1,drawMeasureNumbers:!1,drawComposer:!1,drawLyricist:!1,...R},G)}return D},useOsmdLoader=async(F,R)=>{if(!R)throw"score is required";const B=Toast("\u52A0\u8F7D\u4E2D\uFF0C\u8BF7\u7A0D\u540E...");try{R&&F&&(await F.load(R),F.zoom=formatZoom(),await F.render())}catch{}B.close()},container$1="_container_15puc_1",eyeProtection="_eyeProtection_15puc_22";var styles$3={container:container$1,eyeProtection};const section="_section_fxysl_1",measure="_measure_fxysl_1",dontTransition="_dontTransition_fxysl_5",after="_after_fxysl_5",img="_img_fxysl_22",font="_font_fxysl_30",bad="_bad_fxysl_35",good="_good_fxysl_43",great="_great_fxysl_51",perfect="_perfect_fxysl_58",noteWrap="_noteWrap_fxysl_80",noteBase="_noteBase_fxysl_86",noteRight="_noteRight_fxysl_89",noteError="_noteError_fxysl_92",flash="_flash_fxysl_124",restFlag="_restFlag_fxysl_127",restFlagActive="_restFlagActive_fxysl_141",flicker$1="_flicker_fxysl_1";var styles$2={section,measure,dontTransition,after,img,font,bad,good,great,perfect,noteWrap,noteBase,noteRight,noteError,flash,restFlag,restFlagActive,flicker:flicker$1};const restPromptData=reactive({list:[]}),restPromptMain=F=>{calculateMergeRest(F)};function calculateMergeRest(F){var U,W,q,Y,Q,Z,K,ie,te;const R=[],B=document.querySelector("#osmdSvgPage1"),D=((U=B.getAttribute("viewBox"))==null?void 0:U.split(" "))||[];let G=Number(B.getAttribute("width"))/Number(D[2]);G=isNaN(G)?1:G;for(let ne=0;nehe.measureNumberXML===re)&&le&&ae>1){const he=getStaveBox((te=(ie=se==null?void 0:se.stave)==null?void 0:ie.attrs)==null?void 0:te.id,G);R.push({measureNumberXML:re,allRests:le,multipleRestMeasures:ae,staveBox:he})}}restPromptData.list=R}function getStaveBox(F,R){var D;if(!F)return{};const B=document.querySelector("#"+F);if(B){const G=(D=B==null?void 0:B.nextElementSibling)==null?void 0:D.getBBox();return{left:G.x*R+"px",top:G.y*R+"px",width:G.width*R+"px",height:G.height*R+"px"}}return{}}function _isSlot(F){return typeof F=="function"||Object.prototype.toString.call(F)==="[object Object]"&&!isVNode(F)}const sectionRef=ref(null),noteInfoItems=reactive({duration:!1,numerator:!1,denominator:!1,i:!1,time:!1,speed:!1});window.setNoteInfoItems=F=>{for(const R in F)Object.prototype.hasOwnProperty.call(F,R)&&(noteInfoItems[R]=F[R])};const uniqueByPosition=F=>{const R={};for(const B of F)B&&B.start_x&&(R[`${B.x}-${B.y}`]=B);return R};watchEffect(()=>{state$2.sectionStatus?state$2.section.length?state$2.section.length===1&&(Toast.clear(),Toast({duration:0,message:"\u8BF7\u9009\u62E9\u7ED3\u675F\u8282\u70B9",position:"top"})):(state$2.befireSection=null,Toast.clear(),Toast({duration:0,message:"\u8BF7\u9009\u62E9\u5F00\u59CB\u8282\u70B9",position:"top"})):(state$2.section=[],state$2.sectionBoundingBoxs=[],Toast.clear())});var Section=defineComponent({name:"section-box",props:{type:{type:String,default:"evaluating"},top:{type:Number,default:0},left:{type:Number,default:0}},data(){return{sectionTop:0,sectionLeft:0}},methods:{getBoundingBoxByNote(F,R){var G,U,W,q,Y,Q,Z,K,ie,te,ne;const B=(W=(U=(G=F.sourceMeasure)==null?void 0:G.verticalMeasureList)==null?void 0:U[0])==null?void 0:W.boundingBox;if(!B)return null;const D={...B.absolutePosition,...B.size,...R};return D.x=D.x*10,D.y=D.y*10,D.width=D.width*10,D.height=D.height*10,(Z=(Q=(Y=(q=F==null?void 0:F.sourceMeasure)==null?void 0:q.verticalMeasureList)==null?void 0:Y[0])==null?void 0:Q.stave)!=null&&Z.height&&(D.height=(ne=(te=(ie=(K=F.sourceMeasure)==null?void 0:K.verticalMeasureList)==null?void 0:ie[0])==null?void 0:te.stave)==null?void 0:ne.height),D},setSettionBackground(){var U,W,q,Y,Q;state$2.sectionBoundingBoxs=[];const[F,R]=state$2.section.sort((Z,K)=>Z.i-K.i),B=Math.abs(R.i-F.i)+1;R.noteLength;const D=[],G=[];for(let Z=0;Z(Z.height=Math.max(...G),Z))},setSection(F){const R=getActtiveNoteByTimes(F);if(console.log("\u{1F680} ~ activeNote",R),R&&state$2.section.length<2){const B=state$2.section.length;if(B===0){const D=getNoteBySlursStart(R,!0);state$2.section.push(state$2.times[D.i-D.si])}if(B===1){const D=getNoteBySlursStart(R,!0,"end");state$2.section.push(state$2.times[D.i-D.si+D.noteLength-1])}}state$2.section.length===2&&(Toast.clear(),this.setSettionBackground())},sectionClick(F){if(state$2.sectionStatus)this.setSection(F);else{if(state$2.mode!=="contact"||state.evaluatingStatus)return;event.emit("section-click",F)}},filterTimes(F){const R=[];return F.filter(B=>{const D=R.includes(B.id);return R.push(B.id),!D})}},mounted(){var F,R;Toast.clear(),state$2.section=[],this.sectionTop=(F=sectionRef.value)==null?void 0:F.getBoundingClientRect().top,this.sectionLeft=(R=sectionRef.value)==null?void 0:R.getBoundingClientRect().left},beforeUnmount(){Toast.clear(),state$2.sectionStatus=!1,state$2.section=[]},render(){var W,q,Y;let F;const R=state$3.sett.eyeProtection?"var(--eye-section-border-color)":"var(--section-border-color)",B=Q=>state$3.sett.eyeProtection?Q.before?"var(--section-background-color)":"var(--eye-section-background-color)":Q.before?"var(--eye-section-background-color)":"var(--section-background-color)",D=((Y=(q=(W=state$2.times[state.activeIndex])==null?void 0:W.noteElement)==null?void 0:q.sourceMeasure)==null?void 0:Y.MeasureNumberXML)||-2,G=restPromptData.list.find(Q=>{const Z=D-Q.measureNumberXML;return Q.allRests&&Z>=0&&Z{var re,ae,le,ce,he,pe,me,fe,ge,Se,Ee,ve,xe;if(!Q.svgElelent)return null;let Z;try{Z=Q.svgElelent.bbox||((ae=(re=Q.svgElelent).getBoundingBox)==null?void 0:ae.call(re)),!Z&&((ce=(le=Q.svgElelent)==null?void 0:le.attrs)==null?void 0:ce.el)&&(Z=Q.svgElelent.attrs.el.getBBox(),Z.w=Z.width<15?15:Z.width,Z.h=Z.height<11?11:Z.height)}catch(Me){console.log(Me)}if(!Z)return null;state$3.sett.type==="jianpu"&&Q.svgElelent&&Q.svgElelent.top_y&&Q.svgElelent.note_height&&(Z.y=Q.svgElelent.top_y-Q.svgElelent.note_height);let{x:K,y:ie,h:te,w:ne}=Z,se=null;return Q.si===0&&(se=this.getBoundingBoxByNote(Q.noteElement)),createVNode(Fragment,null,[Q.si===0&&se&&createVNode("div",{"data-id":Q.id,"data-num":Q.noteElement.sourceMeasure.MeasureNumberXML,style:{position:"absolute",top:formatZoom(se.y)+"px",left:formatZoom(se.x)+"px",height:formatZoom(se.height)+"px",width:formatZoom(se.width)+"px",background:state$2.sectionStatus?`${((pe=(he=Q==null?void 0:Q.noteElement)==null?void 0:he.sourceMeasure)==null?void 0:pe.MeasureNumberXML)<((ge=(fe=(me=state$2.section[0])==null?void 0:me.noteElement)==null?void 0:fe.sourceMeasure)==null?void 0:ge.MeasureNumberXML)||((Ee=(Se=Q==null?void 0:Q.noteElement)==null?void 0:Se.sourceMeasure)==null?void 0:Ee.MeasureNumberXML)>((xe=(ve=state$2.section[1])==null?void 0:ve.noteElement)==null?void 0:xe.sourceMeasure.MeasureNumberXML)?"rgba(0, 0, 0,.28)":"var(--section-background-color)"}`:""},onClick:state$2.sectionStatus?this.sectionClick:void 0},null),createVNode("div",{"data-id":Q.id,"data-vf":"vf"+Q.id,class:styles$2.noteWrap,style:{position:"absolute",top:formatZoom(ie)+"px",left:formatZoom(K)+"px",height:formatZoom(te)+"px",width:formatZoom(ne)+"px",background:Object.values(noteInfoItems).find(Me=>Me===!0)?"rgba(255, 255, 255, 0.8)":""},onClick:this.sectionClick},[noteInfoItems.duration&&createVNode(Fragment,null,[parseInt(Q.duration*100+"")/100,createVNode("br",null,null)]),noteInfoItems.time&&createVNode(Fragment,null,[Q.time.toFixed(2),createVNode("br",null,null)]),noteInfoItems.numerator&&createVNode(Fragment,null,[Q.noteElement.sourceMeasure.activeTimeSignature.numerator,createVNode("br",null,null),createVNode("br",null,null)]),noteInfoItems.denominator&&createVNode(Fragment,null,[Q.noteElement.sourceMeasure.activeTimeSignature.denominator,createVNode("br",null,null),createVNode("br",null,null)]),noteInfoItems.i&&createVNode(Fragment,null,[Q.i,createVNode("br",null,null),createVNode("br",null,null)]),noteInfoItems.speed&&createVNode(Fragment,null,[Q.speed.toFixed(0),createVNode("br",null,null),createVNode("br",null,null)]),createVNode("div",{class:[styles$2.noteBase,styles$2.noteRight]},[createVNode(Icon,{name:"success",size:"16",color:"var(--primary-color)"},null)]),createVNode("div",{class:[styles$2.noteBase,styles$2.noteError]},[createVNode(Icon,{name:"cross",size:"16",color:"red"},null)])])])}),state$2.section.map((Q,Z)=>{var te;const K=getBoundingBoxByverticalNote(Q);let ie;try{const ne=Q.svgElelent.bbox||((te=Q.svgElelent)==null?void 0:te.getBoundingBox());ie=formatZoom((ne==null?void 0:ne.x)||(Z===0?K.start_x:K.end_x))}catch(ne){console.log(ne)}return ie?Z===0&&K?createVNode("div",{style:{position:"absolute",top:formatZoom(K.y)-5+"px",left:formatZoom(K.x)+"px",height:formatZoom(K.height)+"px",border:`5px solid ${R}`,borderColor:`${R} transparent ${R} ${R}`,borderRight:"none",width:"5px"}},null):Z===1&&K?(K.width=formatZoom(ie-K.x+15),createVNode("div",{style:{position:"absolute",top:formatZoom(K.y-5)+"px",left:formatZoom(K.end_x-3)-5+"px",height:formatZoom(K.height)+"px",border:`5px solid ${R}`,borderColor:`${R} ${R} ${R} transparent`,borderLeft:"none",width:"5px"}},null)):null:null}),state$2.sectionBoundingBoxs.map(Q=>{var Z;return createVNode("div",{class:{[styles$2.flash]:Q.before&&state$2.sectionFlash&&state.playState==="play"},style:{position:"absolute",top:formatZoom(Q.y)+"px",left:formatZoom(Q.x)+"px",height:formatZoom((Z=getBoundingBoxByverticalNote(state$2.section[0]))==null?void 0:Z.height)+"px",width:formatZoom(Q.width)+"px",backgroundColor:B(Q)}},null)}),createVNode(TransitionGroup,{name:"list",duration:800},_isSlot(F=Object.values(uniqueByPosition(Object.values(state$2.evaluatings))).map(Q=>Q?createVNode("div",{key:Q.y+Q.x+Q.text,class:classNames(styles$2[Q.text],styles$2.measure,{[styles$2.dontTransition]:Q.dontTransition}),style:{position:"absolute",top:formatZoom(Q.y)+this.top+"px",left:formatZoom(Q.x)+this.left+"px",height:formatZoom(Q.height)+"px",width:formatZoom(Q.width)+"px"}},[this.type==="evaluating"?createVNode("span",{class:styles$2.after},[createVNode("span",{class:styles$2.img},null),createVNode("span",{class:styles$2.font},[Q.score])]):null]):createVNode("span",null,null)))?F:{default:()=>[F]}),G&&createVNode("div",{class:["dotWrap",styles$2.restMeasure],style:G.staveBox},[createVNode("div",{class:"dot"},[U])])])}});class Cursor{constructor(R){this.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAYAAAASC7TOAAAAAXNSR0IArs4c6QAAABdJREFUGFdj3Pp5c0Ptm2oGdNAs0soAAHslBd3n2kNUAAAAAElFTkSuQmCC",this.x=R.x,this.y=R.y,this.width=R.w,this.height=R.h,this.img=document.createElement("img"),this.img.src=this.src,this.img.style.position="absolute",this.img.style.zIndex="-1",this.setValue()}reset(){var B,D;const R=(D=(B=state$2.times)==null?void 0:B[0])==null?void 0:D.cursorBox;R&&this.setPosition(R)}show(){this.img.style.display=""}hide(){this.img.style.display="none"}setPosition({x:R,y:B,w:D,h:G}){this.x=R,this.y=B,this.width=D,this.height=G,this.setValue()}setValue(){this.img.style.left=this.x+"px",this.img.style.top=this.y+"px",this.img.style.width=this.width+"px",this.img.style.height=this.height+"px",this.show()}}const rendered=ref(!1);var MusicSheet=defineComponent({name:"music-score",props:{isSoundEffect:{type:Boolean,default:!1},score:{type:String,default:""},showPartNames:{type:Boolean,default:!1},opotions:{type:Object,default:()=>{}},EngravingRules:{type:Object,default:()=>{}},showSection:{type:Boolean,default:!0}},emits:["rerender","startRender","renderError","loaddingEnd"],setup(F,{emit:R,expose:B}){const D=async ce=>{var pe;event.off("section-click",noteClick),R("startRender");const he=await request$1$1.get(ce);if(Z.value){let me=document.createElement("div");me.innerHTML=he,(pe=Z.value)==null||pe.appendChild(me.firstElementChild);let fe=document.querySelector("#osmdSvgPage1");const ge=document.getElementById("svgContainer");let Se=fe==null?void 0:fe.getAttribute("width"),Ee=fe==null?void 0:fe.getAttribute("height");if(Se=isNaN(Number(Se))?0:Number(Se),Ee=isNaN(Number(Ee))?0:Number(Ee),Se&&Ee){let ve=Ee/Se,xe=(ge==null?void 0:ge.offsetWidth)||document.body.clientWidth;state$2.zoom=xe/Se,fe==null||fe.setAttribute("width",xe),fe==null||fe.setAttribute("height",xe*ve+"")}}},G=ce=>{var he,pe,me,fe,ge,Se,Ee,ve,xe,Me;for(let ye=0;ye{var pe,me,fe,ge,Se,Ee,ve;const he=await request$1$1.get(ce);state$3.sett.scoreSize=((pe=he==null?void 0:he.osmd)==null?void 0:pe.scoreSize)||"middle",he&&Array.isArray(he.times)&&(state$2.times=G(he.times),(ge=(fe=(me=state$2.times)==null?void 0:me[0])==null?void 0:fe.cursorBox)!=null&&ge.move&&(he.osmd.cursor=new Cursor({...(Ee=(Se=state$2.times)==null?void 0:Se[0])==null?void 0:Ee.cursorBox}),(ve=Z.value)==null||ve.appendChild(he.osmd.cursor.img)),state$2.renderType="cache",R("rerender",he.osmd),state.isFirstPlay=!1,event.on("section-click",noteClick))},{EngravingRules:W,opotions:q,showPartNames:Y,score:Q}=toRefs(F),Z=ref();let K=ref();const ie=()=>{event.off("section-click",noteClick),R("startRender"),K.value=useOsmd(Z,{...q.value,drawPartNames:Y.value},W.value).value,K.value&&(useEngravingRules(K.value,W.value),state.isFirstPlay=!1,event.on("section-click",noteClick))},te=async ce=>{await D(ce.svg),U(ce.json)};onMounted(async()=>{var he,pe,me,fe,ge,Se;if(rendered.value)return;if(state$3.sett.type==="staff"&&!((he=state$2==null?void 0:state$2.activeDetail)!=null&&he.musicSvg)||state$3.sett.type==="jianpu"&&state$3.sett.keySignature&&!((pe=state$2==null?void 0:state$2.activeDetail)!=null&&pe.musicFirstSvg)||state$3.sett.type==="jianpu"&&!state$3.sett.keySignature&&!((me=state$2==null?void 0:state$2.activeDetail)!=null&&me.musicJianSvg)){ie();return}let ce=null;try{state$3.sett.type==="staff"&&((fe=state$2.activeDetail)==null?void 0:fe.musicSvg)?ce=JSON.parse(state$2.activeDetail.musicSvg):state$3.sett.keySignature&&((ge=state$2.activeDetail)==null?void 0:ge.musicFirstSvg)?ce=JSON.parse(state$2.activeDetail.musicFirstSvg):(Se=state$2.activeDetail)!=null&&Se.musicJianSvg&&(ce=JSON.parse(state$2.activeDetail.musicJianSvg))}catch(Ee){console.error(Ee),state$2.renderType="native"}ce&&!F.isSoundEffect?te(ce):ie()}),onUnmounted(()=>{event.off("section-click",noteClick)}),watch([Q,K],async()=>{if(K&&K.value&&Q.value)try{R("startRender"),await useOsmdLoader(K.value,Q.value),R("rerender",K.value),event.emit("loaded"),re()}catch(ce){console.error(ce),R("renderError")}},{immediate:!0});const ne=async({score:ce}={})=>{const he=ce||Q.value;setTimeout(async()=>{if(K&&K.value&&he){await K.value.clear(),ie();try{state$2.section=[],state$2.sectionStatus=!1,await useOsmdLoader(K.value,he),R("rerender",K.value),event.emit("loaded"),re()}catch(pe){console.error(pe),R("renderError")}}},100)},se=async()=>{var ce;await((ce=K.value)==null?void 0:ce.render())},re=()=>{var pe,me;const ce=Array.from(Z.value.querySelectorAll(".staffline")),he=4;for(let fe=0,ge=ce.length;fe .vf-voices")),we=Array.from(Se.querySelectorAll(".vf-measure > .vf-beams")),Re=Array.from(Se.querySelectorAll(".vf-ties")),Pe=Array.from(Se.querySelectorAll(".vf-line")),Ae=Array.from(Se.querySelectorAll(".vf-measure > .vf-stave text"));Array.from(Se.querySelectorAll(".vf-measure > .vf-stave rect[fill=none]"));const Le=Array.from(Se.querySelectorAll(".vf-measure .vf-staveSection")),Ne=["To Coda","D.S. al Coda","Coda"];Ae.filter(He=>Ne.includes(He.textContent||"")).forEach(He=>{we.forEach(Qe=>{var lt;const We=le(He,Qe),Ze=He==null?void 0:He.previousSibling;if(We.isCollision){const ht=Number(He.getAttribute("y"))-(We.b1-We.t2)-he+"";He.setAttribute("y",ht),Ze&&Ze.getAttribute("stroke-width")==="0.3"&&Ze.getAttribute("stroke")==="none"&&(((lt=Ze.getAttribute("d"))==null?void 0:lt.length)||0)>3e3&&(Ze.style.transform=`translateY(${-(We.b1-We.t2+he)}px)`)}}),ye.forEach(Qe=>{var lt;const We=le(He,Qe),Ze=He==null?void 0:He.previousSibling;if(We.isCollision){const ht=Number(He.getAttribute("y"))-(We.b1-We.t2)-he+"";He.setAttribute("y",ht),Ze&&Ze.getAttribute("stroke-width")==="0.3"&&Ze.getAttribute("stroke")==="none"&&(((lt=Ze.getAttribute("d"))==null?void 0:lt.length)||0)>3e3&&(Ze.style.transform=`translateY(${-(We.b1-We.t2+he)}px)`)}})}),Le.forEach(He=>{let Qe=0;[...Me,...Re,...ye].forEach(We=>{const Ze=le(He,We);Ze.isCollision&&(Qe=Math.min(Qe,Ze.t2-Ze.b1-he))}),He.style.transform=`translateY(${Qe}px)`});let Ie=Array.from(Se.querySelectorAll(".vf-text > text")).filter(He=>He.getBBox().y text")).filter(He=>He.getBBox().y{const Qe=He.getBBox();Qe.y1&&Ve.forEach(He=>{He.setAttribute("y",_e+"")}),Ie.forEach(He=>{[...Me,...xe,...Pe].forEach(Qe=>{let We=le(He,Qe);if(We.isCollision&&We.b1{Ie.forEach(Qe=>{if(He.parentNode!==Qe.parentNode&&!["marcato","legato"].includes(He.textContent))if(["marcato","legato"].includes(Qe.textContent)){if(le(He,Qe,30,30).isCollision){const Ze=He.getBBox();Qe.setAttribute("x",Ze.x+Ze.width+5+""),Qe.setAttribute("y",Ze.y+Ze.height-5+"")}}else{const We=le(He,Qe);if(We.isCollision){const Ze=Number(He.getAttribute("y")),lt=We.b2-We.t2<24?24:We.b2-We.t2;Qe.setAttribute("y",Ze-lt-.5+"")}}})});const qe=Array.from(Se.querySelectorAll(".vf-text > text")).filter(He=>He.getBBox().y>ve),Ge=Array.from(Se.querySelectorAll(".vf-line")).filter(He=>He.getBBox().y>ve);for(let He=0;He{[...xe].forEach(Qe=>{let We=le(He,Qe);We.isCollision&&He.setAttribute("y",We.b2+Math.abs(We.t1-Number(He.getAttribute("y")))+"")})}),Ge.forEach(He=>{var We;const Qe=[];if((We=He.nextElementSibling)!=null&&We.classList.contains("vf-line")&&qe.forEach(Ze=>{let lt=le(He,Ze,20,20);lt.isCollision&&Qe.push({text:Ze,result:lt})}),Qe.length===1){const Ze=Qe[0].result,lt=Qe[0].text;Ze.x2+Ze.w2Ze.x1+Ze.w1?Math.abs(Ze.y2-Ze.y1)>10&<.setAttribute("y",Ze.y1+Ze.h2/2+""):Math.abs(Ze.x2-Ze.x1)10&<.setAttribute("y",Ze.y1+Ze.h2/2+"")):(lt.setAttribute("x",Ze.x1+Ze.w1+5+""),Math.abs(Ze.y2-Ze.y1)>10&<.setAttribute("y",Ze.y1+Ze.h2/2+""))}else if(Qe.length===2){const Ze=Qe[0].result,lt=Qe[0].text,ht=Qe[1].result,yt=Qe[1].text;lt.setAttribute("x",Ze.x1-Ze.w2-5+""),Math.abs(Ze.y2-Ze.y1)>10&<.setAttribute("y",Ze.y1+Ze.h2/2+""),yt.setAttribute("x",ht.x1+ht.w1+5+""),Math.abs(ht.y2-ht.y1)>10&&yt.setAttribute("y",ht.y1+ht.h2/2+"")}}),qe.forEach(He=>{qe.forEach(Qe=>{if(He.parentNode!==Qe.parentNode&&!["marcato","legato","cresc.","Cantabile"].includes(He.textContent))if(["marcato","legato","cresc.","Cantabile"].includes(Qe.textContent)){if(le(He,Qe,30,30).isCollision){const Ze=He.getBBox();Qe.setAttribute("x",Ze.x+Ze.width+5+""),Qe.setAttribute("y",Ze.y+Ze.height-5+"")}}else{const We=le(He,Qe);We.isCollision&&Qe.setAttribute("y",We.y1+We.h1+We.h2+"")}})})}setTimeout(()=>ae())},ae=()=>{if(!Z.value)return;const ce=Z.value.querySelector("svg");if(!ce)return;const he=ce.getBBox();let pe=Array.from(Z.value.querySelectorAll(".vf-stavetempo")).reduce((Ee,ve)=>{var xe;return Ee.find(Me=>Me.outerHTML===ve.outerHTML)?(xe=ve==null?void 0:ve.parentNode)==null||xe.removeChild(ve):Ee.push(ve),Ee},[]);const me=Array.from(Z.value.querySelectorAll(".staffline")),fe=Array.from(Z.value.querySelectorAll(".staffline > .vf-measure")),ge=Array.from(Z.value.querySelectorAll(".staffline > .vf-text")),Se=Array.from(Z.value.querySelectorAll(".staffline > .vf-curve"));pe.forEach(Ee=>{let ve=0;[...fe,...ge,...Se].forEach(ye=>{const we=le(Ee,ye);we.isCollision&&(we.b1we.l2||we.l10&&([...me,...pe].forEach(ye=>{if(Ee!=ye){const we=le(Ee,ye,Math.abs(Me),Math.abs(ve));we.isCollision&&(ve=we.t2-we.b1)}}),Ee.style.transform=`translate(-${Me/.7}px,${ve}px)`)}),he.y<0&&ce.setAttribute("height",Number(ce.getAttribute("height"))-he.y+10+"")},le=(ce,he,pe=0,me=0)=>{const fe=ce.getBBox(),ge=he.getBBox();let Se=fe.y-me,Ee=fe.x-pe,ve=fe.x+fe.width+pe,xe=fe.y+fe.height+me,Me=ge.y,ye=ge.x,we=ge.x+ge.width,Re=ge.y+ge.height;return xewe||Se>Re||vecreateVNode("div",{id:"svgContainer",class:styles$3.container,style:{position:"relative"}},[createVNode("div",{ref:Z},null),F.showSection&&createVNode(Section,{style:{position:"absolute",width:"100%",height:"100%",zIndex:1,top:0,left:0}},null)])}});const box="_box_7hn32_1",button="_button_7hn32_10",iconSound$1="_iconSound_7hn32_27",skepBtn="_skepBtn_7hn32_33",skepItems="_skepItems_7hn32_55",bottom="_bottom_7hn32_75",wrap="_wrap_7hn32_82",staff="_staff_7hn32_95",des="_des_7hn32_108",lampWrap="_lampWrap_7hn32_113",lamp="_lamp_7hn32_113",flickerAnimate="_flickerAnimate_7hn32_128",flicker="_flicker_7hn32_128";var styles$1={box,button,iconSound:iconSound$1,skepBtn,skepItems,bottom,wrap,staff,des,lampWrap,lamp,flickerAnimate,flicker},iconArrow="/orchestra-music-score/assets/icon-arrow.15f5e430.svg",iconBottom="/orchestra-music-score/assets/icon-bottom.d54a9994.png",iconRed="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAABGtJREFUSEu1ls1vVFUYxn/n494z93amH1CQ1jIEiJoYaCREIFEgwSiSxrjQGAQEU4OsNNEQwcQ/wIVBWRkWRl0oxoUi0QVI0PC1c4c1LMB0WhqEKDQt7czce+4x585MoRSIC5nNTGZu3t95nud93zOC+7wuXbq0RCm1VQixSQjxuHNugX9cCHHNOTfknDtprf1m2bJlw/cqI+72w9jYWDlN0w+BVwB1v0MAFvhWa72/t7e3cuezcwCVSuVVIcQh51yp9bAJQ8IwRKkGy1pLvV6nVq/P1BNCTDjn9pTL5cO3Q2YBRkdH382y7CPvgn+oVCwST0+RnTtLeuECWXUapwLkvPmoFSvQ/f1MKcXE5GSrppNS7u3r6zvQ+mIG4E8OfOWL+5POLxiyzz8jOXmCJIBUK5I4QjqNkAZZbCcICpgNG9DPbuLviYlcGeCA7S0lOcB7bq09723xxbvThPp7e7H/XGaqU+GcAqdJozakVSANdl4nZsHDxIuX4JQiHtjCtep0DvF2KaVW+ExyQKVS+RrwClgYxyS7B0luXiYtQSoNwhfNNKmJEZnOAaq/n3mvD3q5OGupnj6HGdjM1evXW+4cLpfL24RvRa31Rd8t3nPzycfUf/mBrNvhrMYSIFLlSdgwanwWIYVdO4jWr2/EFWhqv55FdXVRW72ylYlN03S5GB4e3ieE8C3JosxSffEF7HKHQ+FSSeZ8AB6gsIFXo3OA3rCe0q7X/FDgpGTiu58IpmpEb27nyo0buQrn3H5RqVSOAc/5Vmw/eoT0y4OkvSIv6JIGQCSyAdAGckBA2tlBYfWT6EcfofbXVez1CcJCRDywifHO9lYLHxcjIyMjzrm+3J7392H/PEVWUpDIBiDTOcBZhSPIs3AiIIuLCGUgjLCLe1AmQreVMGv7qa19IrdJCDHqFVQB09nRgRocJKudxxYk1BsW+cIkKg86cxpckANssYTQBYiKRHt2IIKQ+pnfMI8txT7zFDfGx71LtdmANwbJqr83AE0FeEBd4t+d0zjCBqDUDtogy0vo+OAdhJBM/niCsLsLu3HdLcBci06TlQQuadrkAbkSf3qN8wrQZG2lHEAYE7y0BRkWyIYuYtbMtWgm5I6jR0i+OIj1ITcV5IXTpgKCXAWE2KLPoAAmIlvcgzRxHnLh5ecZn991K+R7tqlrds5MF0ky73nmF16Yd5HPQJgYW+5BF9ooGEO0e8fsNp07aAdIfv4eu8hP6B1z4D1vdpFt70DIEBE2FBihiZ9eR3VNo4P80s0Hbe6qiEh27iSdHsO2SzIRzliUhjGyOclegWwCZM9CooUPEe7cytXxxpABjVVx12WX1Km//Rbp+BWq3WEear6LCs1dpAy2qwslQow2hMuXEm/beu9l11Qxe10bQ3boU5Ljx0gLfg8FJG0xwmkkIbKtiA4jzMaNqIHN91/XLU13vXAmJ8nOnMIO/UE2NQUqQCzoRq3sR69axc0w+G8XTgvyQK/MFuSBXvq3X9j/x9+WfwGl6lzvWSMVSAAAAABJRU5ErkJggg==",iconGreen="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAABAZJREFUSEu1lk1oHGUYx3/vzOzmi91s6qZt4jIJqRpsS2lj0IMHxYMeqigIYlqkByuC3kRIQHrqpYp6UxAVRKgRoQehl3jwJtHSlhZLxTYJ7mabahNMatr9yO7MI887s0nWfOjBLiyzzLzz/N7///l417DNZ2Zmps913ZeNMU8ZY/aKSLcuN8bMi8hVEfk+CIKvBwYG8luFMZs9mJub8+v1+ingJcDdbhNAAHzjed5Yb29v4Z9rNwAKhcKIMeYTEUnp4pqEnFu+zaW7y/y+UrXv7062cLAjxaOpThLGsfeMMcsi8rrv++PrIU2AYrH4VhiG7+v6ahjy+R9FPlu4wYITgBhMwkNqAnXAM2RD4Xh3L6/uytHiWJA4jvN2Lpf7sAFZBejOgdMa/LdKmdemrvCrW8a0u1AVqIK4HlQUYKA1CTUgrDHY7vHpnr30t7ZZCHC0ocQC1PMgCK6oLRr8xalLzKdr2IfiRkFXAeEq4IFkB/vSGSbv3EYqS5wZPGAhapfruvs1JzZGoVD4ChhRW5795SLXdpSw0dXy0IGywIpqcxFVUzcM7+zmi6FhPGNYlJDnz52nK1jm7MOHGnaN+75/xGgpep43rdXy8c0C75ZnIA1U4q/aoQoUooBypOCdoQO80t8fWe0YRq9e59u5PGO5nbzR4+vdoF6v7zH5fH7UGHNKq+Wxn3/kT7+K2KBx4Fp8rQiiaqwCONzn88HwIRtfl78weZGpUoVs611+2j9sq0tExkyhUJgAnv7hr0VG5i/jZAWxQYl2rb9LYlVIaCLbNLktCQ739HIwex8TS4ucX1oGx4X2FcZzfTye7lL2d2Z2dnZWRHIf3SzwXjiN6QDRIA2A/a2AKLCsxFDPjeBiINMeXbUnuxxGd2d4s8fXZBdVgb7aciJ/nS/bi5iEBjHR7sua6Gj39msBsYJEAgKDa1xOPvGIVgAnLl8jSDkcyyQ52fegKqg2AzqKGI/IIguIytNaVJVImTaZPk96FtCXTjPx3JNWwTOTF8hLlWMpbw2wqUW6S919AxBfrT0NBV4EQByODg9awOnpG9C50aK1JN+Kk9wA2AZbq6Imi9YByLRZkJYxOwLG/f61JG8s0xVEbbBJjv1WBQoLnajRbBUlIwU4UZL16jhkk3eay/RfG02Dxcle7QO9l0xE+dDeUICWsFNlzN/V3GgbR8UFrmVKUYc2BpvtakG0DO29WIFOVrWmUwEBg611zu4bah4VWw27hbRuM96hAtQax0MUoNaoRdrCOrTaPLrDEmce2mLYxSo2jmtTisd1PPhcBYRRmdpxrXmpMZhKbj+uG4fDpgfOreLqgYPrRmUaRk2bDeF4z/3/7cBpQO7pkdmA3NNDf/2B/X/8bfkbLfmH7810f6kAAAAASUVORK5CYII=",iconWhite="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAYCAYAAAAPtVbGAAAAAXNSR0IArs4c6QAAA5xJREFUSEu1lr9uG0cQxr+5I++OPMkULTuNcIAaIbADOAHSJoXhwlWqwHa6AHoIdzEEd4YfIGXKFO4MA0bgB7A7AwaSIta/I+mjREuiFDEUySNvg2+jIY4UCbnxAgSWu7fz25n5Zu4El4xGo/F1lmX3AXwvIl8aY6oikgJoGmPeOY7zhzHmWRRFR/NMybyNJEm+HY1GT40xty+7CIAugF/DMHy8vLz8z/TzFyDGGKnVao9E5BcALg+ICHzfh1cswnEca2M4HKI/GCBN6dR41LMse7C6uvo6vzgBIaBer/8G4Gc+RIOLi4souC7+7XQwSFNkxqBYLMJ1XZR8H0XPQ6fTQffsTO2eiciPURS91IUJSBzHT0TkITc9z8PVpSXst1ro9fv2v3rFeZZl9j+9K5dKdn7YbsMYw2nXdd3vVlZW3tozSms0GneyLHvFNYYmLJXwodm0xnjzeRA+y3DS22KhgI+Hhwr6u9/v31pbW+tbyMbGhrO+vv4OwFeu46BSqWBnd9caZ8gIyEMKhYKFB0GAcrls7zkajWyeYAyO2m31+mEURU8tJI7jH0TkOedXq1UcHBwgHQ6tAcaeRgnUwTUapRfc42CY+gxroYD2yYmdG2P2tre3Iwup1Wq/A/iJh5cqFbzf3MTCwgJKpdIYQGMMC40phGCF07Ner2c9d0Vs2M7HXQup1+v7xpgvFsIQp6enOD45sZAwDMeQvCeE0RPNF8GUMtc5ykGAvVbL7ovIE2k2m9fTNG1xc7latWqiTPOe0AveUD1RCEF5oNYQFdc+PrYhE5EXEsfxTRH5k5Dr165hN45tOBSiIeGaQjTRhOicz9EjrlFlp6ydbpdn3kiSJDeGw+FfCtnc2rIhYhEy8SpfQnhTGuKPSlIIz1IEXGde6MkEZDpce/v7YDkxH0w8IYTO80TDpaFiHi6EazrxZ72ebRP0RNVFSF6q0zmx9XHe47gXeN5k4i9I+MoVvN/amlAXCzEvYd6aodLE8/YMlZWv686W8HQxHh4d2ZhP14kWHQ3RMCE0rBCuB74/VtZEMU63lWq1iiRJ4Pm+vZnmRdWlbYXG82IggGsz2wpvON0gtaB421m967zb2ktwTgATPrdBav3PavUMHcVAEI3Rm3yrZ01Q6ibLLm/15/Ge+dLyPc8W1mAw+L+VeB4cqigIrCDYij75paWgz/r6HfdygIn/fB8SeRDnOzs737iuey//ScTvCBFJPvWT6D9cJW2Lx33GagAAAABJRU5ErkJggg==",iconSound="/orchestra-music-score/assets/icon-sound.d38d70bd.png",score=F=>F==12||F==4?{xml:` Click to add Title Click to add Composer Click to add Copyright 2021-08-27 SmartMusic 6.5000 40 1827.3 1292 61.2 61.5 379.6 61.3 1.0000 1.0000 5.0000 1.0000 1.0000 3.4199 1.0000 60 50 Music Music wind.flutes.flute Finale Default Bank 60 0 40 system 3840 0 major G 2 C 5 15360 1 whole `,text:""}:F==5||F==6?{xml:` Click to add Title Click to add Composer Click to add Copyright 2021-08-27 SmartMusic 6.5000 40 1827.4 1292.1 61.3 61.5 355.6 61.4 1.0000 1.0000 5.0000 1.0000 1.0000 3.4199 1.0000 60 50 Music Music wind.flutes.flute Finale Default Bank 60 0 40 system 3840 1 major G 2 C 5 15360 1 whole `,text:"C"}:F==13?{xml:` Click to add Title Click to add Composer Click to add Copyright 2021-08-27 SmartMusic 6.5000 40 1827.4 1292.1 61.3 61.5 355.6 61.4 1.0000 1.0000 5.0000 1.0000 1.0000 3.4199 1.0000 60 50 Music Music wind.flutes.flute Finale Default Bank 60 0 40 system 3840 -1 major G 2 F 4 15360 1 whole `,text:"F"}:F==14||F==15?{xml:` Click to add Title Click to add Composer Click to add Copyright 2021-08-27 SmartMusic 6.5000 40 1827.4 1292.1 61.3 61.5 355.6 61.4 1.0000 1.0000 5.0000 1.0000 1.0000 3.4199 1.0000 60 50 Music Music wind.flutes.flute Finale Default Bank 60 0 40 system 3840 -2 major F 4 B -1 2 15360 1 whole `,text:"S"}:F==120?{xml:` Click to add Title Click to add Composer Click to add Copyright 2021-08-27 SmartMusic 6.5000 40 1827.3 1292 61.2 61.5 379.6 61.3 1.0000 1.0000 5.0000 1.0000 1.0000 3.4199 1.0000 60 50 Music Music wind.flutes.flute Finale Default Bank 60 0 40 system 3840 0 major G 2 A 5 15360 1 whole `,text:"A"}:{xml:` Click to add Title Click to add Composer Click to add Copyright 2021-08-27 SmartMusic 6.5000 40 1827.4 1292.1 61.3 61.5 355.6 61.4 1.0000 1.0000 5.0000 1.0000 1.0000 3.4199 1.0000 60 50 Music Music wind.flutes.flute Finale Default Bank 60 0 40 system 3840 -2 major G 2 B -1 4 15360 1 whole `,text:"Bb"};const checkStatus=ref("checking"),checkFrequency=ref(0),dotIcons=ref([iconWhite,iconWhite,iconWhite]),trend=ref(-1),time=ref(0),useStart=F=>{const R=getAllNodes(F);checkFrequency.value=R[0].frequency,postMessage({api:"proxyServiceMessage",content:{header:{status:200,commond:"xmlInfo",type:"SOUND_CHECK"},body:{frequency:checkFrequency.value}}}),postMessage({api:"startSoundCheck"},()=>{checkStatus.value="checking";try{localStorage.setItem(storeKeys.lastCheckTime,""+new Date().valueOf())}catch{}})},useEnd=()=>{postMessage({api:"endSoundCheck"})},useLister=()=>{const F=R=>{var D;const B=(D=R==null?void 0:R.content)==null?void 0:D.body.frequency;console.log("frequency",B,checkFrequency.value),trend.value=Math.abs(B-checkFrequency.value)<=5?0:B-checkFrequency.value>0?1:-1,dotIcons.value=[iconWhite,iconWhite,iconWhite],dotIcons.value[trend.value+1]=trend.value===0?iconGreen:iconRed,trend.value!==0&&(time.value=new Date().getTime()),new Date().getTime()-time.value>3e3&&(useEnd(),checkStatus.value="success",dotIcons.value=[iconGreen,iconGreen,iconGreen],setTimeout(()=>{soundEffectShow.value=!1},1e3))};onMounted(()=>{listenerMessage("sendResult",F)}),onBeforeUnmount(()=>{removeListenerMessage("sendResult",F)})},soundEffectShow=ref(!1);var SoundEffect=defineComponent({name:"ColexiuSoundEffect",emits:["success","close","pass","fail"],setup(F,{emit:R}){const B=ref(!1),D=ref(!1),G=U=>{U.text==="\u5173\u95ED\u6821\u97F3"&&(state$3.sett.tuning=!1),R("pass"),soundEffectShow.value=!1};return useLister(),watch([soundEffectShow,checkStatus],()=>{checkStatus.value==="success"&&R("success"),checkStatus.value==="fail"&&R("fail"),soundEffectShow.value===!1&&(B.value=!1,R("close"),useEnd())}),()=>{const U=score(2),W=(U==null?void 0:U.xml)||"";return createVNode(Popup,{position:"bottom",show:soundEffectShow.value,"onUpdate:show":q=>soundEffectShow.value=q,onOpen:()=>B.value=!0,onClosed:()=>B.value=!1,teleport:"body"},{default:()=>[createVNode("div",{class:styles$1.box},[createVNode("img",{class:styles$1.iconSound,src:iconSound},null),createVNode("div",{class:styles$1.wrap},[createVNode("div",{class:styles$1.staff},[B.value&&createVNode(MusicSheet,{isSoundEffect:!0,opotions:{stretchLastSystemLine:!0,drawMetronomeMarks:!1,drawPartAbbreviations:!1,drawPartNames:!1,drawSlurs:!1,drawTimeSignatures:!1,followCursor:!1},score:W,showSection:!1,onRerender:useStart},null)]),createVNode("div",{class:styles$1.des},[createTextVNode("\u8BF7\u6F14\u594F "),createVNode("span",{style:{color:"var(--primary-color)"}},[U.text]),createTextVNode("\u76F4\u5230\u7EFF\u706F\u5168\u90E8\u4EAE\u8D77")]),createVNode("div",{class:styles$1.lampWrap},[dotIcons.value.map((q,Y)=>createVNode("div",{class:styles$1.lamp,key:Y},[createVNode("img",{class:[checkStatus.value==="checking"&&styles$1.flickerAnimate],src:q},null)]))])]),createVNode("img",{class:styles$1.bottom,src:iconBottom},null),createVNode(Button,{class:styles$1.button,icon:iconBack,onClick:()=>soundEffectShow.value=!1},null),createVNode(Popover,{class:styles$1.skepItems,show:D.value,"onUpdate:show":q=>D.value=q,actions:[{text:"\u8DF3\u8FC7\u672C\u6B21"},{text:"\u5173\u95ED\u6821\u97F3"}],onSelect:q=>G(q),showArrow:!1},{reference:()=>createVNode(Button,{class:styles$1.skepBtn,icon:iconArrow,iconPosition:"right"},{default:()=>[createTextVNode("\u8DF3\u8FC7\u672C\u6B21")]})})])]})}}});const soundNeedShow=()=>{if(state.evaluatingStatus&&!permissionPopup.show){let F=-1;const R=localStorage.getItem(storeKeys.lastCheckTime);try{const B=dayjs(parseFloat(R||"0"));B.isValid()&&(F=Math.abs(B.diff(dayjs(new Date().valueOf()),"day")))}catch{}(state$3.sett.tuning||F>0||!R)&&(soundEffectShow.value=!0)}},setWiredStatus=F=>{state.evaluatingStatus?(permissionPopup.active="earphone",permissionPopup.show=!(F!=null&&F.content.checkIsWired),soundNeedShow()):permissionPopup.show=!1},useWiredHeadsetCheck=()=>{const F=ref(!1);return watch(()=>state.evaluatingStatus,()=>{postMessage({api:"isWiredHeadsetOn"},setWiredStatus)}),watch(()=>permissionPopup.show,()=>{soundNeedShow()}),watch([()=>state.evaluatingStatus],()=>{Toast.clear(),state.evaluatingStatus||(state.evaluatingTips=!1,pause(),setCurrentTime(0)),state$3.sett.fingering&&event$1.emit("settingFingeringChange")}),watch([()=>state.evaluatingStatus,()=>permissionPopup.show,()=>soundEffectShow.value],([R,B,D])=>{F.value=R&&!B&&!D,state.evaluatingStatus||(state$2.evaluatings={},evaluatingShow.value=!1)}),onMounted(()=>{listenerMessage("listenerWiredStatus",setWiredStatus)}),onBeforeUnmount(()=>{removeListenerMessage("listenerWiredStatus",setWiredStatus)}),[F]},browserInfo$1=browser(),useFee=(F,R)=>{var Q,Z,K;const B=((Q=state$2.activeDetail)==null?void 0:Q.orderStatus)||R,G=useOriginSearch().setting||{};if(((Z=state$2.activeDetail)==null?void 0:Z.play)||G.feeType==="FREE")return;const U=useClientType();if(!browserInfo$1.isApp&&U==="web"||(F==null?void 0:F.includes("VIP"))&&((K=state$4.user)==null?void 0:K.membershipDays)>0||(F==null?void 0:F.includes("CHARGE"))&&B==="PAID")return;const W=ref(-1),q=state$2.times[state$2.times.length-1];q&&(W.value=Math.max(10,q.time*state$2.freeRate));const Y=ie=>{var ne,se,re;const te=((ne=state$2.activeDetail)==null?void 0:ne.orderStatus)||R;U!="web"&&W.value>=0&&state.currentTimeNum>=W.value&&((F==null?void 0:F.includes("CHARGE"))&&F.includes("VIP")?te!=="PAID"&&!(((se=state$4.user)==null?void 0:se.membershipDays)>0)&&(permissionPopup.active="memberAndDemand",permissionPopup.show=!0,pause()):F==="CHARGE"?te!=="PAID"&&(permissionPopup.active="demand",permissionPopup.show=!0,pause()):F==="VIP"&&(((re=state$4.user)==null?void 0:re.membershipDays)>0||(permissionPopup.active="member",permissionPopup.show=!0,pause())))};state.audiosInstance.event.on("timeupdate",Y),listenerMessage("cloudTimeUpdae",Y),onBeforeUnmount(()=>{state.audiosInstance.event.off("timeupdate",Y),removeListenerMessage("cloudTimeUpdae",Y)})},search$1=useOriginSearch(),browserInfo=browser(),useClientType=()=>{const F=useOriginSearch();if(F.client)return F.client;let R=location.pathname.indexOf("/orchestra-student/")===0||browserInfo.isStudent,B=location.pathname.indexOf("/orchestra-teacher/")===0||browserInfo.isTeacher;return R?"student":B?"teacher":"web"},MemberDefaultData={membershipDays:1},useUpdateMember=()=>{const F=getRequestHostname();request.get(`/musicSheet/detail/${search$1.id}`,{prefix:F}).then(R=>{state$2.activeDetail&&(state$2.activeDetail.orderStatus=R.data.orderStatus,state$2.activeDetail.play=R.data.play)})},useUser=()=>{const F=usePageVisibility(),R=async()=>{try{const B=useClientType();if(B==="student"){const{data:D}=await request.get("/appLoginUser/getUserInfo");state$4.user=D}if(B==="teacher"){const{data:D}=await request.get("/appLoginUser/getUserInfo",{prefix:"/api-teacher"});state$4.user={...MemberDefaultData,...D}}B==="web"&&(state$4.user={...MemberDefaultData})}catch{}};R(),watch(F,async B=>{var D,G;permissionPopup.show=!1,B==="visible"&&((D=state$4.user)==null?void 0:D.membershipDays)===0&&R(),B==="visible"&&((G=state$2.activeDetail)==null?void 0:G.orderStatus)!=="PAID"&&useUpdateMember()})},typeById={2:{name:"flute",direction:"transverse"},4:{name:"clarinet",direction:"vertical",width:"1rem",paddingLeft:"0rem"},5:{name:"saxophone",direction:"vertical",width:"2rem"},6:{name:"saxophone",direction:"vertical",width:"2rem"},12:{name:"trumpet",direction:"transverse",height:"80px"},13:{name:"horn",direction:"vertical",width:"3.5rem"},14:{name:"trombone",direction:"transverse",height:"80px"},15:{name:"up-bass-horn",direction:"vertical",width:"3rem"},17:{name:"tuba",direction:"vertical",width:"3rem"},120:{name:"piccolo",direction:"vertical",width:"1rem"},136:{name:"hulusi-flute",direction:"vertical",width:"1.2rem"},135:{name:"pan-flute",direction:"vertical",width:"2.5rem"},134:{name:"ocarina",direction:"vertical",width:"2rem"},137:{name:"melodica",direction:"transverse"},130:{name:"ukulele",direction:"vertical",width:"2rem"},140:{name:"mouthorgan",direction:"transverse",height:"80px"},150:{name:"piano",direction:"transverse",height:"80px"}},relationships={flute17:{59:[27,26,25,15,24,22,17,20],60:[1,2,3,5,7,9,11,12,13,15],1060:[1,2,3,5,7,9,1011,12,13,15],61:[1,2,3,5,7,9,13,15],1061:[1,2,3,5,7,9,1013,15],62:[1,2,3,5,7,9,15],1062:[1,2,3,5,7,9,1010,15],63:[1,2,3,5,7,9,10,15],1063:[1,2,3,5,7,1009,10,15],64:[1,2,3,5,7,10,15],1064:[1,2,3,5,1007,10,15],65:[1,2,3,5,10,15],1065:[1,2,3,1005,9,10,15],66:[1,2,3,9,10,15],1066:[1,2,3,1009,10,15],67:[1,2,3,10,15],1067:[1,2,3,1004,10,15],68:[1,2,3,4,10,15],1068:[[1,2,1003,4,10,15],[1,2,1003,1004,10,15]],69:[1,2,10,15],1069:[1,1002,10,14],70:[[1,5,10,15],[1,10,14]],1070:[1,1005,10,15],71:[1,10,15],1071:[1,10,1015],72:[1,10],1072:[1001,10],73:[13],1073:[1006,13],74:[2,3,5,7,9,15],1074:[2,3,5,7,9,1013,15],75:[2,3,5,7,9,10,15],1075:[2,3,5,7,9,10,15],76:[1,2,3,5,7,10,15],1076:[1,2,3,5,1007,10,15],77:[1,2,3,5,10,15],1077:[1,2,3,1005,9,10,15],78:[1,2,3,9,10,15],1078:[1,2,3,1009,10,15],79:[1,2,3,10,15],1079:[1,2,3,4,10,15],80:[1,2,3,4,10,15],1080:[1,2,1003,4,10,15],81:[1,2,10,15],1081:[1,1002,10,15],82:[[1,5,10],[1,10,14]],1082:[1,1005,10,15],83:[1,10,15],1083:[1,10,1015],84:[1,10],1084:[1001,10],85:[10],1085:[1006,10],86:[2,3,10,15],1086:[2,3,1008,10,15],87:[1,2,3,4,5,7,8,10,15],1087:[1,2,1003,4,5,7,8,10,15],88:[1,2,5,7,10,15],1088:[1,1002,5,7,10,15],89:[1,3,5,10,15],1089:[1,3,1005,9,10,15],90:[1,3,9,10,15],1090:[1,3,9,10,1015],91:[1,2,3,10],1091:[1,2,3,1006,10],92:[2,3,4,10],1092:[2,3,4,1006,10],93:[2,5,10,15],1093:[1002,5,10,15],94:[5,6,15],1094:[1,3,1005,1006,8,15],95:[1,3,8,15],1095:[1,3,8,10,1015],96:[1,2,3,4,5,11],1096:[1001,2,3,4,5,11]},flute:{59:[27,26,25,15,24,22,17,20],60:[27,26,25,15,24,22,17,20],61:[27,26,25,15,24,22,17,21],62:[27,26,25,15,24,22,17],63:[27,26,25,15,24,22,17,19],64:[27,26,25,15,24,22,19],65:[27,26,25,15,24,19],66:[27,26,25,15,17,19],67:[27,26,25,15,19],68:[27,26,25,15,18,19],69:[27,26,15,19],70:[[27,14,19],[27,24,15,19]],71:[27,15,19],72:[27,19],73:[19],74:[26,25,24,22,17,15],75:[26,25,24,22,17,19,15],76:[27,26,25,15,24,22,19],77:[27,26,25,15,24,19],78:[27,26,25,15,17,19],79:[27,26,25,15,19],80:[27,26,25,15,18,19],81:[27,26,15,19],82:[[27,14,19],[27,24,15,19]],83:[27,15,19],84:[27,19],85:[19],86:[26,25,15,19],87:[27,26,25,15,24,22,17,18,19],88:[27,26,15,24,22,19],89:[27,25,24,15,19],90:[27,25,17,15,19],91:[27,26,25,19],92:[26,25,18,19],93:[26,24,15,19],94:[23,24,15,19],95:[27,25,15,16],96:[27,26,25,18,24,19]},clarinet:{52:[[3,4,6,8,9,11,14,18,20],[3,4,6,8,9,11,14,20]],53:[[3,4,6,8,9,11,12,20],[3,4,6,8,9,11,18,20]],54:[[3,4,6,8,9,11,13,18,20],[3,4,6,8,9,11,13,20],[3,4,6,8,9,11,15]],55:[3,4,6,8,9,11,20],56:[3,4,6,8,9,11,16,20],57:[3,4,6,8,9,20],58:[3,4,6,8,20],59:[[3,4,6,9,20],[3,4,6,8,10,20]],60:[3,4,6,20],61:[3,4,6,7,20],62:[3,4,20],63:[[3,4,20,24],[3,4,5,20],[3,8,20]],64:[3,20],65:[20],66:[[3],[20,23,24]],67:[],68:[2],69:[1],70:[1,19],71:[[3,4,6,8,9,11,14,18,19,20],[3,4,6,8,9,11,14,19,20]],72:[[3,4,6,8,9,11,12,19,20],[3,4,6,8,9,11,18,19,20]],73:[[3,4,6,8,9,11,13,19,20],[3,4,6,8,9,11,13,18,19,20],[3,4,6,8,9,11,15,19,20]],74:[3,4,6,8,9,11,19,20],75:[3,4,6,8,9,11,16,19,20],76:[3,4,6,8,9,19,20],77:[3,4,6,8,19,20],78:[[3,4,6,9,19,20],[3,4,6,8,10,19,20]],79:[3,4,6,19,20],80:[3,4,6,7,19,20],81:[3,4,19,20],82:[[3,4,19,20,24],[3,4,5,19,20],[3,4,8,19,20]],83:[3,19,20],84:[19,20],85:[4,6,8,9,19,20],86:[4,6,8,16,19,20],87:[[4,6,8,10,16,19,20],[4,6,9,16,19,20]],88:[4,6,16,19,20],89:[4,6,7,16,19,20]},trumpet:{0:[1,2,3],54:[4,5,6],55:[4,2,6],56:[1,5,6],57:[4,5,3],58:[4,2,3],59:[1,5,3],60:[1,2,3],61:[4,5,6],62:[4,2,6],63:[1,5,6],64:[4,5,3],65:[4,2,3],66:[1,5,3],67:[1,2,3],68:[1,5,6],69:[4,5,3],70:[4,2,3],71:[1,5,3],72:[1,2,3],73:[4,5,3],74:[4,2,3],75:[1,5,3],76:[1,2,3],77:[4,2,3],78:[1,4,3],79:[1,2,3],80:[1,5,6],81:[4,5,3],82:[4,2,3],83:[1,5,3],84:[1,2,3]},horn:{53:[1],54:[2],55:[],56:[2,3],57:[1,2],58:[1],59:[2],60:[],61:[1,2],62:[1],63:[2],64:[],65:[1],66:[2],67:[],68:[0,2,3],69:[0,1,2],70:[0,1],71:[0,2],72:[0],73:[0,2,3],74:[0,1,2],75:[0,1],76:[0,2],77:[0],78:[0,2],79:[0],80:[0,2,3],81:[0,1,2],82:[0,1],83:[0,2],84:[0]},upBassHorn:{0:[1,2,3],40:[4,5,6],41:[4,2,6],42:[1,5,6],43:[4,5,3],44:[4,2,3],45:[1,5,3],46:[1,2,3],47:[4,5,6],48:[4,2,6],49:[1,5,6],50:[4,5,3],51:[4,2,3],52:[1,5,3],53:[1,2,3],54:[1,5,6],55:[4,5,3],56:[4,2,3],57:[1,5,3],58:[1,2,3],59:[4,5,3],60:[4,2,3],61:[1,5,3],62:[1,2,3],63:[4,2,3],64:[1,5,3],65:[1,2,3],66:[1,5,6],67:[4,5,3],68:[4,2,3],69:[1,5,3],70:[1,2,3]},trombone:{0:[1],40:[22],41:[11],42:[5],43:[4],44:[3],45:[2],46:[1],47:[22],48:[11],49:[5],50:[4],51:[3],52:[2],53:[1],54:[5],55:[4],56:[3],57:[2],58:[1],59:[4],60:[3],61:[2],62:[1],63:[3],64:[2],65:[1],66:[5],67:[4],68:[3],69:[2],70:[1]},saxophone:{58:[2,4,5,13,17,18,19,23],59:[2,4,5,11,17,18,19,23],60:[2,4,5,17,18,19,23],61:[2,4,5,12,17,18,19,23],62:[2,4,5,17,18,19],63:[2,4,5,17,18,19,22],64:[2,4,5,17,18],65:[2,4,5,17],66:[[2,4,5,18],[2,4,5,17,21]],67:[2,4,5],68:[2,4,5,10],69:[2,4],70:[[2,4,16],[2,17],[2,3]],71:[2],72:[[4],[2,15]],73:[],74:[2,4,5,6,17,18,19],75:[2,4,5,6,17,18,19,22],76:[2,4,5,6,17,18],77:[2,4,5,6,17],78:[[2,4,5,6,18],[2,4,5,6,17,21]],79:[2,4,5,6],80:[2,4,5,6,10],81:[2,4,6],82:[[2,4,6,16],[2,6,17],[2,3,6]],83:[2,6],84:[[4,6],[2,6,15]],85:[6],86:[6,9],87:[6,7,8],88:[6,8,9,14],89:[[6,7,8,9,14],[1,4,6]]},tuba:{0:[1,2,3],28:[4,5,6],29:[4,2,6],30:[1,5,6],31:[4,5,3],32:[4,2,3],33:[1,5,3],34:[1,2,3],35:[4,5,6],36:[4,2,6],37:[1,5,6],38:[4,5,3],39:[4,2,3],40:[1,5,3],41:[1,2,3],42:[1,5,6],43:[4,5,3],44:[4,2,3],45:[1,5,3],46:[1,2,3],47:[4,5,3],48:[4,2,3],49:[1,5,3],50:[1,2,3],51:[4,2,3],52:[1,5,3],53:[1,2,3],54:[1,5,6],55:[4,5,3],56:[4,2,3],57:[1,5,3],58:[1,2,3]},piccolo:{72:[11,2,33,4,5,6,7,8],73:[11,2,33,4,5,6,7,88],74:[11,2,33,4,5,6,7],75:[11,2,33,4,5,6,77],76:[11,2,33,4,5,6],77:[11,2,33,4,5,7,8],78:[11,2,33,4,6,7],79:[11,2,33,4],80:[11,2,33,5,6,77],81:[11,2,33],82:[[11,2,4,5],[11,3,4,5]],83:[[11,2],[11,33,4]],84:[11,33],85:[[2,33],[11]],86:[33],87:[33,4,5,6,7],88:[1,2,33,4,5,6],89:[1,2,33,4,5,7],90:[1,2,33,4,6],91:[1,2,33,4],92:[1,2,33,5],93:[1,2,33],94:[1,2,33,5,6,7],95:[1,2,33,5,6],96:[1,2,5,6],97:[1,2,4,5,7,8],98:[1,2,4]},smallDrum:{0:["active","active-left","active-right"],64:["left","right"]},hulusi:{59:[7,6,5,4,3,2,1],60:[7,6,5,4,3,2],61:[7,6,5,4,3],62:[7,6,5,4],63:[7,6,5],64:[7,6],65:[[7,5,4,3,2,1],[7,5,4,3,2],[7,66]],66:[7]},pan:{54:[21],56:[20],58:[19],60:[18],62:[17],64:[16],66:[15],68:[14],70:[13],72:[12],74:[11],76:[10],78:[9],80:[8],82:[7],84:[6],86:[5],88:[4],90:[3],92:[2],94:[1]},ocarina:{57:[1,2,3,4,5,6,7,8,9,10,11,12],58:[1,2,3,4,5,6,8,9,10,11,12],59:[1,2,4,5,6,8,9,10,11,12],60:[1,2,4,5,6,11,12],61:[1,2,4,5,6,7,8,9,11,12],62:[1,2,4,5,6,8,9,11,12],63:[1,2,4,5,6,8,10,11,12],64:[1,2,4,5,6,8,11,12],65:[1,2,4,5,6,11,12],66:[1,2,4,6,9,11,12],67:[1,2,4,6,11,12],68:[1,2,6,9,11,12],69:[1,2,6,11,12],70:[1,2,6,9,11,12],71:[1,6,9,11,12],72:[6,11,12],73:[2,6,12],74:[6,12],75:[2,6],76:[6],77:[]},melodica:{56:[1],57:[2],58:[3],59:[4],60:[5],61:[6],62:[7],63:[8],64:[9],65:[10],66:[11],67:[12],68:[13],69:[14],70:[15],71:[16],72:[17],73:[18],74:[19],75:[20],76:[21],77:[22],78:[23],79:[24],80:[25],81:[26],82:[27],83:[28],84:[29],85:[30],86:[31],87:[32]},ukulele:{60:[3,300],61:[3,301],62:[3,302],63:[3,303],64:[2,200],65:[2,201],66:[2,202],67:[2,203],68:[2,204],69:[1,100],70:[1,101],71:[1,102],72:[1,103],73:[1,104],74:[1,105],75:[1,106],76:[1,107],77:[1,108],78:[1,109],79:[1,110],80:[1,111],81:[1,112],82:[1,113],83:[1,114],84:[1,115],85:[1,116],86:[1,117]},mouthorgan:{53:[101],54:[1],55:[102],56:[2],57:[103],58:[3],59:[104],60:[105],61:[4],62:[106],63:[5],64:[107],65:[108],66:[6],67:[109],68:[7],69:[110],70:[8],71:[111],72:[112],73:[9],74:[113],75:[10],76:[114],77:[115],78:[11],79:[116],80:[12],81:[117],82:[13],83:[118],84:[119],85:[14],86:[120],87:[15],88:[121],89:[122]},piano:{21:[101],22:[1],23:[102],24:[103],25:[2],26:[104],27:[3],28:[105],29:[106],30:[4],31:[107],32:[5],33:[108],34:[6],35:[109],36:[110],37:[7],38:[111],39:[8],40:[112],41:[113],42:[9],43:[114],44:[10],45:[115],46:[11],47:[116],48:[117],49:[12],50:[118],51:[13],52:[119],53:[120],54:[14],55:[121],56:[15],57:[122],58:[16],59:[123],60:[124],61:[17],62:[125],63:[18],64:[126],65:[127],66:[19],67:[128],68:[20],69:[129],70:[21],71:[130],72:[131],73:[22],74:[132],75:[23],76:[133],77:[134],78:[24],79:[135],80:[25],81:[136],82:[26],83:[137],84:[138],85:[27],86:[139],87:[28],88:[140],89:[141],90:[29],91:[142],92:[30],93:[143],94:[31],95:[144],96:[145],97:[32],98:[146],99:[33],100:[147],101:[148],102:[34],103:[149],104:[35],105:[150],106:[36],107:[151],108:[152]}};var getTypes=async F=>{switch(F){case"flute":return{json:(await __vitePreload(()=>import("./index.9827614a.js"),[])).default,relationship:relationships.flute,height:"60px",styles:{}};case"clarinet":return{json:(await __vitePreload(()=>import("./index.81bcab95.js"),[])).default,relationship:relationships.clarinet,styles:{marginLeft:".4rem",marginRight:".7rem"}};case"trumpet":return{json:(await __vitePreload(()=>import("./index.562e6907.js"),[])).default,relationship:relationships.trumpet};case"horn":return{json:(await __vitePreload(()=>import("./index.677031cc.js"),[])).default,relationship:relationships.horn,height:"212px",width:"252px"};case"tuba":return{json:(await __vitePreload(()=>import("./index.5c50a9f0.js"),[])).default,relationship:relationships.tuba};case"piccolo":return{json:(await __vitePreload(()=>import("./index.f292a388.js"),[])).default,relationship:relationships.piccolo};case"up-bass-horn":return{json:(await __vitePreload(()=>import("./index.50d887bb.js"),[])).default,relationship:relationships.upBassHorn};case"trombone":return{json:(await __vitePreload(()=>import("./index.65d4cb1f.js"),[])).default,relationship:relationships.trombone};case"saxophone":return{json:(await __vitePreload(()=>import("./index.66139d6f.js"),[])).default,relationship:relationships.saxophone,styles:{marginLeft:".2rem",marginRight:".3rem"}};case"small-drum":return{json:(await __vitePreload(()=>import("./index.c980c934.js"),[])).default,relationship:relationships.smallDrum,width:"180px"};case"hulusi-flute":return{json:(await __vitePreload(()=>import("./index.1c832d4b.js"),[])).default,relationship:relationships.hulusi,styles:{marginLeft:".6rem",marginRight:".7rem"}};case"pan-flute":return{json:(await __vitePreload(()=>import("./index.065f17dc.js"),[])).default,relationship:relationships.pan,width:"240px",styles:{marginTop:"auto",marginLeft:".6rem",marginRight:".7rem"}};case"ocarina":return{json:(await __vitePreload(()=>import("./index.b1ee2f73.js"),[])).default,relationship:relationships.ocarina,width:"180px",styles:{marginTop:"auto"}};case"melodica":return{json:(await __vitePreload(()=>import("./index.150cabd9.js"),[])).default,relationship:relationships.melodica,height:"80px",styles:{marginTop:"auto"}};case"ukulele":return{json:(await __vitePreload(()=>import("./index.db14ec83.js"),[])).default,relationship:relationships.ukulele};case"mouthorgan":return{json:(await __vitePreload(()=>import("./index.3b668adc.js"),[])).default,relationship:relationships.mouthorgan};case"piano":return{json:(await __vitePreload(()=>import("./index.b7f1e2a7.js"),[])).default,relationship:relationships.piano};default:return null}};const container="_container_ajal8_1",changeIndex="_changeIndex_ajal8_6",activeopacity="_activeopacity_ajal8_1",leftrotates="_leftrotates_ajal8_1",rightrotates="_rightrotates_ajal8_1";var styles={container,changeIndex,activeopacity,leftrotates,rightrotates};const getImageSize=F=>new Promise((R,B)=>{const D=new Image;D.src=F,D.onload=()=>{R(D)},D.onerror=G=>R(D)}),formatFixedKey=(F,R)=>F==="piccolo"&&state$2.times[0]?ref(R+(1-state$2.times[0].octaveOffset)*12):ref(R),formatRelationship=(F,R)=>{let B=F[R]||F[0]||[];return typeof B[0]=="number"||typeof B[0]=="string"?[B]:typeof B[0]=="object"?B:[[]]},useFingeringSrc=(F,R,B)=>{const D=ref("");return F&&R==="trombone"&&!F.relationship[B]?(D.value=F.json.full2,D):(D.value=F.json.full,D)};var FingeringComponent=defineComponent({name:"fingering",props:{type:{type:String,default:""},fixedKey:{type:Number,default:0},fingeringInfo:{type:Object},loaded:{type:Function,default:()=>{}},viewInfo:{type:Object}},setup(F,{expose:R}){const B=toRefs(F),D=ref(null),G=ref(null),U=ref(0),W=ref(0);return R({container:D,containerWidth:U}),()=>{var K,ie,te,ne,se,re,ae,le,ce,he,pe,me,fe,ge,Se;if(!((K=B.viewInfo.value)!=null&&K.activeType))return null;const q=formatFixedKey((ie=F.fingeringInfo)==null?void 0:ie.name,B.fixedKey.value).value,Y=formatRelationship((ne=(te=B.viewInfo.value)==null?void 0:te.activeType)==null?void 0:ne.relationship,q||0),Q=()=>{let Ee=W.value===Y.length-1?0:W.value+1;W.value=Ee},Z=Y[W.value]||[];return createVNode("div",{ref:D,class:classNames((se=F.fingeringInfo)==null?void 0:se.name,styles.container),style:{width:((re=F.fingeringInfo)==null?void 0:re.direction)==="vertical"?(ae=F.fingeringInfo)==null?void 0:ae.width:"",height:((le=F.fingeringInfo)==null?void 0:le.direction)==="transverse"?((ce=F.fingeringInfo)==null?void 0:ce.height)||"":"100%",display:"flex",paddingLeft:((he=F.fingeringInfo)==null?void 0:he.direction)==="vertical"?(pe=F.fingeringInfo)==null?void 0:pe.paddingLeft:"",paddingRight:((me=F.fingeringInfo)==null?void 0:me.direction)==="vertical"?(fe=F.fingeringInfo)==null?void 0:fe.paddingRight:""}},[Z.includes(0)?createVNode("span",{style:{position:"absolute",top:".5vh",right:".5vw",color:"rgb(1, 193, 181)",fontWeight:"bold"}},[createTextVNode("\u8F6C\u8C03")]):null,createVNode("img",{ref:G,src:(ge=B.viewInfo.value)==null?void 0:ge.fullsrc,style:{width:"auto",maxWidth:"100%",maxHeight:((Se=F.fingeringInfo)==null?void 0:Se.name)=="ukulele"?"110%":"100%"}},null),Z.map((Ee,ve)=>{var Me,ye,we,Re,Pe,Ae,Le,Ne;const xe=typeof Ee=="string"?Ee.replace("active-",""):String(Ee);return createVNode("img",{"data-index":xe,style:{position:"absolute",top:((Me=G.value)==null?void 0:Me.offsetTop)+"px",left:((ye=G.value)==null?void 0:ye.offsetLeft)+"px",zIndex:ve,height:((we=G.value)==null?void 0:we.height)+"px",width:((Re=G.value)==null?void 0:Re.width)+"px",maxWidth:"100%",maxHeight:((Pe=F.fingeringInfo)==null?void 0:Pe.name)=="ukulele"?"110%":"100%"},src:(Ne=(Le=(Ae=B.viewInfo.value)==null?void 0:Ae.activeType)==null?void 0:Le.json)==null?void 0:Ne[xe]},null)}),Y.length>1?createVNode("div",{role:"button",onClick:Q,class:["substituteFinger",styles.changeIndex]},[createTextVNode("\u66FF\u6307")]):null])}}});const formatdata={Flute:2,Clarinet:4,Trombone:14,Tuba:17,Trumpet:12,Horn:13,AltoSaxophone:6,TenorSaxophone:6,Saxophone:6,UpBassHorn:15,Melodica:137,HulusiFlute:136,PanFlute:135,Ocarina:134,Recorder:120,Ukulele:130,Mouthorgan:140,Piano:150},subjectTypes={2:"Flute",4:"Clarinet",14:"Trombone",17:"Tuba",12:"Trumpet",13:"Horn",6:"AltoSaxophone",15:"UpBassHorn",137:"Melodica",136:"HulusiFlute",135:"PanFlute",134:"Ocarina",120:"Recorder",130:"Ukulele",140:"Mouthorgan",150:"Piano"},getSubjectIdCode=F=>subjectTypes[F]||"";var formatId=F=>formatdata[F]||-1;const fingeringWidth=ref(0),fingeringStatus=ref("hidden"),fingeringViewInfo=async F=>{const R=F;if(R){const B=await getTypes(R.name);if(B){const D=formatFixedKey(R.name,state$2.fixedKey),G=useFingeringSrc(B,R.name,D.value),{width:U,height:W}=await getImageSize(G.value),q=document.getElementById("colexiu-detail-music-sheet").clientHeight||0,Y=state.evaluatingStatus?0:U,Q=q/W;return fingeringWidth.value=q?Q*Y:Y,U&&(fingeringStatus.value="show"),reactive({width:U,height:W,scale:Q,usedFixedKey:D.value,fullsrc:G.value,activeType:B,detail:R})}}else fingeringStatus.value="hidden"},useFingering=async(F="")=>{const R=ref({}),B=ref({}),D=await fingeringViewInfo(typeById[formatId(F)]);return R.value=(D==null?void 0:D.activeType)||{},B.value=(D==null?void 0:D.detail)||{},[fingeringStatus,fingeringWidth,R,B]},ee=new EventEmitter;let playStartTime=0;class MultipleAudio{constructor(R){this.audios={},this.audioList=[],this.length=0,this.status="init",this.speed=90,this.muted=!1,this.audio=null,this.event=ee,this.currentTime=0,this.duration=0,this.timer=null,this.accelerateRefreshPlayer=()=>{if(this.timer)return;const B=this.currentTime;let D=new Date().getTime();this.timer=setInterval(()=>{this.currentTime=(new Date().getTime()-D)/1e3+B,this.event.emit("timeupdate",this)},10)},this.clearAccelerateRefreshPlayer=()=>{clearInterval(this.timer),this.timer=null},this.setVolume=(B,D)=>{let G=setInterval(()=>{Object.values(this.audios).map(U=>{B?(U.volume-=.01,U.volume<=.01&&(U.volume=0,clearInterval(G),D&&D())):(U.volume+=.01,U.volume>=1&&(U.volume=1,clearInterval(G),D&&D())),console.log(U.volume)})},16.7)},this.setSongs(R)}async setSongs(R){this.audioList=R.filter(G=>!!G).map(G=>G),this.audio=null,this.event.removeAllListeners(),this.audios={};const B=R.filter(G=>!!G).map(async G=>({url:G})),D=await Promise.all(B);for(const G of D){const U=new Audio(G.url);U.load(),this.audios[G.url]=U,this.audio||(this.audio=U)}this.length=B.length,this.audio&&(this.audio.addEventListener("loadedmetadata",G=>{this.setDuration()}),this.audio.addEventListener("timeupdate",G=>{var W;this.currentTime=((W=this.audio)==null?void 0:W.currentTime)||0,this.event.emit("timeupdate",G);let U=!1;this.currentTime===this.duration&&!U&&(U=!0)})),R.length&&(this.status=this.getStatus()),this.event.on("allWaiting",()=>{this.hasWaitng()&&this.event.emit("waiting")}),this.event.on("allPlaying",()=>{this.hasWaitng()||this.event.emit("playing")}),this.syncEvent()}setDuration(R){var D;const B=Object.values(R||this.audios||{});if(B.length){const G=[];for(const W of B){const q=W.duration;q>0&&G.push(q)}const U=Math.floor(Math.max(...G)-Math.min(...G));U>=1&&console.log("\u8BE5\u6559\u7A0B\u539F\u97F3\u4E0E\u4F34\u594F\u65F6\u957F\u8D85\u8FC7"+U+"\u79D2\uFF0C\u8BF7\u4FEE\u6539\u540E\u4F7F\u7528"),this.duration=Math.min(...G),this.duration>0&&((D=this.event)==null||D.emit("loadedmetadata",null,this.duration))}}destroyed(){this.pause(),this.event.removeAllListeners(),this.audio=null,this.audios={}}hasWaitng(){let R=!1;for(const B of Object.values(this.audios))if(B.dataset.status==="waiting"){R=!0;break}return R}syncEvent(){let R=!1;const B=q=>{var Y;R=!1,this.event.emit("play",q),((Y=q.target)==null?void 0:Y.src)===this.audioList[0]&&(playStartTime=new Date().getTime())},D=async q=>{var Y;if(await this.pause(),this.event.emit("pause",q),((Y=q.target)==null?void 0:Y.src)===this.audioList[0]){const Q=new Date().getTime()-playStartTime;this.event.emit("updatePlayTime",Q/1e3)}},G=q=>{this.status==="play"&&(q.target.dataset.status="waiting"),this.event.emit("allWaiting")},U=q=>{q.target.dataset.status="",this.event.emit("allPlaying")},W=async q=>{R||(R=!0,await this.pause());for(const Y in this.audios)Object.prototype.hasOwnProperty.call(this.audios,Y)&&this.event.emit("ended",{target:this.audios[Y]})};for(const q of Object.values(this.audios))q.addEventListener("loadedmetadata",()=>this.setDuration(this.audios)),q.addEventListener("play",B),q.addEventListener("pause",D),q.addEventListener("waiting",G),q.addEventListener("playing",U),q.addEventListener("ended",W)}getStatus(){var R;return this.audio?(R=this.audio)!=null&&R.paused?"pause":"play":"init"}play(R){return this.getStatus()!=="play"?new Promise(B=>{setTimeout(()=>{new Date().getTime(),Object.values(this.audios).map(async(D,G)=>{await D.play()}),B(this.audios)},R||100)}):(this.status=this.getStatus(),Promise.resolve())}pause(){return this.status=this.getStatus(),Promise.all(Object.values(this.audios).map(async R=>await R.pause())).then(R=>(this.status=this.getStatus(),R))}setMute(R,B){B?this.audios[B]&&(this.audios[B].muted=R):(this.muted=R,Object.values(this.audios).map(D=>D.muted=R))}setSpeed(R,B){B?this.audios[B]&&(this.audios[B].playbackRate=R):(this.speed=R,Object.values(this.audios).map(D=>(D.playbackRate=R,D)))}setCurrentTime(R){this.currentTime=R,Object.values(this.audios).map(B=>B.currentTime=R)}toggleMute(R){R?this.audios[R]&&(this.audios[R].muted=!this.audios[R].muted):(Object.values(this.audios).map(B=>B.muted=!this.muted),this.muted=!this.muted)}async togglePlay(R){if(this.getStatus()==="pause")return await this.play(R);if(this.getStatus()==="play")return this.setMute(!0),await this.pause()}}const search=useOriginSearch(),skpList=["Ukulele"],useXml=async(F,R)=>{let B=ref("");try{const D=await request$1$1(F),G=getCustomInfo(D);if(skpList.includes(G.code))B.value=D;else{B.value=formatXML(G.parsedXML,{title:R.musicSheetName});const U=Number(search["part-index"])||0;B.value=onlyVisible(B.value,U)}}catch{}return B},pushAppMusic=F=>{postMessage({api:"cloudAccompanyMessage",content:{accompanyUrl:F}})},useMp3s=async F=>{var Z;const B=useOriginSearch()["part-index"]||0,D=(Z=F.background)==null?void 0:Z[B],G=encodeURI(F.audioFileUrl||F.metronomeUrl||F.url||"");pushAppMusic(G);const U=encodeURI((D==null?void 0:D.audioFileUrl)||(D==null?void 0:D.metronomeUrl)||"");state.songs={background:G?G+"?t=background":"",music:U?U+"?t=music":""},state$2.isAppPlay=F.audioType==="MIDI";let W={skipTick:!1,repeatedBeats:!0,scoreSize:"middle"},q={};state$2.activeDetail={...F,examSongId:F.id,originalSpeed:90,isAppPlay:F.audioType==="MIDI",extConfigJson:{...W}},state$3.sett.hertz=F.aiDefaultFrequency&&parseInt(""+F.aiDefaultFrequency||"440")||440;try{q=JSON.parse((F==null?void 0:F.extConfigJson)||"")}catch{}state$2.activeDetail.extConfigJson={...state$2.activeDetail.extConfigJson,...q};const Y=state$2.activeDetail.extConfigJson.scoreSize,Q=store_legacy.get("zooms")||{};Y&&!Q[""+F.id]&&(store_legacy.set("zooms",{...Q,[""+F.id]:Y}),state$3.sett.scoreSize=Y),state$2.needTick=F.audioType==="MP3"&&F.mp3Type==="MP3"||F.audioType==="MIDI",state$2.skipTick=state$2.activeDetail.extConfigJson.skipTick,state$2.repeatedBeats=state$2.activeDetail.extConfigJson.repeatedBeats,state.songs.music||changeMode("background"),state.audiosInstance||(state.audiosInstance=new MultipleAudio(Object.values(state.songs)))},useSpecialShapedScreen=()=>{const F=ref(0);return postMessage({api:"isSpecialShapedScreen"},R=>{const B=R==null?void 0:R.content.notchHeight;state$2.notchHeight=(browser().ios?B*2:B)||((R==null?void 0:R.content.isSpecialShapedScreen)&&browser().ios?100:0),F.value=state$2.notchHeight,state$2.isSpecialShapedScreen=R==null?void 0:R.content.isSpecialShapedScreen}),[F]},useDetail=F=>{const R=getRequestHostname(),B=ref("loading"),D=ref({});return B.value="loading",request.get(`/musicSheet/detail/${F}`,{prefix:R}).then(G=>{var U;useMp3s(G.data),D.value={...G.data,code:Array.isArray((U=G==null?void 0:G.data)==null?void 0:U.background)&&G.data.background.length?getSubjectIdCode(G.data.background[0].musicSubject):""},D.value.notation==0&&(state$3.sett.type="staff"),state$2.subjectId=(G.data.musicSubject||"").split(",")[0]||0,window.DYSubjectId=formatId(D.value.code),B.value="success"}).catch(()=>B.value="error"),[B,D]},useSuspendPlay=()=>{listenerMessage("suspendPlay",()=>{state$2.activeTick>-1&&stopTick(),console.log(state.playState),state.playState==="play"&&(resetPlayStatus(),state.evaluatingStatus&&evaluatStopPlay(!1))})};let startTime=Date.now(),timer=null;const initBehaviorId=""+Date.now(),recordTotalTime=()=>{const F=useClientType();if(F!="student")return;const R=useOriginSearch(),B=getRequestHostname(),D=(Date.now()-startTime)/1e3;if(startTime=Date.now(),R.lessonTrainingId){const G=browser();request.post("/studentLessonTraining/lessonTrainingRecord",{prefix:B,requestType:"json",data:{materialType:"SONG",record:{clientType:F==null?void 0:F.toLocaleUpperCase(),practiceSource:"LESSON_TRAINING",feature:"PRACTICE",deviceType:G.android?"ANDROID":G.isApp?"IOS":"WEB",behaviorId:initBehaviorId,playTime:D,musicSheetId:R.id},courseScheduleId:R.courseScheduleId,lessonTrainingId:R.lessonTrainingId,materialId:R.materialId}})}else request.post("/musicPracticeRecord/save",{prefix:B,requestType:"json",data:{musicSheetId:R.id,sysMusicScoreId:R.id,feature:"PRACTICE",practiceSource:"PRACTICE",playTime:D,deviceType:getPlatform(),behaviorId:initBehaviorId}})},sendBackRecordTotalTime=()=>{clearInterval(timer),recordTotalTime()};var App=defineComponent({setup(){var R;const F=useRoute$1();return(R=F==null?void 0:F.query)!=null&&R.Authorization&&sessionStorage.setItem("Authorization",F.query.Authorization),onMounted(()=>{clearInterval(timer),F.name&&(timer=setInterval(()=>{recordTotalTime()},60*1e3))}),()=>createVNode(resolveComponent("router-view"),null,null)}}),App$1=Object.freeze(Object.defineProperty({__proto__:null,sendBackRecordTotalTime,default:App},Symbol.toStringTag,{value:"Module"}));export{getRequestHostname as $,App as A,Button as B,formatXML as C,onlyVisible as D,getBoundingBoxByverticalNote as E,Fragment as F,Grid as G,getLeveByScoreMeasure as H,postMessage as I,classNames as J,getVoiceChinesName as K,truthProp as L,MusicSheet as M,createNamespace as N,getSizeStyle as O,Popup as P,addUnit as Q,withInstall as R,Section as S,Toast as T,reactive as U,store_legacy as V,NoticeBar as W,event as X,OpenSheetMusicDisplay as Y,styles$3 as Z,__vitePreload as _,createWebHistory as a,onChangeModelType as a$,queryString as a0,mergeProps as a1,BackIcon as a2,index as a3,Canvg as a4,PageFormat as a5,Dialog as a6,startRun as a7,getCurrentInstance as a8,computed as a9,iconColse as aA,pause as aB,isVNode as aC,Tabs as aD,Tab as aE,typeById as aF,FingeringComponent as aG,formatId as aH,getTypes as aI,formatFixedKey as aJ,useFingeringSrc as aK,getImageSize as aL,CellGroup as aM,Cell as aN,modelType as aO,listenerMessage as aP,removeListenerMessage as aQ,useToggle as aR,refreshView as aS,useDetail as aT,event$1 as aU,useUser as aV,useSuspendPlay as aW,Buttons as aX,followRef as aY,SoundEffect as aZ,HelperPopup as a_,inBrowser$1 as aa,onBeforeUnmount as ab,isDef$1 as ac,withDirectives as ad,resolveDirective as ae,Icon as af,useXml as ag,nextTick as ah,svgtopng as ai,Transition as aj,changeMode as ak,getDuration as al,useWiredHeadsetCheck as am,onUnmounted as an,setPlayState as ao,stopTick as ap,styles$4 as aq,evaluatingRef as ar,startButtonShow as as,ButtonIcon as at,Teleport as au,setCurrentTime as av,ended as aw,useClientType as ax,permissionPopup as ay,refreshIndex as az,close$1 as b,getZIndexStyle as b$,useFee as b0,changeSpeed as b1,setAudioInit as b2,restPromptMain as b3,useRoute$1 as b4,useFingering as b5,useScrollParent as b6,onUpdated as b7,useEventListener as b8,useTabStatus as b9,Player as bA,changeAllMode as bB,resetPlayStatus as bC,getFixTime as bD,setCaptureMode as bE,clearIntervalTimeline as bF,getNoteByMeasuresSlursStart as bG,getLeveByScore as bH,Switch as bI,noteClick as bJ,sectionChange as bK,Speed as bL,EventEmitter as bM,resolveComponent as bN,setPrefix as bO,useReload as bP,noop$4 as bQ,relationships as bR,getVoicePartInfo as bS,MultipleAudio as bT,idIsInClassIds as bU,appoggianceFormate as bV,useParent as bW,useChildren as bX,unitToPx as bY,BORDER_UNSET_TOP_BOTTOM as bZ,useClickAway as b_,useRect as ba,isHidden as bb,Loading as bc,useExpose as bd,getRandomKey as be,setTongjiTag as bf,cancelRaf as bg,raf$2 as bh,isObject$1 as bi,useTouch as bj,SwipeItem as bk,preventDefault as bl,clamp as bm,unknownProp as bn,useWindowSize as bo,pick as bp,Swipe as bq,callInterceptor as br,extend$2 as bs,mountComponent as bt,usePopupState as bu,Field as bv,getTvIconUrl as bw,getEnvHostname as bx,score as by,Popover as bz,createRouter as c,vShow as c0,fieldProps as c1,lodash$1 as c2,toNext as c3,Sticky as c4,Vex as c5,App$1 as c6,createApp as d,browser as e,formatZoom as f,defineComponent as g,createVNode as h,GridItem as i,createTextVNode as j,useSpecialShapedScreen as k,state$2 as l,state$3 as m,request as n,onMounted as o,promisefiyPostMessage as p,state as q,ref as r,state$4 as s,toRefs as t,useOriginSearch as u,getAllNodes as v,watch as w,getParentNote as x,request$1$1 as y,getCustomInfo as z};